Compare commits

..

134 Commits

Author SHA1 Message Date
18401019693
82fd35305a 埋点配置 2023-09-05 13:24:21 +08:00
18401019693
93aa8e55e5 埋点配置 2023-09-02 10:10:50 +08:00
18401019693
dd6600a89e 埋点配置 2023-08-31 09:56:41 +08:00
18401019693
233469c7e4 埋点配置 2023-08-30 13:44:56 +08:00
18401019693
72e9633045 埋点配置 2023-08-30 13:21:40 +08:00
18401019693
7a31ca52da 埋点配置 2023-08-30 09:44:26 +08:00
18401019693
33930f3e32 埋点配置 2023-08-29 13:35:38 +08:00
18401019693
1a58311e26 埋点配置 2023-08-28 16:52:19 +08:00
18401019693
bebf0820ca 埋点配置 2023-08-25 15:12:48 +08:00
18401019693
6bcaf2ba9c 埋点配置 2023-08-23 15:05:32 +08:00
18401019693
3de972d12c 6.5.4礼物冠名 2023-08-22 14:03:04 +08:00
18401019693
95252f2f02 6.5.4礼物冠名 2023-08-22 13:31:32 +08:00
18401019693
3b351ffad8 6.5.4礼物冠名 2023-08-22 10:13:57 +08:00
2332255b37 礼物栏等级页面补充中英文标识 2023-08-21 17:38:41 +08:00
18401019693
90c2f3e2da 6.5.4礼物冠名 2023-08-21 17:20:29 +08:00
18401019693
644615ffc0 6.5.4礼物冠名 2023-08-21 15:28:29 +08:00
18401019693
345c9067aa 6.5.4礼物冠名 2023-08-19 16:05:30 +08:00
18401019693
c20312b982 6.5.4礼物冠名 2023-08-18 18:43:47 +08:00
18401019693
643568f63b 6.5.4礼物冠名 2023-08-18 18:08:15 +08:00
18401019693
f03ba293b5 6.5.4礼物冠名 2023-08-18 17:43:13 +08:00
a2f954b28a Merge remote-tracking branch 'origin/master' 2023-08-18 14:48:41 +08:00
d4549793d1 调整头像相关 2023-08-18 14:48:33 +08:00
18401019693
5da8855948 6.5.4礼物冠名 2023-08-18 14:17:46 +08:00
18401019693
348dca8474 6.5.4礼物冠名 2023-08-18 13:49:20 +08:00
18401019693
5afed0ee43 6.5.4礼物冠名 2023-08-18 11:04:21 +08:00
18401019693
d065726274 6.5.4礼物冠名 2023-08-17 18:20:53 +08:00
18401019693
8f9d558043 6.5.4礼物冠名 2023-08-17 18:15:25 +08:00
c594364574 调整关注逻辑 2023-08-17 17:17:06 +08:00
18401019693
68140c8a3a 6.5.4礼物冠名 2023-08-17 15:38:59 +08:00
5a4001c858 调整退出粉丝团逻辑 2023-08-17 13:45:40 +08:00
18401019693
d5953bd651 6.5.4礼物冠名 2023-08-17 13:19:04 +08:00
18401019693
17a2f5e091 6.5.4礼物冠名 2023-08-16 20:01:46 +08:00
18401019693
b2297b062e 6.5.4礼物冠名 2023-08-16 18:17:26 +08:00
b53472de28 調整文案 2023-08-16 17:32:29 +08:00
18401019693
9bce235817 6.5.4礼物冠名 2023-08-16 16:23:28 +08:00
18401019693
60ce5572cf 6.5.4礼物冠名 2023-08-16 15:37:07 +08:00
18401019693
3761cad653 6.5.4礼物冠名 2023-08-16 14:50:50 +08:00
18401019693
2a276503b5 6.5.4礼物冠名 2023-08-16 13:31:56 +08:00
fd0ad36a58 补充英文 2023-08-15 14:07:33 +08:00
41c8783b53 调整一处英文UI下字数过长问题 2023-08-15 14:00:36 +08:00
18401019693
7226add482 6.5.4礼物冠名 2023-08-15 11:29:39 +08:00
09e5f9b984 Merge remote-tracking branch 'origin/master' 2023-08-15 10:37:25 +08:00
83ee1f94df 修复一处闪退bug 2023-08-15 10:37:06 +08:00
18401019693
7e1b054a98 6.5.4礼物冠名 2023-08-14 21:05:15 +08:00
18401019693
9e0c437af5 6.5.4礼物冠名 2023-08-14 19:55:58 +08:00
18401019693
ad26ae7db8 6.5.4礼物冠名 2023-08-14 19:16:02 +08:00
18401019693
84230e517e 6.5.4礼物冠名 2023-08-14 18:40:25 +08:00
9818a1af74 新增关注的code提示 2023-08-14 18:05:55 +08:00
f91ba79c5c 新增关注的code提示 2023-08-14 17:54:27 +08:00
18401019693
0ea9ffc2e8 6.5.4礼物冠名 2023-08-14 17:40:52 +08:00
18401019693
defb5fdd02 6.5.4礼物冠名 2023-08-14 15:50:35 +08:00
b443fdd683 调整页面英文UI 2023-08-14 14:58:13 +08:00
18401019693
c11c66f56f 6.5.4礼物冠名 2023-08-14 13:47:09 +08:00
18401019693
a618bee6b7 6.5.4礼物冠名 2023-08-14 11:18:33 +08:00
399bedb874 调整购买守护页面英文UI 2023-08-14 10:57:38 +08:00
18401019693
3b6e2d47f4 6.5.4礼物冠名 2023-08-14 10:31:01 +08:00
18401019693
96daf73a5c 6.5.4礼物冠名 2023-08-14 10:16:06 +08:00
18401019693
55cbd0ff5b 6.5.4礼物冠名 2023-08-11 14:37:35 +08:00
18401019693
a3ab9ff03e 6.5.4礼物冠名 2023-08-11 14:19:15 +08:00
18401019693
92ed82ea2a 6.5.4礼物冠名 2023-08-11 13:59:54 +08:00
18401019693
6d262d0c94 6.5.4礼物冠名 2023-08-11 09:42:18 +08:00
18401019693
ce1174a88c 6.5.4礼物冠名 2023-08-10 17:40:57 +08:00
18401019693
2406e9bede 6.5.4礼物冠名 2023-08-10 17:38:06 +08:00
9b3a011499 修复英文say hi下格式问题#131 2023-08-10 17:25:53 +08:00
18401019693
7859e7cb29 6.5.4礼物冠名 2023-08-10 17:16:14 +08:00
18401019693
1fd36e3ba0 6.5.4礼物冠名 2023-08-10 17:04:26 +08:00
ec3722b7d0 新增粉丝团任务红点提示 2023-08-10 16:53:00 +08:00
18401019693
35917a5848 6.5.4礼物冠名 2023-08-10 15:40:13 +08:00
18401019693
7ea6bb570d 6.5.4礼物冠名 2023-08-10 14:20:40 +08:00
18401019693
43f95260e6 6.5.4礼物冠名 2023-08-10 13:51:49 +08:00
18142669586
54a4c0b590 Merge remote-tracking branch 'origin/master' 2023-08-10 11:15:31 +08:00
18142669586
2057a3575f 修改融云结束连麦还有对方画面的问题 2023-08-10 11:15:06 +08:00
18401019693
aa809ebaf4 6.5.4礼物冠名 2023-08-10 10:03:01 +08:00
18401019693
dffa71e346 6.5.4礼物冠名 2023-08-09 18:11:42 +08:00
18401019693
fea46aab1f 6.5.4礼物冠名 2023-08-09 17:05:51 +08:00
18401019693
e032e0807b 6.5.4礼物冠名 2023-08-09 14:38:33 +08:00
18401019693
24ed313f60 6.5.4礼物冠名 2023-08-09 14:15:03 +08:00
18142669586
02b70d559d Merge remote-tracking branch 'origin/master' 2023-08-09 14:14:11 +08:00
18142669586
7a26e81f67 修改融云合流不成功的问题,退出画面有问题 2023-08-09 14:13:52 +08:00
d07439efcf update 主播端点礼物墙按钮置灰 2023-08-09 13:53:16 +08:00
18401019693
7bca817633 6.5.4礼物冠名 2023-08-09 13:31:31 +08:00
18401019693
bad2b3689a 6.5.4礼物冠名 2023-08-09 11:01:28 +08:00
3cc9b90151 update 简繁 2023-08-09 10:24:13 +08:00
18401019693
e32e6f95b0 6.5.4礼物冠名 2023-08-08 17:09:35 +08:00
18401019693
2162645da1 6.5.4礼物冠名 2023-08-08 16:12:07 +08:00
18401019693
af17c85366 6.5.4礼物冠名 2023-08-08 16:08:43 +08:00
18401019693
20c00e2896 6.5.4礼物冠名 2023-08-08 15:37:11 +08:00
18401019693
44b95cb1c6 6.5.4礼物冠名 2023-08-08 14:50:13 +08:00
40e744a533 修复粉丝团包裹为空时会关掉对话框的情况 2023-08-08 13:32:42 +08:00
18401019693
82ccd2d89c 6.5.4礼物冠名 2023-08-08 11:37:19 +08:00
18401019693
994bd2a3aa 6.5.4礼物冠名 2023-08-08 09:34:15 +08:00
3ab91a74d1 修复礼物栏自定义数量过长导致的闪退问题 2023-08-07 18:26:45 +08:00
18142669586
d899975495 修改融云合流不成功的问题 2023-08-07 18:06:46 +08:00
dbbe753492 调整【围观】为繁体 2023-08-07 17:05:33 +08:00
18401019693
017320ac09 6.5.4礼物冠名 2023-08-07 16:29:02 +08:00
7ce0bb3a7c 修复#93测试问题 2023-08-07 15:18:34 +08:00
18401019693
a78d5b4aba 6.5.4礼物冠名 2023-08-07 14:50:29 +08:00
37fd1e9f47 调整粉丝团入场英文翻译 2023-08-07 14:39:35 +08:00
18401019693
97ad28ba62 6.5.4礼物冠名 2023-08-07 13:36:59 +08:00
3304e8f673 update 粉丝团 2023-08-05 18:04:36 +08:00
e7daabe588 Merge branch 'dev_6.5.4' 2023-08-05 16:53:13 +08:00
d912ad6119 update 粉丝团 2023-08-05 16:52:48 +08:00
18401019693
dfeb1c246b 6.5.4礼物冠名 2023-08-05 15:22:49 +08:00
18401019693
9588619b73 6.5.4礼物冠名 2023-08-04 16:54:28 +08:00
18401019693
6ba71508ca 6.5.4礼物冠名 2023-08-04 16:28:43 +08:00
c8f443c105 Merge branch 'master' into dev_6.5.4_tmp 2023-08-04 16:15:25 +08:00
18401019693
ebcfddf450 6.5.4礼物冠名 2023-08-04 16:14:36 +08:00
e43fb5e479 Merge branch 'master' into dev_6.5.4_tmp 2023-08-04 16:13:14 +08:00
18401019693
0c096dcafc 6.5.4礼物冠名 2023-08-04 15:59:20 +08:00
18401019693
545c69ff8b 6.5.4礼物冠名 2023-08-04 15:50:32 +08:00
bf8d88608d Merge branch 'master' into dev_6.5.4_tmp
# Conflicts:
#	common/src/main/java/com/yunbao/common/http/PDLiveApi.java
#	common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java
#	common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java
#	common/src/main/res/values-en-rUS/string.xml
#	common/src/main/res/values-zh-rHK/strings.xml
#	common/src/main/res/values-zh-rTW/strings.xml
#	common/src/main/res/values-zh/strings.xml
#	common/src/main/res/values/strings.xml
#	live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
2023-08-04 15:41:11 +08:00
18401019693
45c256cbbb 6.5.4礼物冠名 2023-08-04 15:18:06 +08:00
18401019693
fb1d6c0688 6.5.4礼物冠名 2023-08-04 14:58:26 +08:00
fe921e25bb update 粉丝团 2023-08-04 14:25:49 +08:00
18401019693
d5ca010ec7 6.5.4礼物冠名 2023-08-04 13:57:36 +08:00
18401019693
04259472a1 Merge remote-tracking branch 'origin/dev_gift_6.5.4' 2023-08-04 10:19:18 +08:00
fae0d01dc2 update 粉丝团 2023-08-02 15:48:51 +08:00
9a8bc0505d 修复#248问题 2023-08-02 15:08:11 +08:00
e31fa0310c 修复#250问题 2023-08-02 14:43:20 +08:00
2705342e18 修复#249问题 2023-08-02 14:39:56 +08:00
1bdf3a2ba3 修复#246问题 2023-08-02 14:20:47 +08:00
c53b9a6064 update 粉丝团相关 2023-07-31 16:28:42 +08:00
92d4130c45 update 粉丝团相关 2023-07-28 10:01:41 +08:00
7e3ca79a01 调整随机PK弹框UI 2023-07-21 14:19:20 +08:00
dfeb3a78c1 修复英文模式下,购买是守护文案超长问题 2023-07-21 13:34:31 +08:00
e32d450ca1 修复随机PK文案在英文模式下过长问题 2023-07-21 09:45:11 +08:00
f29766731c 修复#232问题 2023-07-20 18:12:09 +08:00
736592b4e1 新增头像选择界面 2023-07-19 18:30:32 +08:00
3108c898c2 Merge branch 'dev_6.5.4_头像优化' into dev_6.5.4_联系方式 2023-07-19 15:35:48 +08:00
dd2f3db16a 新增头像选择界面 2023-07-19 15:35:30 +08:00
8af231e526 新增头像选择界面 2023-07-19 13:07:27 +08:00
fdbbc3b224 修復紅點檢測 2023-07-19 10:25:11 +08:00
1e4b0bb536 补充信箱角标点亮和防抖 2023-07-18 18:09:27 +08:00
4729f93515 新增获取联系方式的弹框新样式 2023-07-18 15:40:15 +08:00
296 changed files with 6547 additions and 1401 deletions

View File

@@ -235,4 +235,18 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
}
-keep class com.faceunity.wrapper.faceunity$LoadConfig*{
private static boolean sLoadedLibrary;
}
-keep class com.umeng.** {*;}
-keep class org.repackage.** {*;}
-keep class com.uyumao.** { *; }
-keepclassmembers class * {
public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

View File

@@ -6,7 +6,8 @@
<uses-permission
android:name="android.permission.CALL_PHONE"
tools:node="remove" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
<uses-permission
android:name="android.permission.CHANGE_CONFIGURATION"
tools:ignore="ProtectedPermissions" />
<uses-permission
android:name="android.permission.READ_LOGS"
@@ -81,12 +82,12 @@
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- Android11新增 -->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<queries>
<package android:name="com.twitter.android"/>
<package android:name="jp.naver.line.android"/>
<package android:name="com.twitter.android" />
<package android:name="jp.naver.line.android" />
</queries>
<application
@@ -95,30 +96,30 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:preserveLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="theme,label,icon,allowBackup">
<!-- <service-->
<!-- android:name="com.shayu.phonelive.utils.MyNotificationService">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.google.firebase.MESSAGING_EVENT" />-->
<!-- </intent-filter>-->
<!-- </service>-->
<!-- <service-->
<!-- android:name="com.shayu.phonelive.utils.MyNotificationService">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.google.firebase.MESSAGING_EVENT" />-->
<!-- </intent-filter>-->
<!-- </service>-->
<service
android:name="io.rong.push.platform.google.RongFirebaseMessagingService"
android:stopWithTask="false"
android:exported="false">
android:exported="false"
android:stopWithTask="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<activity
android:name="com.shayu.phonelive.activity.LauncherActivity"
android:exported="true"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"
android:exported="true">
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@@ -130,7 +131,8 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="smvslm" />
<data android:scheme="um.64e40ee55488fe7b3afa2c96" />
</intent-filter>
</activity>
@@ -162,13 +164,16 @@
<meta-data
android:name="com.facebook.sdk.ClientToken"
android:value="@string/facebook_client_token" />
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled" android:value="false"/>
<meta-data
android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
android:value="false" />
<meta-data
android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data
android:name="firebase_analytics_collection_enabled"
android:value="false" />
<receiver
android:name="com.shayu.phonelive.utils.CustomMessageReceiver"
android:exported="true">
@@ -186,12 +191,12 @@
<action android:name="com.huawei.push.action.MESSAGING_EVENT" />
</intent-filter>
</service>
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.appid"-->
<!-- android:value="106936673"/>-->
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.cpid"-->
<!-- android:value="30086000612391734"/>-->
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.appid"-->
<!-- android:value="106936673"/>-->
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.cpid"-->
<!-- android:value="30086000612391734"/>-->
</application>
</manifest>

View File

@@ -19,6 +19,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.Utils;
import com.facebook.appevents.AppEventsLogger;
import com.fm.openinstall.OpenInstall;
@@ -30,10 +32,13 @@ import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
import com.tencent.imsdk.v2.V2TIMUserInfo;
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.AnchorStartLiveBean;
import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
@@ -44,6 +49,7 @@ import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.socket.SocketReceiveBean;
import com.yunbao.live.socket.SocketRyClient;
import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.live.views.PortraitLiveManager;
@@ -131,12 +137,6 @@ public class AppContext extends CommonAppContext {
if (!isMainProcess()) {
return;
}
AppManager.runDebugCode(new Runnable() {
@Override
public void run() {
ToastUtil.show("Debug代码");
}
});
CrashSaveBean.getInstance().setStartTime(System.currentTimeMillis());
//注册全局异常捕获
registerError();
@@ -165,8 +165,23 @@ public class AppContext extends CommonAppContext {
if (isMainProcess()) {
OpenInstall.init(this);
}
//设置LOG开关默认为false
UMConfigure.setLogEnabled(true);
//友盟正式初始化
UMConfigure.init(getApplicationContext(), "64e40ee55488fe7b3afa2c96", "PDLive", UMConfigure.DEVICE_TYPE_PHONE,
"64e40ee55488fe7b3afa2c96");
//集成umeng-crash-vx.x.x.aar则需要关闭原有统计SDK异常捕获功能
MobclickAgent.setCatchUncaughtExceptions(false);
//PushSDK初始化(如使用推送SDK必须调用此方法)
//统计SDK是否支持采集在子进程中打点的自定义事件默认不支持
UMConfigure.setProcessEvent(true);//支持多进程打点
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
//初始化 AndroidUtilCode
Utils.init(this);
@@ -201,11 +216,16 @@ public class AppContext extends CommonAppContext {
&& (TextUtils.equals("__system__", message.getTargetId())
|| ("g" + PortraitLiveManager.liveID).contains(message.getTargetId()))) {
SocketRyClient.mSocketHandler.sendMessage(msg);
} else if (content.getContent().contains("LivePK_anchorStartLiveNotify")) {//开播通知
SocketReceiveBean received = JSON.parseObject(content.getContent(), SocketReceiveBean.class);
JSONObject map = received.getMsg().getJSONObject(0);
sendStartAnchorLive(map);
}
//主播页面
if (TextUtils.isEmpty(PortraitLiveManager.liveID) && SocketRyClient.mSocketHandler != null) {
SocketRyClient.mSocketHandler.sendMessage(msg);
}
} else if (message.getConversationType() == Conversation.ConversationType.PRIVATE) {//私聊信息
EventBus.getDefault().post(message);
}
@@ -215,6 +235,14 @@ public class AppContext extends CommonAppContext {
}
return false;
}
private void sendStartAnchorLive(JSONObject map) {
AnchorStartLiveBean bean = new AnchorStartLiveBean();
bean.setAnchorName(map.getString("anchorName"));
bean.setRoomId(map.getString("roomid"));
bean.setAvatar(map.getString("avatar"));
EventBus.getDefault().post(bean);
}
});
@@ -322,7 +350,7 @@ public class AppContext extends CommonAppContext {
}
private void setFirebaseCrashData() {
public static void setFirebaseCrashData() {
if (!CommonAppConfig.IS_UPLOAD_ERROR_LOG) {
return;
}

View File

@@ -8,11 +8,13 @@ import android.os.Looper;
import android.util.Log;
import android.widget.Toast;
import com.google.firebase.crashlytics.FirebaseCrashlytics;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.FileUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import java.io.File;
import java.io.PrintWriter;
@@ -105,7 +107,8 @@ public class NeverCrashUtils {
Log.e(TAG, "未捕获的主线程异常行为", e);
}
e.printStackTrace();
AppContext.setFirebaseCrashData();
FirebaseCrashlytics.getInstance().recordException(e);
AppManager.runDebugCode(() -> Toast.makeText(application, "发生闪退:" + e.getMessage(), Toast.LENGTH_SHORT).show());
FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()), throwableToString(e), "error.log");
getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e);

View File

@@ -11,6 +11,7 @@ buildscript {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.fabric.io/public' }
maven { url 'http://maven.faceunity.com/repository/maven-public/' }//美颜库
maven { url 'https://repo1.maven.org/maven2/' }//埋点
google()
mavenCentral()
}
@@ -41,6 +42,7 @@ allprojects {
maven { url 'https://maven.fabric.io/public' }
maven { url 'http://maven.faceunity.com/repository/maven-public/' }//美颜库
maven { url "https://jitpack.io" }
maven { url 'https://repo1.maven.org/maven2/' }//埋点
google() // Google's Maven repository
}
}

View File

@@ -196,4 +196,8 @@ dependencies {
api 'com.github.gzu-liyujiang.AndroidPicker:WheelView:4.1.11'
//自定义圆角图片
api 'com.makeramen:roundedimageview:2.3.0'
// 友盟统计SDK
api 'com.umeng.umsdk:common:9.6.3'// 必选
api 'com.umeng.umsdk:asms:1.8.0'// 必选
api 'com.umeng.umsdk:uyumao:1.1.2' //高级运营分析功能依赖库使用卸载分析、开启反作弊能力请务必集成以免影响高级功能使用。common需搭配v9.6.3及以上版本asms需搭配v1.7.0及以上版本。需更新隐私声明。
}

View File

