Merge remote-tracking branch 'origin/新改版_poyo' into 新改版_poyo

This commit is contained in:
老皮 2024-09-10 18:30:15 +08:00
commit 02ee96e369
40 changed files with 283 additions and 166 deletions

View File

@ -9,8 +9,8 @@
<string name="dialog_share_app_messenger">Messenger</string>
<string name="dialog_share_app_instagram" >Instagram</string>
<string name="dialog_share_title">Share</string>
<string name="dialog_share_info">Come and watch %s live on PDLIVE and meet more interesting people!</string>
<string name="dialog_share_info">Come and watch %s live on PoYo and meet more interesting people!</string>
<string name="dialog_invite_title">Invite Friends</string>
<string name="dialog_invite_info">Come to PDLIVE to discover more and better live streams.</string>
<string name="dialog_invite_info">Come to PoYo to discover more and better live streams.</string>
<string name="dialog_share_copy">Copy</string>
</resources>

View File

@ -177,7 +177,7 @@ android {
} else {
server = '测试服'
}
def fileName = "[${new Date().format("yyyy-MM-dd HHmmss", TimeZone.getTimeZone("GMT+8"))}]PDLive-${defaultConfig.versionName}-${defaultConfig.versionCode}-${channel}-${server}-${variant.buildType.name}.apk"
def fileName = "[${new Date().format("yyyy-MM-dd HHmmss", TimeZone.getTimeZone("GMT+8"))}]PoYo-${defaultConfig.versionName}-${defaultConfig.versionCode}-${channel}-${server}-${variant.buildType.name}.apk"
variant.outputs.forEach { fe ->
copy {
from fe.outputFile
@ -207,7 +207,7 @@ android {
} else {
server = '测试服'
}
def fileName = "[${new Date().format("yyyy-MM-dd HHmmss", TimeZone.getTimeZone("GMT+8"))}]PDLive-${defaultConfig.versionName}-${defaultConfig.versionCode}-${channel}-${server}-${variant.buildType.name}.aab"
def fileName = "[${new Date().format("yyyy-MM-dd HHmmss", TimeZone.getTimeZone("GMT+8"))}]PoYo-${defaultConfig.versionName}-${defaultConfig.versionCode}-${channel}-${server}-${variant.buildType.name}.aab"
File finalFile = new File("${project.rootDir}\\outputs\\aab", fileName)
finalBundleFile.set(finalFile)
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 508 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 508 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 508 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">PDLIVE</string>
<string name="app_name">PoYo</string>
<string name="leak_canary_test_class_name">assertk.Assert</string>
</resources>

View File

@ -7,8 +7,8 @@ package com.yunbao.common;
public class HtmlConfig {
//登录即代表同意服务和隐私条款
public static final String LOGIN_PRIVCAY = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=3";
public static final String LOGIN_PRIVCAY1 = CommonAppConfig.HOST + "/index.php?g=Portal&m=Page&a=index&id=59";
public static final String LOGIN_PRIVCAY = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=706";
public static final String LOGIN_PRIVCAY1 = CommonAppConfig.HOST + "/index.php?g=Portal&m=Page&a=index&id=705";
//注册用户协议
public static final String REG_PRIVCAY1 = CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=2";

View File

@ -54,7 +54,7 @@
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:text="PD LIVE"
android:text="PoYo"
android:textColor="@color/gray3" />
</RelativeLayout>

View File

@ -37,7 +37,7 @@
android:layout_marginStart="14dp"
android:layout_marginEnd="14dp"
android:textColor="#0D21B2"
tools:text="1.戰令開啟時,完成戰令任務,提升戰令等級,可獲得大量等級獎勵。\n2.所有用戶免費解鎖普通版,戰令開啟時隨時可進階為精英版和尊享版,獲得豐厚額外專屬獎勵。\n3.三種戰令都會獎勵積分,可在兌換商城中兌換心儀的寶貝,部分寶貝兌換有戰令等級要求或兌換數量限制。\n4.每日任務0點刷新未完成任務進度不再累計每季任務將會在新一季戰令開啟時刷新。\n5.任務達成時需主動領取經驗,未领取經驗將會在任務刷新時過期。\n6.活動最終解釋權歸PDLIVE所有。"
tools:text="1.戰令開啟時,完成戰令任務,提升戰令等級,可獲得大量等級獎勵。\n2.所有用戶免費解鎖普通版,戰令開啟時隨時可進階為精英版和尊享版,獲得豐厚額外專屬獎勵。\n3.三種戰令都會獎勵積分,可在兌換商城中兌換心儀的寶貝,部分寶貝兌換有戰令等級要求或兌換數量限制。\n4.每日任務0點刷新未完成任務進度不再累計每季任務將會在新一季戰令開啟時刷新。\n5.任務達成時需主動領取經驗,未领取經驗將會在任務刷新時過期。\n6.活動最終解釋權歸PoYo所有。"
android:textSize="14sp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -74,7 +74,7 @@
<string name="quit_mic">退出連麥</string>
<string name="edit_profile_city">所在地</string>
<string name="edit_one_1">編輯個人資料</string>
<string name="edit_one_2">進入PD LIVE</string>
<string name="edit_one_2">進入POYO</string>
<string name="edit_one_3">是否確認使用一下資料</string>
<string name="edit_one_4">確認</string>
<string name="edit_one_5">暱稱重複,請重新輸入</string>
@ -645,7 +645,7 @@
<string name="one_free">一次免費贈送禮物特權!</string>
<string name="no_car">TA還沒有座騎</string>
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
<string name="welcome_pdlive">歡迎來到PoYo</string>
<string name="newcomer">恭喜你獲得了新人獎勵</string>
<string name="FILE_PROVIDER">com.pdsylive.yo.fileprovider</string>
@ -1070,21 +1070,21 @@
<string name="sign_in_center">簽到中心</string>
<string name="to_top">返回首頁</string>
<string name="go_to_the_sign">前往簽到中心</string>
<string name="confirm_pick_up">確認領取</string>
<string name="confirm_pick_up">知道了</string>
<string name="customer_service2">無法登陸?點此聯繫客服</string>
<string name="next_step_is_consent">進入下一步即代表同意</string>
<string name="next_step_is_consent">登錄即代表您同意</string>
<string name="user_protocol2">用戶協議</string>
<string name="and"></string>
<string name="privacy_terms">隱私條款</string>
<string name="terms_and_policies">條款和政策</string>
<string name="treat_and_protect">歡迎來到PD LIVE,對於您的個人信息及隱私,我們將採用最高標準對待和保護。</string>
<string name="treat_and_protect">歡迎來到POYO,對於您的個人信息及隱私,我們將採用最高標準對待和保護。</string>
<string name="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
<string name="anti_cheating_services">為了給用戶提供更好的服務,我們的產品集成[友盟SDK]SDK需要收集您的设备信息IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP地址/SIM 卡 IMSI 信息等),為便於您更好地了解[友盟SDK]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.umeng.com/page/policy 了解[友盟SDK]隱私權政策【友盟+】隐私政策【友盟+】,第三方全域大数据服务提供商,为客户提供PC/APP/线下统计,广告效果监测,消息推送/微社区/分享/IM等运营工具,DIP,全域指数与行业报告等。https://www.umeng.com/page/policy</string>
<string name="agreement">同意</string>
<string name="read_and_agre">點擊同意後即代表您已閱讀並同意以上所有內容。</string>
<string name="support_login">本應用會收集位置數據以支持登錄和註冊的功能使用。</string>
<string name="come_to">歡迎來到PD LIVE</string>
<string name="sign_up_for">註冊PD LIVE</string>
<string name="come_to">歡迎來到POYO</string>
<string name="sign_up_for">註冊POYO</string>
<string name="register_and_log_in">註冊並登錄</string>
<string name="enjoy_a_lot">開通貴族,尊享超多特權!</string>
<string name="layout_live_anchor_say_ready_title">女神說</string>

View File

@ -659,7 +659,7 @@
<string name="save">Preservation</string>
<string name="reg">Register</string>
<string name="no_more_mic">No one is currently in the voice link</string>
<string name="welcome_pdlive">Welcome to PDLive</string>
<string name="welcome_pdlive">Welcome to PoYo</string>
<string name="newcomer">Newcomer Bonus</string>
<string name="exp">EXP</string>
<string name="new_rewards">Complete newcomer tasks for more rewards</string>
@ -1052,11 +1052,11 @@
<string name="privacy_terms">Privacy Policy</string>
<string name="terms_and_policies">Terms and policies</string>
<string name="install_the_application">For details, please read the following message to install the application:</string>
<string name="treat_and_protect">Welcome to PD LIVE. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
<string name="treat_and_protect">Welcome to POYO. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
<string name="anti_cheating_services">In order to provide users with better services, our products integrate [Alliance SDK], SDK needs to collect your device information (IMEI/MAC/Android ID/IDFA/OpenUDID/GUID/IP address /SIM card IMSI information, etc.), In order for you to better understand the types and purposes of the data collected by [Alliance SDK] and how to protect your personal information, you can log on to: https://www.umeng.com/page/policy Learn about [Alliance SDK] Privacy Policy [Alliance +] Privacy Policy [Alliance +], a third-party global big data service provider, providing customers with PC/APP/ offline statistics, advertising effect monitoring, message push/micro community/sharing /IM and other operating tools,DIP, global index and industry reports. https://www.umeng.com/page/policy</string>
<string name="read_and_agre">Clicking Agree means you have read and agree to all of the above.。</string>
<string name="agreement">agreement</string>
<string name="come_to">Welcome to PD LIVE.</string>
<string name="come_to">Welcome to POYO.</string>
<string name="live_gift">gift</string>
<string name="register_tip_2">User service agreement</string>
<string name="live_fans_medal_pri_des">一 Fan privilege 一</string>

View File

@ -399,7 +399,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
} else if (bean.getType() == LiveChatBean.SYSTEM) {
boolean isContains = false;
for (LiveChatBean model : mList) {
if (!TextUtils.isEmpty(model.getContent()) && (model.getContent().contains("堅決維護青少年群體精神文明健康") || model.getContent().contains("click to register if you like. pdlive conducts"))) {
if (!TextUtils.isEmpty(model.getContent()) && (model.getContent().contains("堅決維護青少年群體精神文明健康") || model.getContent().contains("click to register if you like. PoYo conducts"))) {
isContains = true;
}
}

View File

@ -265,7 +265,7 @@ public class SocketRyClient {
int num = LiveAudienceActivity.fansNum + 1;
LiveRoomViewHolder.setFansNum(num);
}
if (map.getString("ct").contains("堅決維護青少年群體精神文明健康") || map.getString("ct").contains("click to register if you like. pdlive conducts")) {
if (map.getString("ct").contains("堅決維護青少年群體精神文明健康") || map.getString("ct").contains("click to register if you like. PoYo conducts")) {
systemChatMessage(map.getString("ct"));
} else {
if (!WordUtil.isNewZh() && map.getString("ct").contains("退出比賽") && map.getString("ct").contains("獲得勝利")) {

View File

@ -261,7 +261,7 @@ public class SocketSwClient {
int num = LiveAudienceActivity.fansNum + 1;
LiveRoomViewHolder.setFansNum(num);
}
if (ct.contains("堅決維護青少年群體精神文明健康") ||ct.contains("click to register if you like. pdlive conducts")) {
if (ct.contains("堅決維護青少年群體精神文明健康") ||ct.contains("click to register if you like. PoYo conducts")) {
systemChatMessage(ct);
} else {
if (!WordUtil.isNewZh() && ct.contains("退出比賽") && ct.contains("獲得勝利")) {

View File

@ -2,7 +2,7 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#33cbd5e0" />
<solid android:color="@color/transparent" />
<corners android:topLeftRadius="13dp" android:topRightRadius="13dp" android:bottomLeftRadius="13dp" android:bottomRightRadius="13dp" />
</shape>
</item>

View File

@ -2,7 +2,7 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#33FFC621" />
<solid android:color="@color/white" />
<corners android:topLeftRadius="13dp" android:topRightRadius="13dp" android:bottomLeftRadius="13dp" android:bottomRightRadius="13dp" />
</shape>
</item>

View File

@ -102,7 +102,7 @@
<string name="live_fans_group_info_text3">3. 專屬禮包與主播為 1 對 1 綁定關係,購買專屬 禮包中禮物資源只可送給該主播</string>
<string name="live_fans_group_info_text4">4. 禮包中禮物資源有效期 30 天,有效期內均可正 常贈送;過期後禮物資源失效不可贈送</string>
<string name="live_fans_group_info2_text1">1. 當月只可購買一次,購買后禮包实时發放</string>
<string name="live_fans_group_info2_text2">2. 该禮包最終解釋權歸 PD Live 所有</string>
<string name="live_fans_group_info2_text2">2. 该禮包最終解釋權歸 POYO 所有</string>
<string name="live_fans_group_info_title">禮包介紹</string>
<string name="live_fans_group_info2_title">購買規則</string>
<string name="live_fans_follow_toast">加入粉絲團,解鎖專屬禮物</string>

View File

@ -104,7 +104,7 @@
<string name="live_fans_group_info_text3">3 The exclusive gift package is bound to the anchor in a one-on-one relationship, and purchasing gift resources in the exclusive gift package can only be given to the anchor</string>
<string name="live_fans_group_info_text4">4 The gift resources in the gift package are valid for 30 days and can be given normally during the validity period; Gift resources become invalid and cannot be given after expiration</string>
<string name="live_fans_group_info2_text1">1 Purchase can only be made once a month, and the gift package will be distributed in real-time after purchase</string>
<string name="live_fans_group_info2_text2">2. The final interpretation rights of this gift package belong to PD Live</string>
<string name="live_fans_group_info2_text2">2. The final interpretation rights of this gift package belong to PoYo</string>
<string name="live_fans_group_info_title">Introduction</string>
<string name="live_fans_group_info2_title">Rules</string>
<string name="live_fans_follow_toast">Join the fan group and unlock exclusive gifts</string>

View File

@ -11,7 +11,6 @@ import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentPagerAdapter;
@ -28,11 +27,11 @@ import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.pay.hw.HwBuilder;
import com.yunbao.common.pay.samsung.SamsungUtil;
import com.yunbao.common.utils.GoogleUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.main.R;
import com.yunbao.main.http.MainHttpUtil;
import com.yunbao.main.utils.ColorTransitionPagerTitleView;
import com.yunbao.main.utils.HXLinePagerIndicator;
import net.lucode.hackware.magicindicator.MagicIndicator;
@ -43,14 +42,11 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNav
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
@Route(path = RouteUtil.PATH_COIN)

View File

@ -67,10 +67,10 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
@Override
public int getItemViewType(int position) {
if (position == 0) {
if (position == 4) {
return HEAD;
} else if (position > 0) {
LiveBean mode = mList.get(position - 1);
} else{
LiveBean mode = mList.get(position>4?position-1:position);
if (TextUtils.equals(mode.getIs_week(), "1")) {
return WEEKLAYOUT;
} else {
@ -114,8 +114,9 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder vh, int position) {
int nowPosition = position>4?position-1:position;
if (vh instanceof MainHomeLiveWeekItemViewHolder) {
((MainHomeLiveWeekItemViewHolder) vh).loadViewDate(mList.get(position - 1), position - 1, Height, new MainHomeLiveWeekItemViewHolder.OnItemClickListener() {
((MainHomeLiveWeekItemViewHolder) vh).loadViewDate(mList.get(nowPosition), nowPosition, Height, new MainHomeLiveWeekItemViewHolder.OnItemClickListener() {
@Override
public void onItemClick(LiveBean bean, int position) {
if (mOnItemClickListener != null) {
@ -124,7 +125,7 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
}
});
} else if (vh instanceof MainHomeLiveItemViewHolder) {
((MainHomeLiveItemViewHolder) vh).loadViewDate(mList.get(position - 1), position - 1, Height, new MainHomeLiveItemViewHolder.OnItemClickListener() {
((MainHomeLiveItemViewHolder) vh).loadViewDate(mList.get(nowPosition), nowPosition, Height, new MainHomeLiveItemViewHolder.OnItemClickListener() {
@Override
public void onItemClick(LiveBean bean, int position) {
if (mOnItemClickListener != null) {
@ -137,7 +138,7 @@ public class MainHomeLiveAdapter extends RefreshAdapter<LiveBean> {
@Override
public int getItemCount() {
return super.getItemCount() + 1;
return super.getItemCount();
}
class HeadVh extends RecyclerView.ViewHolder {

View File

@ -97,10 +97,10 @@ public class MainHomeLivesClassAdapter extends RecyclerView.Adapter<MainHomeLive
if (position == choice) {
mName.setBackgroundResource(R.drawable.button_ffc621);
mName.setTextColor(Color.parseColor("#FFC621"));
mName.setTextColor(Color.parseColor("#FFFF4598"));
} else {
mName.setBackgroundResource(R.drawable.button_cbd5e0);
mName.setTextColor(Color.parseColor("#484D68"));
mName.setTextColor(Color.parseColor("#FF222222"));
}
}
}

View File

@ -0,0 +1,51 @@
package com.yunbao.main.utils;
import android.content.Context;
import net.lucode.hackware.magicindicator.buildins.ArgbEvaluatorHolder;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
/**
* 两种颜色过渡的指示器标题
* 博客: http://hackware.lucode.net
* Created by hackware on 2016/6/26.
*/
public class ColorTransitionPagerTitleView extends SimplePagerTitleView {
private CommonPagerTitleView.OnPagerTitleChangeListener mOnPagerTitleChangeListener;
public void setmOnPagerTitleChangeListener(CommonPagerTitleView.OnPagerTitleChangeListener mOnPagerTitleChangeListener) {
this.mOnPagerTitleChangeListener = mOnPagerTitleChangeListener;
}
public ColorTransitionPagerTitleView(Context context) {
super(context);
}
@Override
public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) {
int color = ArgbEvaluatorHolder.eval(leavePercent, mSelectedColor, mNormalColor);
setTextColor(color);
}
@Override
public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) {
int color = ArgbEvaluatorHolder.eval(enterPercent, mNormalColor, mSelectedColor);
setTextColor(color);
}
@Override
public void onSelected(int index, int totalCount) {
if (mOnPagerTitleChangeListener != null) {
mOnPagerTitleChangeListener.onSelected(index, totalCount);
}
}
@Override
public void onDeselected(int index, int totalCount) {
if (mOnPagerTitleChangeListener != null) {
mOnPagerTitleChangeListener.onDeselected(index, totalCount);
}
}
}

View File

@ -3,7 +3,7 @@ package com.yunbao.main.views;
import android.content.Context;
import android.graphics.Color;
import com.google.android.material.appbar.AppBarLayout;
import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.ViewPager;
import android.view.View;
import android.view.ViewGroup;
@ -18,6 +18,7 @@ import com.yunbao.main.R;
import com.yunbao.main.interfaces.AppBarStateListener;
import com.yunbao.main.interfaces.MainAppBarExpandListener;
import com.yunbao.main.interfaces.MainAppBarLayoutListener;
import com.yunbao.main.utils.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
@ -26,8 +27,7 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNav
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.CommonPagerTitleView;
import org.greenrobot.eventbus.EventBus;
@ -135,11 +135,11 @@ public abstract class AbsMainHomeParentViewHolder extends AbsMainViewHolder {
@Override
public IPagerTitleView getTitleView(Context context, final int index) {
SimplePagerTitleView simplePagerTitleView = new ColorTransitionPagerTitleView(context);
simplePagerTitleView.setNormalColor(Color.parseColor("#B1B1B1"));
simplePagerTitleView.setSelectedColor(Color.parseColor("#FFC621"));
ColorTransitionPagerTitleView simplePagerTitleView = new ColorTransitionPagerTitleView(context);
simplePagerTitleView.setNormalColor(Color.parseColor("#FF777777"));
simplePagerTitleView.setSelectedColor(Color.parseColor("#FF111111"));
simplePagerTitleView.setText(titles[index]);
simplePagerTitleView.setTextSize(18);
simplePagerTitleView.setTextSize(22);
simplePagerTitleView.getPaint().setFakeBoldText(true);
simplePagerTitleView.setOnClickListener(new View.OnClickListener() {
@Override
@ -149,16 +149,39 @@ public abstract class AbsMainHomeParentViewHolder extends AbsMainViewHolder {
}
}
});
simplePagerTitleView.setmOnPagerTitleChangeListener(new CommonPagerTitleView.OnPagerTitleChangeListener() {
@Override
public void onSelected(int index, int totalCount) {
simplePagerTitleView.setTextSize(22);
}
@Override
public void onDeselected(int index, int totalCount) {
simplePagerTitleView.setTextSize(16);
}
@Override
public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) {
}
@Override
public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) {
}
});
return simplePagerTitleView;
}
@Override
public IPagerIndicator getIndicator(Context context) {
LinePagerIndicator linePagerIndicator = new LinePagerIndicator(context);
linePagerIndicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
linePagerIndicator.setXOffset(DpUtil.dp2px(5));
linePagerIndicator.setRoundRadius(DpUtil.dp2px(2));
linePagerIndicator.setColors(Color.parseColor("#FFC621"));
linePagerIndicator.setMode(LinePagerIndicator.MODE_EXACTLY);
linePagerIndicator.setLineWidth(40);
linePagerIndicator.setLineHeight(10);
linePagerIndicator.setRoundRadius(DpUtil.dp2px(16));
linePagerIndicator.setColors(Color.parseColor("#FF111111"));
return linePagerIndicator;
}
});

View File

@ -1,107 +1,42 @@
package com.yunbao.main.views;
import static android.content.Context.CLIPBOARD_SERVICE;
import android.app.Activity;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.momo.mcamera.util.JsonUtil;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
import com.yunbao.common.bean.CoolConfig;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.LiveClassBean;
import com.yunbao.common.bean.NativeCallbackModel;
import com.yunbao.common.dialog.CinemaTicketPopupWindow;
import com.yunbao.common.dialog.WarOrderExchangeDetailsPopupWindow;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfacePlayLetUtils;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.views.LoadingView;
import com.yunbao.main.R;
import com.yunbao.main.activity.MainActivity;
import com.yunbao.main.activity.MyWalletActivity;
import com.yunbao.main.adapter.MainHomeLivesClassAdapter;
import com.yunbao.main.dialog.EncourageDialog;
import com.yunbao.main.fragment.BattlePassRewardFragment;
import com.yunbao.main.fragment.MainHomeCommunityFragment;
import com.yunbao.main.fragment.MainHomeCommunityVideoFragment;
import com.yunbao.main.fragment.SearchResultsFragment;
import com.yunbao.main.utils.BottomBarUtil;
import com.yunbao.share.ui.SharePopDialog;
import com.yunbao.video.activity.VideoPlayActivity;
import com.yunbao.video.utils.VideoStorge;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import com.yunbao.main.utils.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
/**
* Created by Chen Haoxuan on 2022/3/25.

View File

@ -163,7 +163,7 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (position == 0) {
if (position == 4) {
return 2;
}
return 1;

View File

@ -1,9 +1,12 @@
package com.yunbao.main.views;
import android.Manifest;
import android.app.Activity;
import android.app.Dialog;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.os.Build;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
@ -15,22 +18,35 @@ import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BottomPopupView;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.dialog.GiftWallDialog;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.RandomSudGameManager;
import com.yunbao.common.utils.AesUtils;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.DebugUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.event.FloatWarOrderEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.PluginManager;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.LiveConfig;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.activity.LiveSwAnchorActivity;
import com.yunbao.live.bean.LiveKsyConfigBean;
import com.yunbao.live.dialog.LivePrankDialogFragment;
import com.yunbao.main.R;
@ -69,11 +85,33 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
@Override
public void init() {
super.init();
findViewById(R.id.btn_start_live).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isAnchor = IMLoginManager.get(mContext).getUserInfo().anchorUserType();
if (isAnchor) {
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permissions = new String[]{
//Manifest.permission.READ_MEDIA_IMAGES, 去掉选择图片的权限到里面选择封面的时候再去申请
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
};
} else {
permissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
};
}
mProcessResultUtil.requestPermissions(permissions, mStartLiveRunnable);
} else {
ToastUtil.show(mContext.getString(R.string.only_open_anchor));
}
}
});
img_trophy = (ImageView) findViewById(R.id.img_trophy);
ImgLoader.display(mContext, "https://downs.yaoulive.com/gif_trophy.gif", img_trophy);
img_trophy.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
@ -91,14 +129,76 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
return true;
}
});
findViewById(R.id.tvPlay).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MobclickAgent.onEvent(mContext, "home_page_short_drama", "首页短剧按钮");
RouteUtil.forwardCommunityActivity();
}
});
}
private Runnable mStartLiveRunnable = new Runnable() {
@Override
public void run() {
if (CommonAppConfig.LIVE_SDK_CHANGED) {
if (mGetLiveSdkCallback == null) {
mGetLiveSdkCallback = new HttpCallback() {
@Override
public void onSuccess(int code, String msg, final String[] info) {
if (code == 0 && info.length > 0) {
LiveHttpUtil.getisRong(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info1) {
try {
LiveHttpUtil.getIsSw(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] infos) {
JSONObject obj = JSON.parseObject(info[0]);
JSONObject obj1 = JSON.parseObject(info1[0]);
try {
if(code==201){ //声网
LiveSwAnchorActivity.forward(mContext, Constants.LIVE_SDK_SW, JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
}else if(code==200){//融云
LiveRyAnchorActivity.forward(mContext, obj.getIntValue("live_sdk"), JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
}
} catch (Exception e) {
}
}
});
} catch (Exception e) {
}
}
});
}
}
};
}
if (!CommonAppConfig.IS_PLUGIN_MODEL || PluginManager.getInstance().isDownloadApk()) {
PluginManager.getInstance().loadAnchorPlugin(it -> {
LiveHttpUtil.getLiveSdk(mGetLiveSdkCallback);
});
} else {
String tips = "需要下載開播插件,是否下載";
if (!WordUtil.isNewZh()) {
tips = "You need to download the plug-in, whether to download";
}
DialogUitl.showSimpleDialog(mContext, tips, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
Dialog downloadDialog = DialogUitl.loadingDialog(mContext, "Downloading...");
downloadDialog.show();
PluginManager.getInstance().loadAnchorPlugin(it -> {
LiveHttpUtil.getLiveSdk(mGetLiveSdkCallback);
downloadDialog.dismiss();
});
}
});
}
} else {
LiveAnchorActivity.forward(mContext, CommonAppConfig.LIVE_SDK_USED, LiveConfig.getDefaultKsyConfig());
}
}
};
private HttpCallback mGetLiveSdkCallback;
private ProcessResultUtil mProcessResultUtil;
private void testAes() {
String aesStr ="yvNHDY/jYopEYMnjYKzm5p0WfeP/IqahmtN/zY8kH5OyAUcmqc4igt/6eSslvgSKA0fX8/imr+yHfLb2DZNKI7bikEAuagiKvJdRZ9GIvw9mix5Ap0E/BGVe3DrirxKf3XrmJL8mONw4OTn7JmDStB/SMt3tgWP9bvjVwa66BcRcIaRSxbMDm/6dN7QsLtBMjx+XzpRocH2ISTLhEhuxbjz9ovIDwETx4IgPj4LuHcPERDSeNE9TC9UWHqIo+hWoUiGc8MhSh3uO7ptOzno6Dg9Zk4uxnKZdLYeR+M9JLaja6NMloza5IjI15CIcGVT9o4HLeUVodShZjFGsw7JfMcoUBhnQEOHPSh2S8q6Py0Z0ofiTsJWUj2+XwYwyvjxx";
//byte[] msg = AesUtils.decrypt(aesStr.getBytes(), "LhHBfcsN2VmBpHCn".getBytes());

View File

@ -10,7 +10,6 @@ import android.widget.FrameLayout;
import com.yunbao.common.adapter.ViewPagerAdapter;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.AbsMainViewHolder;
import com.yunbao.main.R;

View File

@ -33,7 +33,6 @@ import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.adapter.ViewPagerAdapter;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.event.FollowEvent;
@ -71,6 +70,7 @@ import com.yunbao.main.activity.FollowActivity;
import com.yunbao.main.activity.UserHomeActivity;
import com.yunbao.main.http.MainHttpConsts;
import com.yunbao.main.http.MainHttpUtil;
import com.yunbao.main.utils.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
@ -79,7 +79,6 @@ import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNav
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.WrapPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
import org.greenrobot.eventbus.EventBus;

View File

@ -119,7 +119,7 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="使用手機號登錄"
android:text="@string/login_use_phone"
android:layout_marginLeft="25dp"
android:textColor="@color/black1"
android:textSize="14sp" />
@ -257,7 +257,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="22dp"
android:layout_marginBottom="8dp"
android:layout_marginBottom="40dp"
android:orientation="horizontal">
<TextView
@ -300,6 +300,7 @@
android:id="@+id/lt_customer"
android:layout_marginBottom="20dp"
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="30dp"
android:gravity="center">

View File

@ -3,7 +3,7 @@
android:orientation="vertical"
android:gravity="center"
android:paddingRight="5dp"
android:layout_marginLeft="15dp"
android:layout_marginLeft="10dp"
android:paddingTop="12dp"
android:paddingBottom="10dp"
android:layout_width="wrap_content"
@ -12,7 +12,7 @@
<TextView
android:id="@+id/tv_class_name"
android:layout_width="65dp"
android:layout_height="26dp"
android:layout_height="28dp"
android:text="音乐"
android:textSize="16sp"
android:gravity="center"

View File

@ -16,7 +16,7 @@
android:id="@+id/rt_main_tab"
android:layout_width="match_parent"
android:background="@color/white"
android:layout_height="65dp"
android:layout_height="55dp"
android:layout_alignParentBottom="true">
<ImageView
@ -28,7 +28,7 @@
<RelativeLayout
android:id="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_height="55dp"
android:layout_alignParentBottom="true">
<com.yunbao.common.custom.TabButtonGroup
@ -44,7 +44,7 @@
app:tbn_checked="true"
app:tbn_icon_array_id="@array/main_tab_home"
app:tbn_icon_size="28dp"
app:tbn_tip="遇見"
app:tbn_tip="@string/main_tab_main"
app:tbn_text_color_checked="#FFFF4598"
app:tbn_text_color_unchecked="#FF101420"
app:tbn_text_size="11sp" />
@ -55,7 +55,7 @@
android:layout_weight="1"
app:tbn_icon_array_id="@array/main_tab_video"
app:tbn_icon_size="28dp"
app:tbn_tip="娛樂"
app:tbn_tip="@string/main_tab_yule"
app:tbn_text_color_checked="#FFFF4598"
app:tbn_text_color_unchecked="#FF101420"
app:tbn_text_size="11sp" />
@ -66,7 +66,7 @@
android:layout_weight="1"
app:tbn_icon_array_id="@array/main_tab_list"
app:tbn_icon_size="28dp"
app:tbn_tip="廣場"
app:tbn_tip="@string/main_tab_guangchang"
app:tbn_text_color_checked="#FFFF4598"
app:tbn_text_color_unchecked="#FF101420"
app:tbn_text_size="11sp" />
@ -77,7 +77,7 @@
android:layout_weight="1"
app:tbn_icon_array_id="@array/main_tab_chat"
app:tbn_icon_size="28dp"
app:tbn_tip="我的"
app:tbn_tip="@string/main_me"
app:tbn_text_color_checked="#FFFF4598"
app:tbn_text_color_unchecked="#FF101420"
app:tbn_text_size="11sp" />

View File

@ -1,17 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<ImageView
android:src="@mipmap/entry_bg"
android:layout_width="match_parent"
android:scaleType="centerCrop"
android:layout_height="wrap_content"/>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="70dp"
android:layout_marginTop="10dp"
android:layout_height="75dp"
android:paddingTop="15dp"
android:background="@color/transparent"
android:fadingEdge="none"
app:elevation="0dp"
@ -19,7 +24,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="37dp"
android:layout_height="40dp"
android:layout_marginTop="20dp"
app:layout_scrollFlags="scroll|enterAlways">
@ -41,20 +46,6 @@
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<TextView
android:id="@+id/tvPlay"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
android:gravity="center"
android:paddingTop="1dp"
android:text="@string/main_type_theater"
android:textColor="#B1B1B1"
android:layout_marginBottom="2dp"
android:textSize="17dp"
android:textStyle="bold" />
</LinearLayout>
</HorizontalScrollView>
@ -65,10 +56,22 @@
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true">
<ImageView
android:id="@+id/img_trophy"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginRight="5dp"
android:src="@mipmap/icon_main_bangdan"
android:layout_marginBottom="2dp"
android:contentDescription="TODO"
android:onClick="mainClick"
android:padding="9dp" />
<ImageView
android:id="@+id/btn_search"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="2dp"
android:contentDescription="TODO"
android:onClick="mainClick"
@ -76,15 +79,15 @@
android:src="@mipmap/icon_main_search" />
<ImageView
android:id="@+id/img_trophy"
android:id="@+id/btn_start_live"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginRight="5dp"
android:layout_marginBottom="2dp"
android:layout_marginEnd="10dp"
android:contentDescription="TODO"
android:onClick="mainClick"
android:padding="6dp" />
android:padding="6dp"
android:src="@mipmap/icon_main_start_live_new" />
</LinearLayout>
@ -95,7 +98,8 @@
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_marginTop="80dp"
android:layout_height="match_parent"
android:overScrollMode="never"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</LinearLayout>
</RelativeLayout>

View File

@ -63,7 +63,7 @@
android:layout_alignParentBottom="true"
android:layout_marginLeft="10dp"
android:textColor="@color/colorPrimary"
android:text="PD LIVE"
android:text="POYO"
android:paddingTop="2dp"
android:textSize="20sp"
android:textStyle="bold" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -42,4 +42,8 @@
<string name="activity_feedback_edit_img_select">從相冊選取</string>
<string name="activity_feedback_edit_img_camera">拍照</string>
<string name="activity_battle_pass_all_get">一鍵領取</string>
<string name="login_use_phone">使用手機號登錄</string>
<string name="main_tab_main">遇見</string>
<string name="main_tab_yule">娛樂</string>
<string name="main_tab_guangchang">廣場</string>
</resources>

View File

@ -42,4 +42,8 @@
<string name="activity_feedback_edit_img_select">Select from album</string>
<string name="activity_feedback_edit_img_camera">Photo shoot</string>
<string name="activity_battle_pass_all_get">Receive all</string>
<string name="login_use_phone">Sign in with Phone Number</string>
<string name="main_tab_main">Meet</string>
<string name="main_tab_yule">Game</string>
<string name="main_tab_guangchang">Moment</string>
</resources>