@@ -24,6 +24,7 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.R;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.LifeCycleListener;
@@ -178,11 +179,15 @@ public abstract class AbsActivity extends AppCompatActivity {
}
//友盟统计
// MobclickAgent.onResume(this);
MobclickAgent.onPageStart(this.mTag);
Log.e("MobclickAgent","MobclickAgent:_onResume_"+this.mTag);
}
@Override
protected void onPause() {
super.onPause();
MobclickAgent.onPageEnd(this.mTag);
Log.e("MobclickAgent","MobclickAgent:_onPause_"+this.mTag);
if (mLifeCycleListeners != null) {
for (LifeCycleListener listener : mLifeCycleListeners) {
listener.onPause();
@@ -376,4 +381,5 @@ public abstract class AbsActivity extends AppCompatActivity {
break;
}
}
}

View File

@@ -23,12 +23,17 @@ import android.widget.ProgressBar;
import androidx.annotation.RequiresApi;
import com.alibaba.fastjson.JSON;
import com.lxj.xpopup.XPopup;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
@@ -39,10 +44,13 @@ import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.HintCustomPopup;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -162,7 +170,7 @@ public class WebViewActivity extends AbsActivity {
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
String appCachePath = mContext.getCacheDir().getAbsolutePath();
mWebView.getSettings().setAppCachePath(appCachePath);
// mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setUseWideViewPort(true); // 关键点
mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
@@ -241,7 +249,10 @@ public class WebViewActivity extends AbsActivity {
mValueCallback2 = null;
}
public static void forward(Context context, String url, boolean addArgs) {
private static boolean mIsLive = false;
public static void forward(Context context, String url, boolean addArgs, boolean isLive) {
mIsLive = isLive;
if (Constants.LoginKefu) {
if (addArgs) {
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
@@ -252,8 +263,9 @@ public class WebViewActivity extends AbsActivity {
context.startActivity(intent);
}
public static void forward(Context context, String url) {
forward(context, url, true); }
public static void forward(Context context, String url,boolean isLive) {
forward(context, url, true, isLive);
}
@Override
@@ -319,6 +331,7 @@ public class WebViewActivity extends AbsActivity {
if (Constants.isShowPage != -1) {
finish();
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -374,6 +387,59 @@ public class WebViewActivity extends AbsActivity {
}
}))
.show();
} else if (TextUtils.equals(event.getMethod(), "androidMethodLookToLive")) {
//看直播
gotoLive(event.getLiveId());
}
}
private void gotoLive(final String live_id) {
LiveHttpUtil.getLiveInfo(live_id, new com.yunbao.common.http.HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
if (liveBean == null) {
return;
}
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
if (mIsLive) {
finish();
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
} else {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
}
finish();
}
@Override
public void onCheckError(String contextError) {
}
});
} else {
RouteUtil.forwardUserHome(mContext, live_id, 0);
}
}
});
}
@Override
protected void onPause() {
super.onPause();
}
}

View File

@@ -16,6 +16,11 @@ import java.util.List;
public class GiftAlreadyWallAdapter extends RecyclerView.Adapter {
private List<GiftWallModel> giftWall = new ArrayList<>();
private boolean sbWy;//是否正在直播
public GiftAlreadyWallAdapter(boolean sbWy) {
this.sbWy = sbWy;
}
@NonNull
@Override
@@ -27,7 +32,7 @@ public class GiftAlreadyWallAdapter extends RecyclerView.Adapter {
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
GiftAlreadyWallViewHolder withoutWallViewHolder = (GiftAlreadyWallViewHolder) holder;
withoutWallViewHolder.showData(giftWall.get(position));
withoutWallViewHolder.showData(giftWall.get(position), sbWy);
}
@Override

View File

@@ -1,5 +1,6 @@
package com.yunbao.common.adapter;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -11,6 +12,7 @@ import com.yunbao.common.R;
import com.yunbao.common.bean.WishModel;
import com.yunbao.common.event.LiveNewWishListCloseEvent;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.DayWishItemViewHolder;
import com.yunbao.common.views.LunarWishItemViewHolder;
import com.yunbao.common.views.SeasonalWishItemViewHolder;
@@ -46,8 +48,20 @@ public class LiveNewWishAdapter extends RecyclerView.Adapter {
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true));
break;
}
boolean isAdd = false;
for (int i = 0; i < wishList.size(); i++) {
if (wishList.get(i)!=null){
if (!TextUtils.isEmpty(wishList.get(i).getLid()) && !TextUtils.isEmpty(model.getLid())
&& TextUtils.equals(wishList.get(i).getLid(), model.getLid())) {
ToastUtil.show(R.string.too_many_gifts);
isAdd = true;
}
}
wishList.add(0, model);
}
if (!isAdd) {
wishList.add(0, model);
}
notifyDataSetChanged();
}

View File

@@ -0,0 +1,31 @@
package com.yunbao.common.bean;
public class AnchorStartLiveBean extends BaseModel{
private String anchorName;
private String avatar;
private String roomId;
public String getAnchorName() {
return anchorName;
}
public void setAnchorName(String anchorName) {
this.anchorName = anchorName;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getRoomId() {
return roomId;
}
public void setRoomId(String roomId) {
this.roomId = roomId;
}
}

View File

@@ -0,0 +1,19 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class FansCheckRed extends BaseModel{
@SerializedName("fans_level_upgrade_status")
private int status;
public FansCheckRed() {
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}

View File

@@ -0,0 +1,81 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class FansGroupGiftPack extends BaseModel{
@SerializedName("id")
private int id;
@SerializedName("quantity")
private int quantity;
@SerializedName("end_time")
private String endTime;
@SerializedName("giftname")
private String giftName;
@SerializedName("needcoin")
private String needCoin;
@SerializedName("gifticon")
private String icon;
public FansGroupGiftPack() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getGiftName() {
return giftName;
}
public void setGiftName(String giftName) {
this.giftName = giftName;
}
public String getNeedCoin() {
return needCoin;
}
public void setNeedCoin(String needCoin) {
this.needCoin = needCoin;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
@Override
public String toString() {
return "FansGroupGiftPack{" +
"id=" + id +
", quantity=" + quantity +
", endTime='" + endTime + '\'' +
", giftName='" + giftName + '\'' +
", needCoin='" + needCoin + '\'' +
", icon='" + icon + '\'' +
'}';
}
}

View File

@@ -0,0 +1,161 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class FansGroupGiftPackInfo extends BaseModel {
@SerializedName("id")
private int id;
@SerializedName("pack_name")
private String packName;
@SerializedName("description")
private String description;
@SerializedName("coin")
private String coin;
@SerializedName("data")
private List<Gift> data;
public FansGroupGiftPackInfo() {
}
public String getPackName() {
return packName;
}
public void setPackName(String packName) {
this.packName = packName;
}
public int getId() {
return id;
}
public String getCoin() {
return coin;
}
public void setCoin(String coin) {
this.coin = coin;
}
public void setId(int id) {
this.id = id;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public List<Gift> getData() {
return data;
}
public void setData(List<Gift> data) {
this.data = data;
}
@Override
public String toString() {
return "FansGroupGiftPackInfo{" +
"id=" + id +
", packName='" + packName + '\'' +
", description='" + description + '\'' +
", coin='" + coin + '\'' +
", data=" + data +
'}';
}
public static class Gift {
@SerializedName("id")
private int id;
@SerializedName("name")
private String giftName;
@SerializedName("needcoin")
private String needCoin;
@SerializedName("src")
private String giftIcon;
@SerializedName("quantity")
private String quantity;
@SerializedName("restrict")
private int restrict;
@SerializedName("type")
private int type;
public Gift() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGiftName() {
return giftName;
}
public void setGiftName(String giftName) {
this.giftName = giftName;
}
public String getNeedCoin() {
return needCoin;
}
public void setNeedCoin(String needCoin) {
this.needCoin = needCoin;
}
public String getGiftIcon() {
return giftIcon;
}
public void setGiftIcon(String giftIcon) {
this.giftIcon = giftIcon;
}
public String getQuantity() {
return quantity;
}
public void setQuantity(String quantity) {
this.quantity = quantity;
}
public int getRestrict() {
return restrict;
}
public void setRestrict(int restrict) {
this.restrict = restrict;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
@Override
public String toString() {
return "Gift{" +
"id=" + id +
", giftName='" + giftName + '\'' +
", needCoin='" + needCoin + '\'' +
", giftIcon='" + giftIcon + '\'' +
", quantity='" + quantity + '\'' +
", restrict='" + restrict + '\'' +
", type=" + type +
'}';
}
}
}

View File

@@ -0,0 +1,57 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class FansModel extends BaseModel {
@SerializedName("levelid")
private int levelid;
@SerializedName("thumb")
private String thumb;
@SerializedName("colour")
private String colour;
@SerializedName("thumb_mark")
private String thumbMark;
@SerializedName("bg")
private String bg;
public int getLevelid() {
return levelid;
}
public void setLevelid(int levelid) {
this.levelid = levelid;
}
public String getThumb() {
return thumb;
}
public void setThumb(String thumb) {
this.thumb = thumb;
}
public String getColour() {
return colour;
}
public void setColour(String colour) {
this.colour = colour;
}
public String getThumbMark() {
return thumbMark;
}
public void setThumbMark(String thumbMark) {
this.thumbMark = thumbMark;
}
public String getBg() {
return bg;
}
public void setBg(String bg) {
this.bg = bg;
}
}

View File

@@ -0,0 +1,359 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GiftNamingInfoModel extends BaseModel {
@SerializedName("id")
private String id;
@SerializedName("sendtype")
private String sendtype;
@SerializedName("type")
private String type;
@SerializedName("name")
private String name;
@SerializedName("release_status")
private String releaseStatus;
@SerializedName("type_sort")
private String typeSort;
@SerializedName("operate_image")
private String operateImage;
@SerializedName("operate_url")
private String operateUrl;
@SerializedName("mark")
private String mark;
@SerializedName("giftname")
private String giftname;
@SerializedName("needcoin")
private String needcoin;
@SerializedName("gifticon")
private String gifticon;
@SerializedName("gift_description")
private String giftDescription;
@SerializedName("corner_mark")
private String cornerMark;
@SerializedName("swf")
private String swf;
@SerializedName("gift_uid")
private String giftUid;
@SerializedName("type_start_time")
private String typeStartTime;
@SerializedName("type_end_time")
private String typeEndTime;
@SerializedName("gift_start_time")
private String giftStartTime;
@SerializedName("gift_end_time")
private String giftEndTime;
@SerializedName("naming_liveuid")
private String namingLiveuid;
@SerializedName("naming_uid")
private String namingUid;
@SerializedName("naming_live_name")
private String namingLiveName;
@SerializedName("naming_user_name")
private String namingUserName;
@SerializedName("naming_live_avatar")
private String namingLiveAvatar;
@SerializedName("naming_user_avatar")
private String namingUserAvatar;
@SerializedName("naming_status")
private String namingStatus;
@SerializedName("naming_coin")
private String namingCoin;
@SerializedName("fans_level")
private String fansLevel;
@SerializedName("naming_user_coin")
private String namingUserCoin;
@SerializedName("naming_live_coin")
private String namingLiveCoin;
@SerializedName("isweek")
private String isweek;
public String getId() {
return id;
}
public GiftNamingInfoModel setId(String id) {
this.id = id;
return this;
}
public String getSendtype() {
return sendtype;
}
public GiftNamingInfoModel setSendtype(String sendtype) {
this.sendtype = sendtype;
return this;
}
public String getType() {
return type;
}
public GiftNamingInfoModel setType(String type) {
this.type = type;
return this;
}
public String getName() {
return name;
}
public GiftNamingInfoModel setName(String name) {
this.name = name;
return this;
}
public String getReleaseStatus() {
return releaseStatus;
}
public GiftNamingInfoModel setReleaseStatus(String releaseStatus) {
this.releaseStatus = releaseStatus;
return this;
}
public String getTypeSort() {
return typeSort;
}
public GiftNamingInfoModel setTypeSort(String typeSort) {
this.typeSort = typeSort;
return this;
}
public String getOperateImage() {
return operateImage;
}
public GiftNamingInfoModel setOperateImage(String operateImage) {
this.operateImage = operateImage;
return this;
}
public String getOperateUrl() {
return operateUrl;
}
public GiftNamingInfoModel setOperateUrl(String operateUrl) {
this.operateUrl = operateUrl;
return this;
}
public String getMark() {
return mark;
}
public GiftNamingInfoModel setMark(String mark) {
this.mark = mark;
return this;
}
public String getGiftname() {
return giftname;
}
public GiftNamingInfoModel setGiftname(String giftname) {
this.giftname = giftname;
return this;
}
public String getNeedcoin() {
return needcoin;
}
public GiftNamingInfoModel setNeedcoin(String needcoin) {
this.needcoin = needcoin;
return this;
}
public String getGifticon() {
return gifticon;
}
public GiftNamingInfoModel setGifticon(String gifticon) {
this.gifticon = gifticon;
return this;
}
public String getGiftDescription() {
return giftDescription;
}
public GiftNamingInfoModel setGiftDescription(String giftDescription) {
this.giftDescription = giftDescription;
return this;
}
public String getCornerMark() {
return cornerMark;
}
public GiftNamingInfoModel setCornerMark(String cornerMark) {
this.cornerMark = cornerMark;
return this;
}
public String getSwf() {
return swf;
}
public GiftNamingInfoModel setSwf(String swf) {
this.swf = swf;
return this;
}
public String getGiftUid() {
return giftUid;
}
public GiftNamingInfoModel setGiftUid(String giftUid) {
this.giftUid = giftUid;
return this;
}
public String getTypeStartTime() {
return typeStartTime;
}
public GiftNamingInfoModel setTypeStartTime(String typeStartTime) {
this.typeStartTime = typeStartTime;
return this;
}
public String getTypeEndTime() {
return typeEndTime;
}
public GiftNamingInfoModel setTypeEndTime(String typeEndTime) {
this.typeEndTime = typeEndTime;
return this;
}
public String getGiftStartTime() {
return giftStartTime;
}
public GiftNamingInfoModel setGiftStartTime(String giftStartTime) {
this.giftStartTime = giftStartTime;
return this;
}
public String getGiftEndTime() {
return giftEndTime;
}
public GiftNamingInfoModel setGiftEndTime(String giftEndTime) {
this.giftEndTime = giftEndTime;
return this;
}
public String getNamingLiveuid() {
return namingLiveuid;
}
public GiftNamingInfoModel setNamingLiveuid(String namingLiveuid) {
this.namingLiveuid = namingLiveuid;
return this;
}
public String getNamingUid() {
return namingUid;
}
public GiftNamingInfoModel setNamingUid(String namingUid) {
this.namingUid = namingUid;
return this;
}
public String getNamingLiveName() {
return namingLiveName;
}
public GiftNamingInfoModel setNamingLiveName(String namingLiveName) {
this.namingLiveName = namingLiveName;
return this;
}
public String getNamingUserName() {
return namingUserName;
}
public GiftNamingInfoModel setNamingUserName(String namingUserName) {
this.namingUserName = namingUserName;
return this;
}
public String getNamingLiveAvatar() {
return namingLiveAvatar;
}
public GiftNamingInfoModel setNamingLiveAvatar(String namingLiveAvatar) {
this.namingLiveAvatar = namingLiveAvatar;
return this;
}
public String getNamingUserAvatar() {
return namingUserAvatar;
}
public GiftNamingInfoModel setNamingUserAvatar(String namingUserAvatar) {
this.namingUserAvatar = namingUserAvatar;
return this;
}
public String getNamingStatus() {
return namingStatus;
}
public GiftNamingInfoModel setNamingStatus(String namingStatus) {
this.namingStatus = namingStatus;
return this;
}
public String getNamingCoin() {
return namingCoin;
}
public GiftNamingInfoModel setNamingCoin(String namingCoin) {
this.namingCoin = namingCoin;
return this;
}
public String getFansLevel() {
return fansLevel;
}
public GiftNamingInfoModel setFansLevel(String fansLevel) {
this.fansLevel = fansLevel;
return this;
}
public String getNamingUserCoin() {
return namingUserCoin;
}
public GiftNamingInfoModel setNamingUserCoin(String namingUserCoin) {
this.namingUserCoin = namingUserCoin;
return this;
}
public String getNamingLiveCoin() {
return namingLiveCoin;
}
public GiftNamingInfoModel setNamingLiveCoin(String namingLiveCoin) {
this.namingLiveCoin = namingLiveCoin;
return this;
}
public String getIsweek() {
return isweek;
}
public GiftNamingInfoModel setIsweek(String isweek) {
this.isweek = isweek;
return this;
}
}

View File

@@ -11,7 +11,18 @@ public class GiftWallGiftDetail extends BaseModel {
@SerializedName("avatar")
private String avatar;
@SerializedName("naming_coin")
private int namingCoin;
private String namingCoin;
@SerializedName("default_naming_coin")
private String default_naming_coin;
public String getDefault_naming_coin() {
return default_naming_coin;
}
public GiftWallGiftDetail setDefault_naming_coin(String default_naming_coin) {
this.default_naming_coin = default_naming_coin;
return this;
}
public int getUid() {
return uid;
@@ -23,6 +34,9 @@ public class GiftWallGiftDetail extends BaseModel {
}
public String getUserNicename() {
if (userNicename.length() > 5) {
userNicename = userNicename.substring(0, 5) + "...";
}
return userNicename;
}
@@ -40,11 +54,11 @@ public class GiftWallGiftDetail extends BaseModel {
return this;
}
public int getNamingCoin() {
public String getNamingCoin() {
return namingCoin;
}
public GiftWallGiftDetail setNamingCoin(int namingCoin) {
public GiftWallGiftDetail setNamingCoin(String namingCoin) {
this.namingCoin = namingCoin;
return this;
}

View File

@@ -64,6 +64,39 @@ public class LiveGiftBean {
private String namingStatus;
@JSONField(name = "naming_coin")
private String namingCoin;
@JSONField(name = "naming_user_coin")
private String namingUserCoin;
@JSONField(name = "blind_box_ticket")
private int blindBoxTicket;
@JSONField(name = "blind_box_ticket_id")
private int blindBoxTicketId;
public int getBlindBoxTicketId() {
return blindBoxTicketId;
}
public LiveGiftBean setBlindBoxTicketId(int blindBoxTicketId) {
this.blindBoxTicketId = blindBoxTicketId;
return this;
}
public int getBlindBoxTicket() {
return blindBoxTicket;
}
public LiveGiftBean setBlindBoxTicket(int blindBoxTicket) {
this.blindBoxTicket = blindBoxTicket;
return this;
}
public String getNamingUserCoin() {
return namingUserCoin;
}
public LiveGiftBean setNamingUserCoin(String namingUserCoin) {
this.namingUserCoin = namingUserCoin;
return this;
}
public View getmView() {
return mView;
@@ -191,6 +224,16 @@ public class LiveGiftBean {
return this;
}
private int fansGiftLevel = 0;//粉丝团礼物等级要求
public int getFansGiftLevel() {
return fansGiftLevel;
}
public void setFansGiftLevel(int fansGiftLevel) {
this.fansGiftLevel = fansGiftLevel;
}
public int getBlind_box_type() {
return blind_box_type;
}

View File

@@ -0,0 +1,46 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class UserAvatarSelectBean extends BaseModel {
@SerializedName("id")
private int id;
@SerializedName("name")
private String name;
@SerializedName("path")
private String path;
@SerializedName("checked")
private int checked;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public int getChecked() {
return checked;
}
public void setChecked(int checked) {
this.checked = checked;
}
}

View File

@@ -68,6 +68,10 @@ public class UserBean implements Parcelable {
private String mRankPkImgUrl;
//是否填写完整资料
private int user_info_complete;
//粉丝团等级
private int fansLevel;
//粉丝团进场皮肤
private String fansEnterRoomUrl;
public int getUserInfoComplete() {
return user_info_complete;
@@ -78,6 +82,22 @@ public class UserBean implements Parcelable {
return this;
}
public int getFansLevel() {
return fansLevel;
}
public void setFansLevel(int fansLevel) {
this.fansLevel = fansLevel;
}
public String getFansEnterRoomUrl() {
return fansEnterRoomUrl;
}
public void setFansEnterRoomUrl(String fansEnterRoomUrl) {
this.fansEnterRoomUrl = fansEnterRoomUrl;
}
public boolean isRandomPk() {
return randomPk;
}

View File

@@ -0,0 +1,39 @@
package com.yunbao.common.dialog;
import android.content.Context;
import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.CenterPopupView;
/**
* 居中弹窗
*/
public abstract class AbsDialogCenterPopupWindow extends CenterPopupView {
public final Context mContext;
public AbsDialogCenterPopupWindow(@NonNull Context context) {
super(context);
this.mContext = context;
}
/**
* <a href="https://github.com/li-xiaojun/XPopup/wiki/5.-%E5%B8%B8%E7%94%A8%E8%AE%BE%E7%BD%AE">参考配置</a>
*/
public abstract void buildDialog(XPopup.Builder builder);
public abstract int bindLayoutId();
@Override
protected int getImplLayoutId() {
return bindLayoutId();
}
public void showDialog() {
XPopup.Builder builder = new XPopup.Builder(mContext);
builder.isDestroyOnDismiss(true);
builder.enableDrag(false);
buildDialog(builder);
builder.asCustom(this).show();
}
}

View File

@@ -7,9 +7,11 @@ import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BottomPopupView;
/**
* 底部弹窗
*/
public abstract class AbsDialogPopupWindow extends BottomPopupView {
private final Context mContext;
public final Context mContext;
public AbsDialogPopupWindow(@NonNull Context context) {
super(context);

View File

@@ -0,0 +1,39 @@
package com.yunbao.common.dialog;
import android.content.Context;
import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.PositionPopupView;
/**
* 自定义位置弹窗
*/
public abstract class AbsDialogPositionPopupWindow extends PositionPopupView {
public final Context mContext;
public AbsDialogPositionPopupWindow(@NonNull Context context) {
super(context);
this.mContext = context;
}
/**
* <a href="https://github.com/li-xiaojun/XPopup/wiki/5.-%E5%B8%B8%E7%94%A8%E8%AE%BE%E7%BD%AE">参考配置</a>
*/
public abstract void buildDialog(XPopup.Builder builder);
public abstract int bindLayoutId();
@Override
protected int getImplLayoutId() {
return bindLayoutId();
}
public void showDialog() {
XPopup.Builder builder = new XPopup.Builder(mContext);
builder.isDestroyOnDismiss(true);
builder.enableDrag(false);
buildDialog(builder);
builder.asCustom(this).show();
}
}

View File

@@ -7,6 +7,17 @@ public class GiftWallItemEvent extends BaseModel {
private GiftWallModel giftWallModel;
private boolean unlit;
private boolean csb;
public boolean isCsb() {
return csb;
}
public GiftWallItemEvent setCsb(boolean csb) {
this.csb = csb;
return this;
}
public GiftWallModel getGiftWallModel() {
return giftWallModel;
}

View File

@@ -0,0 +1,6 @@
package com.yunbao.common.event;
import com.yunbao.common.bean.BaseModel;
public class LiveErrorEvent extends BaseModel {
}

View File

@@ -1,4 +1,4 @@
package com.yunbao.live.event;
package com.yunbao.common.event;
import com.yunbao.common.bean.LiveBean;

View File

@@ -17,11 +17,11 @@ import com.yunbao.common.bean.WishListModel;
import com.yunbao.common.bean.WishModel;
import com.yunbao.common.bean.WishModel2;
import com.yunbao.common.event.LiveNewWishListCloseEvent;
import com.yunbao.common.event.PopupViewDismissEvent;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.HintCustomPopup;
import com.yunbao.common.views.LiveNewWishGiftPopup;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -66,7 +66,7 @@ public class LiveNewWishListFragment extends BaseFragment {
@Override
public void onViewClicks() {
saveWish();
Bus.get().post(new PopupViewDismissEvent());
}
});
}
@@ -105,29 +105,51 @@ public class LiveNewWishListFragment extends BaseFragment {
liveNewWishAdapter.addData(wishList, type);
}
public void saveWish() {
public int liveNewWishAdapterWishList() {
List<WishModel> wishList = liveNewWishAdapter.getWishList();
List<WishModel2> wishList2 = new ArrayList<>();
Gson gson = new Gson();
for (WishModel model : wishList) {
if (model!=null){
if (model != null) {
WishModel2 model2 = gson.fromJson(gson.toJson(model), WishModel2.class);
wishList2.add(model2);
}
}
if (wishList2.size() == 0) {
Bus.get().post(new PopupViewDismissEvent());
} else {
if (wishList2.size()>10){
ToastUtil.show(R.string.must_hint);
return;
return wishList2.size();
}
public void saveWish() {
List<WishModel> wishList = liveNewWishAdapter.getWishList();
List<WishModel2> wishList2 = new ArrayList<>();
Gson gson = new Gson();
for (WishModel model : wishList) {
if (model != null) {
WishModel2 model2 = gson.fromJson(gson.toJson(model), WishModel2.class);
wishList2.add(model2);
}
}
switch (type) {
case 1:
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(false));
break;
case 2:
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(false));
break;
case 3:
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(false));
break;
case 4:
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(false));
break;
}
if (wishList2.size() == 0) {
LiveNetManager.get(getContext()).
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
ToastUtil.show("修改成功");
}
@Override
@@ -135,22 +157,58 @@ public class LiveNewWishListFragment extends BaseFragment {
ToastUtil.show(R.string.net_error);
}
});
switch (type) {
case 1:
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(false));
break;
case 2:
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(false));
break;
case 3:
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(false));
break;
case 4:
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(false));
break;
} else if (wishList2.size() == 1) {
new XPopup.Builder(getContext())
.asCustom(new HintCustomPopup(getContext(),
getContext().getString(R.string.dialog_tip),
getContext().getString(R.string.sett_rigger))
.setLiveOpenOk(getContext().getString(R.string.settings_ser))
.setLiveOpenCancel(getContext().getString(R.string.cancel_ca))
.setCallBack(new HintCustomPopup.HintCustomCallBack() {
@Override
public void onSure() {
}
@Override
public void onCancel() {
if (wishList2.size() > 10) {
ToastUtil.show(R.string.must_hint);
return;
}
LiveNetManager.get(getContext()).
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
ToastUtil.show("修改成功");
}
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
}
});
}
})).show();
} else {
if (wishList2.size() > 10) {
ToastUtil.show(R.string.must_hint);
return;
}
LiveNetManager.get(getContext()).
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
ToastUtil.show("修改成功");
}
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
}
});
}
}
}

View File

@@ -198,6 +198,10 @@ public class CommonHttpUtil {
if (obj.containsKey("is_chat")) {
IMLoginManager.get(context).initChat(String.valueOf(obj.getInteger("is_chat")));
}
if (obj.containsKey("levelfans")) {
JSONArray levelArray = obj.getJSONArray("levelfans");
new NewLevelManager(context).upDataFansLevel(levelArray.toJSONString());
}
if (obj.containsKey("level_new")) {//缓存等级数据
JSONArray levelArray = obj.getJSONArray("level_new");
new NewLevelManager(context).UpDataLevel(levelArray.toJSONString());
@@ -310,8 +314,15 @@ public class CommonHttpUtil {
.execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
if (code == 0 && info.length > 0 || code == 1001) {
int isAttention = JSON.parseObject(info[0]).getIntValue("isattent");//1是 关注 0是未关注
/* if (code == 1001) {
if (WordUtil.isNewZh()) {
ToastUtil.show("粉絲團等級已清零,待領取獎勵已自動領取至【個性裝扮】");
} else {
ToastUtil.show("The level of the fan club has been cleared, and the rewards to be claimed have been automatically received to [Personalized Dressing]");
}
}*/
EventBus.getDefault().post(new FollowEvent(touid, isAttention));
if (callback != null) {
callback.callback(isAttention);

View File

@@ -1,4 +1,4 @@
package com.yunbao.live.http;
package com.yunbao.common.http;
/**
* Created by cxf on 2019/3/21.

View File

@@ -1,4 +1,4 @@
package com.yunbao.live.http;
package com.yunbao.common.http;
import android.text.TextUtils;
@@ -6,10 +6,6 @@ import com.lzy.okgo.request.GetRequest;
import com.lzy.okgo.request.PostRequest;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.JsonBean;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MD5Util;
@@ -292,6 +288,7 @@ public class LiveHttpUtil {
/**
* 主播或管理员禁言
*
* @param time 禁言时间
*/
public static void setShutUp(String liveUid, String stream, int type, String touid, String time, HttpCallback callback) {
@@ -619,7 +616,11 @@ public class LiveHttpUtil {
* 观众给主播送礼物
*/
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, HttpCallback callback) {
sendGift(by, liveUid, stream, giftId, giftCount, 0, callback);
sendGift(by, liveUid, stream, giftId, giftCount, 0, false, callback);
}
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, int isContactGift, HttpCallback callback) {
sendGift(by, liveUid, stream, giftId, giftCount, isContactGift, false, callback);
}
/**
@@ -627,7 +628,7 @@ public class LiveHttpUtil {
*
* @param isContactGift 是否为联系方式礼物
*/
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, int isContactGift, HttpCallback callback) {
public static void sendGift(String by, String liveUid, String stream, int giftId, String giftCount, int isContactGift, boolean isFansGroupGift, HttpCallback callback) {
HttpClient.getInstance().get("Live.sendGift", LiveHttpConsts.SEND_GIFT)
.params("liveuid", liveUid)
.params("stream", stream)
@@ -635,6 +636,20 @@ public class LiveHttpUtil {
.params("isContactGift", isContactGift)
.params("giftcount", giftCount)
.params("isprank", by)
.params("fans_exclusive_pack", isFansGroupGift ? "1" : "0")
.params("appVersion", CommonAppConfig.getInstance().getVersion())
.execute(callback);
}
public static void sendBlindBoxTicket(String by, String liveUid, String stream, int giftId, HttpCallback callback) {
HttpClient.getInstance().get("Live.sendBlindBoxTicket", LiveHttpConsts.SEND_GIFT)
.params("liveuid", liveUid)
.params("stream", stream)
.params("giftid", giftId)
.params("isContactGift", 0)
.params("giftcount", "1")
.params("isprank", by)
.params("fans_exclusive_pack", "0")
.params("appVersion", CommonAppConfig.getInstance().getVersion())
.execute(callback);
}

View File

@@ -12,8 +12,12 @@ import com.yunbao.common.bean.CustomSidebarInfoModel;
import com.yunbao.common.bean.DiscountsModel;
import com.yunbao.common.bean.EnterRoomNewModel;
import com.yunbao.common.bean.FaceBookUpModel;
import com.yunbao.common.bean.FansCheckRed;
import com.yunbao.common.bean.FansGroupGiftPack;
import com.yunbao.common.bean.FansGroupGiftPackInfo;
import com.yunbao.common.bean.GiftAlreadyWallModel;
import com.yunbao.common.bean.GiftGuideModel;
import com.yunbao.common.bean.GiftNamingInfoModel;
import com.yunbao.common.bean.GiftWallGiftDetail;
import com.yunbao.common.bean.GiftWallModel;
import com.yunbao.common.bean.HourRank;
@@ -50,6 +54,7 @@ import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.bean.SlideInBannerModel;
import com.yunbao.common.bean.StarChallengeStatusModel;
import com.yunbao.common.bean.UserAreaBean;
import com.yunbao.common.bean.UserAvatarSelectBean;
import com.yunbao.common.bean.VipModel;
import com.yunbao.common.bean.WishListGiftConfModel;
import com.yunbao.common.bean.WishListModel;
@@ -835,6 +840,22 @@ public interface PDLiveApi {
@Query("red_packet_id") String redPacketId
);
/**
* 获取系统默认头像列表
*/
@GET("/api/public/?service=Userhome.getDefaultAvatarList")
Observable<ResponseModel<List<UserAvatarSelectBean>>> getSystemUserAvatar();
/**
* 设置系统默认头像
*
* @param id 头像id
*/
@GET("/api/public/?service=Userhome.setAvatar")
Observable<ResponseModel<Object>> setSystemUserAvatar(
@Query("avatar_id") int id
);
/**
* 礼物墙已点亮
*/
@@ -844,6 +865,15 @@ public interface PDLiveApi {
@Query("to_uid") String toUid
);
/**
* 礼物墙已点亮
*/
@GET("/api/public/?service=Gift.giftUserSendWall")
Observable<ResponseModel<GiftAlreadyWallModel>> giftUserSendWall(
@Query("liveuid") String liveUid,
@Query("to_uid") String toUid
);
/**
* 礼物墙未点亮
*/
@@ -859,7 +889,8 @@ public interface PDLiveApi {
@GET("/api/public/?service=Gift.giftDetail")
Observable<ResponseModel<GiftWallGiftDetail>> giftDetail(
@Query("liveuid") String liveUid,
@Query("gift_id") String giftId
@Query("gift_id") String giftId,
@Query("to_uid") String toUid
);
/**
@@ -885,18 +916,57 @@ public interface PDLiveApi {
*/
@GET("/api/public/?service=Gift.getGiftGuide")
Observable<ResponseModel<List<GiftGuideModel>>> getGiftGuide(
@Query("liveuid") String liveUid
@Query("liveuid") String liveUid,
@Query("to_uid") String toUid
);
@GET("/api/public/?service=Gift.getGiftGuideHistory")
Observable<ResponseModel<List<GiftGuideModel>>> getGiftGuideHistory(
@Query("liveuid") String liveUid
@Query("liveuid") String liveUid,
@Query("to_uid") String toUid
);
@GET("/api/public/?service=Gift.getUserMedalList")
Observable<ResponseModel<MedalAchievementModel>> getUserMedalList(@Query("to_uid") String toUid);
@GET("/api/public/?service=Gift.getLiveMedalList")
Observable<ResponseModel<MedalAchievementModel>> getLiveMedalList();
Observable<ResponseModel<MedalAchievementModel>> getLiveMedalList(@Query("liveuid") String liveUid);
/**
* 获取粉丝团礼物信息
*
* @param packId 礼包id
*/
@GET("/api/public/?service=Fans.getFansExclusivePack")
Observable<ResponseModel<FansGroupGiftPackInfo>> getFansExclusivePack(@Query("liveuid") String liveUid,
@Query("pack_id") String packId
);
/**
* 购买粉丝团礼包
*
* @param packId 礼包id
*/
@GET("/api/public/?service=Fans.buyFansExclusivePack")
Observable<ResponseModel<HttpCallbackModel>> buyFansExclusivePack(@Query("liveuid") String liveUid,
@Query("pack_id") String packId,
@Query("stream") String stream
);
/**
* 获取粉丝团礼物包裹
*/
@GET("/api/public/?service=Fans.userFansExclusivePackList")
Observable<ResponseModel<List<FansGroupGiftPack>>> userFansExclusivePackList(@Query("liveuid") String liveUid);
/**
* 获取粉丝团礼物包裹
*/
@GET("/api/public/?service=Fans.getCheckFansLevelUpgrade")
Observable<ResponseModel<FansCheckRed>> getCheckFansLevelUpgrade(@Query("liveuid") String liveUid);
@GET("/api/public/?service=gift.getGiftNamingInfo")
Observable<ResponseModel<GiftNamingInfoModel>> getGiftNamingInfo(@Query("gift_id") String giftId);
}

View File

@@ -13,8 +13,12 @@ import com.yunbao.common.bean.CheckLiveModel;
import com.yunbao.common.bean.CustomSidebarInfoModel;
import com.yunbao.common.bean.DiscountsModel;
import com.yunbao.common.bean.EnterRoomNewModel;
import com.yunbao.common.bean.FansCheckRed;
import com.yunbao.common.bean.FansGroupGiftPack;
import com.yunbao.common.bean.FansGroupGiftPackInfo;
import com.yunbao.common.bean.GiftAlreadyWallModel;
import com.yunbao.common.bean.GiftGuideModel;
import com.yunbao.common.bean.GiftNamingInfoModel;
import com.yunbao.common.bean.GiftWallGiftDetail;
import com.yunbao.common.bean.GiftWallModel;
import com.yunbao.common.bean.HttpCallbackModel;
@@ -25,6 +29,7 @@ import com.yunbao.common.bean.LiveAiRobotBean;
import com.yunbao.common.bean.LiveAnchorCallMeModel;
import com.yunbao.common.bean.LiveAnchorSayModel;
import com.yunbao.common.bean.LiveDataInfoModel;
import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.bean.LiveInfoModel;
import com.yunbao.common.bean.LiveRoomActivityBanner;
import com.yunbao.common.bean.LiveRoomVoteModel;
@@ -46,6 +51,7 @@ import com.yunbao.common.bean.RedPacketListBean;
import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.bean.StarChallengeStatusModel;
import com.yunbao.common.bean.UserAreaBean;
import com.yunbao.common.bean.UserAvatarSelectBean;
import com.yunbao.common.bean.VipModel;
import com.yunbao.common.bean.WishListGiftConfModel;
import com.yunbao.common.bean.WishListModel;
@@ -172,8 +178,16 @@ public class LiveNetManager {
.subscribe(listResponseModel -> {
List<SetAttentsModel> setAttentsModels = listResponseModel.getData().getInfo();
if (setAttentsModels.size() > 0) {
if (callback != null)
if (callback != null) {
/* if (listResponseModel.getData().getCode() == 1001) {
if (WordUtil.isNewZh()) {
ToastUtil.show("粉絲團等級已清零,待領取獎勵已自動領取至【個性裝扮】");
} else {
ToastUtil.show("The level of the fan club has been cleared, and the rewards to be claimed have been automatically received to [Personalized Dressing]");
}
}*/
callback.onSuccess(setAttentsModels.get(0));
}
} else {
if (callback != null)
callback.onError("操作失效");
@@ -1801,6 +1815,54 @@ public class LiveNetManager {
}).isDisposed();
}
public void getSystemUserAvatar(HttpCallback<List<UserAvatarSelectBean>> callback) {
API.get().pdLiveApi(mContext)
.getSystemUserAvatar()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<UserAvatarSelectBean>>>() {
@Override
public void accept(ResponseModel<List<UserAvatarSelectBean>> objectResponseModel) throws Exception {
if (objectResponseModel.getData().getCode() == 0) {
callback.onSuccess(objectResponseModel.getData().getInfo());
} else {
callback.onError(objectResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void setSystemUserAvatar(int id, HttpCallback<String> callback) {
API.get().pdLiveApi(mContext)
.setSystemUserAvatar(id)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<Object>>() {
@Override
public void accept(ResponseModel<Object> objectResponseModel) throws Exception {
if (objectResponseModel.getData().getCode() == 0) {
callback.onSuccess(objectResponseModel.getData().getMsg());
} else {
callback.onError(objectResponseModel.getData().getMsg());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void giftAlreadyWall(String liveUid, String toUid, HttpCallback<GiftAlreadyWallModel> callback) {
API.get().pdLiveApi(mContext)
.giftAlreadyWall(liveUid, toUid)
@@ -1823,6 +1885,28 @@ public class LiveNetManager {
}).isDisposed();
}
public void giftUserSendWall(String liveUid, String toUid, HttpCallback<GiftAlreadyWallModel> callback) {
API.get().pdLiveApi(mContext)
.giftUserSendWall(liveUid, toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<GiftAlreadyWallModel>>() {
@Override
public void accept(ResponseModel<GiftAlreadyWallModel> giftAlreadyWallModelResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(giftAlreadyWallModelResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void giftWithoutWall(String liveUid, String toUid, HttpCallback<GiftAlreadyWallModel> callback) {
API.get().pdLiveApi(mContext)
.giftWithoutWall(liveUid, toUid)
@@ -1845,9 +1929,9 @@ public class LiveNetManager {
}).isDisposed();
}
public void giftDetail(String liveUid, String giftId, HttpCallback<GiftWallGiftDetail> callback) {
public void giftDetail(String liveUid, String giftId, String toUid, HttpCallback<GiftWallGiftDetail> callback) {
API.get().pdLiveApi(mContext)
.giftDetail(liveUid, giftId)
.giftDetail(liveUid, giftId,toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<GiftWallGiftDetail>>() {
@@ -1911,9 +1995,9 @@ public class LiveNetManager {
}).isDisposed();
}
public void getGiftGuide(String liveUid, HttpCallback<List<GiftGuideModel>> callback) {
public void getGiftGuide(String liveUid, String toUid, HttpCallback<List<GiftGuideModel>> callback) {
API.get().pdLiveApi(mContext)
.getGiftGuide(liveUid)
.getGiftGuide(liveUid, toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<GiftGuideModel>>>() {
@@ -1933,9 +2017,9 @@ public class LiveNetManager {
}).isDisposed();
}
public void getGiftGuideHistory(String liveUid, HttpCallback<List<GiftGuideModel>> callback) {
public void getGiftGuideHistory(String toUid, String liveUid, HttpCallback<List<GiftGuideModel>> callback) {
API.get().pdLiveApi(mContext)
.getGiftGuideHistory(liveUid)
.getGiftGuideHistory(liveUid, toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<GiftGuideModel>>>() {
@@ -1977,9 +2061,9 @@ public class LiveNetManager {
}).isDisposed();
}
public void getLiveMedalList(HttpCallback<MedalAchievementModel> callback) {
public void getLiveMedalList(String liveUid, HttpCallback<MedalAchievementModel> callback) {
API.get().pdLiveApi(mContext)
.getLiveMedalList()
.getLiveMedalList(liveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<MedalAchievementModel>>() {
@@ -1999,6 +2083,116 @@ public class LiveNetManager {
}).isDisposed();
}
public void getFansExclusivePack(String liveUid, String packId, HttpCallback<FansGroupGiftPackInfo> callback) {
API.get().pdLiveApi(mContext)
.getFansExclusivePack(liveUid, packId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<FansGroupGiftPackInfo>>() {
@Override
public void accept(ResponseModel<FansGroupGiftPackInfo> listResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(listResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void buyFansExclusivePack(String liveUid, String packId, String stream, HttpCallback<HttpCallbackModel> callback) {
API.get().pdLiveApi(mContext)
.buyFansExclusivePack(liveUid, packId, stream)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<HttpCallbackModel>>() {
@Override
public void accept(ResponseModel<HttpCallbackModel> listResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(listResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void userFansExclusivePackList(String liveUid, HttpCallback<List<FansGroupGiftPack>> callback) {
API.get().pdLiveApi(mContext)
.userFansExclusivePackList(liveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<FansGroupGiftPack>>>() {
@Override
public void accept(ResponseModel<List<FansGroupGiftPack>> listResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(listResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void getCheckFansLevelUpgrade(String liveUid, HttpCallback<FansCheckRed> callback) {
API.get().pdLiveApi(mContext)
.getCheckFansLevelUpgrade(liveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<FansCheckRed>>() {
@Override
public void accept(ResponseModel<FansCheckRed> listResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(listResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void getGiftNamingInfo(String giftId,HttpCallback<GiftNamingInfoModel> callback) {
API.get().pdLiveApi(mContext)
.getGiftNamingInfo(giftId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<GiftNamingInfoModel>>() {
@Override
public void accept(ResponseModel<GiftNamingInfoModel> liveGiftBeanResponseModel) throws Exception {
if (callback!=null){
callback.onSuccess(liveGiftBeanResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
/**
* 直播间取消网络请求
*/

View File

@@ -29,13 +29,13 @@ public class GiftQuantityManager extends BaseCacheManager {
List<GiftQuantityModel> giftQuantityModels = getList(KEY_GIFT_QUANTITY, new TypeToken<List<GiftQuantityModel>>() {
}.getType());
if (giftQuantityModels == null || giftQuantityModels.size() == 0) {
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("1").setFontColour("#ffffff"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("10").setFontColour("#ffffff"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("66").setFontColour("#ffffff"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("88").setFontColour("#FA62A1"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("100").setFontColour("#9B62FF"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("520").setFontColour("#65BFFB"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("1314").setFontColour("#05F3EC"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("520").setFontColour("#65BFFB"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("100").setFontColour("#9B62FF"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("88").setFontColour("#FA62A1"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("66").setFontColour("#ffffff"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("10").setFontColour("#ffffff"));
giftQuantityModels.add(new GiftQuantityModel().setGiftQuantity("1").setFontColour("#ffffff"));
}
return giftQuantityModels;
}

View File

@@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import com.google.gson.Gson;
import com.lzf.easyfloat.EasyFloat;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.event.DataUserInfoEvent;
@@ -47,6 +48,7 @@ public class IMLoginManager extends BaseCacheManager {
private final String keyDefaultBubbleUrl = "defaultBubbleUrl";
private final String STATUS_ANCHOR_SAY = "anchorSay";
private final String STATUS_ANCHOR_CALL = "anchorCallMe";
private final String LIVE_NOTIFY_SETTINGS = "liveNotifySettings";//开播通知
private final String KEY_LANGUAGE = "language";
@@ -280,6 +282,10 @@ public class IMLoginManager extends BaseCacheManager {
return userInfo;
}
public void setMedalName(String medalName) {
userInfo.setMedalName(medalName);
}
/**
* 判断是否已登录
*
@@ -296,6 +302,8 @@ public class IMLoginManager extends BaseCacheManager {
* @param model
*/
public void setupLoginUser(@NonNull IMLoginModel model) {
//当用户使用自有账号登录时,可以这样统计:
MobclickAgent.onProfileSignIn(String.valueOf(model.getId()));
this.userInfo = model;
if (userInfo != null && !TextUtils.isEmpty(userInfo.getToken())) {
token = userInfo.getToken();
@@ -354,6 +362,14 @@ public class IMLoginManager extends BaseCacheManager {
return getBoolean(GiftEffect, !(Build.VERSION.SDK_INT < Build.VERSION_CODES.O));
}
public void setLiveNotifySettings(boolean isTrue) {
put(LIVE_NOTIFY_SETTINGS, isTrue);
}
public boolean isLiveNotifySettings() {
return getBoolean(LIVE_NOTIFY_SETTINGS, true);
}
/**
* 重新请求管理员身份信息
*/
@@ -412,6 +428,8 @@ public class IMLoginManager extends BaseCacheManager {
// IMCenter.getInstance().clearConversations(null, Conversation.ConversationType.PRIVATE);
RongcloudIMManager.logoutIM();
MessageIMManager.get(activity).logout();
//登出
MobclickAgent.onProfileSignOff();
put(IS_HINT, 0);
APPEasyFloat.getInstance().dismiss(activity);
if (EasyFloat.isShow("LiveFloatView")) {

View File

@@ -4,6 +4,7 @@ import android.content.Context;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.yunbao.common.bean.FansModel;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.manager.base.BaseCacheManager;
@@ -17,9 +18,11 @@ public class NewLevelManager extends BaseCacheManager {
private final String KEY_USER_LEVEL = "keyUserLevel";
private final String KEY_ANCHOR_LEVEL = "keyAnchorLevel";
private final String KEY_LIVE_LEVEL = "keyLiveLevel";
private final String KEY_FANS_LEVEL = "keyFansLevel";
private List<NewLevelModel> newLevelModels = new ArrayList<>();
private List<NewLevelModel> keyAnchorLevel = new ArrayList<>();
private List<FansModel> fansModels = new ArrayList<>();
public NewLevelManager(Context context) {
super(context);
@@ -36,6 +39,29 @@ public class NewLevelManager extends BaseCacheManager {
put(KEY_USER_LEVEL, newLevelModels);
}
public void upDataFansLevel(String json) {
fansModels = new Gson().fromJson(json, new TypeToken<List<FansModel>>() {
}.getType());
put(KEY_FANS_LEVEL, fansModels);
}
public List<FansModel> getFansLevel() {
fansModels = getList(KEY_FANS_LEVEL, new TypeToken<List<FansModel>>() {
}.getType());
return fansModels;
}
public FansModel getFansModel(int level) {
getFansLevel();
FansModel fansModel = null;
for (FansModel model : fansModels) {
if (model.getLevelid() == level) {
fansModel = model;
}
}
return fansModel;
}
/**
* 获取等级数据
*
@@ -45,6 +71,7 @@ public class NewLevelManager extends BaseCacheManager {
return getList(KEY_USER_LEVEL, new TypeToken<List<NewLevelModel>>() {
}.getType());
}
/**
* 缓存等级图标
*

View File

@@ -401,7 +401,7 @@ public class RandomPkManager {
* 清空状态,下播时调用
*/
public void release() {
status = PK_STATUS_REQUEST;
status = PK_STATUS_DEFAULT;
if (task != null) {
task.cancel();
}

View File

@@ -239,7 +239,7 @@ public class PayPresenter {
public void open(String url){
//支付时内部跳转 false要添加
WebViewActivity.forward(mActivity,url,false);
WebViewActivity.forward(mActivity,url,false,false);
}

View File

@@ -7,6 +7,7 @@ import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
/**
@@ -88,7 +89,11 @@ public class FileUtil {
duration= Long.parseLong(time);
} catch (Exception ex) {
} finally {
mmr.release();
try {
mmr.release();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return duration;
}

View File

@@ -3,6 +3,7 @@ package com.yunbao.common.utils;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import com.yunbao.common.CommonAppConfig;
@@ -151,16 +152,19 @@ public class GiftCacheUtil {
return;
}
clickId.add(bean.getId()+"");
getFile(context,getDownloadSaveName(bean.getId()), bean.getSwf(), "0", new CommonCallback<File>() {
@Override
public void callback(File bean) {
if(bean!=null) {
clickId.remove(getIdForFileName(bean.getName())+"");
downloadCache.remove(getIdForFileName(bean.getName()));
if (!TextUtils.isEmpty( bean.getSwf())){
getFile(context,getDownloadSaveName(bean.getId()), bean.getSwf(), "0", new CommonCallback<File>() {
@Override
public void callback(File bean) {
if(bean!=null) {
clickId.remove(getIdForFileName(bean.getName())+"");
downloadCache.remove(getIdForFileName(bean.getName()));
}
mDownloadGifCallback.callback(bean);
}
mDownloadGifCallback.callback(bean);
}
});
});
}
}
/**
@@ -241,7 +245,7 @@ public class GiftCacheUtil {
if (clickId.contains(id+"")) {
continue;
}
if (bean.getSwf().isEmpty()) {
if (TextUtils.isEmpty(bean.getSwf())) {
handler.post(() -> commonCallback.callback(null));
continue;
}

View File

@@ -22,6 +22,8 @@ import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.VideoBean;
import com.yunbao.common.bean.VideoListBean;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
@@ -548,9 +550,46 @@ public class JavascriptInterfaceUtils {
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("clickLogOffAccount"));
}
@JavascriptInterface
public void androidFansGroupBuy(String id){
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidFansGroupBuy").setUserId(id));
}
@JavascriptInterface
public void androidFansGroupPack(){
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidFansGroupPack"));
}
@JavascriptInterface
public void androidFansGroupInfo(){
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidFansGroupInfo"));
}
@JavascriptInterface
public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl) {
RouteUtil.forwardGiftWallActivity("", mAnchorName, mLiveUid, mAvatarUrl, 0);
public void toGiftNamingAlertAllPageView(String mAnchorName, String mLiveUid, String mAvatarUrl,int isAnchor ) {
RouteUtil.forwardGiftWallActivity("", mAnchorName, mLiveUid, mAvatarUrl, 0,isAnchor==1);
}
@JavascriptInterface
public void wearOrCancelFanMedal(){
HttpClient.getInstance().get("User.getBaseInfos", "getBaseInfo")
.params("uid", IMLoginManager.get(mContext).getUserInfo().getId())
.params("token", IMLoginManager.get(mContext).getUserInfo().getToken())
.execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
IMLoginManager.get(mContext).upDataUserInfo(info[0]);
JSONObject obj = JSON.parseObject(info[0]);
UserBean bean = JSON.toJavaObject(obj, UserBean.class);
CommonAppConfig.getInstance().setUserBean(bean);
}
}
});
}
@JavascriptInterface
public void androidCancelAnchorAttention(){
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidCancelAnchorAttention"));
}
}

View File

@@ -1,4 +1,4 @@
package com.yunbao.live.presenter;
package com.yunbao.common.utils;
import android.app.Activity;
import android.app.Dialog;
@@ -10,19 +10,15 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
import com.yunbao.common.bean.CheckLiveModel;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.event.LiveErrorEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.base.CheckLiveCallBack;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.MD5Util;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
/**
* Created by cxf on 2017/9/29.
@@ -111,8 +107,7 @@ public class LiveRoomCheckLivePresenter {
@Override
public void onError(String error) {
Log.e("直播间异常", "onError: " + error);
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LIVE_ROOM_EXCEPTION));
Bus.get().post(new LiveErrorEvent());
ToastUtil.show(error);
}
});
@@ -162,8 +157,7 @@ public class LiveRoomCheckLivePresenter {
}
} else {
Log.e("直播间异常", "Error: " + msg);
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LIVE_ROOM_EXCEPTION));
Bus.get().post(new LiveErrorEvent());
ToastUtil.show(msg);
}
}

View File

@@ -266,8 +266,7 @@ public class LogUtil {
.connectTimeout(3, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
//.url("https://newht.yaoulive.com/index.php/api/error_log/report") //无法接受文件
.url("https://tools.yutou233.cn/public/file/request.do")//临时上报地址,可接受文件
.url("https://newht.yaoulive.com/index.php/api/error_log/report") //无法接受文件
.post(requestBody)
.build();
client.newCall(request)

View File

@@ -23,6 +23,9 @@ public class NobleUtil {
return -1;
}
public static String nobleIdToStringName(int id){
if(!WordUtil.isNewZh()){
return nobleIdToStringNameForEn(id);
}
switch (id){
case 1:return "男爵";
case 2:return "子爵";
@@ -34,6 +37,18 @@ public class NobleUtil {
}
return "未开通";
}
public static String nobleIdToStringNameForEn(int id){
switch (id){
case 1:return "baron";
case 2:return "viscount";
case 3:return "marquis";
case 4:return "duke";
case 5:return "king";
case 6:return "emperor";
case 7:return "SuperEmperor";
}
return "Not Opened";
}
public static int getNobleBackgroundId(int id){
switch (id){
case 1:return R.mipmap.img_aristocrat_nanjue;

View File

@@ -44,6 +44,7 @@ public class RouteUtil {
public static final String PATH_RED_PACKET_LIST = "/main/RedPacketListActivity";
public static final String PATH_RED_PACKET_INFO = "/main/RedPacketInfoActivity";
public static final String PATH_RED_PACKET_USER = "/main/RedPacketUsersActivity";
public static final String PATH_SELECT_AVATAR="/main/UserAvatarSelectActivity";
public static void forwardFansActivity(String uid) {
ARouter.getInstance().build(PATH_FANSACTIVITY)
@@ -233,13 +234,14 @@ public class RouteUtil {
postcard.navigation();
}
public static void forwardGiftWallActivity(String mStream, String mAnchorName, String mLiveUid, String mAvatarUrl, int isAttention) {
public static void forwardGiftWallActivity(String mStream, String mAnchorName, String mLiveUid, String mAvatarUrl, int isAttention,boolean isLive) {
ARouter.getInstance().build(PATH_GIFT_WALL)
.withString(Constants.LIVE_UID, mLiveUid)
.withString(Constants.STREAM, mStream)
.withString("mAnchorName", mAnchorName)
.withString("mAvatarUrl", mAvatarUrl)
.withInt("isAttention", isAttention)
.withBoolean("isLive",isLive)
.navigation();
}
@@ -305,4 +307,12 @@ public class RouteUtil {
.withInt("id", id)
.navigation();
}
/**
* 系统头像选择
*/
public static void forwardUserAvatarSelect(){
ARouter.getInstance().build(PATH_SELECT_AVATAR)
.navigation();
}
}

View File

@@ -139,7 +139,7 @@ public class CustomDrawerPopupView extends DrawerPopupView {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.online), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.diamond_linear));
XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.more_menu));
builder.hasShadowBg(false)
.isDestroyOnDismiss(true)
.isLightStatusBar(false)

View File

@@ -80,10 +80,13 @@ public class DayWishItemViewHolder extends RecyclerView.ViewHolder {
@Override
public void onViewClicks() {
int number = model.wishProgress();
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
if (number>1){
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
}
}
}
});
} else {

View File

@@ -9,6 +9,7 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.R;
import com.yunbao.common.adapter.FunGamesAdapter;
@@ -22,7 +23,9 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FunGamesViewHolder extends RecyclerView.ViewHolder {
private FunGamesAdapter funGamesAdapter;
@@ -76,6 +79,7 @@ public class FunGamesViewHolder extends RecyclerView.ViewHolder {
.append("&token=")
.append(userInfo.getToken());
}
Bus.get().post(new CustomDrawerPopupEvent()
.setDisMiss(true)
.setHtmlUrl(htmlUrl.toString())

View File

@@ -16,21 +16,23 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder {
private ImageView giftImg;
private TextView giftTitle;
private TextView giftTitle, giftNumber;
public GiftAlreadyWallViewHolder(@NonNull View itemView) {
super(itemView);
giftImg = itemView.findViewById(R.id.gift_img);
giftTitle = itemView.findViewById(R.id.gift_title);
giftNumber = itemView.findViewById(R.id.gift_number);
}
public void showData(GiftWallModel giftWallModel) {
public void showData(GiftWallModel giftWallModel, boolean sbWy) {
giftTitle.setText(giftWallModel.getGiftname());
giftNumber.setText("*" + giftWallModel.getGiftCountNumber());
ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg);
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(true));
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(true).setCsb(true));
}
});
}

View File

@@ -1,17 +1,20 @@
package com.yunbao.common.views;
import android.content.Context;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BottomPopupView;
import com.yunbao.common.R;
import com.yunbao.common.adapter.GiftNumberAdapter;
import com.yunbao.common.event.GiftNumberEvent;
import com.yunbao.common.manager.GiftQuantityManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import org.greenrobot.eventbus.Subscribe;
@@ -41,6 +44,38 @@ public class GiftNumberPopup extends BottomPopupView {
@Override
public void onViewClicks() {
dismiss();
Bus.get().post(new GiftNumberEvent().setmCount("-1"));
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.custom_quantity), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
dismiss();
new XPopup.Builder(getContext())
.asCustom(new InputCustomPopup(getContext(),
getContext().getString(R.string.the_title_financier3),
R.string.custom_quantity, true)
.setMaxValue(4)
.setListener(new InputCustomPopup.InputCustomListener() {
@Override
public void onConfirm(String text) {
if (!TextUtils.isEmpty(text)) {
int number = Integer.parseInt(text);
if (1 <= number && number <= 9999) {
Bus.get().post(new GiftNumberEvent().setmCount(text));
} else {
ToastUtil.show(String.format(getContext().getString(R.string.range_range_is), "1~9999"));
Bus.get().post(new GiftNumberEvent().setmCount("-1"));
}
} else {
ToastUtil.show(String.format(getContext().getString(R.string.range_range_is), "1~9999"));
Bus.get().post(new GiftNumberEvent().setmCount("-1"));
}
}
})).show();
}
});
}

View File

@@ -30,7 +30,7 @@ public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder {
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(false));
Bus.get().post(new GiftWallItemEvent().setGiftWallModel(giftWallModel).setUnlit(false).setCsb(false));
}
});
}

View File

@@ -1,6 +1,8 @@
package com.yunbao.common.views;
import android.content.Context;
import android.text.InputFilter;
import android.text.InputType;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
@@ -20,6 +22,8 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class InputCustomPopup extends CenterPopupView {
private String message = "";
private int title = R.string.dialog_tip;
private boolean isType;
private int maxValue=0;
public InputCustomPopup(@NonNull Context context, String message, int title) {
super(context);
@@ -27,7 +31,19 @@ public class InputCustomPopup extends CenterPopupView {
this.title = title;
}
public InputCustomPopup(@NonNull Context context,int title) {
public InputCustomPopup(@NonNull Context context, String message, int title, boolean isType) {
super(context);
this.message = message;
this.title = title;
this.isType = isType;
}
public InputCustomPopup setMaxValue(int maxValue) {
this.maxValue = maxValue;
return this;
}
public InputCustomPopup(@NonNull Context context, int title) {
super(context);
this.title = title;
}
@@ -44,7 +60,16 @@ public class InputCustomPopup extends CenterPopupView {
super.onCreate();
EditText content = findViewById(R.id.content);
TextView titleText = findViewById(R.id.title);
content.setText(message);
if(maxValue>0){
content.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxValue)});
}
if (isType) {
content.setHint(message);
content.setInputType(InputType.TYPE_CLASS_NUMBER);
} else {
content.setText(message);
}
titleText.setText(title);
findViewById(R.id.btn_cancel).setOnClickListener(new OnClickListener() {
@Override

View File

@@ -98,7 +98,6 @@ public class LiveNewWishListPopup extends BottomPopupView {
private void saveWishDialog(boolean isDismiss) {
if (hintCustomPopup != null) return;
hintCustomPopup = new HintCustomPopup(
getContext(),
getContext().getString(R.string.replacement_reset_confirmed_cancel3),
@@ -110,17 +109,15 @@ public class LiveNewWishListPopup extends BottomPopupView {
public void onSure() {
hintCustomPopup = null;
if (dayWish) {
dayWishFragment.saveWish();
dayWishFragment.saveWish( );
} else if (zhouXin) {
zhouXinFragment.saveWish();
zhouXinFragment.saveWish( );
} else if (lunarWish) {
lunarWishFragment.saveWish();
lunarWishFragment.saveWish( );
} else if (seasonalWish) {
seasonalWishFragment.saveWish();
}
if (isDismiss) {
dismiss();
seasonalWishFragment.saveWish( );
}
}
@Override
@@ -167,6 +164,7 @@ public class LiveNewWishListPopup extends BottomPopupView {
.setWishlistName(event.getModel().getName())
.setWishlistIcon(event.getModel().getImg())
.setWishlistNum("1")
.setLid(event.getModel().getId())
.setLuid("" + IMLoginManager.get(mContext).getUserInfo().getId())
.setWishlistProgress("0")
.setPrice(Integer.parseInt(event.getModel().getPrice()))
@@ -334,7 +332,7 @@ public class LiveNewWishListPopup extends BottomPopupView {
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
ToastUtil.show(data);
ToastUtil.show("修改成功");
}
@Override

View File

@@ -77,10 +77,13 @@ public class LunarWishItemViewHolder extends RecyclerView.ViewHolder {
@Override
public void onViewClicks() {
int number = model.wishProgress();
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
if (number>1){
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
}
}
}
});
} else {

View File

@@ -26,7 +26,7 @@ public class MonthGiftNamingViewHolder extends RecyclerView.ViewHolder {
public void showData(GiftWallModel giftWallModel) {
giftTitle.setText(giftWallModel.getGiftname());
namingCoin.setText(giftWallModel.getNamingCoinMax());
namingCoin.setText("*"+giftWallModel.getNamingCoinMax());
userName.setText(giftWallModel.getUserNicename());
ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg);
ImgLoader.display(itemView.getContext(), giftWallModel.getAvatar(), avatar);

View File

@@ -77,10 +77,13 @@ public class SeasonalWishItemViewHolder extends RecyclerView.ViewHolder {
@Override
public void onViewClicks() {
int number = model.wishProgress();
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
if (number>1){
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
}
}
}
});
} else {

View File

@@ -77,10 +77,13 @@ public class WeekWishItemViewHolder extends RecyclerView.ViewHolder {
@Override
public void onViewClicks() {
int number = model.wishProgress();
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
if (number>1){
model.setWishlistNum(String.valueOf(number - 1));
if (listener != null) {
listener.onUpdate(model, index);
}
}
}
});
} else {

View File

@@ -250,7 +250,8 @@ public class NobleNoticeView extends FrameLayout {
@Override
public void onStep(int frame, double v) {
System.out.println("frame = " + frame);
if (frame == 20) {
System.out.println("scrollLayout.getMeasuredWidth() = " + scrollLayout.getMeasuredWidth());
if (frame == 21) {
setButtonPosition(roleType);
observable.observeOn(AndroidSchedulers.mainThread())
.subscribe(bitmap -> {

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="524dp"
android:layout_gravity="bottom"
@@ -7,17 +7,20 @@
android:orientation="vertical">
<ImageView
android:id="@+id/close_btn"
android:layout_width="8dp"
android:layout_height="14dp"
android:layout_width="18dp"
android:layout_height="24dp"
android:layout_margin="13dp"
android:padding="5dp"
android:src="@mipmap/icon_regular_black" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/live_codex"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="40dp"
android:paddingStart="12dp"
android:paddingEnd="12dp"
android:paddingBottom="15dp" />
</LinearLayout>
</FrameLayout>

View File

@@ -15,7 +15,9 @@
android:id="@+id/operate_image"
android:layout_width="122dp"
android:layout_height="50dp"
android:layout_gravity="end|bottom" />
android:layout_gravity="end|bottom"
android:layout_marginEnd="5dp"
android:scaleType="fitXY" />
<FrameLayout
android:id="@+id/blind_box"
@@ -53,6 +55,7 @@
android:gravity="center_vertical">
<ImageView
android:id="@+id/gift_itle"
android:layout_width="54dp"
android:layout_height="13dp"
android:layout_marginStart="13dp"
@@ -92,7 +95,7 @@
<RelativeLayout
android:id="@+id/gift_list"
android:layout_width="match_parent"
android:layout_height="351dp"
android:layout_height="323dp"
android:animateLayoutChanges="true"
android:orientation="vertical">
@@ -157,14 +160,23 @@
android:progress="0"
android:progressDrawable="@drawable/progress_bg_user" />
<TextView
<com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/leave_hint"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginTop="2dp"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:text="@string/leveling_points"
android:textColor="#BBBBBB"
android:textSize="9sp" />
</LinearLayout>
<ImageView
@@ -183,7 +195,6 @@
android:layout_marginStart="15dp"
android:layout_marginEnd="16dp"
android:layout_weight="1"
android:background="@drawable/background_gift_description"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
@@ -191,7 +202,7 @@
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
android:textColor="#FFFFFFFF"
android:textColor="#80FFFFFF"
android:textSize="12sp" />
<FrameLayout
@@ -210,7 +221,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="17dp"
android:layout_marginBottom="8dp"
android:paddingStart="16dp">
<LinearLayout
@@ -346,7 +357,8 @@
android:id="@+id/gift_title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="8dp" />
android:layout_marginStart="8dp"
android:layout_marginEnd="10dp" />
<ImageView
android:layout_width="27dp"
@@ -393,7 +405,7 @@
<FrameLayout
android:id="@+id/context_layout_gift"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="196dp"
android:layout_marginTop="12dp" />

View File

@@ -39,7 +39,10 @@
android:layout_width="117dp"
android:layout_height="31dp"
android:layout_alignParentEnd="true"
android:layout_margin="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:background="@drawable/background_wish_replacement"
android:gravity="center"
android:text="@string/replacement_wish_day"

View File

@@ -21,6 +21,7 @@
android:layout_marginTop="14dp">
<TextView
android:id="@+id/lit_icon_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lit_icon"
@@ -65,6 +66,7 @@
android:background="@drawable/icon_gift_wall_no_data" />
<TextView
android:id="@+id/unlit_icon_hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"

View File

@@ -58,8 +58,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="2dp"
android:layout_marginEnd="10dp"
android:layout_marginEnd="5dp"
android:padding="5dp"
android:text="@string/last_month_winner_hint2"
android:textColor="#B74D0F"
android:textSize="11sp" />

View File

@@ -26,7 +26,7 @@
android:layout_width="50dp"
android:layout_height="20dp"
android:layout_marginTop="6dp"
android:textSize="11sp"
android:textSize="8sp"
android:background="@drawable/background_codex_item_btn"
android:gravity="center" />
</LinearLayout>

View File

@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="132dp"
android:layout_height="143dp"
android:layout_margin="5dp"
android:background="@mipmap/background_gift_already_wall"
android:orientation="vertical">
<ImageView
android:id="@+id/gift_img"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_width="63dp"
android:layout_height="63dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" />
android:layout_marginTop="17dp" />
<TextView
android:id="@+id/gift_title"
@@ -19,7 +19,19 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:gravity="center"
android:text="@string/instant_light"
android:textColor="#54618F"
android:textColor="#FFFFFF"
android:textSize="14sp" />
<TextView
android:id="@+id/gift_number"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2dp"
android:text="@string/instant_light"
android:textColor="#FFFFFF"
android:textSize="14sp" />
</LinearLayout>

View File

@@ -1,25 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="132dp"
android:layout_margin="5dp"
android:background="@mipmap/background_gift_without_wall"
android:orientation="vertical">
<ImageView
android:id="@+id/gift_img"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/gift_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:text="@string/instant_light"
android:textColor="#54618F"
android:textSize="14sp" />
</LinearLayout>
<ImageView
android:id="@+id/gift_img"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" />
<TextView
android:id="@+id/gift_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:text="@string/instant_light"
android:gravity="center"
android:textColor="#54618F"
android:textSize="14sp" />
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/background_gift_wall_masking">
<ImageView
android:layout_width="22dp"
android:layout_height="30dp"
android:layout_gravity="center"
android:src="@mipmap/background_gift_wall_lock" />
</FrameLayout>
</FrameLayout>

View File

@@ -128,15 +128,21 @@
android:text="@string/regular_bubble"
android:textColor="#6F43FF"
android:textSize="12sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/achievement_img_list"
<FrameLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginStart="8dp"
android:background="@drawable/background_achievement_details_list"
android:layout_marginTop="6dp"
android:layout_marginEnd="8dp" />
android:background="@drawable/background_achievement_details_list"
android:layout_marginEnd="8dp">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/achievement_img_list"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="match_parent" />
</FrameLayout>
<TextView
android:id="@+id/gift_details_btn2"

View File

@@ -130,7 +130,7 @@
<TextView
android:id="@+id/gift_details_btn"
android:layout_width="100dp"
android:layout_height="28dp"
android:layout_height="24dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="23dp"
android:background="@drawable/background_skip_button"

View File

@@ -42,7 +42,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="19dp"
android:layout_marginStart="75dp"
android:layout_marginTop="42dp"
android:layout_marginEnd="20dp"
android:layout_toStartOf="@+id/goto_room_view"

View File

@@ -15,7 +15,7 @@
<LinearLayout
android:layout_width="80dp"
android:layout_height="212dp"
android:layout_height="190dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="48dp"

View File

@@ -45,7 +45,7 @@
android:gravity="center"
android:text="领取"
android:textColor="#15151D"
android:textSize="12sp" />
android:textSize="10sp" />
</FrameLayout>
<TextView

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -62,7 +62,7 @@
<string name="edit_profile_update_nickname">ModifyName</string>
<string name="edit_profile_update_remarks">Modify remarks</string>
<string name="edit_profile_remarks">Please enter comments~</string>
<string name="edit_profile_update_sign">Signature modification</string>
<string name="edit_profile_update_sign">Signature</string>
<string name="edit_profile_sign">autograph</string>
<string name="bind_phone">Binding phone</string>
<string name="task1">TASK1</string>
@@ -176,7 +176,7 @@
<string name="guard_guard">Guard</string>
<string name="guard_week_con">Contribution this week</string>
<string name="guard_no_data">anchor are waiting at your guard!</string>
<string name="guard_tip_0">Let\'s open up a guard for our favorite anchor</string>
<string name="guard_tip_0">Turn on the guard for your favorite anchor!</string>
<string name="guard_tip_1">You are the current anchor\'s monthly guard \ n the guard date expires</string>
<string name="guard_tip_2">You are the current anchor\'s annual guardian \ n the guardian date expires</string>
<string name="guard_gift_tip">Special gift for annual guard</string>
@@ -754,8 +754,8 @@
<string name="encourage_give_text">Encourage the author of this dynamic article</string>
<string name="confirm_give">Confirm encouragement</string>
<string name="encourage_dynamic">Dynamic encouragement</string>
<string name="encourage_dynamic_list">Encouraging records</string>
<string name="encourage_dynamic">Rewards</string>
<string name="encourage_dynamic_list">Records</string>
<string name="encourage_list_nodata">The author hasn\'t given encouragement yet T_T</string>
@@ -858,7 +858,7 @@ Limited ride And limited avatar frame</string>
<string name="site_wide_news_hint1">Display messages on the whole station and jump to the current live room</string>
<string name="site_wide_news_hint2">Open noble king, emperor, super emperor to get free</string>
<string name="back">back</string>
<string name="go_nobility">to the nobles</string>
<string name="go_nobility">Proceed</string>
<string name="use_successfully">Use successfully</string>
<string name="use_live">Go to the live room</string>
<string name="search_history">search history</string>
@@ -956,9 +956,9 @@ Limited ride And limited avatar frame</string>
<string name="chat_chat">Chat</string>
<string name="lucky_angel">Congratulations %s have won %s in the Lucky Angel! The next lucky angel will be you!</string>
<string name="lucky_100">Congratulations on %s winning %s in Luck 100 %%! Go pass on the good luck!</string>
<string name="user_card_guard">Guardian group %s people</string>
<string name="user_card_guard">Guardian %s</string>
<string name="to_receive">receive</string>
<string name="to_complete">To complete</string>
<string name="to_complete">To finish</string>
<string name="already_collected">Already collected</string>
<string name="image_quality_selection">Image quality selection</string>
<string name="more_settings">More Settings</string>
@@ -1054,7 +1054,7 @@ Limited ride And limited avatar frame</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="anti_cheating_services">In order to provide you with one-click sharing service, our product integrates Mob+U-Share SDK, The Mob+SDK needs to collect your device Mac address, unique device identifier (1MEIandroid IDIDFAOPENUDIDGUID, SIM card IMSI information), and public social account information that you need to share in order to complete the one-click sharing service. And through the geographical location calibration report data accuracy, provide basic anti-cheating services. For the sake of your information security, we have made data security and confidentiality agreements with third-party SDK service providers, and these companies will strictly abide by our data privacy and security requirements. We will not share your personally identifiable information with them unless we have your consent. To facilitate you better understand/Mob + data types and USES, and how to protect your personal information, you can log on to https:www.mob.com aboutpolicy understand [Mob +] privacy policy).</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>
@@ -1249,39 +1249,69 @@ Limited ride And limited avatar frame</string>
<string name="lucky_red_envelope">%s drew %s in the lucky red envelope</string>
<string name="lucky_red_envelope_amount">number</string>
<string name="red_envelope_released_successfully">Red successfully</string>
<string name="me_edit_avatar_system">Select System Avatar</string>
<string name="me_edit_avatar_system_tip">This function needs to be used to use it after lv.5, please work hard to upgrade ~</string>
<string name="main_anchor_live_notify_info">No matter where you are, I am waiting for you in the live broadcast room ~</string>
<string name="main_anchor_live_notify_live">Watch</string>
<string name="live_notify_settings">LiveNotify</string>
<string name="leveling_points">%s experience upgrade,%s receive rewards</string>
<string name="reach_the_top">You have reached the highest level!</string>
<string name="nothing_in_the_package_yet">There\'s nothing in the package yet</string>
<string name="custom_quantity">Custom quantity</string>
<string name="custom_quantity">Enter count</string>
<string name="gift_wall">Gift wall</string>
<string name="has_been_lit">%s has been lit</string>
<string name="has_been_lit">Has been lit %s</string>
<string name="codex">Illustrated book</string>
<string name="unlit_icon">unlit</string>
<string name="all_service_champion">All service</string>
<string name="unlit_icon_hint">Love \\ \"ceremony \\\" at the beginning, \\ \"wall \\\" potential light temporarily no light</string>
<string name="lit_icon_hint">No unlit gifts yet</string>
<string name="instant_light">Instant light</string>
<string name="honorary_achievement">Honorary achievement</string>
<string name="lit_icon">Lit</string>
<string name="unlit_icon">Not lit up</string>
<string name="all_service_champion">Platform naming</string>
<string name="unlit_icon_hint">Not yet lit</string>
<string name="lit_icon_hint">No more gifts yet</string>
<string name="instant_light">Light up</string>
<string name="honorary_achievement">Honor achievement</string>
<string name="lit_icon">Lit up</string>
<string name="gift_wall_entrance">Gift Wall Entrance</string>
<string name="gift_wall_entrance1">Personal profile card, personal homepage, live streaming room header button, and by clickingView personal and person\'s profile cards and homepage.</string>
<string name="gift_wall_entrance2">Lighting up gifts</string>
<string name="gift_wall_entrance3">On the gift panel and click on the gift wall of the recipient to light up the gift for gifting, Illuminate the corresponding gift icon in the recipient\'s gift wall. Only diamond gifts Can light up gifts. When the gifts in the event are compared to the gifts in the gift wall and guidebook When the same, give the same gift, first light up the event, gift wall, and picture guide A gift for.</string>
<string name="gift_wall_entrance4">Named gift</string>
<string name="gift_wall_entrance3">At the beginning of the \\\"ritual\\\" of love, the \\\"wall\\\" will be lit up, but it will not be lit up yet</string>
<string name="gift_wall_entrance4">Naming gift</string>
<string name="gift_wall_entrance5">Within each cycle, if a certain amount of diamonds are given as a single or cumulative gift Display the most gifts given to a recipient on the gift icon Gift person avatar, clicking on the avatar can also directly reach the giver\'s homepage of the named gift.</string>
<string name="gift_wall_entrance6">When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement</string>
<string name="gift_wall_entrance7">Medal of Achievement</string>
<string name="gift_wall_entrance8_1">Medal of achievement</string>
<string name="gift_wall_entrance8_1">Medal of Achievement</string>
<string name="gift_wall_entrance8_2">Currently, there are three achievements, namely A cloud of good friends A rich party, Very rich</string>
<string name="gift_wall_entrance8_3">A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou</string>
<string name="gift_wall_entrance8_4">A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement;</string>
<string name="gift_wall_entrance8_5">Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated.</string>
<string name="gift_wall_entrance8_6">The current user has a total of 4 achievements, namely being rich and capricious, sharing rain and dew, and giving gifts Gift machines, lighting masters.</string>
<string name="gift_wall_entrance8_7">Rich and capricious: Accumulated gifts worth 50K, 2M10M, 100M, 300M, light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_8">Rain and dew evenly: the cumulative Style quantity of gifts given to anchors reaches 10, 20, 50, 100200, can achieve success;</string>
<string name="gift_wall_entrance8_9">gift machine: The cumulative number of gifts given reaches 200, 1000, 10K100K1M,light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_10">lighting master: The number of unlocked Gift Walls has reached 10, 30, 50 At 100 and 200, light up the corresponding achievements separately.</string>
<string name="gift_wall_entrance8_7">Rich and willful: the cumulative number of gift value diamonds sent reaches 10M to light up this achievement;</string>
<string name="gift_wall_entrance8_8">Equal love: The cumulative number of people who have given gifts to the anchor reaches 50 to light up this achievement;</string>
<string name="gift_wall_entrance8_9">Gift machine: when the accumulated number of gifts reaches 1000, this achievement will be activated;</string>
<string name="gift_wall_entrance8_10">Lighting Master: Unlock [Gift Wall] reaches 100 to light up this achievement.</string>
<string name="regular_bubble">rule</string>
<string name="unlit_icon_hint2">The current event has not sent any gifts</string>
<string name="rule_introduction">Rule introduction</string>
<string name="gift_details_hint">Gift details</string>
<string name="vacant_position_awaits">Waiting</string>
<string name="distance_naming">It takes %sdiamonds to get the title</string>
<string name="send_hem">Send out</string>
<string name="winner_of_the_month">New winners</string>
<string name="last_month_winner">Past winners</string>
<string name="last_month_winner_hint">Past winners get a one-month exclusive champion skin</string>
<string name="last_month_winner_hint2">Recently lit</string>
<string name="received_wall">Hained</string>
<string name="received_wall2">To light up</string>
<string name="wall_honor">Honor Wall</string>
<string name="achievement_details">Achievement Details</string>
<string name="title_anchor">Title host</string>
<string name="the_title_financier">Title sponsor</string>
<string name="the_title_financier2">naming</string>
<string name="the_title_financier3">Please enter a custom quantity</string>
<string name="the__gifts_in_the_studio">Please make gifts in the studio</string>
<string name="been_sent">Been sent out</string>
<string name="been_sent_must">Send out</string>
<string name="sett_rigger">"At least 2 types of gifts can be set to trigger the wish list special effect gift. "</string>
<string name="cancel_ca">cancel</string>
<string name="settings_ser">settings</string>
<string name="too_many_gifts">Too many gifts</string>
</resources>

View File

@@ -1080,7 +1080,7 @@
<string name="terms_and_policies">條款和政策</string>
<string name="treat_and_protect">歡迎來到PD LIVE對於您的個人信息及隱私我們將採用最高標準對待和保護。</string>
<string name="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
<string name="anti_cheating_services">為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDKMob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息以便完成一鍵分享服務。並通過地理位置校準報表數據準確性提供基礎反作弊服務。為了您的信息安全我們已與第三方SDK服務商進行數據安全保密約定這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。</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>
@@ -1244,6 +1244,12 @@
<string name="lucky_red_envelope">" %s 在 好運紅包 中抽到了 %s"</string>
<string name="lucky_red_envelope_amount">数量</string>
<string name="red_envelope_released_successfully">红包发布成功</string>
<string name="me_edit_avatar_system">選擇系統頭像</string>
<string name="me_edit_avatar_system_tip">該功能需升至Lv.5后使用,請努力升級吧~</string>
<string name="main_anchor_live_notify_info">無論你在哪裏,我都在直播間等你~</string>
<string name="main_anchor_live_notify_live">圍觀</string>
<string name="live_notify_settings">開播通知</string>
<string name="leveling_points">升級還需%s經驗值升至%s即可領取獎勵</string>
<string name="reach_the_top">恭喜,你已達到最高等級</string>
<string name="nothing_in_the_package_yet">包裹中暫無物品哦</string>
@@ -1254,27 +1260,52 @@
<string name="honorary_achievement">榮譽成就</string>
<string name="lit_icon">已點亮</string>
<string name="unlit_icon">未點亮</string>
<string name="all_service_champion">全服冠</string>
<string name="unlit_icon_hint">愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮</string>
<string name="all_service_champion">全服冠</string>
<string name="unlit_icon_hint">愛\“禮\”伊始,\“墻\”勢點亮 暫無點亮</string>
<string name="lit_icon_hint">暂无未点亮礼物哦</string>
<string name="instant_light">立即點亮</string>
<string name="gift_wall_entrance">禮物墻入口</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance2">點亮禮物</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮,即點亮收禮人禮物牆中對應的禮物圖標。 只有鑽石送禮可點亮禮物。 當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則送同一個禮物,先點亮活動、禮物牆、圖鑒的禮物。</string>
<string name="gift_wall_entrance4">冠名禮物</string>
<string name="gift_wall_entrance5">每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。</string>
<string name="gift_wall_entrance6">當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。</string>
<string name="gift_wall_entrance7">榮譽成就</string>
<string name="gift_wall_entrance8_1">成就</string>
<string name="gift_wall_entrance8_1">成就</string>
<string name="gift_wall_entrance8_2">當前主播共有3個成就分別是勝友如雲、富甲一方、腰纏萬貫。</string>
<string name="gift_wall_entrance8_3">勝友如雲當收到的禮物款數達到20、30、50、100、200款時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_4">富甲一方收到的單款禮物價格超過50000鑽時即可點亮該成就</string>
<string name="gift_wall_entrance8_5">腰纏萬貫當收到100款價格超過3000鑽的禮物時即可點亮該成就。</string>
<string name="gift_wall_entrance8_6">當前用戶共有4個成就分別是有錢任性、雨露均沾、送禮機器、點燈大師。</string>
<string name="gift_wall_entrance8_7">有錢任性:纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_8">雨露均沾:纍計送禮給主播人數達到10、20、50、100、200時分別點亮對應的成就;</string>
<string name="gift_wall_entrance8_9">送禮機器:纍計贈送禮物個數達到200、1000、10K、00K、1M時分別點亮對應的成就;</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就</string>
<string name="gift_wall_entrance8_7">有錢任性:纍計送出禮物價值鉆石數量達到10M點亮该成就</string>
<string name="gift_wall_entrance8_8">雨露均沾:纍計送禮給主播人數達到50點亮该成就;</string>
<string name="gift_wall_entrance8_9">送禮機器:纍計贈送禮物個數達到1000點亮该成就;</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到100點亮该成就</string>
<string name="regular_bubble">規則</string>
<string name="unlit_icon_hint2">当前活动暂未送出任何礼物哦</string>
<string name="rule_introduction">規則介紹</string>
<string name="gift_details_hint">禮物詳情</string>
<string name="vacant_position_awaits">虛位以待</string>
<string name="distance_naming">距離冠名還需%s鑽</string>
<string name="send_hem">送TA</string>
<string name="winner_of_the_month">本月得主</string>
<string name="last_month_winner">上月得主</string>
<string name="last_month_winner_hint">上月奪得最終禮物冠名權用戶將獲得該禮物一個月專屬冠名皮膚</string>
<string name="last_month_winner_hint2">近期點亮</string>
<string name="received_wall">已獲得</string>
<string name="received_wall2">去點亮</string>
<string name="wall_honor">榮譽墻</string>
<string name="achievement_details">成就詳情</string>
<string name="title_anchor">冠名主播:</string>
<string name="the_title_financier">冠名金主:</string>
<string name="the_title_financier2">冠名</string>
<string name="the_title_financier3">請輸入自定義數量</string>
<string name="the__gifts_in_the_studio">請在直播間內進行送禮</string>
<string name="been_sent">已送出</string>
<string name="been_sent_must">立即送出</string>
<string name="sett_rigger">最低設置2種類型禮物才能觸發心愿單特效禮物。</string>
<string name="cancel_ca">不再設置</string>
<string name="settings_ser">去設置</string>
<string name="too_many_gifts">重複添加禮物</string>
</resources>

View File

@@ -1080,7 +1080,7 @@
<string name="terms_and_policies">條款和政策</string>
<string name="treat_and_protect">歡迎來到PD LIVE對於您的個人信息及隱私我們將採用最高標準對待和保護。</string>
<string name="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
<string name="anti_cheating_services">為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDKMob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息以便完成一鍵分享服務。並通過地理位置校準報表數據準確性提供基礎反作弊服務。為了您的信息安全我們已與第三方SDK服務商進行數據安全保密約定這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。</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>
@@ -1243,6 +1243,12 @@
<string name="lucky_red_envelope">" %s 在 好運紅包 中抽到了 %s"</string>
<string name="lucky_red_envelope_amount">数量</string>
<string name="red_envelope_released_successfully">红包发布成功</string>
<string name="me_edit_avatar_system">選擇系統頭像</string>
<string name="me_edit_avatar_system_tip">該功能需升至Lv.5后使用,請努力升級吧~</string>
<string name="main_anchor_live_notify_info">無論你在哪裏,我都在直播間等你~</string>
<string name="main_anchor_live_notify_live">圍觀</string>
<string name="live_notify_settings">開播通知</string>
<string name="leveling_points">升級還需%s經驗值升至%s即可領取獎勵</string>
<string name="reach_the_top">恭喜,你已達到最高等級</string>
<string name="nothing_in_the_package_yet">包裹中暫無物品哦</string>
@@ -1253,27 +1259,52 @@
<string name="honorary_achievement">榮譽成就</string>
<string name="lit_icon">已點亮</string>
<string name="unlit_icon">未點亮</string>
<string name="all_service_champion">全服冠</string>
<string name="unlit_icon_hint">愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮</string>
<string name="all_service_champion">全服冠</string>
<string name="unlit_icon_hint">愛\“禮\”伊始,\“墻\”勢點亮 暫無點亮</string>
<string name="lit_icon_hint">暂无未点亮礼物哦</string>
<string name="instant_light">立即點亮</string>
<string name="gift_wall_entrance">禮物墻入口</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance2">點亮禮物</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮,即點亮收禮人禮物牆中對應的禮物圖標。 只有鑽石送禮可點亮禮物。 當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則送同一個禮物,先點亮活動、禮物牆、圖鑒的禮物。</string>
<string name="gift_wall_entrance4">冠名禮物</string>
<string name="gift_wall_entrance5">每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。</string>
<string name="gift_wall_entrance6">當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。</string>
<string name="gift_wall_entrance7">榮譽成就</string>
<string name="gift_wall_entrance8_1">成就</string>
<string name="gift_wall_entrance8_1">成就</string>
<string name="gift_wall_entrance8_2">當前主播共有3個成就分別是勝友如雲、富甲一方、腰纏萬貫。</string>
<string name="gift_wall_entrance8_3">勝友如雲當收到的禮物款數達到20、30、50、100、200款時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_4">富甲一方收到的單款禮物價格超過50000鑽時即可點亮該成就</string>
<string name="gift_wall_entrance8_5">腰纏萬貫當收到100款價格超過3000鑽的禮物時即可點亮該成就。</string>
<string name="gift_wall_entrance8_6">當前用戶共有4個成就分別是有錢任性、雨露均沾、送禮機器、點燈大師。</string>
<string name="gift_wall_entrance8_7">有錢任性:纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_8">雨露均沾:纍計送禮給主播人數達到10、20、50、100、200時分別點亮對應的成就;</string>
<string name="gift_wall_entrance8_9">送禮機器:纍計贈送禮物個數達到200、1000、10K、00K、1M時分別點亮對應的成就;</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就</string>
<string name="gift_wall_entrance8_7">有錢任性:纍計送出禮物價值鉆石數量達到10M點亮该成就</string>
<string name="gift_wall_entrance8_8">雨露均沾:纍計送禮給主播人數達到50點亮该成就;</string>
<string name="gift_wall_entrance8_9">送禮機器:纍計贈送禮物個數達到1000點亮该成就;</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到100點亮该成就</string>
<string name="regular_bubble">規則</string>
<string name="unlit_icon_hint2">当前活动暂未送出任何礼物哦</string>
<string name="rule_introduction">規則介紹</string>
<string name="gift_details_hint">禮物詳情</string>
<string name="vacant_position_awaits">虛位以待</string>
<string name="distance_naming">距離冠名還需%s鑽</string>
<string name="send_hem">送TA</string>
<string name="winner_of_the_month">本月得主</string>
<string name="last_month_winner">上月得主</string>
<string name="last_month_winner_hint">上月奪得最終禮物冠名權用戶將獲得該禮物一個月專屬冠名皮膚</string>
<string name="last_month_winner_hint2">近期點亮</string>
<string name="received_wall">已獲得</string>
<string name="received_wall2">去點亮</string>
<string name="wall_honor">榮譽墻</string>
<string name="achievement_details">成就詳情</string>
<string name="title_anchor">冠名主播:</string>
<string name="the_title_financier">冠名金主:</string>
<string name="the_title_financier2">冠名</string>
<string name="the_title_financier3">請輸入自定義數量</string>
<string name="the__gifts_in_the_studio">請在直播間內進行送禮</string>
<string name="been_sent">已送出</string>
<string name="been_sent_must">立即送出</string>
<string name="sett_rigger">最低設置2種類型禮物才能觸發心愿單特效禮物。</string>
<string name="cancel_ca">不再設置</string>
<string name="settings_ser">去設置</string>
<string name="too_many_gifts">重複添加禮物</string>
</resources>

View File

@@ -20,7 +20,7 @@
<string name="bonus_sign">立即簽到</string>
<string name="bonus_sign_1">已連續簽到</string>
<string name="bonus_day"></string>
<string name="beauty_init_error">美顏初始化常,無法使用</string>
<string name="beauty_init_error">美顏初始化常,無法使用</string>
<string name="cash">提現帳戶</string>
<string name="cash_account_empty">您當前還沒設定提現帳戶</string>
<string name="cash_add_account">添加提現帳戶</string>
@@ -34,7 +34,7 @@
<string name="cash_type_ali">支付寶</string>
<string name="cash_type_wx">微信</string>
<string name="cash_type_bank">銀行卡</string>
<string name="cash_delete">是否要除該帳戶?</string>
<string name="cash_delete">是否要除該帳戶?</string>
<string name="cash_record">提現記錄</string>
<string name="coin_give">贈送</string>
<string name="coin_balance">帳戶餘額</string>
@@ -58,17 +58,17 @@
<string name="task1">任務1</string>
<string name="task2">任務2</string>
<string name="task3">任務3</string>
<string name="give_a_free_gift">送一\n免费礼</string>
<string name="give_a_free_gift">送一\n免費禮</string>
<string name="incomplete">未完成</string>
<string name="complete">完成</string>
<string name="follow_anchor">任意關注\n一名主播</string>
<string name="light_up_room">雙擊點亮\n 直播間</string>
<string name="completing_mission">恭喜你完成任務</string>
<string name="get"></string>
<string name="get"></string>
<string name="only_one">這個禮物只能送一個哦~</string>
<string name="edit_profile_birthday">生日</string>
<string name="edit_profile_sex">性別</string>
<string name="apply_for_lianmai">連麥</string>
<string name="apply_for_lianmai">連麥</string>
<string name="cancel_application">取消申請</string>
<string name="close_mic">關閉連麥</string>
<string name="quit_mic">退出連麥</string>
@@ -125,7 +125,7 @@
<string name="guard_my">我的</string>
<string name="diamond">鑽石</string>
<string name="guard_guard">主播守</string>
<string name="guard_guard">主播守</string>
<string name="guard_week_con">本周貢獻</string>
<string name="guard_no_data">主播正在等待您的守護!</string>
<string name="guard_tip_0">快去為喜歡的主播開通守護吧</string>
@@ -193,12 +193,12 @@
<string name="login_tip_1">登入即代表同意</string>
<string name="login_tip_2">服務和隱私條款</string>
<string name="login_other_type">其他登入管道</string>
<string name="login_tip_3">注册登入後體驗更精彩!</string>
<string name="login_tip_3">註冊登入後體驗更精彩!</string>
<string name="login_input_phone">請輸入手機號碼</string>
<string name="login_input_pwd">請輸入密碼</string>
<string name="login_immediately_login">立即登入</string>
<string name="login_ing">登入中</string>
<string name="login_immediately_register">立即注册</string>
<string name="login_immediately_register">立即註冊</string>
<string name="login_forget_pwd">忘記密碼</string>
<string name="login_phone_error">請輸入正確的手機號碼</string>
<string name="login_auth_ing">正在授權登入</string>
@@ -219,7 +219,7 @@
<string name="live_class">選擇頻道</string>
<string name="live_class_choose">選擇直播頻道</string>
<string name="live_class_tip_title">注意選擇適合自己的頻道。</string>
<string name="live_class_tip">直播過程中,若運營人員發現選擇的頻道和直播內容不相符的情,會調整您的直播頻道。</string>
<string name="live_class_tip">直播過程中,若運營人員發現選擇的頻道和直播內容不相符的情,會調整您的直播頻道。</string>
<string name="live_set_pwd">請設定房間密碼</string>
<string name="live_set_fee">請設定收費金額\n收益以直播結束顯示為准</string>
<string name="live_set_pwd_empty">請設定房間密碼</string>
@@ -424,17 +424,17 @@
<string name="profit_tip_2">可提現%1$s數</string>
<string name="profit_tip_3">輸入要選取的%1$s數</string>
<string name="profit_cash">立即提現</string>
<string name="reg_register">注册</string>
<string name="reg_register">註冊</string>
<string name="reg_input_phone">請輸入您的手機號</string>
<string name="reg_input_code">請輸入驗證碼</string>
<string name="reg_input_pwd_1">請填寫密碼</string>
<string name="reg_input_pwd_2">請確認密碼</string>
<string name="reg_input_pwd_3">填寫邀請碼(非必填)</string>
<string name="reg_register_and_login">注册並登入</string>
<string name="reg_register_and_login">註冊並登入</string>
<string name="reg_get_code">獲取驗證碼</string>
<string name="reg_get_code_again">重新獲取</string>
<string name="reg_pwd_error">密碼不一致</string>
<string name="reg_register_ing">注册</string>
<string name="reg_register_ing">註冊</string>
<string name="red_pack_1">直播間紅包</string>
<string name="red_pack_2">給當前直播間觀眾發紅包</string>
<string name="red_pack_3">拼手氣紅包</string>
@@ -516,7 +516,7 @@
<string name="video_process_failed">視頻預處理失敗</string>
<string name="video_process_cancel">視頻預處理取消</string>
<string name="video_processing">處理中</string>
<string name="video_edit_status_error">狀態常,停止編輯</string>
<string name="video_edit_status_error">狀態常,停止編輯</string>
<string name="video_choose_music">選擇音樂</string>
<string name="video_search_music">蒐索歌曲名稱</string>
<string name="video_music_hot">熱門歌曲</string>
@@ -533,7 +533,7 @@
<string name="video_process_2">視頻生成中</string>
<string name="video_generate_success">生成視頻成功</string>
<string name="video_generate_failed">生成視頻失敗</string>
<string name="video_give_up_pub">是否放發佈此條視頻</string>
<string name="video_give_up_pub">是否放發佈此條視頻</string>
<string name="video_no_local">未找到本地視頻</string>
<string name="video_local">本地視頻</string>
<string name="video_duration_error">視頻時長不符合要求</string>
@@ -559,12 +559,12 @@
<string name="video_report_tip_3">請選擇舉報理由</string>
<string name="video_report_tip_4">舉報成功</string>
<string name="video_scroll_top">已經到頂了哦</string>
<string name="video_record_delete_last">確定除上一段視頻?</string>
<string name="video_record_delete_last">確定除上一段視頻?</string>
<string name="video_edit_exit">是否退出視頻編輯</string>
<string name="add">添加</string>
<string name="accept">接受</string>
<string name="all">全部</string>
<string name="alumb"></string>
<string name="alumb"></string>
<string name="cancel">取消</string>
<string name="camera">相機</string>
<string name="pic_choose_look">圖片選取/預覽</string>
@@ -577,18 +577,18 @@
<string name="cannot_follow_self">無法關注自己哦~</string>
<string name="dialog_tip">提示</string>
<string name="download">下載</string>
<string name="delete"></string>
<string name="delete"></string>
<string name="end">結束</string>
<string name="hot">熱門</string>
<string name="day_rank">日榜</string>
<string name="week_rank">周榜</string>
<string name="live_audience">觀衆</string>
<string name="rosy">红润</string>
<string name="rosy">紅潤</string>
<string name="skin">美白</string>
<string name="smooth">磨皮</string>
<string name="big_eyes">大眼</string>
<string name="slim_face"></string>
<string name="thin_face"></string>
<string name="slim_face"></string>
<string name="thin_face"></string>
<string name="chin">下巴</string>
<string name="nose">鼻子</string>
<string name="lips">嘴唇</string>
@@ -596,24 +596,24 @@
<string name="teeth">白牙</string>
<string name="light">自然</string>
<string name="white">白皙</string>
<string name="white1"></string>
<string name="white1"></string>
<string name="jp">日系</string>
<string name="bw">黑白</string>
<string name="soft">柔和</string>
<string name="warmth">暖光</string>
<string name="retro"></string>
<string name="retro"></string>
<string name="flower">花香</string>
<string name="easy"></string>
<string name="vitality"></string>
<string name="warm"></string>
<string name="easy"></string>
<string name="vitality"></string>
<string name="warm"></string>
<string name="bright">明亮</string>
<string name="deep">深海</string>
<string name="sunset"></string>
<string name="cure"></string>
<string name="filter">滤镜</string>
<string name="sunset"></string>
<string name="cure"></string>
<string name="filter">濾鏡</string>
<string name="preset">美型</string>
<string name="beauty"></string>
<string name="cute"></string>
<string name="beauty"></string>
<string name="cute"></string>
<string name="goddess">女神</string>
<string name="gxzb">個性裝扮</string>
<string name="glamour_list">魅力榜</string>
@@ -680,7 +680,7 @@
<string name="live_level_chat_limit">發言,需要到達%1$s級</string>
<string name="live_location_close">開定位</string>
<string name="live_location_close_2">堅決關閉</string>
<string name="live_location_close_3">關閉定位,直播不會被附近的人看到,直播間人數可能會少,確認關閉嗎?</string>
<string name="live_location_close_3">關閉定位,直播不會被附近的人看到,直播間人數可能會少,確認關閉嗎?</string>
<string name="mars">火星</string>
<string name="shop">商城</string>
<string name="detail">明細</string>
@@ -698,7 +698,7 @@
<string name="wallet_tip_5">未選中支付方式</string>
<string name="wallet_coin_name">我的%1$s</string>
<string name="charge">充值</string>
<string name="receive"></string>
<string name="receive"></string>
<string name="mesg">消息中心</string>
<string name="owning_guild">所屬公會</string>
<string name="live_ktgz">開通貴族</string>
@@ -715,7 +715,7 @@
<string name="chat_charge_pay">立即支付</string>
<string name="live_user_level">使用者等級</string>
<string name="live_user_level_anchor">主播等級</string>
<string name="live_user_card_level">等級</string>
<string name="live_user_card_level">等級</string>
<string name="live_noble_level_anchor">貴族等級</string>
<string name="live_noble_fens_anchor">粉絲團</string>
<string name="live_honor_number_anchor">榮譽墻</string>
@@ -728,7 +728,7 @@
<string name="live_send_buy_zuoji_1">購買了座騎</string>
<string name="live_send_buy_liang_name_1">購買了靚號</string>
<string name="live_send_buy_vip_1">VIP</string>
<string name="live_random">随机PK</string>
<string name="live_random">隨機PK</string>
<string name="live_wishlist">心願單</string>
<string name="live_zg">娛樂整蠱</string>
<string name="live_dr">多人PK</string>
@@ -745,7 +745,7 @@
<string name="guard_tip_day3">您是當前主播的年守護</string>
<string name="guardiandate">守護日期截止到:%s</string>
<string name="favoriteanchor">您喜的主播通守</string>
<string name="favoriteanchor">您喜的主播通守</string>
<string name="theguardianof">成爲%s的守護</string>
@@ -765,7 +765,7 @@
<string name="register_tip_3">隱私政策</string>
<string name="live_medal_des2">每日禮包</string>
<string name="live_medal_des3">貴賓座席</string>
<string name="live_medal_des5">排行</string>
<string name="live_medal_des5">排行</string>
<string name="live_medal_des4">送禮獲得粉絲微章</string>
<string name="wishlist_title3">當日設置的心願會在當天24:00失效</string>
<string name="live_item_add_gift">添加禮物和數量</string>
@@ -777,7 +777,7 @@
<string name="lives_state">直播中</string>
<string name="rest_state">休息中</string>
<string name="live_close_follow">托拜托,可以關注一下我嗎?</string>
<string name="live_close_follow">託拜託,可以關注一下我嗎?</string>
<string name="live_close_follow_exit">關注並退出</string>
<string name="live_close_exit">直接退出</string>
<string name="user">用戶</string>
@@ -816,10 +816,10 @@
<string name="now_noble">當前貴族: </string>
<string name="now_noble_time">到期時間: </string>
<string name="black_succer">已加入黑名</string>
<string name="black_error">加入黑名单失败</string>
<string name="black_succer_more">移除黑名成功</string>
<string name="black_error_more">移除黑名单失败</string>
<string name="black_succer">已加入黑名</string>
<string name="black_error">加入黑名單失敗</string>
<string name="black_succer_more">移除黑名成功</string>
<string name="black_error_more">移除黑名單失敗</string>
<string name="reply">回復</string>
<string name="input_content">回復評論</string>
@@ -844,9 +844,9 @@
<string name="user_task_text3">解鎖直播間發言功能</string>
<string name="user_task_but">前置任務</string>
<string name="user_login_facebook">使用Facebook登</string>
<string name="user_login_twitter">使用Twitter登</string>
<string name="user_login_google">使用Google登</string>
<string name="user_login_facebook">使用Facebook登</string>
<string name="user_login_twitter">使用Twitter登</string>
<string name="user_login_google">使用Google登</string>
<string name="user_login_outtime">請求超時,請稍後再試。</string>
@@ -893,12 +893,12 @@
<string name="floating_screen">飄屏彈幕</string>
<string name="whole_station_horn">全站喇叭</string>
<string name="whole_station_horn_hint">可用次數:%s 注每月1日凌晨4點更新次數</string>
<string name="cannot_be_empty">容不可</string>
<string name="cannot_be_empty">容不可</string>
<string name="site_wide_news">貴族專屬全站消息</string>
<string name="site_wide_news_hint1">全站顯示消息並可跳轉到當前直播間</string>
<string name="site_wide_news_hint2">开通贵族国王、皇帝、超皇帝免费获</string>
<string name="site_wide_news_hint2">開通貴族國王、皇帝、超皇帝免費獲</string>
<string name="back">返回</string>
<string name="go_nobility">前往</string>
<string name="go_nobility">前往</string>
<string name="use_successfully">使用成功</string>
<string name="use_live">前往直播間</string>
<string name="search_history">搜索歷史</string>
@@ -907,7 +907,7 @@
<string name="anchor_more">更多</string>
<string name="wonderful_live">精彩直播</string>
<string name="recommended_for_you">為您推薦</string>
<string name="fun_games">趣味游戏</string>
<string name="fun_games">趣味遊戲</string>
<string name="value_added_benefits">增值權益</string>
<string name="fan_club">粉絲團</string>
<string name="activity_center">活動中心</string>
@@ -931,7 +931,7 @@
<string name="viscount">子爵</string>
<string name="marquis">侯爵</string>
<string name="duke">公爵</string>
<string name="king"></string>
<string name="king"></string>
<string name="emperor">皇帝</string>
<string name="better_emperor">超皇</string>
<string name="can_not_go">無法前往神秘人的個人主頁。</string>
@@ -942,21 +942,21 @@
<string name="try_again_later">數據加載失敗,請稍後再試</string>
<string name="open_noble2">開通了</string>
<string name="enough_speakers">喇叭數量不足</string>
<string name="order_query">订单查询</string>
<string name="order_query_success">订单无异</string>
<string name="order_query">訂單查詢</string>
<string name="order_query_success">訂單無異</string>
<string name="login_invalid">登錄失效,請重新登錄</string>
<string name="login_wait">請稍後</string>
<string name="slide_settings">滑動設置</string>
<string name="up_slide_settings">上下滑動切換直播間</string>
<string name="live_say_something_a">\@用户昵称\t\t你好啊</string>
<string name="oline_list">线列表</string>
<string name="live_say_something_a">\@用戶昵稱\t\t你好啊</string>
<string name="oline_list">列表</string>
<string name="search_want">搜索想要@的人</string>
<string name="online_audience">在線觀眾</string>
<string name="audience">觀眾</string>
<string name="cannot_yourself">無法@自己</string>
<string name="total_star_value">總星值</string>
<string name="number_of_people_assisted">助力人數</string>
<string name="star_change">%s星挑</string>
<string name="star_change">%s星挑</string>
<string name="star_success">恭喜 %s完成了%s %s星 挑戰,快去一睹主播芳容吧!</string>
<string name="star"></string>
<string name="small_window_settings">小窗播放設置</string>
@@ -966,13 +966,13 @@
<string name="system_window">APP全應用小窗播放</string>
<string name="system_window_hint">在其他應用上及所有界面显示小窗\n需打開懸浮窗權限。</string>
<string name="to_open_the">前往打開</string>
<string name="do_you_like">不喜歡小窗播放\n可以在「個人中心」-「設定」中關閉</string>
<string name="do_you_like">不喜歡小窗播放\n可以在「個人中心」-「設定」中關閉</string>
<string name="to_set_up">去設置</string>
<string name="know_the">知道了</string>
<string name="individual_set">個人設定</string>
<string name="reward">獎勵</string>
<string name="change_the_password">修改密碼</string>
<string name="blacklist">黑名</string>
<string name="blacklist">黑名</string>
<string name="alerts">消息通知</string>
<string name="studio_gift_effects">屏蔽直播間禮物特效</string>
<string name="studio_ride_effects">屏蔽直播間座駕特效</string>
@@ -988,7 +988,7 @@
<string name="image_quality_selection">畫質選擇</string>
<string name="more_settings">更多設置</string>
<string name="moer">查看更多</string>
<string name="gift_way">物正在取中...</string>
<string name="gift_way">物正在取中...</string>
<string name="start_pk">開始PK</string>
<string name="number_of_remaining_times">剩餘次數:%s</string>
<string name="confirmed_to_proceed">是否確認進行多人PK確認後扣除1點次數當日剩餘次數: %s</string>
@@ -997,9 +997,9 @@
<string name="pk_time">時間 %s</string>
<string name="random_pk_dialog_apply">接受</string>
<string name="random_pk_dialog_refuse"></string>
<string name="random_pk_dialog_refuse_again">持拒</string>
<string name="random_pk_dialog_title">随机PK提示</string>
<string name="random_pk_dialog_refuse"></string>
<string name="random_pk_dialog_refuse_again">持拒</string>
<string name="random_pk_dialog_title">隨機PK提示</string>
<string name="speech_robot_setup">自動發言機器人設置</string>
<string name="robot_switch">機器人開關</string>
@@ -1036,7 +1036,7 @@
<string name="stick_to_choice">堅持選擇</string>
<string name="net_hint">網絡提示</string>
<string name="net_hint2">系統監測到您的網絡不穩定,設備內存不足將會影響到您的直播流暢度,因此建議您選擇流暢清晰度。</string>
<string name="check_the_new_version">查新版本</string>
<string name="check_the_new_version">查新版本</string>
<string name="discover_a_new_version">發現新版本,點此更新</string>
<string name="latest_version">已是最新版本</string>
<string name="updating">更新中</string>
@@ -1059,7 +1059,7 @@
<string name="live_data_attention_rate">關注轉化率</string>
<string name="live_data_fan_group">新增粉絲團</string>
<string name="live_data_fan_group_rate">粉絲團轉化率</string>
<string name="live_data_loading">中…</string>
<string name="live_data_loading">中…</string>
<string name="yoursystemisolder">由於您的系統較老,我們自動為您屏蔽了禮物及座駕特效,可在「設置中心」手動打開。</string>
<string name="net_error">抱歉!出錯了!</string>
@@ -1068,19 +1068,19 @@
<string name="more_day_to">再簽到1天即可獲得額外獎勵。</string>
<string name="sign_in_to_the_center">「簽到中心」</string>
<string name="go_to_the">快前往「簽到中心」獲得額外獎勵吧!</string>
<string name="sign_in_center">到中心</string>
<string name="to_top">返回首</string>
<string name="go_to_the_sign">前往到中心</string>
<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="customer_service2">無法登陸?點此聯繫客服</string>
<string name="next_step_is_consent">進入下一步即代表同意</string>
<string name="user_protocol2">協議</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="install_the_application">詳情請您閱讀以下安裝應用程序的消息:</string>
<string name="anti_cheating_services">為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDKMob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息以便完成一鍵分享服務。並通過地理位置校準報表數據準確性提供基礎反作弊服務。為了您的信息安全我們已與第三方SDK服務商進行數據安全保密約定這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。</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>
@@ -1091,7 +1091,7 @@
<string name="layout_live_anchor_say_ready_title">女神說</string>
<string name="say_something3">說點什麽吧...</string>
<string name="come_hint">%s </string>
<string name="come_hint">%s </string>
<string name="day_wish">日心願</string>
<string name="zhou_xin">周心願</string>
<string name="lunar_wish">月心願</string>
@@ -1107,8 +1107,8 @@
<string name="replacement_reset_confirmed_hint">重置後將會清空當前心願單列表\n無論心願單是否完成</string>
<string name="replacement_reset_confirmed_sure">確定重置</string>
<string name="replacement_reset_confirmed_cancel">返回列表</string>
<string name="replacement_reset_confirmed_cancel2">是否保存前心愿</string>
<string name="replacement_reset_confirmed_cancel3">前心愿未保存</string>
<string name="replacement_reset_confirmed_cancel2">是否保存前心愿</string>
<string name="replacement_reset_confirmed_cancel3">前心愿未保存</string>
<string name="replacement_reset_confirmed_cancel4">不保存</string>
<string name="live_use_discount_content">您有一張%s是否使用使用後開通花費鉆石%s返還金豆%s</string>
@@ -1119,10 +1119,10 @@
<string name="live_language_setting">語言設定</string>
<string name="traditional_chinese">繁體中文</string>
<string name="add_gift2">添加禮物、貴族、守護心願</string>
<string name="heat_add">度加成</string>
<string name="must_hint">最多只能置10</string>
<string name="heat_add">度加成</string>
<string name="must_hint">最多只能置10</string>
<string name="live_room_chat_fount_size_low"></string>
<string name="live_room_chat_fount_size_def"></string>
<string name="live_room_chat_fount_size_def"></string>
<string name="live_room_chat_fount_size_high"></string>
<string name="dialog_live_fount_title">選擇字號大小</string>
<string name="dialog_fount_submit">確認</string>
@@ -1139,9 +1139,9 @@
<string name="chat_prompt9">新活動、系統消息</string>
<string name="chat_prompt10">開播通知</string>
<string name="chat_prompt11">開啟後獲得直播通知</string>
<string name="PK_Ladder_Race">PK天梯</string>
<string name="PK_Ladder_Race">PK天梯</string>
<string name="party_studio">是否確認前往對方直播間?</string>
<string name="not_received">充值未到</string>
<string name="not_received">充值未到</string>
<string name="delete_account1">是否刪除賬號</string>
<string name="delete_account2">點擊刪除後即刻生效,且不可恢復,您確認要繼續嗎?</string>
<string name="delete_account3">確認刪除</string>
@@ -1173,22 +1173,22 @@
<string name="complete_information_hint3">離開會讓您失去獎勵,您確認離開嗎?</string>
<string name="complete_information_hint2">愛你,愛你</string>
<string name="you_guide_me">指導下我好嗎</string>
<string name="resend_win">再送%s必得%s</string>
<string name="have_already_win">%s送至您的个性装</string>
<string name="resend_win">再送%s必得%s</string>
<string name="have_already_win">%s送至您的個性裝</string>
<string name="mini_blind_box">迷你盲盒</string>
<string name="collection_blind_box">典藏盲盒</string>
<string name="pd_blind_box">PD盲盒</string>
<string name="live_vote_create_error">投票創建失敗</string>
<string name="individual_dressing">个性装</string>
<string name="random_availability">随机获得,%s</string>
<string name="random_availability2">得,%s%s</string>
<string name="random_availability3">得,%s</string>
<string name="individual_dressing">個性裝</string>
<string name="random_availability">隨機獲得,%s</string>
<string name="random_availability2">得,%s%s</string>
<string name="random_availability3">得,%s</string>
<string name="get_it_done">完成必得</string>
<string name="blind_box_list">盲盒榜</string>
<string name="participate_in">參與</string>
<string name="extract_to">%s在%s中抽取到了</string>
<string name="extract_to2">%S送了%s</string>
<string name="rebot_config_auto_say_max">最大值</string>
<string name="extract_to2">%S送了%s</string>
<string name="rebot_config_auto_say_max">最大值</string>
<string name="insufficient_balance">餘額不足,繼續充值</string>
<string name="live_setting_gap_3">期限禁言</string>
<string name="red_packet_list_title">紅包記錄</string>
@@ -1208,7 +1208,7 @@
<string name="red_packet_user_tips2">攢人氣紅包</string>
<string name="main_tabs_red_packet">紅包專區</string>
<string name="save_popular_red_packets">攢人氣紅包</string>
<string name="red_packet_value"></string>
<string name="red_packet_value"></string>
<string name="top_up_now">去充值></string>
<string name="total_consumption_of_drill">共計消耗%s鑚</string>
<string name="red_envelope_rill">紅包%s鑚/個</string>
@@ -1217,7 +1217,7 @@
<string name="conditions">條件</string>
<string name="drill"></string>
<string name="amount">金額</string>
<string name="range_range_is">范围区间为[%s]</string>
<string name="range_range_is">範圍區間為[%s]</string>
<string name="red_packet_open"></string>
<string name="randomly_available">隨機可得</string>
<string name="build_up_popularity">攢人氣</string>
@@ -1242,8 +1242,13 @@
<string name="red_too_bad2">與紅包擦肩而過</string>
<string name="check_out_your_luck">查看大家手氣</string>
<string name="lucky_red_envelope">" %s 在 好運紅包 中抽到了 %s"</string>
<string name="lucky_red_envelope_amount"></string>
<string name="red_envelope_released_successfully">红包发布成功</string>
<string name="lucky_red_envelope_amount"></string>
<string name="red_envelope_released_successfully">紅包發布成功</string>
<string name="me_edit_avatar_system">選擇系統頭像</string>
<string name="me_edit_avatar_system_tip">該功能需升至Lv.5后使用,請努力升級吧~</string>
<string name="main_anchor_live_notify_info">無論你在哪裏,我都在直播間等你~</string>
<string name="main_anchor_live_notify_live">圍觀</string>
<string name="live_notify_settings">開播通知</string>
<string name="leveling_points">升級還需%s經驗值升至%s即可領取獎勵</string>
<string name="reach_the_top">恭喜,你已達到最高等級</string>
<string name="nothing_in_the_package_yet">包裹中暫無物品哦</string>
@@ -1252,31 +1257,56 @@
<string name="has_been_lit">已點亮%s個</string>
<string name="codex">圖鑒</string>
<string name="unlit_icon">未點亮</string>
<string name="all_service_champion">全服冠</string>
<string name="unlit_icon_hint">愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮</string>
<string name="lit_icon_hint">暂无未点亮礼物哦</string>
<string name="all_service_champion">全服冠</string>
<string name="unlit_icon_hint">愛\“禮\”伊始,\“墻\”勢點亮 暫無點亮</string>
<string name="lit_icon_hint">暫無未點亮禮物哦</string>
<string name="instant_light">立即點亮</string>
<string name="honorary_achievement">榮譽成就</string>
<string name="lit_icon">已點亮</string>
<string name="gift_wall_entrance">禮物墻入口</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance2">點亮禮物</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮,即點亮收禮人禮物牆中對應的禮物圖標。 只有鑽石送禮可點亮禮物。 當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則送同一個禮物,先點亮活動、禮物牆、圖鑒的禮物。</string>
<string name="gift_wall_entrance4">冠名禮物</string>
<string name="gift_wall_entrance5">每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。</string>
<string name="gift_wall_entrance6">當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。</string>
<string name="gift_wall_entrance7">榮譽成就</string>
<string name="gift_wall_entrance8_1">成就</string>
<string name="gift_wall_entrance8_1">成就</string>
<string name="gift_wall_entrance8_2">當前主播共有3個成就分別是勝友如雲、富甲一方、腰纏萬貫。</string>
<string name="gift_wall_entrance8_3">勝友如雲當收到的禮物款數達到20、30、50、100、200款時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_4">富甲一方收到的單款禮物價格超過50000鑽時即可點亮該成就</string>
<string name="gift_wall_entrance8_5">腰纏萬貫當收到100款價格超過3000鑽的禮物時即可點亮該成就。</string>
<string name="gift_wall_entrance8_6">當前用戶共有4個成就分別是有錢任性、雨露均沾、送禮機器、點燈大師。</string>
<string name="gift_wall_entrance8_7">有錢任性:纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_8">雨露均沾:纍計送禮給主播人數達到10、20、50、100、200時分別點亮對應的成就;</string>
<string name="gift_wall_entrance8_9">送禮機器:纍計贈送禮物個數達到200、1000、10K、00K、1M時分別點亮對應的成就;</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就</string>
<string name="gift_wall_entrance8_7">有錢任性:纍計送出禮物價值鉆石數量達到10M點亮该成就</string>
<string name="gift_wall_entrance8_8">雨露均沾:纍計送禮給主播人數達到50點亮该成就;</string>
<string name="gift_wall_entrance8_9">送禮機器:纍計贈送禮物個數達到1000點亮该成就;</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到100點亮该成就</string>
<string name="regular_bubble">規則</string>
<string name="unlit_icon_hint2">當前活動暫未送出任何禮物哦</string>
<string name="rule_introduction">規則介紹</string>
<string name="gift_details_hint">禮物詳情</string>
<string name="vacant_position_awaits">虛位以待</string>
<string name="distance_naming">距離冠名還需%s鑽</string>
<string name="send_hem">送TA</string>
<string name="winner_of_the_month">本月得主</string>
<string name="last_month_winner">上月得主</string>
<string name="last_month_winner_hint">上月奪得最終禮物冠名權用戶將獲得該禮物一個月專屬冠名皮膚</string>
<string name="last_month_winner_hint2">近期點亮</string>
<string name="received_wall">已獲得</string>
<string name="received_wall2">去點亮</string>
<string name="wall_honor">榮譽墻</string>
<string name="achievement_details">成就詳情</string>
<string name="title_anchor">冠名主播:</string>
<string name="the_title_financier">冠名金主:</string>
<string name="the_title_financier2">冠名</string>
<string name="the_title_financier3">請輸入自定義數量</string>
<string name="the__gifts_in_the_studio">請在直播間內進行送禮</string>
<string name="been_sent">已送出</string>
<string name="been_sent_must">立即送出</string>
<string name="sett_rigger">最低設置2種類型禮物才能觸發心愿單特效禮物。</string>
<string name="cancel_ca">不再設置</string>
<string name="settings_ser">去設置</string>
<string name="too_many_gifts">重複添加禮物</string>
</resources>

View File

@@ -62,7 +62,7 @@
<string name="edit_profile_update_nickname">ModifyName</string>
<string name="edit_profile_update_remarks">Modify remarks</string>
<string name="edit_profile_remarks">Please enter comments~</string>
<string name="edit_profile_update_sign">Signature modification</string>
<string name="edit_profile_update_sign">Signature</string>
<string name="edit_profile_sign">autograph</string>
<string name="bind_phone">Binding phone</string>
<string name="task1">TASK1</string>
@@ -176,7 +176,7 @@
<string name="guard_guard">Guard</string>
<string name="guard_week_con">Contribution this week</string>
<string name="guard_no_data">anchor are waiting at your guard!</string>
<string name="guard_tip_0">Let\'s open up a guard for our favorite anchor</string>
<string name="guard_tip_0">Turn on the guard for your favorite anchor!</string>
<string name="guard_tip_1">You are the current anchor\'s monthly guard \ n the guard date expires</string>
<string name="guard_tip_2">You are the current anchor\'s annual guardian \ n the guardian date expires</string>
<string name="guard_gift_tip">Special gift for annual guard</string>
@@ -754,8 +754,8 @@
<string name="encourage_give_text">Encourage the author of this dynamic article</string>
<string name="confirm_give">Confirm encouragement</string>
<string name="encourage_dynamic">Dynamic encouragement</string>
<string name="encourage_dynamic_list">Encouraging records</string>
<string name="encourage_dynamic">Rewards</string>
<string name="encourage_dynamic_list">Records</string>
<string name="encourage_list_nodata">The author hasn\'t given encouragement yet T_T</string>
@@ -858,7 +858,7 @@ Limited ride And limited avatar frame</string>
<string name="site_wide_news_hint1">Display messages on the whole station and jump to the current live room</string>
<string name="site_wide_news_hint2">Open noble king, emperor, super emperor to get free</string>
<string name="back">back</string>
<string name="go_nobility">to the nobles</string>
<string name="go_nobility">Proceed</string>
<string name="use_successfully">Use successfully</string>
<string name="use_live">Go to the live room</string>
<string name="search_history">search history</string>
@@ -956,9 +956,9 @@ Limited ride And limited avatar frame</string>
<string name="chat_chat">Chat</string>
<string name="lucky_angel">Congratulations %s have won %s in the Lucky Angel! The next lucky angel will be you!</string>
<string name="lucky_100">Congratulations on %s winning %s in Luck 100 %%! Go pass on the good luck!</string>
<string name="user_card_guard">Guardian group %s people</string>
<string name="user_card_guard">Guardian %s </string>
<string name="to_receive">receive</string>
<string name="to_complete">To complete</string>
<string name="to_complete">To finish</string>
<string name="already_collected">Already collected</string>
<string name="image_quality_selection">Image quality selection</string>
<string name="more_settings">More Settings</string>
@@ -1054,7 +1054,7 @@ Limited ride And limited avatar frame</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="anti_cheating_services">In order to provide you with one-click sharing service, our product integrates Mob+U-Share SDK, The Mob+SDK needs to collect your device Mac address, unique device identifier (1MEIandroid IDIDFAOPENUDIDGUID, SIM card IMSI information), and public social account information that you need to share in order to complete the one-click sharing service. And through the geographical location calibration report data accuracy, provide basic anti-cheating services. For the sake of your information security, we have made data security and confidentiality agreements with third-party SDK service providers, and these companies will strictly abide by our data privacy and security requirements. We will not share your personally identifiable information with them unless we have your consent. To facilitate you better understand/Mob + data types and USES, and how to protect your personal information, you can log on to https:www.mob.com aboutpolicy understand [Mob +] privacy policy).</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>
@@ -1250,54 +1250,70 @@ Limited ride And limited avatar frame</string>
<string name="lucky_red_envelope">%s drew %s in the lucky red envelope</string>
<string name="lucky_red_envelope_amount">number</string>
<string name="red_envelope_released_successfully">>Red successfully</string>
<string name="me_edit_avatar_system">Select System Avatar</string>
<string name="me_edit_avatar_system_tip">This function needs to be used to use it after lv.5, please work hard to upgrade ~</string>
<string name="main_anchor_live_notify_info">No matter where you are, I am waiting for you in the live broadcast room ~</string>
<string name="main_anchor_live_notify_live">Watch</string>
<string name="live_notify_settings">LiveNotify</string>
<string name="leveling_points">%s experience upgrade,%s receive rewards</string>
<string name="nothing_in_the_package_yet">There\'s nothing in the package yet</string>
<string name="reach_the_top">You have reached the highest level!</string>
<string name="custom_quantity">Custom quantity</string>
<string name="custom_quantity">Enter count</string>
<string name="gift_wall">Gift wall</string>
<string name="has_been_lit">%s has been lit</string>
<string name="unlit_icon">unlit</string>
<string name="all_service_champion">All service</string>
<string name="unlit_icon_hint">Love \\ \"ceremony \\\" at the beginning, \\ \"wall \\\" potential light temporarily no light</string>
<string name="lit_icon_hint">No unlit gifts yet</string>
<string name="instant_light">Instant light</string>
<string name="has_been_lit">Has been lit %s</string>
<string name="unlit_icon">Not lit up</string>
<string name="all_service_champion">Platform naming</string>
<string name="unlit_icon_hint">Not yet lit</string>
<string name="unlit_icon_hint2">The current event has not sent any gifts</string>
<string name="lit_icon_hint">No more gifts yet</string>
<string name="instant_light">Light up</string>
<string name="gift_wall_entrance">Gift Wall Entrance</string>
<string name="gift_wall_entrance1">Personal profile card, personal homepage, live streaming room header button, and by clicking</string>
<string name="gift_wall_entrance2">Lighting up gifts</string>
<string name="gift_wall_entrance3">On the gift panel and click on the gift wall of the recipient to light up the gift for gifting, Illuminate the corresponding gift icon in the recipient\'s gift wall. Only diamond gifts Can light up gifts. When the gifts in the event are compared to the gifts in the gift wall and guidebook When the same, give the same gift, first light up the event, gift wall, and picture guide A gift for.</string>
<string name="gift_wall_entrance4">Named gift</string>
<string name="gift_wall_entrance3">At the beginning of the \\\"ritual\\\" of love, the \\\"wall\\\" will be lit up, but it will not be lit up yet</string>
<string name="gift_wall_entrance4">Naming gift</string>
<string name="gift_wall_entrance5">Within each cycle, if a certain amount of diamonds are given as a single or cumulative gift Display the most gifts given to a recipient on the gift icon Gift person avatar, clicking on the avatar can also directly reach the giver\'s homepage of the named gift.</string>
<string name="gift_wall_entrance6">When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement</string>
<string name="gift_wall_entrance7">Medal of Achievement</string>
<string name="gift_wall_entrance8_1">Medal of achievement</string>
<string name="gift_wall_entrance8_1">Medal of Achievement</string>
<string name="gift_wall_entrance8_2">Currently, there are three achievements, namely A cloud of good friends A rich party, Very rich</string>
<string name="gift_wall_entrance8_3">A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou</string>
<string name="gift_wall_entrance8_4">A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement;</string>
<string name="gift_wall_entrance8_5">Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated.</string>
<string name="gift_wall_entrance8_6">The current user has a total of 4 achievements, namely being rich and capricious, sharing rain and dew, and giving gifts Gift machines, lighting masters.</string>
<string name="gift_wall_entrance8_7">Rich and capricious: Accumulated gifts worth 50K, 2M10M, 100M, 300M, light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_8">Rain and dew evenly: the cumulative Style quantity of gifts given to anchors reaches 10, 20, 50, 100200, can achieve success;</string>
<string name="gift_wall_entrance8_9">gift machine: The cumulative number of gifts given reaches 200, 1000, 10K100K1M,light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_10">lighting master: The number of unlocked Gift Walls has reached 10, 30, 50 At 100 and 200, light up the corresponding achievements separately.</string>
<string name="gift_wall_entrance8_7">Rich and willful: the cumulative number of gift value diamonds sent reaches 10M to light up this achievement;</string>
<string name="gift_wall_entrance8_8">Equal love: The cumulative number of people who have given gifts to the anchor reaches 50 to light up this achievement;</string>
<string name="gift_wall_entrance8_9">Gift machine: when the accumulated number of gifts reaches 1000, this achievement will be activated;</string>
<string name="gift_wall_entrance8_10">Lighting Master: Unlock [Gift Wall] reaches 100 to light up this achievement.</string>
<string name="regular_bubble">rule</string>
<string name="codex">Illustrated book</string>
<string name="honorary_achievement">Honorary achievement</string>
<string name="lit_icon">Lit</string>
<string name="rule_introduction">規則介紹</string>
<string name="gift_details_hint">禮物詳情</string>
<string name="vacant_position_awaits">虛位以待</string>
<string name="distance_naming">距離冠名還需%s鑽</string>
<string name="send_hem">送TA</string>
<string name="winner_of_the_month">本月得主</string>
<string name="last_month_winner">上月得主</string>
<string name="last_month_winner_hint">上月奪得最終禮物冠名權用戶將獲得該禮物一個月專屬冠名皮膚</string>
<string name="last_month_winner_hint2">近期點亮</string>
<string name="received_wall">已獲得</string>
<string name="received_wall2">去點亮</string>
<string name="wall_honor">我的荣誉墙</string>
<string name="achievement_details">成就詳情</string>
<string name="title_anchor">冠名主播:</string>
<string name="the_title_financier">冠名金主:</string>
<string name="the_title_financier2">冠名</string>
<string name="honorary_achievement">Honor achievement</string>
<string name="lit_icon">Lit up</string>
<string name="rule_introduction">Rule introduction</string>
<string name="gift_details_hint">Gift details</string>
<string name="vacant_position_awaits">Waiting</string>
<string name="distance_naming">It takes %sdiamonds to get the title</string>
<string name="send_hem">Send out</string>
<string name="winner_of_the_month">New winners</string>
<string name="last_month_winner">Past winners</string>
<string name="last_month_winner_hint">Past winners get a one-month exclusive champion skin</string>
<string name="last_month_winner_hint2">Recently lit</string>
<string name="received_wall">Hained</string>
<string name="received_wall2">To light up</string>
<string name="wall_honor">Honor Wall</string>
<string name="achievement_details">Achievement Details</string>
<string name="title_anchor">Title host</string>
<string name="the_title_financier">Title sponsor</string>
<string name="the_title_financier2">naming</string>
<string name="the_title_financier3">Please enter a custom quantity</string>
<string name="the__gifts_in_the_studio">Please make gifts in the studio</string>
<string name="been_sent">Been sent out</string>
<string name="been_sent_must">Send out</string>
<string name="sett_rigger">At least 2 types of gifts can be set to trigger the wish list special effect gift. </string>
<string name="cancel_ca">cancel</string>
<string name="settings_ser">settings</string>
<string name="too_many_gifts">Too many gifts</string>
<string name="trial_coupon">是否使用試用劵</string>
<string name="use_diamonds">使用鑽石</string>
</resources>

View File

@@ -1,30 +1,31 @@
ext {
android = [
compileSdkVersion: 31,
compileSdkVersion: 33,
buildToolsVersion: "29.0.2",
minSdkVersion : 21,
targetSdkVersion : 31,
versionCode : 436,
versionName : "6.5.3"
targetSdkVersion : 33,
versionCode : 445,
versionName : "6.5.4"
]
manifestPlaceholders = [
//正式、
// serverHost : "https://napi.yaoulive.com",
// 测试
serverHost : "https://ceshi.yaoulive.com",
serverHost : " https://ceshi.yaoulive.com",
//百度语音识别
baiduAppId : "23774720",
baiduAppKey : "zgCgFhUKEOV7I3ZXDFpTfnRB",
baiduAppKey : "zgCgFhUKEOV7I3ZXDFpTfnR B",
baiduAppSecretKey: "nEVSgmuGpU0pjPr6VleEGGAl0hzGW52S",
// true表示谷歌支付 false
isGooglePlay : true,
isGooglePlay : false,
//是否上报异常日志
isUploadLog : true,
//是否打包成插件包模式
isPluginModel : false,
isPluginModel : true,
]
}

View File

@@ -14,10 +14,9 @@ import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.InstructorRemarkManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.bean.SearchUserBean;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpUtil;
import org.greenrobot.eventbus.EventBus;

View File

@@ -22,6 +22,7 @@ import com.yunbao.common.fragment.GiftWithoutWallFragment;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.dialog.CodexDialog;
@@ -45,6 +46,7 @@ public class GiftWallActivity extends AbsActivity {
private List<View> tabView = new ArrayList<>();
private String mStream, mAnchorName, mLiveUid, mAvatarUrl;
private int isAttention = 0;//是否关注 0=没关注,
private boolean isLive;
@Override
protected int getLayoutId() {
@@ -87,7 +89,7 @@ public class GiftWallActivity extends AbsActivity {
ViewClicksAntiShake.clicksAntiShake(layoutLitIcon, () -> {
selectTab(textLitIcon, viewLitIcon);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, mLiveUid));
transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, mLiveUid, isLive,false));
transaction.commit();
});
ViewClicksAntiShake.clicksAntiShake(layoutUnlitIcon, new ViewClicksAntiShake.ViewClicksCallBack() {
@@ -116,7 +118,7 @@ public class GiftWallActivity extends AbsActivity {
public void onViewClicks() {
new XPopup.Builder(GiftWallActivity.this)
.enableDrag(false)
.asCustom(new CodexDialog(GiftWallActivity.this, mStream, mLiveUid, false))
.asCustom(new CodexDialog(GiftWallActivity.this, mStream, mLiveUid, mLiveUid,false,false))
.show();
}
});
@@ -125,7 +127,7 @@ public class GiftWallActivity extends AbsActivity {
public void onViewClicks() {
new XPopup.Builder(GiftWallActivity.this)
.enableDrag(false)
.asCustom(new MedalAchievementPopup(GiftWallActivity.this, false, mLiveUid))
.asCustom(new MedalAchievementPopup(GiftWallActivity.this, isLive, mLiveUid, mLiveUid))
.show();
}
});
@@ -141,6 +143,12 @@ public class GiftWallActivity extends AbsActivity {
forwardHomePage();
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
finish();
}
});
}
private void initDate() {
@@ -153,12 +161,17 @@ public class GiftWallActivity extends AbsActivity {
mAnchorName = intent.getStringExtra("mAnchorName");
mAvatarUrl = intent.getStringExtra("mAvatarUrl");
isAttention = intent.getIntExtra("isAttention", 0);
isLive = intent.getBooleanExtra("isLive", false);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, mLiveUid));
transaction.replace(R.id.context_layout_gift, GiftAlreadyWallFragment.newInstance(mStream, mLiveUid, mLiveUid, isLive, false));
transaction.commit();
ImgLoader.display(GiftWallActivity.this, mAvatarUrl, avatar);
anchorName.setText(mAnchorName);
if (isLive) {
textLitIcon.setText(getString(R.string.lit_icon));
} else {
textLitIcon.setText(getString(R.string.been_sent));
}
}
private void selectTab(TextView textView, View tab) {
@@ -173,22 +186,24 @@ public class GiftWallActivity extends AbsActivity {
view.setVisibility(view == tab ? View.VISIBLE : View.GONE);
}
}
private void forwardHomePage() {
finish();
finish();
RouteUtil.forwardUserHome(mContext, mLiveUid, false, mLiveUid, 0);
}
/**
* 关于点击礼物分类的通知
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void onGiftWallItemEvent(GiftWallItemEvent event) {
new XPopup.Builder(this)
.asCustom(new GiftWallItemPopup(this, event.getGiftWallModel(), event.isUnlit(), mLiveUid, mStream))
.asCustom(new GiftWallItemPopup(this, event.getGiftWallModel(), event.isUnlit(), mLiveUid, mLiveUid, mStream, false,event.isCsb()))
.show();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) {
onBackPressed();
ToastUtil.show(getString(R.string.the__gifts_in_the_studio));
}
}

View File

@@ -1,7 +1,5 @@
package com.yunbao.live.activity;
import static com.yunbao.live.views.LiveRoomViewHolder.mLiveUid;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
@@ -73,8 +71,8 @@ import com.yunbao.live.dialog.LiveShareDialogFragment;
import com.yunbao.live.dialog.LiveUserAnchorMailBoxPopDialog;
import com.yunbao.live.dialog.LiveUserDialogFragment;
import com.yunbao.live.dialog.LiveUserMoreDialogFragment;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.presenter.LiveLinkMicAnchorPresenter;
import com.yunbao.live.presenter.LiveLinkMicPkPresenter;
import com.yunbao.live.presenter.LiveLinkMicPresenter;
@@ -900,7 +898,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
public void onClick(View v) {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&tabIndex=1";
WebViewActivity.forward(mContext, url);
WebViewActivity.forward(mContext, url,true);
dialog.dismiss();
}
});
@@ -926,7 +924,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (!mIsAnchor) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null && u.getLevel() < mDanMuLevel) {
ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel));
ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel+""));
return;
}
}
@@ -947,7 +945,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
onCoinChanged(coin);
}
String[] data = new String[]{obj.getString("barragetoken")};
SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents);
SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents,obj.getIntValue("level_fans"));
} else {
ToastUtil.show(msg);
}
@@ -963,7 +961,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (!mIsAnchor) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null && u.getLevel() < mChatLevel) {
ToastUtil.show(String.format(mContext.getString(R.string.live_level_chat_limit), mChatLevel));
ToastUtil.show(String.format(mContext.getString(R.string.live_level_chat_limit), mChatLevel+""));
return;
}
}
@@ -1277,6 +1275,9 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
} else {
bundle.putString(Constants.URL, CommonAppConfig.HOST + "/h5/live/fansClub.html" + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + uid);
}
bundle.putString("liveUid",mLiveUid);
bundle.putString("anchorName",mAncherName);
bundle.putString("mStream",mStream);
fragment.setArguments(bundle);
fragment.show(getSupportFragmentManager(), "LiveGuardDialogFragment");
}

View File

@@ -51,8 +51,8 @@ import com.yunbao.live.dialog.LiveFunctionDialogFragment;
import com.yunbao.live.dialog.LiveLinkMicListDialogFragment;
import com.yunbao.live.dialog.LiveWishListDialogFragment;
import com.yunbao.live.event.LinkMicTxMixStreamEvent;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.interfaces.LiveFunctionClickListener;
import com.yunbao.live.interfaces.LivePushListener;
import com.yunbao.live.momo.BeautyManager;
@@ -282,7 +282,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
+ CommonAppConfig.getInstance().getUid() + "&token="
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid
+ "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
ZhuangBanActivity.forward(mContext, url, false);
ZhuangBanActivity.forward(mContext, url, false,0);
break;
case Constants.LIVE_FUNC_LINK_MIC://连麦
openLinkMicAnchorWindow();

View File

@@ -37,6 +37,7 @@ import com.lxj.xpopup.core.BasePopupView;
import com.lxj.xpopup.enums.PopupPosition;
import com.lxj.xpopup.interfaces.XPopupCallback;
import com.lzf.easyfloat.EasyFloat;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
@@ -62,11 +63,15 @@ import com.yunbao.common.event.CustomDrawerPopupEvent;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.event.GiftWallIlluminateEvent;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.event.LiveErrorEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.interfaces.CommonCallback;
@@ -77,6 +82,7 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.GiftCacheUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.RouteUtil;
@@ -100,11 +106,7 @@ import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience;
import com.yunbao.live.dialog.SignDialogFragment;
import com.yunbao.live.event.LinkMicTxAccEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.event.LiveRoomChangeEvent;
import com.yunbao.live.http.ImHttpUtil;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
import com.yunbao.live.views.LiveRoomPlayViewHolder;
import com.yunbao.live.views.PortraitLiveManager;
import com.yunbao.share.ui.SharePopDialog;
@@ -128,7 +130,7 @@ public class LiveAudienceActivity extends LiveActivity {
private static final String TAG = "LiveAudienceActivity";
public static String anyway;
public JSONObject pkInfo;
public static LiveAudienceActivity liveAudienceActivity;
public LiveAudienceActivity liveAudienceActivity;
// 竖直滑动 ViewPager
private VerticalViewPager verticalViewPager;
@@ -193,6 +195,7 @@ public class LiveAudienceActivity extends LiveActivity {
mLiveBean = intent.getParcelableExtra(Constants.LIVE_BEAN);
mLiveUid = mLiveBean.getUid();
mStream = mLiveBean.getStream();
Constants.mStream = mStream;
initData();
MicStatusManager.getInstance().addOnMicListener(onMicStatusListener);
if (!IMLoginManager.get(mContext).IsXiaJBG() && (Build.VERSION.SDK_INT < Build.VERSION_CODES.O)) {
@@ -248,6 +251,7 @@ public class LiveAudienceActivity extends LiveActivity {
* 初始化数据
*/
private void initData() {
String json = GsonUtils.toJson(mLiveBean);
AnchorRecommendItemModel model = GsonUtils.fromJson(json, AnchorRecommendItemModel.class);
itemModelList.add(0, model);
@@ -500,6 +504,7 @@ public class LiveAudienceActivity extends LiveActivity {
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
CommonHttpUtil.cancel(CommonHttpConsts.GET_BALANCE);
PortraitLiveManager.liveID = "";
Constants.mStream = "";
super.release();
}
@@ -547,6 +552,7 @@ public class LiveAudienceActivity extends LiveActivity {
@Override
public void onBackPressed() {
MobclickAgent.onEvent(mContext, "live_room_close", "退出直播间");
try {
manager.onBackPressed();
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
@@ -748,6 +754,12 @@ public class LiveAudienceActivity extends LiveActivity {
if (manager != null) {
manager.onResume();
}
if (manager != null && !StringUtil.isEmpty(is_fans)) {
if (is_fans.equals("-2")) {
manager.setAttention(0);
is_fans = "2";
}
}
GiftCacheUtil.getInstance().restart();
}
@@ -878,7 +890,7 @@ public class LiveAudienceActivity extends LiveActivity {
RouteUtil.forwardEditProfileActivity();
} else {
if (!screen) {
ZhuangBanActivity.forward(mContext, htmlUrl, false);
ZhuangBanActivity.forward(mContext, htmlUrl, false,1);
} else {
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl);
@@ -1068,6 +1080,9 @@ public class LiveAudienceActivity extends LiveActivity {
"?uid=" + userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid);
}
bundle.putString("liveUid", mLiveUid);
bundle.putString("anchorName", mAncherName);
bundle.putString("mStream", mStream);
liveFansFragment.setArguments(bundle);
liveFansFragment.show(getSupportFragmentManager(), "LiveGuardDialogFragment");
break;
@@ -1082,7 +1097,7 @@ public class LiveAudienceActivity extends LiveActivity {
String weeklyStarUrl = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid="
+ userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false);
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false,1);
break;
case NOBLE:
Constants.isTitle = true;
@@ -1092,7 +1107,7 @@ public class LiveAudienceActivity extends LiveActivity {
+ "&anchorUid=" + mLiveBean.getUid()
+ "&ancherName=" + mLiveBean.getUserNiceName()
+ "&uid=" + userInfo.getId();
ZhuangBanActivity.forward(mContext, nobleUrl, false);
ZhuangBanActivity.forward(mContext, nobleUrl, false,1);
break;
case LIAN_MAI:
if (event.getMicIng() == 1) {
@@ -1441,7 +1456,7 @@ public class LiveAudienceActivity extends LiveActivity {
break;
case GIFT_WALL:
if (manager != null) {
manager.showGiftWall(event.getUid());
manager.showGiftWall(event.getUid(), event.isVoicePress(), event.getUname(), event.getAvatar());
}
break;
@@ -1456,6 +1471,13 @@ public class LiveAudienceActivity extends LiveActivity {
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveErrorEvent(LiveErrorEvent event) {
//主播未直播时自动下滑至下一个直播间
mCurrentPage = mCurrentPage + 1;
liveHandler.post(liveRunnable);
}
/**
* 跳转到消息中心的系统信息web
*
@@ -1483,7 +1505,7 @@ public class LiveAudienceActivity extends LiveActivity {
FirebaseAnalytics.getInstance(mContext).logEvent("FS_customer_service", null);
AppEventsLogger.newLogger(mContext).logEvent("FB_customer_service");
if (bean.getLink() != null && !"".equals(bean.getLink())) {
WebViewActivity.forward(mContext, bean.getLink());
WebViewActivity.forward(mContext, bean.getLink(), true);
} else {
startActivity(new Intent(mContext, SystemMessageActivity.class)
.putExtra("type", bean.getType())
@@ -1561,7 +1583,7 @@ public class LiveAudienceActivity extends LiveActivity {
JSONObject item = (JSONObject) o;
List<LiveGiftBean> giftlist = JSONArray.parseArray(item.getJSONArray("giftlist").toJSONString(), LiveGiftBean.class);
for (LiveGiftBean bean : giftlist) {
if (!bean.getSwf().isEmpty()) {
if (bean != null && !bean.getSwf().isEmpty()) {
giftBeanList.add(bean);
}
}
@@ -1587,7 +1609,7 @@ public class LiveAudienceActivity extends LiveActivity {
@SuppressLint("SetTextI18n")
public void showMsgRed(int num) {
if (manager == null) {
if (manager == null || manager.mLiveAudienceViewHolder == null || manager.mLiveAudienceViewHolder.mRedPoint == null) {
return;
}
if (num == -1) {
@@ -1599,6 +1621,16 @@ public class LiveAudienceActivity extends LiveActivity {
manager.mLiveAudienceViewHolder.mRedPoint.setVisibility(View.VISIBLE);
}
public void setShowCrownRed(boolean isShow) {
if (manager == null || manager.mLiveAudienceViewHolder == null || manager.mLiveAudienceViewHolder.mRedPointPrivilege == null) {
return;
}
if (isShow) {
manager.mLiveAudienceViewHolder.mRedPointPrivilege.setVisibility(View.VISIBLE);
} else {
manager.mLiveAudienceViewHolder.mRedPointPrivilege.setVisibility(View.GONE);
}
}
public void closeRoom() {
runOnUiThread(new Runnable() {

View File

@@ -13,12 +13,11 @@ import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.LiveBlackAdapter;
import com.yunbao.live.bean.LiveShutUpBean;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import java.util.Arrays;
import java.util.List;

View File

@@ -13,11 +13,10 @@ import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.adapter.GuardAdapter;
import com.yunbao.live.bean.GuardUserBean;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import java.util.Arrays;
import java.util.List;

View File

@@ -16,12 +16,11 @@ import com.yunbao.common.interfaces.KeyBoardHeightChangeListener;
import com.yunbao.common.utils.KeyBoardHeightUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.LiveReportAdapter;
import com.yunbao.live.bean.LiveReportBean;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import java.io.File;
import java.util.Arrays;

View File

@@ -50,6 +50,7 @@ import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.MicUserBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.NotCancelableDialog;
import com.yunbao.common.event.GiftWallIlluminateEvent;
import com.yunbao.common.event.LoginInvalidEvent;
import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.http.CommonHttpConsts;
@@ -78,14 +79,15 @@ import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.live.bean.LiveKsyConfigBean;
import com.yunbao.live.bean.LiveReceiveGiftBean;
import com.yunbao.live.dialog.FreePkDialogFragment;
import com.yunbao.live.dialog.LiveInputDialogFragment;
import com.yunbao.live.dialog.LiveNewFunctionDialogFragment;
import com.yunbao.live.dialog.LivePrankDialogFragment;
import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience;
import com.yunbao.live.dialog.RandomPkDialogFragment;
import com.yunbao.live.event.LinkMicTxMixStreamEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.interfaces.LiveFunctionClickListener;
import com.yunbao.live.interfaces.LivePushListener;
import com.yunbao.live.music.LiveMusicDialogFragment;
@@ -226,7 +228,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
long lossRate = statusBean.packetLostRate;
//带宽
String googAvailableSendBandwidth = statusReport.googAvailableSendBandwidth;
Log.e("网速和内存", "获取视频:" + resolution + " 丢包率:" + lossRate + " 带宽:" + googAvailableSendBandwidth);
// Log.e("网速和内存", "获取视频:" + resolution + " 丢包率:" + lossRate + " 带宽:" + googAvailableSendBandwidth);
}
}
});
@@ -486,7 +488,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
break;
case Constants.LIVE_FUNC_WKS:
String url = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, url, false);
ZhuangBanActivity.forward(mContext, url, false,0);
break;
case Constants.LIVE_FUNC_LINK_MIC://连麦
if (isDRPK != 1) {
@@ -792,6 +794,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
mLiveRoomViewHolder.startAnchorLight();
//初始化女神说
mLiveRoomViewHolder.initAnchorSay();
mLiveRoomViewHolder.setGiftWall(obj.getString("gift_wall_lighten_number"),obj.getString("gift_wall_lighten_total"));
}
if (mLiveAnchorViewHolder == null) {
mLiveAnchorViewHolder = new LiveRyAnchorViewHolder(mContext, mContainer);
@@ -1536,7 +1539,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
String weeklyStarUrl = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid="
+ userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false);
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false,0);
break;
case WISH_LIST:
LiveWishListDialogFragment4Audience fragment4Audience = new LiveWishListDialogFragment4Audience();
@@ -1629,6 +1632,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
case DISCONNEXT_PK_TIME:
if (mLivePushViewHolder != null) {
mLivePushViewHolder.changeToBig();
mLiveRyLinkMicPkPresenter.leaveDRRoom();
}
break;
case AI_AUTOMATIC_SPEECH:
@@ -1654,9 +1658,35 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
mLiveRoomViewHolder.blindBoxAllServerNotify(event.getAllServerNotifyEvent());
}
break;
case GIFT_WALL:
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.showGiftWall(event.getUid(),event.isVoicePress(),event.getUname(),event.getAvatar());
}
break;
case INPUT_DIALOG:
LiveInputDialogFragment liveInputDialogFragment = new LiveInputDialogFragment();
Bundle liveInputBundle = new Bundle();
liveInputBundle.putString(Constants.LIVE_DANMU_PRICE, mDanmuPrice);
liveInputBundle.putString(Constants.COIN_NAME, mCoinName);
liveInputBundle.putString(Constants.LIVE_UID, mLiveUid);
liveInputBundle.putString(Constants.LIVE_STREAM, mStream);
liveInputBundle.putString(Constants.LIVE_UID, mLiveUid);
if (event.getOlineUserlistModel() == null) {
liveInputBundle.putString("TagUser", "");
} else {
liveInputBundle.putString("TagUser", GsonUtils.toJson(event.getOlineUserlistModel()));
}
liveInputDialogFragment.setArguments(liveInputBundle);
liveInputDialogFragment.show(getSupportFragmentManager(), "LiveInputDialogFragment");
break;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void GiftWallIlluminateEvent(GiftWallIlluminateEvent event) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.setGiftWall(String.valueOf(event.getNewNumber()), String.valueOf(event.getMaxNumber()));
}
}
/**
* 检查指定直播间连麦人数
*

View File

@@ -13,12 +13,11 @@ import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.LiveShutUpAdapter;
import com.yunbao.live.bean.LiveShutUpBean;
import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import java.util.Arrays;
import java.util.List;

View File

@@ -29,12 +29,11 @@ import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.common.bean.LiveRoomTypeBean;
import com.yunbao.live.dialog.LiveBeautyDialogFragment;
import com.yunbao.live.dialog.LiveRoomTypeDialogFragment;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.momo.GenerateTestUserSig;
import com.yunbao.live.momo.TencentTRTCBeautyManager;
import com.yunbao.live.utils.TRTCBaseActivity;

View File

@@ -172,7 +172,7 @@ public class MyTUIConversationFragment extends Fragment {
systemMessageActivity.forward(getContext(), bean.getType(), "", bean.getTitle(), "");
} else if ("3".equals(bean.getType())) {
if (bean.getLink() != null && !"".equals(bean.getLink())) {
WebViewActivity.forward(getActivity(), bean.getLink());
WebViewActivity.forward(getActivity(), bean.getLink(),false);
} else {
systemMessageActivity.forward(getContext(), bean.getType(), "", bean.getTitle(), "");
}

View File

@@ -27,8 +27,8 @@ import com.yunbao.live.R;
import com.yunbao.live.adapter.SystemChatMessageAdapter;
import com.yunbao.live.bean.ImUserBean;
import com.yunbao.live.event.RecommendLiveRoomEvent;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;

View File

@@ -32,17 +32,17 @@ import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.dialog.LiveUserDialogFragment;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.live.presenter.LiveRoomCheckLivePresenter;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -173,7 +173,15 @@ public class WebViewActivityMedal extends AbsActivity {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
if (liveBean == null) {
return;
}
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
finish();
}
@Override
@@ -294,7 +302,7 @@ public class WebViewActivityMedal extends AbsActivity {
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
}
Intent intent = new Intent(context, WebViewActivityMedal.class);
intent.putExtra(Constants.URL, url+ "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
intent.putExtra(Constants.URL, url + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
context.startActivity(intent);
}

View File

@@ -28,6 +28,7 @@ import android.widget.TextView;
import androidx.annotation.RequiresApi;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON;
import com.opensource.svgaplayer.SVGACallback;
import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
@@ -36,18 +37,24 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.share.ui.InvitePopDialog;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -69,6 +76,7 @@ public class ZhuangBanActivity extends AbsActivity {
private FrameLayout title;
private TextView titleView, htmlError;
private RelativeLayout rootView;
private boolean mIsLive = false;
@Override
protected int getLayoutId() {
@@ -80,6 +88,7 @@ public class ZhuangBanActivity extends AbsActivity {
Bus.getOn(this);
String url = getIntent().getStringExtra(Constants.URL);
String titleString = getIntent().getStringExtra("title");
mIsLive = getIntent().getIntExtra("isLive", 0) == 1;
L.e("H5---2s>" + url);
LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
@@ -216,7 +225,7 @@ public class ZhuangBanActivity extends AbsActivity {
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent,mContext.getString(R.string.choose_flie)), CHOOSE);
startActivityForResult(Intent.createChooser(intent, mContext.getString(R.string.choose_flie)), CHOOSE);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@@ -268,11 +277,7 @@ public class ZhuangBanActivity extends AbsActivity {
if (isNeedExitActivity()) {
finish();
} else {
// if (canGoBack()) {
// mWebView.goBack();
// } else {
finish();
// }
}
}
@@ -289,21 +294,23 @@ public class ZhuangBanActivity extends AbsActivity {
return false;
}
public static void forward(Context context, String url, boolean addArgs) {
public static void forward(Context context, String url, boolean addArgs, int isLive) {
if (addArgs) {
url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
}
Intent intent = new Intent(context, ZhuangBanActivity.class);
Log.i("tag", url);
intent.putExtra(Constants.URL, url);
if (url.contains("Noble/index.html")||url.contains("RongYuQiang")) {
if (url.contains("Noble/index.html") || url.contains("RongYuQiang")) {
intent.putExtra("title", "");
}
intent.putExtra("isLive", isLive);
context.startActivity(intent);
}
public static void forward(Context context, String url) {
forward(context, url, true);
public static void forward(Context context, String url, int isLive) {
forward(context, url, true, isLive);
}
@Override
@@ -370,12 +377,60 @@ public class ZhuangBanActivity extends AbsActivity {
} catch (MalformedURLException e) {
e.printStackTrace();
}
}else if (event.getMethod().equals("androidInviteShare")) {
} else if (event.getMethod().equals("androidInviteShare")) {
new InvitePopDialog(mContext)
.setUrl(event.getData())
.showDialog();
} else if (TextUtils.equals(event.getMethod(), "androidMethodLookToLive")) {
//看直播
gotoLive(event.getLiveId());
}
}
}
private void gotoLive(final String live_id) {
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
if (liveBean == null) {
return;
}
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
if (mIsLive) {
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)));
finish();
} else {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveTypeVal), Integer.parseInt(liveSdk));
}
finish();
}
@Override
public void onCheckError(String contextError) {
}
});
} else {
RouteUtil.forwardUserHome(mContext, live_id, 0);
}
}
});
}
}

View File

@@ -16,8 +16,8 @@ import java.util.List;
public class CodexAdapter extends RecyclerView.Adapter {
private List<GiftGuideModel> giftGuideModels = new ArrayList<>();
private boolean history;
private String mStream, mLiveUid;
private boolean history,sbWy;
private String mStream, mLiveUid,toUid;
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -28,7 +28,7 @@ public class CodexAdapter extends RecyclerView.Adapter {
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
CodexViewHolder codexViewHolder = (CodexViewHolder) holder;
codexViewHolder.showData(giftGuideModels.get(position), history,mStream,mLiveUid);
codexViewHolder.showData(giftGuideModels.get(position), history,mStream,mLiveUid,toUid,sbWy);
}
@Override
@@ -36,10 +36,12 @@ public class CodexAdapter extends RecyclerView.Adapter {
return giftGuideModels.size();
}
public void addAllData(List<GiftGuideModel> mGiftWall, boolean history, String mStream, String mLiveUid) {
public void addAllData(List<GiftGuideModel> mGiftWall, boolean history, String mStream, String mLiveUid, String toUid, boolean sbWy) {
this.history = history;
this.mStream = mStream;
this.mLiveUid = mLiveUid;
this.toUid = toUid;
this.sbWy = sbWy;
giftGuideModels.clear();
giftGuideModels.addAll(mGiftWall);
notifyDataSetChanged();

View File

@@ -16,6 +16,8 @@ import java.util.List;
public class CodexItemAdapter extends RecyclerView.Adapter {
private List<GiftWallModel> giftData = new ArrayList<>();
private String toUid, mLiveUid;
private boolean sbWy;
@NonNull
@Override
@@ -27,7 +29,7 @@ public class CodexItemAdapter extends RecyclerView.Adapter {
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
CodexItemViewHolder codexItemViewHolder = (CodexItemViewHolder) holder;
codexItemViewHolder.showData(giftData.get(position));
codexItemViewHolder.showData(giftData.get(position), toUid, mLiveUid, sbWy);
}
@Override
@@ -35,7 +37,10 @@ public class CodexItemAdapter extends RecyclerView.Adapter {
return giftData.size();
}
public void addAllData(List<GiftWallModel> mGiftWall) {
public void addAllData(List<GiftWallModel> mGiftWall, String toUid, String mLiveUid, boolean sbWy) {
this.toUid = toUid;
this.mLiveUid = mLiveUid;
this.sbWy = sbWy;
giftData.clear();
giftData.addAll(mGiftWall);
notifyDataSetChanged();

View File

@@ -66,4 +66,14 @@ public class FrameGiftAdapter extends RecyclerView.Adapter {
public int getItemCount() {
return giftJson.size();
}
public void refreshWrapListAfterSend(LiveGiftBean model) {
for (int i = 0; i < giftJson.size(); i++) {
if (giftJson.get(i).getId() == model.getId()) {
int giftNum = giftJson.get(i).getBlindBoxTicket();
giftJson.get(i).setBlindBoxTicket(giftNum - 1);
}
}
notifyDataSetChanged();
}
}

View File

@@ -20,7 +20,7 @@ import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.common.http.LiveHttpUtil;
import java.util.Arrays;

View File

@@ -39,7 +39,7 @@ public class GiftTitleAdapter extends RecyclerView.Adapter {
notifyDataSetChanged();
}
});
itemViewHolder.selectData(index == position);
itemViewHolder.selectData(index == position,name.get(position).getName());
}
@Override

Some files were not shown because too many files have changed in this diff Show More