Compare commits

..

842 Commits
6.4.5 ... 6.5.3

Author SHA1 Message Date
d4c2ef71cb 新增主播可导出日志功能 2023-07-13 10:39:33 +08:00
18401019693
7184b147d9 修复 2023-07-12 15:32:44 +08:00
39e9670cff 6.5.3 432 2023-07-12 15:05:39 +08:00
18401019693
7d7535935a 修复 2023-07-12 14:58:34 +08:00
18401019693
dd657e9918 修复 2023-07-12 13:50:00 +08:00
09cef4ade6 6.5.3 更新发送红包说明图片 2023-07-12 13:11:19 +08:00
7038681f8c 6.5.3 2023-07-11 17:57:55 +08:00
6cf68838f8 修改红包样式和文案 2023-07-11 17:25:51 +08:00
c3a08974d1 修改发红包样式 2023-07-11 14:14:33 +08:00
18401019693
20c25a51ef 修复 2023-07-11 11:44:02 +08:00
18401019693
9dfb772224 修复 2023-07-11 11:43:12 +08:00
18401019693
f5f68f16b7 Merge remote-tracking branch 'origin/master' 2023-07-11 11:34:47 +08:00
18401019693
7672cea263 修复 2023-07-11 11:34:40 +08:00
0a02b39c12 根据产品需求修改英文翻译
根据产品需求修改UI样式
2023-07-11 10:51:03 +08:00
18401019693
e786ae16c2 修复 2023-07-11 10:13:29 +08:00
18401019693
1d447b0a90 修复 2023-07-10 16:36:48 +08:00
18401019693
4918f9ba20 修复 2023-07-08 15:52:18 +08:00
18401019693
124b18dcb0 修复 2023-07-08 15:15:40 +08:00
18401019693
f55e9c0cfe 修复 2023-07-08 13:40:50 +08:00
18401019693
84c43f74bc 修复 2023-07-07 16:14:28 +08:00
18401019693
674346b6de 修复 2023-07-07 16:01:29 +08:00
18401019693
64f40d52da 修复 2023-07-07 10:34:25 +08:00
18401019693
75e342975c 修复 2023-07-07 10:15:11 +08:00
18401019693
dd4172fc3d 修复 2023-07-07 09:51:29 +08:00
6b7a98dbc3 修复#220问题 2023-07-06 17:59:00 +08:00
640dea5c53 修复#218问题 2023-07-06 17:47:03 +08:00
a907897239 修复#217问题 2023-07-06 17:45:23 +08:00
3807ff8916 修复红包出现在联系方式选项里 2023-07-06 17:00:02 +08:00
36b85c15f5 修复飘屏弹幕被禁言没提示问题 2023-07-06 16:44:07 +08:00
3e91068866 按测试反馈修改红包详情UI逻辑和新增礼物显示 2023-07-06 15:13:33 +08:00
18401019693
4d61c7e176 添加翻译 2023-07-06 10:17:14 +08:00
18401019693
c6d9dbc118 添加翻译 2023-07-06 10:02:18 +08:00
6743ec3cf6 调整红包查看手气的UI 2023-07-06 10:02:04 +08:00
18401019693
addab80997 添加翻译 2023-07-05 18:15:18 +08:00
18401019693
9081ba4cd6 添加翻译 2023-07-05 17:47:50 +08:00
18401019693
12bedd630e 修复问题 2023-07-05 17:07:11 +08:00
18401019693
003c7f9e12 修复问题 2023-07-05 16:19:30 +08:00
18401019693
9089e96856 修复问题 2023-07-05 13:29:46 +08:00
60c14f720d 修复【钻石不够的情况下,也成功发起红包】 2023-07-04 17:15:25 +08:00
18401019693
c139b03417 修复问题 2023-07-04 17:02:05 +08:00
b3fb6e62ae Merge remote-tracking branch 'origin/master' 2023-07-04 16:37:34 +08:00
613185db40 修复红包记录样式问题 2023-07-04 16:36:46 +08:00
18401019693
291492f2d0 修复问题 2023-07-04 16:29:34 +08:00
18401019693
cbe91c84e9 红包全服通知 2023-07-04 16:02:45 +08:00
f417e4ead8 修复部分机型开播异常问题 2023-07-04 13:03:19 +08:00
18401019693
08bc6d554a Merge remote-tracking branch 'origin/dev_red_packet'
# 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/res/values/strings.xml
2023-07-03 17:57:35 +08:00
18401019693
895a1c6951 红包中奖列表 2023-07-03 17:48:02 +08:00
b9f1474362 【绑定账号】和【忘记密码】页面手机号码栏新增国家名字提示 2023-07-03 16:43:55 +08:00
18401019693
58508ca0ae 红包中奖列表 2023-07-03 13:05:29 +08:00
18401019693
5736265388 展示红包,领取红包接口逻辑对接 2023-06-30 16:03:37 +08:00
18401019693
e68d20252a 创建接口,红包展示接口 2023-06-30 10:17:33 +08:00
44b4b06592 退出直播间时移除加载错误的提示 2023-06-29 15:09:46 +08:00
fb7551f7d0 Merge branch 'master' into 6.5.3 2023-06-29 14:09:33 +08:00
18401019693
40455fffc9 红包打开创建领取的样式逻辑构建 2023-06-29 10:15:24 +08:00
195035c456 update 更换插件包下载地址 2023-06-28 18:22:30 +08:00
492003ff01 update 调整禁言对话框的文案 2023-06-28 17:37:30 +08:00
17c2e7f795 update 插件化判断代码 2023-06-28 17:37:10 +08:00
1a3d66553c 修复【直播间-多次点击用户名称,弹出多个主页资料框窗口】问题 2023-06-28 17:36:22 +08:00
710cddd3a7 Merge branch 'dev_6.5.3_红包' into 6.5.3 2023-06-28 16:49:23 +08:00
da7ebb2663 add 新增红包专区
add 新增红包专区进去是只有发放红包的直播间
add 新增首页红包浮窗
add 新增红包记录
2023-06-28 16:44:42 +08:00
6a6696f355 fix 修复测试服ios发消息安卓端收不到问题 2023-06-28 16:43:26 +08:00
368b002db6 update 直播间超时进入的提示 2023-06-27 14:19:34 +08:00
501a7b482b update 红包专区 2023-06-27 13:54:18 +08:00
18401019693
279575d80b 红包直播间展示样式构建 2023-06-26 18:04:58 +08:00
3bf594d0b5 update 红包记录列表 2023-06-26 14:57:11 +08:00
5f33fa38f6 update 禁言弹框ui标题 2023-06-26 10:24:19 +08:00
e0312eedd1 update 禁言弹框ui标题 2023-06-26 10:17:45 +08:00
69d8feb9a9 update 红包 2023-06-26 10:12:38 +08:00
500588c842 update 红包 2023-06-26 10:09:37 +08:00
0a70da82f0 Merge branch '6.5.3' into dev_6.5.3_红包 2023-06-25 17:02:33 +08:00
abbb8c524c 新增被禁言的提示 2023-06-25 16:19:55 +08:00
1334d173cf update 红包详情入口 2023-06-25 16:09:47 +08:00
f3ff37aea7 Merge branch 'fix_webview' into 6.5.3 2023-06-25 15:50:04 +08:00
9741be743c 新增直播播放器报错时提示
新增观众端看异常下播直播间提示
2023-06-25 14:18:40 +08:00
f54054283c 调整混淆清单 2023-06-25 13:50:48 +08:00
fd06243c22 优化下载直播插件流程 2023-06-25 11:31:19 +08:00
cef94a248e Merge branch 'dev_proguard' into 6.5.3 2023-06-25 09:53:43 +08:00
beb566b294 新增期间禁言功能 2023-06-25 09:51:29 +08:00
18401019693
6889828c00 消息中心新增【系统消息】类型 2023-06-20 17:46:31 +08:00
9c57f0bd96 修复webView显示问题 2023-06-17 17:22:11 +08:00
a1c96cfd0f 调整直播间分享链接 2023-06-16 15:30:21 +08:00
18401019693
1198a8f1d8 送礼交互优化 2023-06-15 15:27:46 +08:00
a255d1f2b5 update 2023-06-15 13:41:57 +08:00
53ce1c703e update 2023-06-14 17:59:08 +08:00
3f9e95ce7d 新增插件模块管理 2023-06-14 13:41:12 +08:00
18401019693
8e07d4523f 修改完善资料和礼物点击 2023-06-12 13:25:59 +08:00
29ddc54303 Merge branch 'master' into dev_proguard 2023-06-12 10:50:27 +08:00
ae9c050ae6 Merge remote-tracking branch 'origin/master' 2023-06-08 17:02:32 +08:00
7b61e8c562 修复Ranking.getAnchorRankData多次调用问题 2023-06-08 17:02:20 +08:00
18142669586
23a396864f 修改全服 2023-06-08 17:02:11 +08:00
af8052f65b 修复Ranking.getAnchorRankData多次调用问题 2023-06-08 15:21:24 +08:00
6603a2dbb5 修复Ranking.getAnchorRankData多次调用问题 2023-06-08 14:33:44 +08:00
f3a0b4d145 修复Ranking.getAnchorRankData多次调用问题 2023-06-08 14:20:15 +08:00
0c99324904 Merge remote-tracking branch 'origin/master' 2023-06-08 11:13:55 +08:00
8d077e8062 修复PK结束时会隐藏投票问题 2023-06-08 11:13:38 +08:00
18401019693
3aaafdbbbe 修改完善资料和礼物点击 2023-06-08 10:12:37 +08:00
18401019693
f4016089a1 修改完善资料和礼物点击 2023-06-06 15:28:00 +08:00
c53757c64b 调整WebView 2023-06-06 14:41:53 +08:00
c8c4352284 Merge branch 'master' into dev_proguard 2023-06-05 16:42:18 +08:00
18401019693
cd2e176f0a Merge branch 'dev_6.5.3' 2023-06-05 14:09:42 +08:00
e6d92ffc86 调整投票ui 2023-06-05 13:24:13 +08:00
ea0a3375e4 修复非粉丝通过送礼打开的粉丝团url不正确问题 2023-06-05 11:42:56 +08:00
18401019693
06357088c1 修改礼物类型 2023-06-05 10:36:27 +08:00
18401019693
fa24d226ee 6.5.2 2023-06-03 18:30:08 +08:00
18401019693
7eb8153744 6.5.2 2023-06-03 18:02:49 +08:00
18401019693
35f16bdcae 修改盲盒问题 2023-06-03 15:20:18 +08:00
18401019693
aacd8b8735 修改盲盒问题 2023-06-03 14:35:39 +08:00
9926997fd7 Merge remote-tracking branch 'origin/master' 2023-06-03 14:13:47 +08:00
b02cbd7831 Home.getConfig接口新增对1000错误码的处理 2023-06-03 14:13:29 +08:00
18401019693
4150eeed64 修改盲盒问题 2023-06-03 13:51:19 +08:00
18142669586
6e595ff1e4 Merge remote-tracking branch 'origin/master' 2023-06-03 11:48:37 +08:00
18142669586
fbc50229e8 修改关播页面英文显示问题 2023-06-03 11:45:57 +08:00
1edb07d76c 调整投票主播二次点击关闭按钮后直接关闭浮窗 2023-06-03 11:45:23 +08:00
9641d90f32 Merge remote-tracking branch 'origin/master' 2023-06-03 11:33:13 +08:00
3095438a5c 调整排行榜榜单样式
调整排行榜神秘人隐藏关注按钮导致整体UI下降
2023-06-03 11:08:17 +08:00
18401019693
067bbc70c5 修改盲盒问题 2023-06-03 10:35:52 +08:00
7201fd37f3 修复排行榜神秘人ui错乱问题 2023-06-02 18:00:28 +08:00
18401019693
0bab58d507 修改盲盒问题 2023-06-02 13:52:29 +08:00
18401019693
f1ac21fe87 Merge remote-tracking branch 'origin/master' 2023-06-02 13:13:14 +08:00
18401019693
f4b5cdfed3 修改直播间展示ID 2023-06-02 13:13:07 +08:00
9021659770 修复在进入直播间瞬间关播的“抱歉出错了”提示 2023-06-02 11:31:25 +08:00
e04d277560 修复修改投票中英文导致的界面语言混乱问题 2023-06-02 11:17:08 +08:00
18142669586
a7a9a28c09 Merge remote-tracking branch 'origin/master' 2023-06-02 10:27:48 +08:00
18142669586
bbd394044f 修改关播页面英文显示问题 2023-06-02 10:27:36 +08:00
18401019693
49df393781 Merge remote-tracking branch 'origin/master' 2023-06-02 10:04:40 +08:00
18401019693
f0a8c17401 修改盲盒连宋 2023-06-02 10:04:32 +08:00
a01ddd310b 新增投票观众端的中英文切换 2023-06-02 09:56:24 +08:00
18401019693
26ec74932f 修改盲盒蒙版 2023-06-01 18:16:58 +08:00
18401019693
3aa85ca9bb 直播间房间号加ID 2023-06-01 15:56:06 +08:00
18401019693
a67c2b4009 修改榜单头像框问题 2023-06-01 15:39:24 +08:00
9486a1a572 修复下播页面关注按钮在英文状态下自动换行问题 2023-06-01 15:12:17 +08:00
c1aa8188ce 修复机器人自动打招呼条数超过20条问题 #74 2023-06-01 14:58:42 +08:00
18401019693
a83e3e0511 添加中英文翻译 2023-06-01 13:56:05 +08:00
18401019693
3488da27f0 盲盒加判断是不是本人 2023-06-01 10:26:08 +08:00
56845de59d 修复在线客服页面输入法会挡住输入框的问题 2023-05-31 16:51:00 +08:00
18401019693
282790ead5 Merge remote-tracking branch 'origin/master' 2023-05-31 13:59:28 +08:00
18401019693
db165cc05d 盲盒礼物开箱动画 2023-05-31 13:22:14 +08:00
49313ca326 修复PK滑动直播间可能画面错乱问题 2023-05-29 15:25:15 +08:00
18401019693
b0008405e2 Merge branch 'master' into dev_blind_box 2023-05-29 11:35:17 +08:00
18401019693
9c32c6af25 添加盲盒礼物蒙版 2023-05-29 11:34:34 +08:00
baa2ec127f 调整播放器在停止播放时把play2也一并停止 2023-05-29 11:25:30 +08:00
18401019693
c3b5f17f44 Merge branch 'master' into dev_blind_box
# Conflicts:
#	common/src/main/res/values-zh/strings.xml
#	common/src/main/res/values/strings.xml
2023-05-27 18:25:14 +08:00
18401019693
c28a91b128 修复榜单头像框问题 2023-05-27 17:22:13 +08:00
18401019693
f064864d76 修改榜单神秘人 2023-05-27 15:17:31 +08:00
18401019693
66290323d8 盲盒全服通知逻辑 2023-05-27 11:40:09 +08:00
9526a14ca2 调整聊天区高度 2023-05-27 11:24:28 +08:00
27715cda2c 新增投票创建失败时的提示语 2023-05-26 14:24:29 +08:00
65bfc77376 修复直播结束数据界面,直播时长未对齐问题 2023-05-25 14:34:39 +08:00
99618a2779 新增IM消息:endPK,用于显示最终单人PK数据 2023-05-25 14:25:57 +08:00
1b637b7a77 修復开屏动态聚焦banner有图片溢出问题 2023-05-25 14:18:00 +08:00
6ee678bd74 开播频道屏蔽【男神】 2023-05-25 13:41:39 +08:00
18401019693
b4dc035a1b 盲盒礼物具体业务逻辑的构建,IM消息的构建 2023-05-25 13:40:49 +08:00
18401019693
1f7aef91a8 礼物盲盒基本逻辑 2023-05-24 14:50:39 +08:00
18401019693
3e72b4a9eb 修改设置页面防抖问题,登录loading加载问题 2023-05-22 16:57:12 +08:00
18401019693
4f103dadc9 修改防抖点击问题 2023-05-22 16:48:55 +08:00
18401019693
055d002a34 Merge remote-tracking branch 'origin/master' 2023-05-19 13:33:17 +08:00
18401019693
426f7450a2 修复心愿单问题 2023-05-19 13:33:09 +08:00
73a71dabc6 Merge remote-tracking branch 'origin/master' 2023-05-19 10:43:11 +08:00
435dc1c4fb 调整投票UI 2023-05-19 10:36:06 +08:00
18401019693
f347d283a0 修复心愿单问题 2023-05-19 10:36:03 +08:00
a6754eb503 补充资源 2023-05-18 15:38:55 +08:00
070312ff53 投票修复测试回报问题 2023-05-18 15:02:11 +08:00
bd8cf94171 调整投票隐藏按钮触控范围 2023-05-18 11:21:53 +08:00
98bb182d56 调整投票展示效果 2023-05-18 10:52:59 +08:00
3454b6f924 调整投票展示效果 2023-05-18 10:31:52 +08:00
5af061c26f update 2023-05-17 17:37:34 +08:00
83a240fcb8 update 2023-05-17 16:57:11 +08:00
17decb63fa Merge remote-tracking branch 'origin/master'
# Conflicts:
#	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
2023-05-17 16:48:02 +08:00
18401019693
dbe861c608 中英文资源文件 2023-05-17 16:40:50 +08:00
c1c8921f59 Merge branch 'dev_6.5.2'
# 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/res/values-en-rUS/string.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-05-17 16:20:10 +08:00
82b3b23470 提交主播投票功能 2023-05-17 16:14:50 +08:00
18401019693
e28c6228ad 清晰度选择提示弹窗问题修复 2023-05-17 16:14:42 +08:00
df0f5f31e0 提交主播投票功能 2023-05-17 15:12:51 +08:00
18401019693
2a6af7c165 清晰度选择提示弹窗问题修复 2023-05-17 13:36:15 +08:00
18401019693
8611817a6a 修改礼物界面的切换逻辑 2023-05-17 13:26:15 +08:00
18401019693
e4c48f948d 完善个人资料,修改getBaseInfos接口返回缓存问题 2023-05-13 17:30:19 +08:00
46e37b14e4 修复从【我的】-【獎勵中心】進去无法唤起邀请对话框的问题 2023-05-13 15:35:08 +08:00
0d86d142c9 修复从侧边栏任务进去的邀请任务无法唤起邀请对话框的问题 2023-05-13 14:47:35 +08:00
18401019693
96cbadac2c 完善个人资料,修改getBaseInfos接口返回缓存问题 2023-05-11 15:05:33 +08:00
18401019693
f8356b1283 完善个人资料,修改getBaseInfos接口返回缓存问题 2023-05-11 14:57:36 +08:00
18401019693
576d39461a 完善个人资料,离开修改页面提示弹窗,完成领取弹窗 2023-05-11 14:34:39 +08:00
18401019693
8410439a90 完善个人资料,选择性别弹窗构建 2023-05-11 10:26:05 +08:00
18401019693
73b075b2a7 完善个人资料,编辑页面调整,领取奖励页面构建 2023-05-10 15:30:36 +08:00
a6b5c102d2 新增【非贵族,守护,粉丝牌送礼交互优化】功能 2023-05-10 14:31:15 +08:00
18401019693
229c8e72cf 完善个人资料,我的页面修改,红点提示逻辑 2023-05-10 13:09:46 +08:00
18401019693
f99bef4ac8 完善个人资料, 2023-05-09 17:37:20 +08:00
34c569ecb5 update config 2023-05-09 14:40:38 +08:00
a041450766 update config 2023-05-09 10:09:03 +08:00
b5673025be fix修复line支付无法唤起app的问题 2023-05-08 14:05:43 +08:00
f0ddd98942 fix修复line支付无法唤起app的问题 2023-05-08 14:04:43 +08:00
e9488df780 update 2023-05-08 13:29:24 +08:00
18401019693
e67287e7d3 修改密码房退出页面问题 2023-04-27 17:00:22 +08:00
18401019693
4b8dd546ce 修改密码房退出页面问题 2023-04-27 11:05:06 +08:00
18401019693
319a23bf2d 修改,中英文问题(聊天框的中英文修改) 2023-04-26 10:16:11 +08:00
611f1da9b8 fix banner顺序不对的问题 2023-04-25 16:45:01 +08:00
1953b5a776 update 调整say关注边距(陈浩反馈) 2023-04-25 15:51:02 +08:00
18401019693
43deb95435 修改,中英文问题(聊天框的中英文修改) 2023-04-25 15:24:57 +08:00
5a9535e81d update 调整登录页登录按钮的位置 2023-04-25 10:00:57 +08:00
18401019693
097528f97a 修改,中英文问题(默认加载系统语言) 2023-04-24 17:31:28 +08:00
abe71808fb Merge remote-tracking branch 'origin/master' 2023-04-24 17:00:56 +08:00
59508a45cb 修复粉丝徽章帮助按钮点击没反应问题 2023-04-24 17:00:43 +08:00
18401019693
11bc23418e 注销账号功能添加 2023-04-24 16:03:20 +08:00
18401019693
5a5164f72b 注销账号功能添加 2023-04-20 17:59:51 +08:00
18401019693
381ca84525 注销账号功能添加 2023-04-20 16:46:10 +08:00
79a709a76f update 开屏过度动画接口开关 2023-04-20 15:10:57 +08:00
18401019693
5dcdd3fc5f 多语言切换 2023-04-19 16:38:56 +08:00
1dce512d27 update 2023-04-19 14:17:01 +08:00
840129651d update 2023-04-19 14:13:11 +08:00
59c19d996e Merge remote-tracking branch 'origin/master' 2023-04-19 14:08:07 +08:00
703bafa013 修复侧边栏UI在英文状态下显示不全的问题 2023-04-19 14:07:56 +08:00
18401019693
9e6e25fb9e 多语言切换 2023-04-19 14:02:45 +08:00
bddf8c71ae 移除调试代码 2023-04-19 13:55:18 +08:00
47c3282861 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	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
#	main/src/main/java/com/yunbao/main/views/MainHomeLiveViewHolder.java
2023-04-19 10:58:02 +08:00
181ff4274c 新增字号设置 2023-04-19 10:54:22 +08:00
18401019693
dc5633bcb9 多语言切换 2023-04-19 10:16:56 +08:00
369f3f2cae 开屏图片转Banner特效 2023-04-18 16:31:31 +08:00
18401019693
293c9dcf9e 多语言切换 2023-04-18 14:51:26 +08:00
18401019693
d0e2278df7 多语言切换 2023-04-18 13:45:21 +08:00
f913248fa1 暂存方案1 2023-04-18 11:03:07 +08:00
18401019693
098ef7aa36 多语言切换 2023-04-18 10:30:55 +08:00
18401019693
bfbbe54308 多语言切换 2023-04-17 16:30:12 +08:00
18401019693
32e3584fef 修改侧边栏跳转问题 2023-04-14 16:09:02 +08:00
18142669586
90c7483dbc 修改关注点击问题 2023-04-14 13:41:52 +08:00
18401019693
e38262826d 关注ui修改,多人pk倒计时问题 2023-04-14 10:59:06 +08:00
18401019693
cbb1531356 心愿单位置移动 2023-04-14 10:46:13 +08:00
18401019693
0ed37aee11 心愿单位置移动 2023-04-14 10:40:14 +08:00
18401019693
c23ed7defb 心愿单位置移动 2023-04-13 18:25:19 +08:00
18401019693
06e077146b 心愿单位置移动 2023-04-13 17:57:40 +08:00
10588e4810 Merge remote-tracking branch 'origin/master' 2023-04-13 17:23:41 +08:00
4b7469d9d4 调整女神说banner布局 2023-04-13 17:23:29 +08:00
18142669586
eb21a17475 修改连麦样试 2023-04-13 17:22:05 +08:00
18142669586
974546697b Merge remote-tracking branch 'origin/master' 2023-04-13 16:45:07 +08:00
18142669586
8507fc1bb7 修改连麦样试 2023-04-13 16:44:41 +08:00
18401019693
bb4f8bb98e 心愿单设置加限制 2023-04-13 16:44:40 +08:00
4a4cc179bf 修复单人PK结算后新进来竖屏直播间,画面异常问题 2023-04-13 16:26:57 +08:00
18142669586
db8dc2a781 修改连麦样试 2023-04-13 15:57:11 +08:00
18401019693
4ae1b12be0 心愿单设置加限制 2023-04-13 15:45:51 +08:00
18401019693
06289b44d9 心愿单设置加限制 2023-04-13 13:08:58 +08:00
18401019693
32fa77be39 心愿单逻辑修改,ui修改 2023-04-13 13:04:12 +08:00
18142669586
9869a2376c 修改toat样试 2023-04-13 11:42:15 +08:00
af4176bcb7 移除ACache读取后最后一个换行符 2023-04-13 10:43:07 +08:00
499b73295d 修复人气票没传liveuid和stream问题 2023-04-13 10:07:42 +08:00
bec764a329 修复从直播间个人中心进去的分享按钮没反应问题 2023-04-12 15:26:57 +08:00
58c988a83a 修复ACache读多行文本未换行问题 2023-04-12 13:15:33 +08:00
18401019693
0506d82165 修改热度加成逻辑展示方式 2023-04-11 16:17:26 +08:00
cfc72f7441 根据需求调整送过一次联系方式礼物后,以后点击联系方式都是直接打开信件详情 2023-04-11 14:37:39 +08:00
18401019693
b305ba925b 修改热度加成逻辑展示方式 2023-04-11 14:14:42 +08:00
e99b18eec6 调整女神说ui 2023-04-10 18:22:37 +08:00
18401019693
38b080f082 6.5.0 2023-04-10 16:07:18 +08:00
18142669586
605f10d0ac 英文包 2023-04-10 15:37:19 +08:00
18142669586
f7480c6e43 修改中英文 2023-04-10 13:44:39 +08:00
ceef0f1e57 修改联系方式 2023-04-10 13:37:57 +08:00
18401019693
19c0c8c6e7 修改生成心愿单 2023-04-10 13:30:47 +08:00
d50c56bbb2 update 2023-04-10 13:07:08 +08:00
8ce65ced30 调整分享附带文案 2023-04-10 11:57:35 +08:00
18401019693
80e93f9981 关注消息修改 2023-04-10 11:54:25 +08:00
a34e90753c Merge remote-tracking branch 'origin/master' 2023-04-10 11:45:41 +08:00
a53da7a2b8 修复通过头像跳转到其他PK直播间,再上下滑回来会依旧保持PK倒计时状态 2023-04-10 11:45:15 +08:00
18401019693
bdd6124300 关注消息修改 2023-04-10 11:42:22 +08:00
47c3f59f74 修复通过头像跳转到其他PK直播间,再上下滑回来会依旧保持PK倒计时状态 2023-04-10 11:33:14 +08:00
76f94895fe 调整直播间UI 2023-04-10 11:14:53 +08:00
e0eea59539 调整直播间UI 2023-04-10 11:07:35 +08:00
18401019693
917d237b6d 关注消息修改 2023-04-10 10:45:07 +08:00
508f1a52ae 调整直播间UI 2023-04-10 10:22:32 +08:00
18401019693
4429dc7a4c 小助手消息修改 2023-04-10 10:05:48 +08:00
18401019693
296a6d24bb 心愿单修改 2023-04-10 09:57:24 +08:00
18142669586
6c19f0efc4 心愿单审核和贵族购买 2023-04-08 18:21:53 +08:00
18401019693
6f7a9a9310 心愿单修改 2023-04-08 18:11:35 +08:00
66e011f2d3 修复女神说主播端不隐藏的问题 2023-04-08 17:33:52 +08:00
18142669586
9e7909ec70 Merge remote-tracking branch 'origin/master' 2023-04-08 17:29:36 +08:00
18142669586
8ae58e9c14 心愿单审核和贵族购买 2023-04-08 17:27:26 +08:00
18401019693
2ce527cee8 心愿单修改 2023-04-08 17:26:39 +08:00
18401019693
28ef982b74 心愿单修改 2023-04-08 16:42:43 +08:00
b44524b25f 修复女神说不隐藏的问题 2023-04-08 16:27:33 +08:00
f76d649233 调整联系方式浮标UI 2023-04-08 16:20:43 +08:00
90fee86c19 修复信息红点显示错误问题 2023-04-08 16:11:41 +08:00
9707898af9 调整直播间UI
修复心愿单浮窗一堆问题
2023-04-08 15:45:47 +08:00
18401019693
9c3fbe0506 心愿单修改 2023-04-08 15:10:16 +08:00
a8178c51a0 调整直播间UI
修复进入直播间快速退出导致的闪退问题
2023-04-08 14:57:22 +08:00
18142669586
2b62d018b5 Merge remote-tracking branch 'origin/master' 2023-04-08 14:14:19 +08:00
18142669586
f7cf72f15f 修改聊天框长度 2023-04-08 14:14:06 +08:00
18401019693
b3d4d2b8f9 xiu gai xinyuan dan 2023-04-08 13:36:12 +08:00
18401019693
8cbbd4015f xiu gai xinyuan dan 2023-04-07 17:34:39 +08:00
51bf55fdeb 修复主播端开播热度值没背景 2023-04-07 16:46:20 +08:00
18401019693
18a5f46133 高等级飘屏修改 2023-04-07 16:44:02 +08:00
f201e0978e 修复主播端开播后点击屏幕无效问题 2023-04-07 16:23:10 +08:00
18401019693
63c2891650 心愿单修改, 2023-04-07 16:07:08 +08:00
af164f549f 修复开播后点击屏幕闪退问题
调整女神说背景固定大小
2023-04-07 16:01:59 +08:00
33034ce4d6 调整心愿单浮标大小
修复注册默认值没香港标识
调整小助手图片位置
2023-04-07 15:37:51 +08:00
18401019693
9d38ff7c8f 心愿单修改, 2023-04-07 15:28:19 +08:00
16caf60f77 更换心愿单浮标背景图
优化分享字符过多显示不全问题
优化女神说浮窗字数过多超过背景图问题
2023-04-07 14:45:12 +08:00
f3bca96ee8 Merge remote-tracking branch 'origin/master' 2023-04-07 14:43:57 +08:00
18142669586
b0ed276e23 修改新人任务的展示 2023-04-07 14:42:07 +08:00
906ff6cfa6 调整观众端点联系方式送礼界面恢复分类tab 2023-04-07 14:02:41 +08:00
6427311cec 修复单人PK发起方会重复两次倒计时问题 2023-04-07 13:58:18 +08:00
181f081706 修复单人PK会丢失结束连麦按钮问题 2023-04-07 11:34:24 +08:00
14490cacfa 修复多人PK不会隐藏女神说和联系方式的问题 2023-04-07 10:57:24 +08:00
6ff83dabff 调整信件top ui 2023-04-07 10:26:46 +08:00
a6d81ef666 移除测试用toast 2023-04-07 09:48:31 +08:00
11679a62a0 Merge remote-tracking branch 'origin/master' 2023-04-06 14:29:41 +08:00
36410ddcaa 调整女神说6字改回4字 2023-04-06 14:29:12 +08:00
18401019693
3bf6518e25 心愿单修改, 2023-04-06 14:20:46 +08:00
18142669586
028f2794bf Merge remote-tracking branch 'origin/master' 2023-04-06 13:32:18 +08:00
18142669586
1c198a44cf 页面修改 2023-04-06 13:31:52 +08:00
1fba3bd53e 调整邀请框的【复制】按钮位置和添加边框 2023-04-06 11:02:30 +08:00
fd15428ed9 新增主播联系方式详情页 2023-04-06 10:34:45 +08:00
18401019693
a5fd14cc0e 去除心愿单礼物贵族和守护的金额 2023-04-03 18:02:29 +08:00
18401019693
3c7a2d3964 心愿单增加礼物金额 2023-04-03 17:57:47 +08:00
18401019693
325d7254f0 视图资源文件修改,心愿单上传数据修改 2023-04-03 15:39:12 +08:00
18401019693
153d5ff159 修改心愿单生成 2023-04-03 15:29:21 +08:00
a86cf97d74 Merge remote-tracking branch 'origin/master' 2023-04-03 15:16:51 +08:00
192587f758 新增通过后端获取国家地区信息接口在注册时自动填写号码编号 2023-04-03 15:15:50 +08:00
18142669586
5697a19f91 Merge remote-tracking branch 'origin/master' 2023-04-03 15:10:13 +08:00
18142669586
1fa1874241 分享邀请码注册绑定 2023-04-03 15:07:48 +08:00
c43b581157 调整联系方式选项 2023-04-03 14:48:35 +08:00
ba5a80fb1d 改回联系方式礼物接口,仅显示热门分类下的礼物 2023-04-03 14:19:22 +08:00
73c8db8fb4 新增通过后端获取国家地区信息接口
调整送联系方式礼物时,不选择其他礼物
调整联系方式礼物接口
调整在模拟器超大分辨率模式下,信箱ui异常问题
2023-04-03 13:28:35 +08:00
18401019693
f55e1b9c05 修改 2023-04-02 17:29:14 +08:00
18401019693
e5a07613aa 修改随机pk轮播背景展示问题 2023-04-02 17:22:10 +08:00
ed46eb30a8 更新功能翻译资源 2023-04-02 17:22:05 +08:00
18401019693
971fceebcd 修改随机pk轮播背景展示问题 2023-04-02 16:37:05 +08:00
18401019693
329bd63229 新增功能翻译资源 2023-04-02 16:31:11 +08:00
18401019693
d320373b07 侧边栏修改,新增播放设置 2023-04-02 14:22:30 +08:00
326bb5ae7f 修复PK倒计时偶尔会提前结束问题(设置倒计时默认值为100解决)
修复PK【开始/结束】不会【隐藏/显示】女神说和联系方式浮窗
2023-04-01 18:29:12 +08:00
18401019693
95c39cca9d 心愿单直播间轮播入口(没有设置就隐藏) 2023-04-01 15:51:52 +08:00
18401019693
849677e50e 心愿单直播间轮播入口 2023-04-01 14:45:48 +08:00
c4ae047a4b 移除分享的结果的Toast 2023-04-01 11:33:20 +08:00
5657d5a00b 修正侧边栏【分享】按钮的文字 2023-04-01 11:22:51 +08:00
4b6b477351 Merge remote-tracking branch 'origin/master' 2023-04-01 11:18:17 +08:00
d035018ada 移除调试代码 2023-04-01 11:18:04 +08:00
e301e7bfce Merge branch 'dev_share'
# Conflicts:
#	main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java
2023-04-01 11:15:18 +08:00
97ad5c2d92 update 调整女神说布局大小 2023-04-01 11:14:24 +08:00
43e7713f6b update 兼容女神说接口变动 2023-04-01 09:51:26 +08:00
18142669586
cfce501d45 分享邀请码注册绑定 2023-04-01 09:44:13 +08:00
18401019693
b2f35fdc16 修复豪气榜神秘人问题 2023-03-31 17:52:00 +08:00
87afe9297d 移除调试内容 2023-03-31 17:32:52 +08:00
48f1d42739 Merge branch 'dev_use_discounts'
# Conflicts:
#	common/src/main/res/values/strings.xml
2023-03-31 17:27:24 +08:00
9eed92302d add 购买守护使用优惠卷 2023-03-31 17:26:28 +08:00
18401019693
f12f6a9130 心愿单完成 2023-03-31 16:44:22 +08:00
ef757a8adc update 分享支持社区分享按钮 2023-03-31 15:09:18 +08:00
0177a1314d update 购买守护优惠卷 2023-03-31 14:40:43 +08:00
26cb58463a update 直播間分享 2023-03-31 13:34:57 +08:00
18401019693
d1d8054c01 心愿单的重置提示 2023-03-30 17:43:42 +08:00
18401019693
2db89365bb 季心愿单的设置与展示 2023-03-30 16:46:02 +08:00
18401019693
87ba382e81 月心愿单的设置与展示 2023-03-30 16:36:53 +08:00
18401019693
55290a71aa 周心愿单的设置与展示 2023-03-30 16:28:06 +08:00
18401019693
5095de3c43 日心愿单重置 2023-03-30 16:17:25 +08:00
18401019693
70a91fedf3 心愿单添加部分功能实现 2023-03-30 14:16:50 +08:00
ef8f87d100 Merge branch 'master' into dev_share 2023-03-30 11:47:44 +08:00
6d83c6f8ae Merge branch 'dev_6.5.0_anchor_call_me'
# Conflicts:
#	common/src/main/java/com/yunbao/common/manager/IMLoginManager.java
#	common/src/main/res/values/strings.xml
#	live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
2023-03-30 11:31:32 +08:00
ce2048b9a5 update 女神说主播端显示
update 联系方式改成svga
update PK时隐藏女神说和联系方式
2023-03-30 11:23:11 +08:00
c22da60b82 update 联系方式 2023-03-29 13:39:09 +08:00
c78bb79633 update 联系方式
update 女神说
2023-03-29 13:32:15 +08:00
3a980d22fd Merge branch 'dev_6.5.0_anchor_say' into dev_6.5.0_anchor_call_me
# Conflicts:
#	common/src/main/java/com/yunbao/common/http/PDLiveApi.java
#	common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java
#	main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java
2023-03-28 11:01:58 +08:00
2b56eff39a update 联系方式 2023-03-27 16:16:23 +08:00
18401019693
9472ccf6c8 修改整蛊界面 2023-03-27 16:00:23 +08:00
18401019693
59d384a81c 修改右下角任务浮标,星级挑战修改 2023-03-27 15:30:30 +08:00
18401019693
c02f24fdcd 修改礼物图标 2023-03-27 15:29:43 +08:00
18401019693
86c5334ab4 高等级入场提示 2023-03-27 14:22:29 +08:00
6ef8c3778b update 女神说 2023-03-27 11:09:03 +08:00
0c6eac2936 新增设置联系方式相关UI 2023-03-24 10:52:44 +08:00
18401019693
62e2b93bd5 修改特权页面背景 2023-03-23 17:43:44 +08:00
18401019693
d80bc3bd27 默认气泡的修改 2023-03-23 17:28:34 +08:00
18401019693
085f19c3ca 修改直播间聊天界面(横竖屏聊天框高度,关注消息修改)直播间头部布局样式修改 2023-03-23 16:36:16 +08:00
f4d23c57df 新增女神说相关UI 2023-03-23 14:26:52 +08:00
18401019693
95429402c7 修改礼物界面样式 2023-03-22 18:20:34 +08:00
18401019693
1da79d6f48 礼物界面,直播间下部按钮布局样式的更改 2023-03-22 18:16:40 +08:00
18401019693
926bd1a22e 直播间聊天内容等级样式更改 2023-03-22 16:57:50 +08:00
18401019693
554bfa137a 消息气泡位置,关注消息默认消息,样式更改 2023-03-22 16:55:51 +08:00
9e5a61f66c update 2023-03-21 18:20:11 +08:00
18401019693
be608fd90b 修改直播间聊天字体背景样式 2023-03-21 17:42:34 +08:00
c9e53b4dfd Merge branch 'master' into dev_share
# Conflicts:
#	app/src/main/java/com/shayu/phonelive/NeverCrashUtils.java
#	config.gradle
#	main/src/main/java/com/yunbao/main/activity/TestActivity.java
2023-03-21 15:00:53 +08:00
c2aba5da4b 优化:调整直播间聊天输入框点击发送后不隐藏软键盘和聊天框 2023-03-21 10:05:02 +08:00
18401019693
420118b652 修改界面的中英文 2023-03-17 15:12:18 +08:00
18401019693
076008ce89 修改界面的中英文 2023-03-17 14:52:55 +08:00
18401019693
8455d1253c 修改界面的中英文 2023-03-17 10:19:35 +08:00
07f8f46f1f 修复:部分用户无法上麦问题
优化:日志上报逻辑
2023-03-17 09:50:26 +08:00
18401019693
8b46c57482 修复推特登录问题 2023-03-15 18:12:01 +08:00
18401019693
db834caf00 Merge branch 'net_error' 2023-03-15 18:11:49 +08:00
5c1eef1419 移除一个toast 2023-03-15 18:11:07 +08:00
fe29d307a9 修复连麦时可能出现50007问题,出现该错误时尝试离开房间后重试加入 2023-03-15 15:49:56 +08:00
18401019693
b8fea6366c 修复推特登录问题 2023-03-14 16:20:23 +08:00
06dddb5273 修复无法唤起推特APP登录 2023-03-14 16:18:40 +08:00
d774296db9 Merge remote-tracking branch 'origin/master' 2023-03-10 16:01:06 +08:00
18401019693
077cc7fd80 修改网络报错提示 2023-03-10 16:00:06 +08:00
18401019693
fdf9d0aea2 多人PK问题修复 2023-03-10 15:48:34 +08:00
92c38dc0dc Merge remote-tracking branch 'origin/master' 2023-03-10 11:24:10 +08:00
18401019693
d8c4b9dd04 多人PK问题修复 2023-03-10 11:06:08 +08:00
18401019693
342b2e9139 多人PK问题修复 2023-03-10 11:05:19 +08:00
88ea48b6ca 新增debug日志控制,方便调出日志用于分析问题 2023-03-09 10:26:10 +08:00
18401019693
0726c5dc1c 多人PK热度加成问题,主播,用户 2023-03-04 16:42:25 +08:00
18401019693
046adc9340 修改多人Pk界面样式 2023-03-04 16:01:27 +08:00
18401019693
46fa2419d3 修改多人Pk界面样式 2023-03-04 15:32:41 +08:00
18401019693
5c5114f808 修改多人Pk界面样式 2023-03-04 15:04:49 +08:00
18401019693
7f2f7ea4d8 修改多人Pk界面样式 2023-03-04 14:31:09 +08:00
a89c441555 修复密码登录界面按物理返回按钮时会回到桌面的问题 2023-03-04 13:56:50 +08:00
a1762bc791 修复密码登录界面点返回按钮时会回到桌面的问题
优化尝试重连im时检测到登录信息失效后返回到登录界面
2023-03-04 13:40:58 +08:00
34432e5ccf 移除闪退提示 2023-03-01 17:17:22 +08:00
18401019693
46f20c9663 修改主播协议的指向 2023-02-28 17:33:25 +08:00
18142669586
e0753ebb29 7.0弹出提示 2023-02-28 16:55:31 +08:00
18142669586
d7d24904bf 單人PK卡0分 優化計算中 2023-02-28 16:54:20 +08:00
18142669586
abbc2fc4ee 單人PK卡0分 優化計算中 2023-02-28 16:46:52 +08:00
07f0f39978 Merge remote-tracking branch 'origin/master' 2023-02-28 15:50:33 +08:00
8d932a09e1 修复与苹果端PK结束后,对方头像依旧存在的问题 2023-02-28 15:50:20 +08:00
18401019693
34c855fc8f di ban ben 2023-02-28 15:19:22 +08:00
18401019693
824d431a63 添加主播消息空页面 2023-02-28 13:06:48 +08:00
af63c4c8ac Merge remote-tracking branch 'origin/master' 2023-02-28 09:37:44 +08:00
18401019693
16ba71493e Android7及7以下默认关闭动画特效 2023-02-27 18:14:44 +08:00
94f8ee7f3b 调整日志格式 2023-02-27 16:33:40 +08:00
e7c97f2b55 移除debug入口 2023-02-27 11:35:22 +08:00
18401019693
a7e6efa0dc Merge branch 'live_anchor_6.4.8' 2023-02-27 11:12:45 +08:00
18401019693
ea9807dcdc 主播协议, 2023-02-24 14:22:49 +08:00
fdd30aa52a 修复多人连麦第三位麦克风位置不正确的问题 2023-02-23 16:54:01 +08:00
18401019693
ba23f720eb 修改社区没办法送礼问题 2023-02-23 14:20:05 +08:00
05ede89cba 修复和助手端进行PK时,助手结束PK,手机端依旧残留结束连麦按钮 2023-02-22 16:26:55 +08:00
d6eddeb130 更新主播任务 2023-02-22 13:50:40 +08:00
bf4710470f 直播数据对接接口 2023-02-21 16:29:50 +08:00
5d2a246916 直播任务对接接口 2023-02-21 13:46:08 +08:00
cca8f43f61 直播任务对接接口 2023-02-20 17:16:37 +08:00
18401019693
1d66a9b7fb 主播用户协议 2023-02-20 16:43:36 +08:00
18401019693
c1c4a7a38b 添加直播任务和直播数据入口 2023-02-18 15:01:16 +08:00
18401019693
b8a91a85e4 Merge remote-tracking branch 'origin/dev_6.4.9' into live_anchor_6.4.8 2023-02-18 14:34:48 +08:00
18401019693
7cb7258210 直播计时功能添加 2023-02-18 13:57:37 +08:00
18401019693
8d823f7a07 主播消息中心功能构建 2023-02-18 13:21:59 +08:00
6d458d0c7f 更新string 2023-02-18 11:09:27 +08:00
eaed7e448b 新增主播数据弹窗 2023-02-18 11:05:06 +08:00
b2f779f58a 新增主播数据弹窗 2023-02-18 11:03:49 +08:00
79ded6bff4 新增主播任务对话框模块 2023-02-17 17:14:01 +08:00
18401019693
d86e16c9f5 修改注册页面选择国家区号功能,添加国家名称 2023-02-15 15:57:53 +08:00
f2cff3b93f 移除闪退测试入口 2023-02-15 14:05:16 +08:00
18401019693
e97a4e607c 添加多人PK名称点击 2023-02-14 15:04:58 +08:00
4d86317ec8 修复发生闪退时会回到社区且连不上IM的问题 2023-02-14 14:42:58 +08:00
d36ece4c54 新增测试闪退入口:在首页长按排行榜图标触发空指针 2023-02-13 16:28:11 +08:00
11cf971514 移除全局异常捕获后杀死进程功能 2023-02-13 16:25:04 +08:00
60da453114 移除全局异常捕获后杀死进程 2023-02-13 16:05:20 +08:00
18401019693
3d5ac05d36 去除非必要提示影响用户体验感 2023-02-13 15:09:54 +08:00
a50a7140fd update Share 2023-02-13 11:21:40 +08:00
18401019693
d3268e57bc 修改,关闭直播间滑动以后为你推荐无法切换直播间问题 2023-02-09 16:21:19 +08:00
18401019693
3549c25cca 修改登录空指针问题
Fatal Exception: java.lang.RuntimeException
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
2023-02-09 14:15:05 +08:00
18401019693
859f54b1e1 修改登录空指针问题 2023-02-09 14:14:02 +08:00
15b232f52a update Share 2023-02-09 10:04:13 +08:00
3c80038bef update Share 2023-02-08 16:01:35 +08:00
a808cd13c0 修复直播间PK时滑动到下一个PK直播间,会残留pk条观众头像问题 2023-02-07 17:04:51 +08:00
ce8088059a 暂存测试几个用intent打开分享的平台 2023-02-07 15:45:42 +08:00
18401019693
cd0067d77b 修改多人PK结束PK送礼仍然展示PK结束画面问题 2023-02-07 14:19:10 +08:00
18401019693
894e264fb3 修改多人PK结束PK送礼仍然展示PK结束画面问题 2023-02-06 18:12:16 +08:00
5dd5b2e0ea 修复直播间PK时通过右上角角标-对方首页(web)-跳转直播间,会残留pk条观众头像问题 2023-02-06 16:28:39 +08:00
d14939c893 create ShareUtil 2023-02-06 15:57:56 +08:00
18401019693
8f58c485c8 用户端多人PK 修改结束后PK问题不结束问题 2023-02-04 16:53:29 +08:00
18401019693
11e809a978 用户端多人PK 2023-02-03 17:42:19 +08:00
18401019693
20aa6002f8 主播端多人PK 代码补提交 2023-02-03 16:40:41 +08:00
18401019693
ffcb0e8790 主播端多人PK 代码补提交 2023-02-03 16:23:31 +08:00
18401019693
3de7160538 主播端多人PK 2023-02-03 16:22:48 +08:00
18401019693
1e595ec526 主播强制关播功能添加 2023-02-02 15:27:41 +08:00
344bbcdfc8 修复与PC端连麦画面会拉升放大的问题 2023-01-29 16:48:29 +08:00
c1aeaa0e1b 修复LiveGiftDialogFragment一处空指针异常问题 2023-01-29 10:55:54 +08:00
e108494bd5 修复获取系统未读消息时userInfo为空导致的获取不到uid导致的闪退问题 2023-01-29 10:43:36 +08:00
bc0e698a77 修复【我的】UserBean.getSlide可能为空导致的闪退问题 2023-01-29 10:41:48 +08:00
b82c87d5d6 修复用户名片渲染用户等级时所使用的Activity被销毁导致的闪退问题 2023-01-29 10:12:05 +08:00
80fe5271f6 修复UserBean的is_bind为空导致【编辑资料】时闪退问题 2023-01-29 09:52:01 +08:00
944d703e36 修复UserBean的is_bind为空导致【编辑资料】时闪退问题 2023-01-29 09:49:04 +08:00
911869ed9f 修复通过【为你推荐】方式进入直播间会有上个直播间残留画面的问题 2023-01-15 09:56:51 +08:00
543336af99 直播间loading动画从10秒改成15秒 2023-01-14 14:51:59 +08:00
5d7cff6707 新增播放定时器,播放后10秒未播放就重新加载播放 2023-01-14 14:30:34 +08:00
1bbab7ac9e 修复滑动直播间到同一个主播时,会黑屏的问题 2023-01-14 13:19:23 +08:00
18142669586
16592aaecb Merge remote-tracking branch 'origin/master' 2023-01-13 17:36:30 +08:00
18142669586
3de9ff57c3 客服页面打不开问题 2023-01-13 17:36:06 +08:00
e932238fc2 修复GoogleFragment.java的url为空导致在输出日志时导致的空指针闪退问题 2023-01-13 09:46:06 +08:00
18401019693
df436bbe1e Merge remote-tracking branch 'origin/master' 2023-01-12 15:09:57 +08:00
18401019693
49bd97f646 上传分支 2023-01-12 15:09:48 +08:00
731f941298 修复幸运百分百活动在英文系统下会闪退问题呢(字符串转义问题) 2023-01-12 13:39:18 +08:00
18401019693
c21df55c06 修复:全服礼物通知,点围观无反应问题 2023-01-12 11:15:47 +08:00
9acbc60db2 随机PK文案调整【120分钟】→【10分钟】 2023-01-12 11:05:24 +08:00
5f2dda021a 新增直播播放缓冲超过2秒就刷新播放流 2023-01-11 18:06:51 +08:00
1244010c3d 修复整蛊设置金币总是为默认值1000 2023-01-11 17:19:37 +08:00
7226d54277 修复连麦用户端默认用小流导致画面模糊的问题 2023-01-11 15:02:19 +08:00
eaafcdd444 修复连麦下麦时会画面卡住的问题 2023-01-11 11:34:15 +08:00
9f9c02b7e7 修复重复切换分辨率会同时播放问题 2023-01-10 17:59:53 +08:00
18401019693
7bffdda6b9 修复:直播结束滚动问题 2023-01-10 17:50:03 +08:00
50d01ccd92 移除调试代码 2023-01-10 17:47:42 +08:00
18401019693
420573736d 修复:直播结束滚动问题 2023-01-10 17:22:15 +08:00
18401019693
aca98cb7e6 修复:直播结束滚动问题 2023-01-10 17:05:21 +08:00
18401019693
f26fb83fec 修复:送礼全服通知展示多个礼物名字问题 2023-01-10 17:04:56 +08:00
1ad9effe91 修复授权相册权限后打开发布动态会闪退问题 2023-01-10 16:57:25 +08:00
418d306d72 修复点系统通知时弹出了画质选项框 2023-01-10 16:33:41 +08:00
3606815a41 优化播放抛错时重新播放
优化滑动直播间时可能出现上一个直播间画面的问题
2023-01-10 16:12:17 +08:00
518e57ee44 优化已经在多人PK时不再切换默认流分辨率 2023-01-10 15:35:15 +08:00
872245c9c9 兼容幸运百分百活动 2023-01-10 15:34:40 +08:00
749f756d58 兼容幸运百分百活动 2023-01-10 13:32:08 +08:00
18142669586
a22dfb6214 單人PK卡0分 優化計算中 2023-01-10 13:27:13 +08:00
18401019693
652e569e2b 修改主播端发布远端流分辨率问题 2023-01-10 11:02:22 +08:00
d480986485 调整延迟200毫秒隐藏loading 2023-01-10 10:34:55 +08:00
2e6efc69e8 调整播放器3 2023-01-09 22:36:51 +08:00
e2761049e5 修复美颜失效问题 2023-01-09 21:29:46 +08:00
ee6a4288b0 调整播放器 2023-01-09 20:30:34 +08:00
7070f5c1b4 调整播放器拉升问题5 2023-01-09 18:30:53 +08:00
cc4cc2f746 调整播放器拉升问题5 2023-01-09 16:20:54 +08:00
93e2a8af02 调整播放器拉升问题4 2023-01-09 15:26:43 +08:00
207811c41d 修復在手机直播的直播间PK时切换分辨率会拉升问题 2023-01-09 14:47:23 +08:00
18401019693
8730a6396f 料体消息添加动画效果 2023-01-09 14:38:32 +08:00
05ff51bd48 Merge remote-tracking branch 'origin/master' 2023-01-09 13:54:18 +08:00
1904eeb3ba 移除Toast提示分辨率信息 2023-01-09 13:54:05 +08:00
18401019693
70126171c6 料体消息添加动画效果 2023-01-09 13:52:34 +08:00
18401019693
ee084d6f33 pk倒计时修复 2023-01-09 13:41:51 +08:00
bacf4fd32f 调整视频播放器3 2023-01-09 13:26:32 +08:00
18401019693
eaae58db31 pk倒计时修复 2023-01-09 10:56:49 +08:00
18401019693
13146595bf 修改直播间聊天删除问题 2023-01-09 10:23:21 +08:00
b3083cdd18 新增保存用户选择分辨率的设置 2023-01-08 21:49:07 +08:00
cf85870810 调整播放器默认流不拼接参数 2023-01-08 18:08:00 +08:00
182e46799a 修复PK时画面异常问题(分辨率未切到4:3)
优化播放器加载速度2
2023-01-08 17:17:31 +08:00
27bd65d3da 调整进直播间loading界面与播放器绑定,播放器准备完成后再隐藏。
优化播放器加载速度1
2023-01-08 15:50:40 +08:00
18401019693
9fcc04cef2 修改直播间聊天记录重叠问题 2023-01-08 14:42:01 +08:00
a1f07b8c20 调整观众端选择分辨率 2023-01-08 14:21:52 +08:00
18401019693
65efa88d4a 软件更新进度问题 2023-01-08 14:09:01 +08:00
01a2d66585 调整聊天室滑动动画效果速度 2023-01-07 17:13:27 +08:00
098e9bf6ba Merge remote-tracking branch 'origin/master' 2023-01-07 16:54:16 +08:00
ddf56963bb 调整PK天梯图标大小 2023-01-07 16:54:05 +08:00
18401019693
eadcaf826b xiu改直播间聊天列表滚动问题,修改热度加成列表等级问题 2023-01-07 16:46:11 +08:00
18401019693
36248eaeef 修改直播间聊天列表 2023-01-07 15:39:26 +08:00
04496c3888 Merge remote-tracking branch 'origin/master' 2023-01-07 15:36:03 +08:00
494aa6b52d 修复直播间画面变形问题 2023-01-07 15:35:53 +08:00
18401019693
4bb51506e3 修改直播间聊天列表 2023-01-07 15:19:33 +08:00
18401019693
112bec58df 修改热度加成问题 2023-01-07 14:53:12 +08:00
0b7a3cc50e 修复直播聊天室抽搐问题 2023-01-07 14:43:35 +08:00
9f517199fe 优化天梯PK连胜标识大小 2023-01-07 14:24:57 +08:00
2393a53466 修复因为更换渲染层导致在切换分辨率时会黑屏的问题 2023-01-07 10:13:34 +08:00
80993c7d2d 更换直播间视频渲染层以修复部分机型和模拟器滑动视频时白屏问题 2023-01-07 09:54:37 +08:00
8c0a23d39a Merge remote-tracking branch 'origin/master' 2023-01-06 15:53:27 +08:00
a0949f0903 暂时取消观众端监测卡顿自动切换分辨率问题 2023-01-06 15:53:09 +08:00
18401019693
42052b7465 软件更新问题更改 2023-01-06 15:49:00 +08:00
a37a92e211 优化PK时点击礼物弹窗隐藏【开通贵族】按钮 2023-01-06 15:04:27 +08:00
18401019693
c3ddc62b95 修改主播端选择分辨率的方法,接口新增参数 2023-01-06 10:03:37 +08:00
18401019693
0a3409f98a 修改主播端选择分辨率的方法,接口新增参数 2023-01-06 09:58:24 +08:00
18401019693
d26a687385 修改主播端选择分辨率的方法,接口新增参数 2023-01-05 18:13:43 +08:00
2f413e260e 调整修改清晰度提示弹窗改回Toast 2023-01-05 17:55:58 +08:00
6fcb194995 调整修改清晰度提示弹窗为黑底白字的而不是Toast 2023-01-05 17:48:10 +08:00
7cea6b4f8d 新增观众端点击未启用清晰度时的提示 2023-01-05 17:28:21 +08:00
16d02c6936 修复直播间观众端视频变形问题 2023-01-05 14:13:56 +08:00
289c93d824 修复直播间滑动未清空靓号标识和靓号背景问题 2023-01-04 17:22:39 +08:00
8f99d68b6f Merge remote-tracking branch 'origin/master' 2023-01-03 16:22:32 +08:00
e0d7137727 修复主播端开播设置clarityType失效问题 2023-01-03 16:22:20 +08:00
18401019693
7a9ed22ec9 新增主页面APk更新功能,区分强制非强制 2023-01-03 16:17:48 +08:00
18401019693
af58ec755d 新增APk内置更新功能 2023-01-03 15:11:20 +08:00
4ad2020b57 修复观众端选择分辨率时会显示主播端相关的提示语 2023-01-03 14:35:13 +08:00
1db24dae4b 优化观众端选择分辨率弹框的代码可读性 2023-01-03 14:26:52 +08:00
76055543c3 调整画质选择UI逻辑 2023-01-03 11:35:34 +08:00
a1d95d6a94 Merge remote-tracking branch 'origin/master' 2023-01-03 10:16:36 +08:00
2143e3eb77 修复魅力榜返回icon不见的问题 2023-01-03 09:42:33 +08:00
18401019693
4a0901ea93 修複踢人邏輯,增加翻譯 2022-12-30 17:24:46 +08:00
18142669586
488bee514d 單人PK卡0分 優化計算中 2022-12-30 16:36:40 +08:00
18142669586
bafea09e44 Merge remote-tracking branch 'origin/master' 2022-12-30 14:58:12 +08:00
18142669586
54923304dc 單人PK卡0分 優化計算中 2022-12-30 14:57:47 +08:00
18401019693
8b357233c2 開播設置,修改開播接口新增分辨率設置參數,網絡內存檢測和提示信息 2022-12-30 14:47:25 +08:00
06b5f99930 调整分辨率参数
移除调试用代码
2022-12-29 18:27:24 +08:00
0b5598346e 新增获取上传网速的方法 2022-12-29 17:55:41 +08:00
18401019693
d81e6b9f04 開播設置,修改開播接口新增分辨率設置參數 2022-12-29 17:04:23 +08:00
87e3dddac5 修复下播后随即PK没有自动取消匹配 2022-12-29 16:34:35 +08:00
55f3ac577b Merge branch 'dev_play_model_exo' 2022-12-29 16:20:51 +08:00
0c053a028e update 清晰度切换 2022-12-29 16:20:39 +08:00
df36529619 Merge remote-tracking branch 'origin/master' 2022-12-29 16:17:14 +08:00
7555510d94 update 清晰度切换 2022-12-29 16:16:08 +08:00
18142669586
2e986db686 單人PK卡0分 優化計算中 2022-12-29 16:12:41 +08:00
660853d5be update 清晰度切换 2022-12-29 15:59:32 +08:00
956bef4b90 update 清晰度切换 2022-12-29 15:59:03 +08:00
18142669586
43c22fca7c 主播PK名字头像新增 2022-12-29 15:17:34 +08:00
5db84c1e61 update 清晰度切换 2022-12-29 13:13:05 +08:00
00c3e0cb77 Merge branch 'master' into dev_play_model_exo 2022-12-29 11:02:12 +08:00
f4b6c46075 Merge remote-tracking branch 'origin/master' 2022-12-29 11:01:44 +08:00
181bb5b445 update 清晰度切换 2022-12-29 11:01:23 +08:00
18401019693
90f58054fa 机器人自动发消息设置页面修改,机器人求关注新增发送消息类型,直播间开播清晰度设置 2022-12-28 18:21:00 +08:00
137dbc72d8 update 2022-12-28 17:51:35 +08:00
18401019693
a7cef3c6f8 机器人自动打招呼 2022-12-27 14:41:17 +08:00
339d460c0f 修复直播聊天室还是会卡不会自动滚动问题 2022-12-27 13:52:01 +08:00
c8ba78f39b 修复直播聊天室还是会卡不会自动滚动问题 2022-12-27 10:17:47 +08:00
18401019693
d31af73479 PK结束消失PK条 2022-12-27 10:03:05 +08:00
18401019693
874800c19d 机器人自动发言 2022-12-24 14:45:20 +08:00
18401019693
404d45893f 机器人自动发言 2022-12-24 14:23:40 +08:00
ed6e95f380 update 2022-12-24 13:41:54 +08:00
c4cfa0becd 调整直播间聊天室动画效果 2022-12-24 11:08:09 +08:00
18401019693
a069562bbe 机器人自动发言 2022-12-24 10:20:51 +08:00
18401019693
9158424a25 机器人自动发言 2022-12-23 18:28:39 +08:00
7488143037 修复聊天室消息大于99消息会混乱的问题 2022-12-23 14:59:05 +08:00
99938f6ed6 修复聊天室消息大于99消息会混乱的问题 2022-12-23 14:57:59 +08:00
18401019693
1bde99f6c9 机器人自动发言 2022-12-23 14:39:24 +08:00
18401019693
e3a9a037ba 直播间机器人 2022-12-23 11:16:02 +08:00
b1d342f791 Merge branch 'dev_robot' 2022-12-22 09:59:20 +08:00
7639a70887 update 机器人 2022-12-22 09:58:43 +08:00
f690cf0b62 修复APP刚启动还没用创建Activity时受到推送通知并试图弹出权限申请对话框时,context为空导致的闪退问题 2022-12-21 16:01:59 +08:00
4dcb12eb4f 更新机器人API 2022-12-21 14:50:58 +08:00
18401019693
af5d8dbf19 修复:直播间内遮盖问题 2022-12-20 15:45:24 +08:00
9cd1638d55 修复GoogleFragment缺少默认构造方法导致在恢复数据的时候闪退问题 2022-12-20 10:59:58 +08:00
dd1570c10e 修复登录时getRandJoinAnchor接口返回info为空导致的空指针闪退问题 2022-12-20 10:55:12 +08:00
3af7ca5d94 修复登录时getRandJoinAnchor接口返回info为空导致的空指针闪退问题 2022-12-20 10:06:48 +08:00
2d2cc21e15 预设机器人设置UI 2022-12-19 17:32:42 +08:00
f872029c9d 新增机器人设置的API 2022-12-19 17:06:59 +08:00
6198489dd4 修复一处可能的空指针错误 2022-12-19 16:05:35 +08:00
cce8e43c24 修复一处可能的空指针错误 2022-12-19 16:05:29 +08:00
cae0599307 优化直播间聊天消息动画效果 2022-12-19 15:32:09 +08:00
18401019693
2c6e88500a 修复:修改关播接口上传参数 2022-12-16 16:22:15 +08:00
efc20c644a 修复直播间长期不动会自动停止滚动的问题 2022-12-16 15:40:37 +08:00
bdc43baaa8 修复直播间长期不动会自动停止滚动的问题 2022-12-16 15:40:03 +08:00
dc529b6640 修复直播间长期不动会自动停止滚动的问题 2022-12-16 13:57:00 +08:00
18401019693
488cc192b2 修复:修改更新Apk逻辑,(雷电模拟器卡死问题) 2022-12-16 13:54:07 +08:00
18401019693
269f6c64a9 修复:修改进入PK房退出以后闪退问题 2022-12-15 16:23:33 +08:00
18401019693
51186169ca 需求:修改空指针问题 2022-12-15 16:07:43 +08:00
18401019693
325e57d1d5 需求:修改登录页面 2022-12-15 15:47:39 +08:00
862ec98fa3 Merge remote-tracking branch 'origin/master' 2022-12-14 18:12:10 +08:00
b827f7bfa6 修复主播可以自己点整蛊拯救的问题
调整整蛊设置
2022-12-14 18:11:41 +08:00
18401019693
786dfb54a3 Merge remote-tracking branch 'origin/master' 2022-12-14 18:10:34 +08:00
18401019693
a373738d70 修复:修复直播间滚动Loading问题 2022-12-14 18:10:21 +08:00
6929276512 移除DEBUG位置 2022-12-14 17:40:52 +08:00
64c33f5709 调整整蛊的UI位置 2022-12-14 17:33:22 +08:00
7330e1ae2b Merge remote-tracking branch 'origin/master'
# Conflicts:
#	config.gradle
2022-12-14 17:32:42 +08:00
f359c9994d 修复PK过程中可以再次打开PK对话框的问题 2022-12-14 17:25:03 +08:00
d49b60a1e1 修复直播间不显示靓号问题 2022-12-14 17:13:25 +08:00
18401019693
ee2cebdc41 修复:修复主播关播数据不展示问题 2022-12-14 17:08:09 +08:00
1407ecc2f2 修复随机PK天梯赛不出现的问题 2022-12-14 16:45:43 +08:00
18401019693
606fc64262 修复:修改主播播放时长位置 2022-12-14 16:31:43 +08:00
a5516ebfb3 移除一处debug位置 2022-12-14 15:35:20 +08:00
dd7214a945 Merge remote-tracking branch 'origin/master' 2022-12-14 14:44:06 +08:00
a20571e050 修复一处Glide的Contexts可能为空的问题 2022-12-14 14:43:28 +08:00
8f7adb3079 修复禁言IM消息过来时,uid可能为空的问题 2022-12-14 14:36:28 +08:00
adcf005e62 修复MainActivity初始化initTXIM时,登录信息失效导致getUid为空的问题 2022-12-14 14:18:25 +08:00
18401019693
8cff0195ad 修复:观看直播时,在直播间内主播Pk不展示对方主播头像问题 2022-12-14 14:08:38 +08:00
98940d7554 修复聊天室添加粉丝徽章,bitmap被回收的问题 2022-12-14 13:57:46 +08:00
4a8c29365c 修复CrashSaveBean的activities数组可能为空的问题 2022-12-14 13:44:22 +08:00
b641a65117 修复IMLoginManager的userInfo可能为空的问题 2022-12-14 13:42:36 +08:00
18401019693
d747407d6b 修复单人PK坐席头像展示问题 2022-12-14 13:08:03 +08:00
f302155912 update Pk补充注释 2022-12-14 11:37:00 +08:00
18401019693
3d60814538 修复单人PK坐席头像展示问题 2022-12-14 11:02:46 +08:00
1293368d59 fix:移除主播端飘屏弹幕选项 2022-12-13 18:11:57 +08:00
18401019693
d1e1f5f4e8 修复:上下滑动直播间,Pk头像展示在不PK得房间的情况 2022-12-13 16:56:06 +08:00
18401019693
b804c20ba0 修复:单人PK,PK条主播端和用户端展示问题 2022-12-13 16:23:13 +08:00
e030db04b9 fix:移除toast 2022-12-13 16:21:57 +08:00
0fcadde670 fix:修复天梯赛连胜标识通过PK-小头像-主页-跳转方式换房间不会被清空的问题 2022-12-13 16:00:17 +08:00
e522d04ead fix:修复开播后没有排位赛图标的问题 2022-12-13 14:35:51 +08:00
18401019693
ce0061e86e 修复:我的页面我的等修改只想新页面,优化:修改加入直播间报错 2022-12-13 14:30:21 +08:00
7ed4043a1f Merge remote-tracking branch 'origin/master' 2022-12-13 13:38:22 +08:00
18401019693
0b97d7bbaf 修复:多人Pk结束动画问题 2022-12-13 13:30:50 +08:00
5317f6d88f fix:修复首页ViewPager.setCurrentItem(int)为null导致的闪退问题 2022-12-13 13:23:00 +08:00
092b2ac519 udpate 移除隨機PK測試用代碼 2022-12-13 11:29:32 +08:00
c9725875b3 fix:整蠱添加禮物新增一些限制提示 2022-12-13 11:24:31 +08:00
6c33ac15f8 fix:修复主播开播返回不会弹出确认框
fix:修复主播点离开后,主播端没有离开遮罩图
2022-12-13 10:28:11 +08:00
af91783b9f Merge remote-tracking branch 'origin/master' 2022-12-12 18:30:48 +08:00
5755aa5232 update 多人PK也用新UI 2022-12-12 18:30:20 +08:00
ddc246e11c update 多人PK也用新UI 2022-12-12 18:18:36 +08:00
18401019693
869ad9adf7 修复:多人Pk结束动画问题 2022-12-12 18:16:53 +08:00
5356d91fef update 多人PK也用新UI 2022-12-12 17:45:15 +08:00
18401019693
f024283e80 修复:人Pk状态展示不正常 2022-12-12 17:00:51 +08:00
49167f332d update 隨機/自由PK 2022-12-12 16:30:32 +08:00
ea69f4bcb7 Merge remote-tracking branch 'origin/master' 2022-12-12 15:14:15 +08:00
18401019693
eaf973b927 修复单人PK胜利状态展示不对问题 2022-12-12 15:02:59 +08:00
fdbf5aee04 Merge branch 'dev_prank'
# Conflicts:
#	common/src/main/java/com/yunbao/common/http/PDLiveApi.java
#	common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java
2022-12-12 14:14:06 +08:00
e4c490577d update 整蛊 2022-12-12 14:11:05 +08:00
18401019693
b5247df69b 完成全服通知功能 2022-12-12 14:10:09 +08:00
d39ee17cc4 update 整蛊 2022-12-12 13:45:41 +08:00
07da7acacd update 整蛊 2022-12-10 18:28:40 +08:00
18401019693
28add09f32 修复:消息中心接受到多人PK问题 2022-12-10 17:53:49 +08:00
18401019693
9d69610713 修复:pk一次后,重新发起pk报50002错误 2022-12-10 17:39:11 +08:00
18401019693
32969a58db 修复:单人pk时间结束后,用户端由半屏自动变全屏 2022-12-10 17:38:33 +08:00
b188613035 Merge branch 'dev_random_pk' 2022-12-10 17:30:48 +08:00
308d5acc21 update 整蛊 2022-12-10 17:30:11 +08:00
18401019693
284b9784d6 多人Pk功能撤回 2022-12-10 16:20:13 +08:00
26f02065df update 随机PK 新增请求连麦超时管理 2022-12-10 16:08:04 +08:00
eef852c283 Merge branch 'dev_random_pk' 2022-12-10 15:03:00 +08:00
e0287899f8 update 随机PK RTC控制器新增超时管理 2022-12-10 15:01:24 +08:00
ae020b105a update 随机PK 修复返回uid为空时未进行下一轮PK问题 2022-12-10 15:00:48 +08:00
62c3cdcb30 update 随机PK 修复对方主播正在PK时不会继续调用next接口 2022-12-10 14:59:51 +08:00
01c657fdcb update 随机PK 修复对方主播正在PK时不会继续调用next接口 2022-12-10 14:59:21 +08:00
3a75e24601 update 随机PK 补充拒绝PK后的对话框 2022-12-10 14:58:50 +08:00
e28c393f88 update 随机PK 移除测试延迟代码 2022-12-10 14:58:01 +08:00
bfe8034b24 update 自由PK 注释 2022-12-10 14:55:21 +08:00
c056dfe246 update 自由PK 2022-12-10 14:55:03 +08:00
a7cf09de1e update 自由PK 2022-12-10 14:51:49 +08:00
7c4c22d69e 优化随机PK前先检测是否开启了连麦功能 2022-12-10 14:48:35 +08:00
3747f214b1 *新增长按随机PK【开始匹配】按钮可输入指定UIDPk的测试模式 2022-12-10 14:47:37 +08:00
18401019693
503fb0d7f1 单人Pk问题主播端修复修复 2022-12-10 14:47:29 +08:00
18401019693
6b0500b5ff 降低融云sdk 2022-12-10 13:41:38 +08:00
ae8c6cc23d update 单人PK 恢复PK计时不动的问题 2022-12-10 11:12:58 +08:00
ad028c69d0 update 自由PK 次数用完了提示用户
update 自由PK 调整UI
2022-12-09 17:51:15 +08:00
03b3398bce update 随机PK 修复对方主播正在PK时不会继续调用next接口 2022-12-09 17:35:39 +08:00
4a84283000 update 随机PK 调整拒绝PK回报服务器的时机 2022-12-09 17:19:50 +08:00
c49c560e8d update 随机PK 补充拒绝PK后的对话框 2022-12-09 17:08:12 +08:00
8d3ac7761f update 随机PK 移除测试延迟代码 2022-12-09 16:58:20 +08:00
a1d9b1f75b update 自由PK 注释 2022-12-09 16:47:00 +08:00
18401019693
afed0c8833 修改用户端多人PK视频顺序 2022-12-09 16:40:42 +08:00
415ed2fc9b update 自由PK 2022-12-09 16:39:41 +08:00
8e45e17768 update 自由PK 2022-12-09 14:13:47 +08:00
18401019693
576a30d1be 修改多人PK主播名称大小 2022-12-09 14:01:46 +08:00
18401019693
e380c8dcbc yh端多人Pk合流完成,Pk结束完成 2022-12-09 13:48:10 +08:00
5e9f23286e 优化随机PK前先检测是否开启了连麦功能 2022-12-09 10:15:20 +08:00
1bbc78fb32 *新增长按随机PK【开始匹配】按钮可输入指定UIDPk的测试模式 2022-12-09 09:50:47 +08:00
b56368412c Merge branch 'dev_random_pk'
# Conflicts:
#	common/src/main/res/values/strings.xml
#	config.gradle
#	live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java
#	live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
#	live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
2022-12-09 09:30:17 +08:00
4ad75a11a8 update 随机PK 2022-12-08 18:14:13 +08:00
3fa259c5b9 优化:调整天梯赛左右下角连胜字样大小
update 随机PK
2022-12-08 17:45:21 +08:00
18401019693
4cd4939c58 zb端多人Pk合流完成,Pk结束完成 2022-12-08 17:29:29 +08:00
b20141de02 update 整蛊 2022-12-08 14:42:33 +08:00
9eff246f06 update 随机PK&自由PK 2022-12-08 13:32:26 +08:00
285a33ff9a update 随机PK拒绝对话框 2022-12-08 11:34:31 +08:00
18401019693
7ebd935eba 多人Pk开播 2022-12-07 17:59:10 +08:00
f62a093092 update 自由PK 2022-12-07 16:10:22 +08:00
28b4a36800 完成随机PK模块 2022-12-07 15:36:23 +08:00
ec59fce097 修复新人特惠弹窗高度为1的问题 2022-12-06 17:53:17 +08:00
e134ef8d54 update 随机PK 2022-12-06 17:40:44 +08:00
29ddc68870 优化:WebViewActivity.java 兼容三按键导航栏 2022-12-06 16:58:30 +08:00
9ead9a6fb8 Merge branch 'master' into dev_random_pk
# Conflicts:
#	live/src/main/res/values/strings.xml
2022-12-05 17:46:57 +08:00
2a2672587c 关闭leakcanary 2022-12-05 17:44:49 +08:00
98122c25d8 优化LiveUserMoreDialogFragment.activity强引用导致的内存泄漏 2022-12-05 17:41:42 +08:00
84c89d7530 优化观众LiveRoomViewHolder强引用Context导致的内存泄漏 2022-12-05 17:41:42 +08:00
4268816539 优化观众直播间Activity强引用导致的内存泄漏 2022-12-05 17:41:42 +08:00
721172d48a 优化观众直播间PortraitLiveManager的强引用导致的内存泄漏 2022-12-05 17:41:42 +08:00
3e7942dbd4 优化观众直播间PortraitLiveManager的强引用导致的内存泄漏 2022-12-05 17:41:42 +08:00
17d18eff98 修复PPortraitLiveManager一处内存泄漏 2022-12-05 17:41:42 +08:00
0d422177ac 修复一处内存泄漏 2022-12-05 17:41:42 +08:00
6336eab32a 移除AliPay代码 2022-12-05 17:41:42 +08:00
f91a3f3fc1 优化对话框可能闪退的BUG 2022-12-05 17:41:41 +08:00
a489a6d00d 移除AliPay代码 2022-12-05 14:18:17 +08:00
8d8cff8d1b 修复直播间滑动列表数组下标溢出BUG 2022-12-05 10:30:15 +08:00
18142669586
5f487f74bd 修复多人连麦问题 2022-12-02 17:09:20 +08:00
857206e3da 修改连麦视频高度异常问题 2022-12-01 19:22:40 +08:00
18401019693
4ebe56913a 直播横竖屏问题修改 2022-12-01 19:13:52 +08:00
18401019693
efcc2591c2 直播横竖屏问题修改 2022-12-01 19:04:46 +08:00
18401019693
455b330b7d 关播时间问题 2022-12-01 18:53:12 +08:00
18401019693
ed2879e263 关播时间问题 2022-12-01 18:45:03 +08:00
3b1c5ac1ec 补充守护icon注释 2022-12-01 18:06:30 +08:00
18401019693
d243ffb380 修复守护问题 2022-12-01 17:56:21 +08:00
6bdd81038b Merge remote-tracking branch 'origin/master' 2022-12-01 17:29:12 +08:00
1eff58aca1 优化PK排位赛固定高度 2022-12-01 17:29:01 +08:00
18401019693
fa6eda5936 融云失败回调添加直播结束调用 2022-12-01 17:28:49 +08:00
18401019693
72f7e00dd5 修复退出直播间问题 2022-12-01 17:25:41 +08:00
707e083684 Merge remote-tracking branch 'origin/master' 2022-12-01 16:59:08 +08:00
8b4f88c766 新增开屏图 2022-12-01 16:58:05 +08:00
18401019693
ae3ac93248 主播,是否在播 2022-12-01 16:45:20 +08:00
18142669586
f43ccea32a 版本更新問題 2022-12-01 16:15:16 +08:00
18401019693
73684b9962 在线用户弹窗粉丝牌修改,我的等级页面边距修改 2022-12-01 14:51:29 +08:00
18401019693
80a1508dfc 修复手机开播Pk界面问题,直播间聊天滚动至底部优化 2022-12-01 13:34:25 +08:00
0b1393615c 修复PK结束后对方头像没隐藏问题 2022-12-01 13:19:57 +08:00
18401019693
4481b102ef 侧边栏任务领取问题修复 2022-11-30 19:05:00 +08:00
cab59a5f4a Merge remote-tracking branch 'origin/master' 2022-11-30 18:56:48 +08:00
9f6cd3fd6f 修复直播间多人PK滑动到下一个直播间依旧有PK条的问题 2022-11-30 18:56:16 +08:00
18401019693
4c5730d3bf 直播间聊天滚动问题 2022-11-30 18:50:14 +08:00
18401019693
1222aa9819 Merge remote-tracking branch 'origin/master' 2022-11-30 18:43:12 +08:00
18401019693
e58915edb6 直播间聊天滚动问题 2022-11-30 18:43:02 +08:00
18142669586
4d4c251ebd Merge remote-tracking branch 'origin/master' 2022-11-30 18:41:34 +08:00
18142669586
6a416aaba1 多人pk问题 2022-11-30 18:41:10 +08:00
bbb25cde50 Merge remote-tracking branch 'origin/master' 2022-11-30 18:40:46 +08:00
210749ebd3 移除多人连麦下麦黑屏问题 2022-11-30 18:34:18 +08:00
637fedcbe6 移除多人连麦列表一直刷新问题 2022-11-30 18:33:55 +08:00
18401019693
70b05b85d7 直播间闪烁问题 2022-11-30 17:37:20 +08:00
9a1cefdb70 移除主播未创建连麦房的【连麦房间不存在】Toast提示 2022-11-30 16:38:08 +08:00
6ca8fb0c29 新增下麦后100毫秒后检测播放器是否在播放,如果未播放则强制播放purl 2022-11-30 16:37:58 +08:00
18401019693
8e7de87c6b 侧边栏数据请求前移 2022-11-30 15:46:38 +08:00
cb55c09624 修复连麦时通过返回键触发弹窗后,直播间恢复允许滑动问题 2022-11-30 13:50:44 +08:00
18401019693
a41a58dc26 主播聊天问题修复 2022-11-30 13:20:23 +08:00
f257c2b5a9 修复多人连麦下麦后播放器横竖屏切换异常 2022-11-30 13:15:40 +08:00
18401019693
f5bd17f832 直播间聊天复用 2022-11-30 10:43:27 +08:00
1b7296c13b 修复滑动直播间观众列表头像装饰未清除问题 2022-11-30 10:24:00 +08:00
a965a83653 优化在连麦中禁止直播间滑动 2022-11-30 10:18:54 +08:00
18401019693
5cc521d93c 新增搜索主播等级标志, 2022-11-30 09:44:37 +08:00
6f2a893a4e 新增连麦头像框 2022-11-29 17:45:36 +08:00
1548b6f252 修复测试反馈的问题:上下滑动直播间会带着PK提示 2022-11-29 17:45:08 +08:00
18401019693
0c6b62ed1a 系统Im消息展示不出来问题修复 2022-11-29 16:39:09 +08:00
18401019693
1fcb3d312c 直播间头部展示上一个直播间数据问题,配合H5调整网页加载问题 2022-11-29 15:39:56 +08:00
35b24c261e 修复测试反馈的问题:用户名片点贵族跳转没用 2022-11-29 15:32:55 +08:00
e5c5a2e5f5 修复测试反馈的问题:滑动直播间数据没刷新 2022-11-29 15:25:27 +08:00
9934d53390 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
2022-11-29 14:44:34 +08:00
030fdb6ad0 修复【在连麦中可以通过全屏广播跳转】 2022-11-29 14:37:50 +08:00
18401019693
cf4948a3e2 悬浮窗视频调整,主播离开下滑直播间离开画面不消失问题修复 2022-11-29 14:34:23 +08:00
afd4cb6e41 修复【在线观众列表,不应该显示粉丝牌】 2022-11-29 14:07:24 +08:00
596c9f9962 修复【在线观众列表,先点粉丝再点日榜周榜,粉丝牌没有消失。】 2022-11-29 14:02:22 +08:00
020bbf322d 修复【关注主播后赠送粉丝牌后进不去粉丝团任务界面,需要重进直播间才可以。】 2022-11-29 13:54:43 +08:00
05b1a9bc74 修复第一次进直播间购买守护显示为空的问题 2022-11-29 13:09:54 +08:00
7f001ba887 修复多人连麦回到桌面再返回直播间丢失连麦图标问题 2022-11-29 11:38:35 +08:00
18401019693
744de267dd 优化新人任务的判断逻辑,贵族通知切换直播间的逻辑优化 2022-11-29 10:18:48 +08:00
18401019693
af26dc24c7 直播间错误下滑 2022-11-28 18:10:37 +08:00
18401019693
e9fa533e5a 修复多次调用检查直播间接口问题 2022-11-28 18:09:20 +08:00
3bd4301cda 修复直播间@列表 userlistModels为空导致的问题 2022-11-28 16:36:52 +08:00
23be58c4e8 修复IM消息获取getUserBean.getId()为空导致的问题 2022-11-28 16:36:51 +08:00
718d4a5d2f 修复星级挑战data.getImageUrl()为空导致的问题 2022-11-28 16:29:21 +08:00
733678532a 修复首页Banner进直播间没有弹新人特惠问题 2022-11-28 15:57:50 +08:00
6fb29bbf60 修复推送通知权限提示框非activity导致的闪图问题 2022-11-28 15:27:28 +08:00
ecbfa57276 Merge remote-tracking branch 'origin/master' 2022-11-28 14:55:55 +08:00
fc59a6f182 修复从个人名片跳转到他直播间不会关闭个人名片的问题 2022-11-28 14:55:47 +08:00
83039d7b29 修复连麦小窗再进直播间会闪退问题 2022-11-28 14:52:39 +08:00
18401019693
e405965298 修复多次调用检查直播间接口问题 2022-11-28 14:42:24 +08:00
18401019693
e6766dc5eb 修复直播间滚动,横竖屏展示错误问题 2022-11-28 14:36:29 +08:00
fe027e53db 优化主播连麦邀请/同意时提示体验 2022-11-28 10:59:11 +08:00
18401019693
546d9b5728 第十次接口合并,手机开播横屏展示修复 2022-11-28 10:46:49 +08:00
7008ccc505 优化主播连麦邀请/同意时提示体验 2022-11-28 10:25:26 +08:00
1fc8977f99 补充连麦API注释 2022-11-28 10:12:18 +08:00
4acba02c6a 补充更多跳转直播间前连麦检测 2022-11-28 10:10:21 +08:00
18401019693
491427feba 合并接口第九次上传,直播間切換直播 2022-11-26 17:41:58 +08:00
18401019693
249d251708 合并接口第八次上传,直播間切換直播 2022-11-26 17:12:02 +08:00
18401019693
96eee88c82 合并接口第七次次上传,跳轉統一性 2022-11-26 17:01:40 +08:00
18401019693
7005895d90 合并接口第liu次次上传 2022-11-26 16:52:11 +08:00
18401019693
3bdee09402 合并接口第五次次上传 2022-11-26 16:12:22 +08:00
2843131151 修复连麦看观众列表json转换丢失数据问题 2022-11-26 14:36:50 +08:00
a8d4d64174 Merge remote-tracking branch 'origin/master' 2022-11-26 11:38:07 +08:00
1853acd5eb 补充直播间加载配位赛接口 2022-11-26 11:37:32 +08:00
18401019693
03a4054ee5 合并接口第四次上传 2022-11-26 11:37:03 +08:00
fe66792935 Merge remote-tracking branch 'origin/master' 2022-11-26 11:08:25 +08:00
18401019693
082c9d7d12 合并接口第三次上传 2022-11-26 11:07:56 +08:00
e35eb5ac7f 修复一处回报的闪退异常 2022-11-26 10:57:31 +08:00
18401019693
5e631652a9 合并接口第er次上传 2022-11-25 17:58:15 +08:00
4eb9adad78 调整检测连麦对话框位置
修复一处闪退问题
2022-11-25 17:48:47 +08:00
4a9a8c3ec3 Merge remote-tracking branch 'origin/master' 2022-11-25 16:28:19 +08:00
18401019693
450047aae2 合并接口第一次上传 2022-11-25 16:26:56 +08:00
eb65c0e101 优化主播下播时也同步关掉连麦房 2022-11-25 15:31:14 +08:00
6bd29ec63e 调整在线列表-守护-空列表时的图片显示 2022-11-25 14:55:56 +08:00
f0231be306 调整购买守护界面守护全年的文本颜色 2022-11-25 14:26:38 +08:00
b12547cd88 补充多人连麦文案
修复主播发起邀请时会在私聊里显示私聊im代码
2022-11-25 13:49:14 +08:00
ed6b531b8d update 随机PK 2022-11-24 18:08:45 +08:00
47b9487e13 调整连麦主播邀请用户时,用户的弹框样式 2022-11-24 17:08:38 +08:00
ec40f8fa0d 补充下麦时调用融云接口 2022-11-24 16:35:33 +08:00
86a0a19fec 修复一处闪退问题
新增统一连麦状态管理类
修复连麦过程中可以通过回到桌面-重进APP,从而可以进入其他直播间问题(方案:连麦中点击其他直播间先询问是否退出连麦)
2022-11-24 16:27:02 +08:00
e0b69be2d4 update 随机Pk 2022-11-24 15:34:51 +08:00
a2ad006a7e 修复心愿单高度异常问题 2022-11-24 13:45:59 +08:00
9b17c1225a update 随机Pk 2022-11-24 13:34:09 +08:00
18401019693
32881d3f35 修复主播发动态身份判断问题 2022-11-24 10:40:27 +08:00
e8367b8f1a 调整直播间观众列表贵族icon不居中问题 2022-11-23 18:12:05 +08:00
fc1bada607 修复部分弹框没有动画效果 2022-11-23 18:01:33 +08:00
1eca5b0309 Merge remote-tracking branch 'origin/master' 2022-11-23 17:41:44 +08:00
08906e028a 修复三按键导航模式下,首页Banner进去可能网页底部显示不全的问题 2022-11-23 17:41:34 +08:00
18401019693
6e36e15ef3 删除埋点(adjust-android) 2022-11-23 17:16:45 +08:00
d71fe7d92e 调整直播准备界面-选择频道UI 2022-11-23 16:55:08 +08:00
72ca2b7b04 修复美颜滤镜的bar显示导致对话框抖动问题 2022-11-23 16:49:01 +08:00
5768ff5518 调整个人名片UI 2022-11-23 16:33:39 +08:00
8a03b194b2 update 随机PK 2022-11-23 16:07:57 +08:00
0d18a135ec Merge remote-tracking branch 'origin/master' 2022-11-23 15:21:54 +08:00
91fdef55c7 更新多人连麦主播端部分代码注释
限制多人连麦直播端仅允许同意/邀请三人
2022-11-23 15:21:44 +08:00
18401019693
4d437be248 修改直播间切换送礼列表不停止问题 2022-11-23 15:04:04 +08:00
d42835231e 调整多人连麦踢人后刷新列表 2022-11-23 14:42:00 +08:00
3d117dbcb4 Merge remote-tracking branch 'origin/master' 2022-11-23 14:14:34 +08:00
202aedbcf3 新增多人连麦主播端 2022-11-23 14:14:02 +08:00
18401019693
14a4bc4343 修改直播间图标间距和贵族大小 2022-11-23 14:08:04 +08:00
18401019693
011322dd8e 贵族开通全服通知 2022-11-23 13:42:55 +08:00
18401019693
0d219e4b6d act进入退出动画 2022-11-22 18:15:25 +08:00
18401019693
1972144384 贵族点击 2022-11-22 17:12:15 +08:00
18401019693
08e7e6b461 礼物弹窗更改 2022-11-22 14:57:13 +08:00
dbba33f085 修复重进直播间不显示PK提示的问题 2022-11-22 14:28:29 +08:00
4a637d0a69 创建随机PK分支 2022-11-21 15:39:12 +08:00
18401019693
a9d323354b Js接口整合后续更改 2022-11-21 15:22:54 +08:00
1066 changed files with 55687 additions and 7784 deletions

View File

@@ -118,8 +118,12 @@ public class FaceManager implements SensorEventListener {
if ("FilterViewHolder_".equals(key)) {
for (FaceBeautyFilterBean filter : faceBeautyDataFactory.getBeautyFilters()) {
if (filter.getKey().equals(configMap.get(key)) && !"origin".equals(configMap.get(key))) {
faceBeautyDataFactory.onFilterSelected(filter.getKey(), Double.parseDouble((String) Objects.requireNonNull(configMap.get("FilterViewHolder_" + configMap.get(key) + "_val"))) / 100, filter.getDesRes());
Log.i(TAG, "test: 设置滤镜 =" + filter.getKey() + " val = " + configMap.get("FilterViewHolder_" + configMap.get(key) + "_val"));
try {
faceBeautyDataFactory.onFilterSelected(filter.getKey(), Double.parseDouble((String) Objects.requireNonNull(configMap.get("FilterViewHolder_" + configMap.get(key) + "_val"))) / 100, filter.getDesRes());
Log.i(TAG, "test: 设置滤镜 =" + filter.getKey() + " val = " + configMap.get("FilterViewHolder_" + configMap.get(key) + "_val"));
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
@@ -127,8 +131,12 @@ public class FaceManager implements SensorEventListener {
String name = key.replace("BeautySkinViewHolder_", "");
for (FaceBeautyBean bean : faceBeautyDataFactory.getShapeBeauty()) {
if (bean.getKey().equals(name)) {
faceBeautyDataFactory.updateParamIntensity(bean.getKey(), Double.parseDouble((String) Objects.requireNonNull(configMap.get(key))));
Log.i(TAG, "test: 设置美颜 = " + bean.getKey() + " val = " + configMap.get(key));
try {
faceBeautyDataFactory.updateParamIntensity(bean.getKey(), Double.parseDouble((String) Objects.requireNonNull(configMap.get(key))));
Log.i(TAG, "test: 设置美颜 = " + bean.getKey() + " val = " + configMap.get(key));
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}
@@ -136,8 +144,12 @@ public class FaceManager implements SensorEventListener {
String name = key.replace("BeautyShapeViewHolder_", "");
for (FaceBeautyBean bean : faceBeautyDataFactory.getShapeBeauty()) {
if (bean.getKey().equals(name)) {
faceBeautyDataFactory.updateParamIntensity(bean.getKey(), Double.parseDouble((String) Objects.requireNonNull(configMap.get(key))));
Log.i(TAG, "test: 设置美肤 = " + bean.getKey() + " val = " + configMap.get(key));
try {
faceBeautyDataFactory.updateParamIntensity(bean.getKey(), Double.parseDouble((String) Objects.requireNonNull(configMap.get(key))));
Log.i(TAG, "test: 设置美肤 = " + bean.getKey() + " val = " + configMap.get(key));
} catch (Exception e) {
e.printStackTrace();
}
break;
}
}

View File

@@ -80,11 +80,11 @@ public class ContainerRecyclerAdapter extends RecyclerView.Adapter<BaseViewHolde
}
public void hideSeekBar() {
if (seekBar.getVisibility() == View.GONE) {
if (seekBar.getVisibility() == View.INVISIBLE) {
return;
}
seekBar.setOnProgressChangeListener(null);
seekBar.setVisibility(View.GONE);
seekBar.setVisibility(View.INVISIBLE);
}

View File

@@ -55,8 +55,8 @@ public class FURenderer extends IFURenderer {
private FURenderKit mFURenderKit;
/* AI道具*/
private String BUNDLE_AI_FACE = "model" + File.separator + "ai_face_processor_lite.bundle";
private String BUNDLE_AI_HUMAN = "model" + File.separator + "ai_human_processor.bundle";
public static String BUNDLE_AI_FACE = "model" + File.separator + "ai_face_processor_lite.bundle";
public static String BUNDLE_AI_HUMAN = "model" + File.separator + "ai_human_processor.bundle";
/* GL 线程 ID */
private Long mGlThreadId = 0L;

View File

@@ -314,6 +314,35 @@ public class FileUtils {
return null;
}
public static String copyAssetsFile(Context context, String assetsPath, String fileName, String saveFileDir) {
File fileDir = new File(saveFileDir);
if (!fileDir.exists()) {
fileDir.mkdirs();
}
File file = new File(fileDir, fileName);
if (file.exists()) {
return file.getAbsolutePath();
}
try {
InputStream inputStream = context.getAssets().open(assetsPath);
FileOutputStream fos = new FileOutputStream(file);
BufferedInputStream bis = new BufferedInputStream(inputStream);
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] byteArray = new byte[1024];
int bytes = bis.read(byteArray);
while (bytes > 0) {
bos.write(byteArray, 0, bytes);
bos.flush();
bytes = bis.read(byteArray);
}
bos.close();
fos.close();
return file.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 获取Uri文件绝对路径
@@ -522,6 +551,7 @@ public class FileUtils {
/**
* 遍历一个文件夹获取改文件夹下所有文件名
*
* @param path
* @return
*/
@@ -563,7 +593,7 @@ public class FileUtils {
* @param path String
* @return Boolean
*/
public static Boolean checkIsVideo(Context context,String path) {
public static Boolean checkIsVideo(Context context, String path) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(context, Uri.fromFile(new File(path)));

View File

@@ -299,7 +299,7 @@
<string name="beautify_hip_slim">Hip</string>
<string name="beautify_head_slim">Head shrink</string>
<string name="beautify_leg_thin_slim">Thin leg</string>
<string name="toast_not_detect_body">No body tracking</string>
<string name="toast_not_detect_body">No message tracking</string>
<string name="pta_human_full_body">Body driver</string>
<string name="pta_human_half_body">Bust driver</string>

View File

@@ -1,8 +1,5 @@
package com.yunbao.faceunity;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
@@ -10,8 +7,5 @@ import static org.junit.Assert.*;
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

1
Share/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

73
Share/build.gradle Normal file
View File

@@ -0,0 +1,73 @@
apply plugin: 'com.android.library'
apply plugin: 'img-optimizer'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion rootProject.ext.android.compileSdkVersion
buildToolsVersion rootProject.ext.android.buildToolsVersion
packagingOptions {
pickFirst "lib/armeabi/libyuvutils.so"
pickFirst "lib/arm64-v8a/libyuvutils.so"
pickFirst "lib/armeabi-v7a/libyuvutils.so"
pickFirst "lib/armeabi/libyuvtools.so"
pickFirst "lib/arm64-v8a/libyuvtools.so"
pickFirst "lib/armeabi-v7a/libyuvtools.so"
exclude "lib/arm64-v8a/libmmcv_api_handgesture.so"
exclude "lib/arm64-v8a/libmmcv_api_express.so"
exclude "lib/arm64-v8a/libMediaEncoder.so"
exclude "lib/arm64-v8a/libarcore_sdk_c.so"
exclude "lib/arm64-v8a/libmediadecoder.so"
exclude "lib/arm64-v8a/libMediaMuxer.so"
exclude "lib/arm64-v8a/libarcore_sdk_jni.so"
exclude "lib/arm64-v8a/libMediaUtils.so"
exclude "lib/arm64-v8a/libcosmosffmpeg.so"
}
defaultConfig {
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
manifestPlaceholders = rootProject.ext.manifestPlaceholders
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
aaptOptions {
cruncherEnabled = false
useNewCruncher = false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
flatDir {
dirs 'libs', '../libs'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation rootProject.ext.dependencies["appcompat-androidx"]
implementation rootProject.ext.dependencies["recyclerview-androidx"]
//common
implementation project(path: ':common')
//Twitter
implementation 'com.twitter.sdk.android:twitter:3.1.1'
//facebook & Messenger
implementation 'com.facebook.android:facebook-share:15.2.0'
}

0
Share/consumer-rules.pro Normal file
View File

21
Share/proguard-rules.pro vendored Normal file
View File

@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

View File

@@ -0,0 +1,26 @@
package com.yunbao.share;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.yunbao.share.test", appContext.getPackageName());
}
}

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.pdlive.shayu">
<queries>
<package android:name="com.pdlive.shayu"/>
<package android:name="com.facebook.orca"/>
<package
android:name="com.facebook.composer" />
<package
android:name="com.facebook.katana" />
<package
android:name="com.facebook.messenger" />
<provider
android:authorities="com.facebook.katana.provider.PlatformProvider"
tools:ignore="ExportedContentProvider" />
</queries>
<application android:allowBackup="true">
<activity
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name"
android:screenOrientation="portrait" />
<provider
android:name="com.facebook.FacebookContentProvider"
android:authorities="com.facebook.app.FacebookContentProvider2011402032399020"
android:exported="true" />
<receiver
android:name="com.yunbao.share.receiver.TwitterResultReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_SUCCESS" />
<action android:name="com.twitter.sdk.android.tweetcomposer.UPLOAD_FAILURE" />
<action android:name="com.twitter.sdk.android.tweetcomposer.TWEET_COMPOSE_CANCEL" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@@ -0,0 +1,34 @@
package com.yunbao.share;
import android.content.Context;
import android.content.IntentFilter;
import android.net.Uri;
import androidx.core.content.FileProvider;
import com.twitter.sdk.android.tweetcomposer.TweetUploadService;
import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.receiver.TwitterResultReceiver;
import java.io.File;
public abstract class AbsShareInterface {
protected final Context mContext;
public AbsShareInterface(Context context) {
this.mContext = context;
IntentFilter filter = new IntentFilter(TweetUploadService.UPLOAD_SUCCESS);
filter.addAction(TweetUploadService.UPLOAD_FAILURE);
filter.addAction(TweetUploadService.TWEET_COMPOSE_CANCEL);
context.registerReceiver(new TwitterResultReceiver(), filter);
}
public abstract void share(ShareBuilder builder, ICallback callback);
public Uri fileToUri(File file){
return FileProvider.getUriForFile(mContext,
mContext.getPackageName() + ".fileprovider",
file
);
}
}

View File

@@ -0,0 +1,6 @@
package com.yunbao.share;
public interface ICallback {
void onSuccess();
void onFailure();
}

View File

@@ -0,0 +1,130 @@
package com.yunbao.share.adapters;
import android.content.Context;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.recyclerview.widget.RecyclerView;
import com.pdlive.shayu.R;
import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.platform.FacebookShare;
import com.yunbao.share.platform.Instagram;
import com.yunbao.share.platform.Line;
import com.yunbao.share.platform.MessengerShare;
import com.yunbao.share.platform.TwitterShare;
import com.yunbao.share.platform.WhatsApp;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class ShareAppAdapter extends RecyclerView.Adapter<ShareAppAdapter.AppViewHolder> {
private Context mContext;
private List<ShareBuilder> list;
public ShareAppAdapter(Context mContext) {
list = new ArrayList<>();
this.mContext = mContext;
}
public void setList(List<ShareBuilder> list) {
this.list = list;
notifyDataSetChanged();
}
@NonNull
@Override
public AppViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new AppViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_share_app, parent, false));
}
@Override
public void onBindViewHolder(@NonNull AppViewHolder holder, int position) {
ShareBuilder builder = list.get(position);
switch (builder.getType()) {
case ShareBuilder.APP_FACEBOOK:
holder.setData(builder, R.mipmap.icon_share_facebook, R.string.dialog_share_app_facebook);
break;
case ShareBuilder.APP_LINE:
holder.setData(builder, R.mipmap.icon_share_line, R.string.dialog_share_app_line);
break;
case ShareBuilder.APP_TWITTER:
holder.setData(builder, R.mipmap.icon_share_twitter, R.string.dialog_share_app_twitter);
break;
case ShareBuilder.APP_WHATSAPP:
holder.setData(builder, R.mipmap.icon_share_whatsapp, R.string.dialog_share_app_whatsapp);
break;
case ShareBuilder.APP_MESSENGER:
holder.setData(builder, R.mipmap.icon_share_messenger, R.string.dialog_share_app_messenger);
break;
case ShareBuilder.APP_INSTAGRAM:
holder.setData(builder, R.mipmap.icon_share_instagram, R.string.dialog_share_app_instagram);
break;
}
}
@Override
public int getItemCount() {
return list.size();
}
public static class AppViewHolder extends RecyclerView.ViewHolder {
ImageView icon;
TextView title;
public AppViewHolder(@NonNull View itemView) {
super(itemView);
icon = itemView.findViewById(R.id.share_app_icon);
title = itemView.findViewById(R.id.share_app_name);
}
public void setData(ShareBuilder bean, @DrawableRes int iconId, @StringRes int appName) {
icon.setImageResource(iconId);
title.setText(appName);
itemView.setOnClickListener(v -> {
switch (bean.getType()) {
case ShareBuilder.APP_FACEBOOK:
new FacebookShare(itemView.getContext()).share(bean, new ShareCallback());
break;
case ShareBuilder.APP_LINE:
new Line(itemView.getContext()).share(bean, new ShareCallback());
break;
case ShareBuilder.APP_TWITTER:
new TwitterShare(itemView.getContext()).share(bean, new ShareCallback());
break;
case ShareBuilder.APP_WHATSAPP:
new WhatsApp(itemView.getContext()).share(bean, new ShareCallback());
break;
case ShareBuilder.APP_MESSENGER:
new MessengerShare(itemView.getContext()).share(bean, new ShareCallback());
break;
case ShareBuilder.APP_INSTAGRAM:
new Instagram(itemView.getContext()).share(bean, new ShareCallback());
break;
}
});
}
private static class ShareCallback implements ICallback {
@Override
public void onSuccess() {
}
@Override
public void onFailure() {
}
}
}
}

View File

@@ -0,0 +1,134 @@
package com.yunbao.share.bean;
import androidx.annotation.NonNull;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.StringUtil;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Locale;
public class ShareBuilder {
public static final int APP_FACEBOOK = 0;
public static final int APP_LINE = 1;
public static final int APP_TWITTER = 2;
public static final int APP_WHATSAPP = 3;
public static final int APP_MESSENGER = 4;
public static final int APP_INSTAGRAM = 5;
private String text;
private String link;
private File file;
private int type;
private String uid;
private String anchorId;
private String anchorName;
private String anchorAvatar;
public static String createLiveShareLink(String shareUid, String anchorId, String anchorName, String anchorAvatar) {
return String.format(CommonAppConfig.HOST +
"/index.php?g=Appapi&m=home&a=share&uid=%s&user_id=%s&isGoogle=%s",
anchorId,
shareUid,
CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0"
) ;
}
public static String createInviteLink(String shareUid) {
return String.format("https://www.pdlive.com/public/app/download/index.html?user_id=%s&isGoogle=%s",
shareUid,
CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0"
);
}
public static ShareBuilder builder(int type) {
return new ShareBuilder(type);
}
private ShareBuilder(int type) {
this.type = type;
}
public int getType() {
return type;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getAnchorId() {
return anchorId;
}
public void setAnchorId(String anchorId) {
this.anchorId = anchorId;
}
public String getAnchorName() {
return anchorName;
}
public void setAnchorName(String anchorName) {
this.anchorName = anchorName;
}
public String getAnchorAvatar() {
return anchorAvatar;
}
public void setAnchorAvatar(String anchorAvatar) {
this.anchorAvatar = anchorAvatar;
}
public ShareBuilder setText(String text) {
this.text = text;
return this;
}
public ShareBuilder setLink(String link) {
this.link = link;
return this;
}
public ShareBuilder setFile(File file) {
this.file = file;
return this;
}
public String getText() {
if (StringUtil.isEmpty(text)) {
return getLink();
}
return text + "\n" + getLink();
}
public String getLink() {
if (StringUtil.isEmpty(link)) {
link = createLiveShareLink(uid, anchorId, anchorName, anchorAvatar);
}
return link;
}
public File getFile() {
return file;
}
@NonNull
@Override
public String toString() {
return "ShareBuilder{" +
"text='" + text + '\'' +
", link='" + link + '\'' +
", file=" + file +
'}';
}
}

View File

@@ -0,0 +1,48 @@
package com.yunbao.share.platform;
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import androidx.annotation.NonNull;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.share.Sharer;
import com.facebook.share.model.ShareLinkContent;
import com.facebook.share.widget.ShareDialog;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBuilder;
public class FacebookShare extends AbsShareInterface {
public static CallbackManager callbackManager;
public FacebookShare(Context context) {
super(context);
}
@Override
public void share(ShareBuilder builder, ICallback callback) {
callbackManager= CallbackManager.Factory.create();
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(builder.getLink()))
.build();
ShareDialog dialog=new ShareDialog((Activity) mContext);
dialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
}
@Override
public void onCancel() {
}
@Override
public void onError(@NonNull FacebookException e) {
}
});
dialog.show(content);
}
}

View File

@@ -0,0 +1,27 @@
package com.yunbao.share.platform;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBuilder;
public class Instagram extends AbsShareInterface {
public Instagram(Context context) {
super(context);
}
@Override
public void share(ShareBuilder builder, ICallback callback) {
String type = "image/*";
Intent share = new Intent(Intent.ACTION_SEND);
Uri uri = fileToUri(builder.getFile());
share.setType(type);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setPackage("com.instagram.android");
mContext.startActivity(Intent.createChooser(share, "Share to"));
callback.onSuccess();
}
}

View File

@@ -0,0 +1,31 @@
package com.yunbao.share.platform;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBuilder;
import java.net.URLEncoder;
public class Line extends AbsShareInterface {
public Line(Context context) {
super(context);
}
@Override
public void share(ShareBuilder builder, ICallback callback) {
try {
Intent share = new Intent(Intent.ACTION_VIEW, Uri.parse("https://line.me/R/share?text=" + URLEncoder.encode(builder.getText(), "UTF-8")));
mContext.startActivity(share);
callback.onSuccess();
} catch (Exception e) {
callback.onFailure();
throw new RuntimeException(e);
}
}
}

View File

@@ -0,0 +1,57 @@
package com.yunbao.share.platform;
import android.app.Activity;
import android.content.Context;
import android.net.Uri;
import androidx.annotation.NonNull;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.share.Sharer;
import com.facebook.share.model.ShareLinkContent;
import com.facebook.share.widget.MessageDialog;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBuilder;
public class MessengerShare extends AbsShareInterface {
public static CallbackManager callbackManager;
public MessengerShare(Context context) {
super(context);
FacebookSdk.setIsDebugEnabled(true);
}
@Override
public void share(ShareBuilder builder, ICallback callback) {
callbackManager = CallbackManager.Factory.create();
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(builder.getLink()))
.build();
MessageDialog dialog = new MessageDialog((Activity) mContext);
dialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
callback.onSuccess();
}
@Override
public void onCancel() {
}
@Override
public void onError(@NonNull FacebookException e) {
e.printStackTrace();
}
});
if(dialog.canShow(content)) {
dialog.show(content);
}else{
callback.onFailure();
}
}
}

View File

@@ -0,0 +1,73 @@
package com.yunbao.share.platform;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.twitter.sdk.android.core.Twitter;
import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBuilder;
import java.net.URLEncoder;
public class TwitterShare extends AbsShareInterface {
public TwitterShare(Context context) {
super(context);
Twitter.initialize(context);
}
@Override
public void share(ShareBuilder date, ICallback callback) {
/*
new TwitterAuthClient().authorize((Activity) mContext, new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
//获取以下登录成功返回信息进行登录验证
//获取登录用户信息
final TwitterSession activeSession=TwitterCore.getInstance().getSessionManager().getActiveSession();
Intent intent = new ComposerActivity.Builder(mContext)
.session(activeSession)
.image(fileToUri(date.getFile()))
.text(date.getText())
.hashtags("#twitter")
.createIntent();
mContext.startActivity(intent);
}
@Override
public void failure(TwitterException e) {
}
});*/
/* TweetComposer.Builder builder;
if (date.getFile() == null) {
try {
builder=new TweetComposer.Builder(mContext)
.text(date.getText())
.url(new URL(date.getLink()));
} catch (MalformedURLException e) {
throw new RuntimeException(e);
}
} else {
builder = new TweetComposer.Builder(mContext)
.text(date.getText())
.image(fileToUri(date.getFile()));
}
builder.show();*/
try {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_VIEW);
sendIntent.putExtra(Intent.EXTRA_TEXT, date.getText());
// sendIntent.setType("text/plain");
//sendIntent.setPackage("com.twitter.composer.ComposerShareActivity");
sendIntent.setData(Uri.parse("https://twitter.com/intent/tweet?text=" +URLEncoder.encode(date.getText(),"UTF-8")));
mContext.startActivity(sendIntent);
callback.onSuccess();
} catch (Exception e) {
callback.onFailure();
}
}
}

View File

@@ -0,0 +1,30 @@
package com.yunbao.share.platform;
import android.content.Context;
import android.content.Intent;
import com.yunbao.share.AbsShareInterface;
import com.yunbao.share.ICallback;
import com.yunbao.share.bean.ShareBuilder;
public class WhatsApp extends AbsShareInterface {
public WhatsApp(Context context) {
super(context);
}
@Override
public void share(ShareBuilder builder, ICallback callback) {
try {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, builder.getText());
sendIntent.setType("text/plain");
sendIntent.setPackage("com.whatsapp");
mContext.startActivity(sendIntent);
callback.onSuccess();
} catch (Exception e) {
callback.onFailure();
}
}
}

View File

@@ -0,0 +1,28 @@
package com.yunbao.share.receiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.twitter.sdk.android.tweetcomposer.TweetUploadService;
import com.yunbao.common.utils.ToastUtil;
public class TwitterResultReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("分享log", "onReceive: "+intent.getAction());
if (TweetUploadService.UPLOAD_SUCCESS.equals(intent.getAction())) {
ToastUtil.show("推特分享成功");
// success
final Long tweetId = intent.getExtras().getLong(TweetUploadService.EXTRA_TWEET_ID);
} else if (TweetUploadService.UPLOAD_FAILURE.equals(intent.getAction())) {
// failure
ToastUtil.show("推特分享失败");
final Intent retryIntent = intent.getExtras().getParcelable(TweetUploadService.EXTRA_RETRY_INTENT);
} else if (TweetUploadService.TWEET_COMPOSE_CANCEL.equals(intent.getAction())) {
// cancel
ToastUtil.show("推特分享取消");
}
}
}

View File

@@ -0,0 +1,158 @@
package com.yunbao.share.ui;
import static android.content.Context.CLIPBOARD_SERVICE;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Shader;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView;
import com.pdlive.shayu.R;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.adapters.ShareAppAdapter;
import java.util.ArrayList;
import java.util.List;
public class InvitePopDialog extends AbsDialogPopupWindow {
private ShareAppAdapter adapter;
private RecyclerView list;
private RoundedImageView avatar;
private TextView info;
private TextView link;
private TextView title;
private List<ShareBuilder> data;
private String uid;
private String anchorId;
private String anchorName;
private String anchorAvatar;
private String url;
public InvitePopDialog(@NonNull Context context) {
super(context);
}
public InvitePopDialog setUid(String uid) {
this.uid = uid;
return this;
}
public InvitePopDialog setAnchorId(String anchorId) {
this.anchorId = anchorId;
return this;
}
public InvitePopDialog setAnchorName(String anchorName) {
this.anchorName = anchorName;
return this;
}
public InvitePopDialog setAnchorAvatar(String anchorAvatar) {
this.anchorAvatar = anchorAvatar;
return this;
}
@Override
public void buildDialog(XPopup.Builder builder) {
}
@Override
public int bindLayoutId() {
return R.layout.dialog_share;
}
@Override
protected void onCreate() {
super.onCreate();
findViewById(R.id.close).setOnClickListener(v -> dismiss());
((ImageView) findViewById(R.id.close)).setImageResource(R.mipmap.icon_invite_close);
findViewById(R.id.share_copy).setOnClickListener(v -> copyLink());
// findViewById(R.id.share_preview).setVisibility(GONE);
findViewById(R.id.share_dialog).setBackgroundResource(R.mipmap.bg_dialog_inviet);
title = findViewById(R.id.share_title);
list = findViewById(R.id.share_apps_list);
avatar = findViewById(R.id.share_avatar);
info = findViewById(R.id.share_info);
link = findViewById(R.id.share_link);
adapter = new ShareAppAdapter(getContext());
list.setLayoutManager(new GridLayoutManager(getContext(), 3));
list.setAdapter(adapter);
initData();
link.setText(url.substring(0, 40));
info.setText(R.string.dialog_invite_info);
avatar.setImageResource(R.mipmap.ic_launcher);
//title.setTextColor(getContext().getResources().getColorStateList(R.drawable.bg_invite_title));
title.setText(R.string.dialog_invite_title);
title.getViewTreeObserver().addOnGlobalLayoutListener(this::setTitleColor);
}
private void setTitleColor() {
int[] colors = {
Color.parseColor("#3377FF"),
Color.parseColor("#7F66FF"),
};
float[] position = {
0f,
1.0f
};
float height = title.getMeasuredHeight();
LinearGradient mLinearGradient = new LinearGradient(0, 0, 0, height, colors, position, Shader.TileMode.CLAMP);
title.getPaint().setShader(mLinearGradient);
title.invalidate();
}
private void initData() {
data = new ArrayList<>();
data.add(builder(ShareBuilder.APP_FACEBOOK));
data.add(builder(ShareBuilder.APP_LINE));
data.add(builder(ShareBuilder.APP_TWITTER));
data.add(builder(ShareBuilder.APP_WHATSAPP));
data.add(builder(ShareBuilder.APP_MESSENGER));
// data.add(builder(ShareBuilder.APP_INSTAGRAM));
adapter.setList(data);
}
private ShareBuilder builder(int type) {
ShareBuilder builder = ShareBuilder.builder(type);
builder.setText(getContext().getString(R.string.dialog_invite_info));
builder.setLink(url);
builder.setUid(uid);
builder.setAnchorId(anchorId);
builder.setAnchorName(anchorName);
builder.setAnchorAvatar(anchorAvatar);
return builder;
}
private void copyLink() {
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", info.getText() + "\n" + url);
cm.setPrimaryClip(clipData);
ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success));
}
public InvitePopDialog setUrl(String data) {
this.url = data + "&isGoogle=" + (CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0");
return this;
}
}

View File

@@ -0,0 +1,146 @@
package com.yunbao.share.ui;
import static android.content.Context.CLIPBOARD_SERVICE;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView;
import com.pdlive.shayu.R;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.adapters.ShareAppAdapter;
import java.util.ArrayList;
import java.util.List;
public class SharePopDialog extends AbsDialogPopupWindow {
private ShareAppAdapter adapter;
private RecyclerView list;
private RoundedImageView avatar;
private TextView info;
private TextView link;
private List<ShareBuilder> data;
private String uid;
private String anchorId;
private String anchorName;
private String anchorAvatar;
private String shareLink;
public SharePopDialog(@NonNull Context context) {
super(context);
}
public SharePopDialog setUid(String uid) {
this.uid = uid;
return this;
}
public SharePopDialog setAnchorId(String anchorId) {
this.anchorId = anchorId;
return this;
}
public SharePopDialog setAnchorName(String anchorName) {
this.anchorName = anchorName;
return this;
}
public SharePopDialog setAnchorAvatar(String anchorAvatar) {
this.anchorAvatar = anchorAvatar;
return this;
}
public SharePopDialog setShareLink(String link) {
this.shareLink = link;
return this;
}
@Override
public void buildDialog(XPopup.Builder builder) {
}
@Override
public int bindLayoutId() {
return R.layout.dialog_share;
}
@Override
protected void onCreate() {
super.onCreate();
findViewById(R.id.close).setOnClickListener(v -> dismiss());
findViewById(R.id.share_copy).setOnClickListener(v -> copyLink());
list = findViewById(R.id.share_apps_list);
avatar = findViewById(R.id.share_avatar);
info = findViewById(R.id.share_info);
link = findViewById(R.id.share_link);
adapter = new ShareAppAdapter(getContext());
list.setLayoutManager(new GridLayoutManager(getContext(), 3));
list.setAdapter(adapter);
initData();
}
private void initData() {
data = new ArrayList<>();
data.add(builder(ShareBuilder.APP_FACEBOOK));
data.add(builder(ShareBuilder.APP_LINE));
data.add(builder(ShareBuilder.APP_TWITTER));
data.add(builder(ShareBuilder.APP_WHATSAPP));
data.add(builder(ShareBuilder.APP_MESSENGER));
//data.add(builder(ShareBuilder.APP_INSTAGRAM));
adapter.setList(data);
String url;
if (shareLink == null) {
url = ShareBuilder.createLiveShareLink(uid, anchorId, anchorName, anchorAvatar).substring(0, 40) + "...";
} else {
if (shareLink.length() > 40) {
url = shareLink.substring(0, 40) + "...";
} else {
url = shareLink;
}
}
link.setText(url);
info.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(anchorName) ? "" : anchorName));
ImgLoader.display(getContext(), anchorAvatar, avatar);
}
private ShareBuilder builder(int type) {
ShareBuilder builder = ShareBuilder.builder(type);
builder.setText(String.format(getContext().getString(R.string.dialog_share_info), StringUtil.isEmpty(anchorName) ? "" : anchorName));
builder.setUid(uid);
builder.setAnchorId(anchorId);
builder.setAnchorName(anchorName);
builder.setAnchorAvatar(anchorAvatar);
if (shareLink != null) {
builder.setLink(shareLink);
}
return builder;
}
private void copyLink() {
String url;
if (shareLink != null) {
url = shareLink;
} else {
url = ShareBuilder.createLiveShareLink(uid, anchorId, anchorName, anchorAvatar);
}
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text",info.getText().toString()+"\n"+url);
cm.setPrimaryClip(clipData);
ToastUtil.show(getContext().getString(com.yunbao.common.R.string.copy_success));
}
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="189dp" android:height="42dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#ffffc621" android:endColor="#ffffae05" android:angle="135" />
<corners android:radius="21dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="112dp" android:height="42dp">
<shape android:shape="rectangle">
<stroke android:width="1dp" android:color="#ffffffff" />
<gradient android:type="linear" android:useLevel="true" android:startColor="#3377FF" android:endColor="#7F66FF" android:angle="90" />
<corners android:topLeftRadius="22dp" android:topRightRadius="22dp" android:bottomLeftRadius="22dp" android:bottomRightRadius="22dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="15dp" />
<solid android:color="#ffffff" />
<stroke
android:width="1dp"
android:color="#EBEBEB" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/share_dialog"
android:layout_height="wrap_content"
android:background="@mipmap/bg_dialog_share">
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="16dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/share_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_weight="1"
android:text="@string/dialog_invite_title"
android:textColor="@drawable/bg_invite_title"
android:textSize="16sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/close"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
app:srcCompat="@mipmap/icon_dialog_charge_close" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/share_apps_list"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout2"
tools:itemCount="6"
tools:layoutManager="GridLayoutManager"
tools:listitem="@layout/item_share_app"
tools:spanCount="3" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:id="@+id/share_dialog"
android:layout_height="wrap_content"
android:background="@mipmap/bg_dialog_share">
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="16dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/share_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_weight="1"
android:text="@string/dialog_share_title"
android:textColor="#333333"
android:textSize="16sp"
android:textStyle="bold" />
<ImageView
android:id="@+id/close"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="16dp"
app:srcCompat="@mipmap/icon_share_close" />
</LinearLayout>
<include
android:id="@+id/share_preview"
layout="@layout/view_share_preview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout2" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/share_apps_list"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/share_preview"
tools:itemCount="6"
tools:layoutManager="GridLayoutManager"
tools:listitem="@layout/item_share_app"
tools:spanCount="3" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/share_app_icon"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_marginStart="35dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="35dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@tools:sample/avatars" />
<TextView
android:id="@+id/share_app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="12dp"
android:text="TextView"
android:textColor="#666666"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/share_app_icon" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_preview"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="2dp"
android:orientation="horizontal">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/share_avatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:scaleType="centerCrop"
android:src="@drawable/m_chu_xia"
app:riv_oval="true" />
<TextView
android:id="@+id/share_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_weight="1"
android:text="@string/dialog_share_info"
android:textColor="#333333"
android:textSize="12sp" />
<TextView
android:id="@+id/share_copy"
android:layout_width="70dp"
android:layout_height="32dp"
android:layout_gravity="center"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_btn"
android:gravity="center"
android:layout_marginStart="25dp"
android:text="@string/dialog_share_copy"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/share_layout_link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="12dp"
android:orientation="horizontal">
<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:src="@mipmap/icon_share_url" />
<TextView
android:id="@+id/share_link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="TextView"
android:textColor="#999999"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 315 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 955 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="dialog_share_title">Share</string>
<string name="dialog_share_info">Come and watch %s live on PDLIVE and meet more interesting people!</string>
<string name="dialog_invite_title">Invite Friends</string>
<string name="dialog_invite_info">Come to PDLIVE to discover more and better live streams.</string>
<string name="dialog_share_copy">Copy</string>
</resources>

View File

@@ -0,0 +1,17 @@
<resources>
<string name="com.twitter.sdk.android.CONSUMER_KEY" translatable="false">ZWRrZnRUNlBlcHVxMXpsMzVmb2k6MTpjaQ</string>
<string name="com.twitter.sdk.android.CONSUMER_SECRET" translatable="false">aq0eV4R1pqMK_AAeKRWnjPr7ErGMGgTPGgZJdm73WeRY-Kluws</string>
<string name="dialog_share_title">分享</string>
<string name="dialog_share_info">快來 PDLIVE觀看%s直播認識更多有趣的朋友吧</string>
<string name="dialog_share_app_facebook" translatable="false">Facebook</string>
<string name="dialog_share_app_line" translatable="false">Line</string>
<string name="dialog_share_app_twitter" translatable="false">Twitter</string>
<string name="dialog_share_app_whatsapp" translatable="false">WhatsApp</string>
<string name="dialog_share_app_messenger" translatable="false">Messenger</string>
<string name="dialog_share_app_instagram" translatable="false">Instagram</string>
<string name="dialog_invite_title">邀請好友</string>
<string name="dialog_invite_info">快來 PDLIVE觀看直播認識更多有趣的朋友吧</string>
<string name="dialog_share_copy">複製</string>
</resources>

View File

@@ -0,0 +1,17 @@
package com.yunbao.share;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}

View File

@@ -6,6 +6,9 @@ apply plugin: 'com.alibaba.arouter'
android {
dexOptions {
jumboMode = true
}
project.tasks.getByName("tasks").doFirst {
}
/* applicationVariants.all { variant ->
variant.mergeAssetsProvider.configure {
@@ -92,6 +95,13 @@ android {
exclude 'lib/armeabi-v7a/libmmlic.so'
exclude 'lib/armeabi-v7a/libMNN_CL.so'
exclude 'lib/armeabi-v7a/libMNN_Express.so'
//美颜
if (rootProject.ext.manifestPlaceholders.isPluginModel) {
exclude 'lib/armeabi-v7a/libCNamaSDK.so'
exclude 'lib/arm64-v8a/libCNamaSDK.so'
exclude 'lib/armeabi-v7a/libfuai.so'
exclude 'lib/arm64-v8a/libfuai.so'
}
}
compileOptions {
@@ -99,6 +109,11 @@ android {
targetCompatibility JavaVersion.VERSION_1_8
}
applicationVariants.all { variant ->
println "清空build文件夹";
for (final def project in rootProject.getAllprojects()) {
delete project.buildDir
println project.buildDir
}
String variantName = variant.name.capitalize()
def processManifestTask = project.tasks.getByName("process${variantName}Manifest")
processManifestTask.doLast { pm ->
@@ -139,9 +154,36 @@ android {
'Asset/*',
'image_effect_shaders/*',
'internal/*'
//美颜基础组件
]))
println "isPluginModel = " + rootProject.ext.manifestPlaceholders.isPluginModel
if (rootProject.ext.manifestPlaceholders.isPluginModel) {
delete(fileTree(dir: outputDir, includes: [
'model/ai_face_processor_lite.bundle',
'graphics/face_beautification.bundle'
]))
} else {
println "不删除bundle"
}
}
}
variant.outputs.all {
def isGoogle = "link"
if (rootProject.ext.manifestPlaceholders.isGooglePlay) {
isGoogle = "Google"
}
def isPlugin = "all"
if (rootProject.ext.manifestPlaceholders.isPluginModel) {
isPlugin = "plugin"
}
def isTest = "测试服"
if (rootProject.ext.manifestPlaceholders.serverHost == "https://napi.yaoulive.com") {
isTest = "正式服"
}
outputFileName = "[${new Date().format("yyyy-MM-dd HHmmss", TimeZone.getTimeZone("GMT+8"))}]PDLive-${defaultConfig.versionName}-${isGoogle}-${isPlugin}-${variant.buildType.name}-${isTest}.apk"
}
}
signingConfigs {
release {
@@ -193,12 +235,17 @@ android {
}
buildTypes {
release {
minifyEnabled false
minifyEnabled true
shrinkResources true
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
shrinkResources false
zipAlignEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
@@ -230,6 +277,7 @@ dependencies {
annotationProcessor rootProject.ext.dependencies["arouter-compiler"]
// implementation rootProject.ext.dependencies["leakcanary"]
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.10'
}

170
app/proguard-rules.pro vendored
View File

@@ -12,17 +12,40 @@
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
-keepclassmembers class fqcn.of.javascript.interface.for.webview {
public *;
}
# Uncomment this to preserve the groupLast number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
-keepattributes SourceFile,LineNumberTable
# If you keep the groupLast number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-renamesourcefileattribute SourceFile
-keep class com.yunbao.**{
public <methods>;
protected <methods>;
}
-keep class * implements com.yunbao.common.bean.BaseModel {
*;
}
-keep class com.yunbao.common.bean.** {
*;
}
-keep class com.yunbao.common.views.weight.VerticalViewPager$LayoutParams{
*;
}
-keep class android.**{
*;
}
-keep class **.R$* {
public static <fields>;
}
-keep class com.tencent.** { *; }
-keep class com.adjust.sdk.**{ *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
@@ -48,6 +71,13 @@
-keep class okhttp3.internal.**{*;}
-dontwarn okio.**
#okhttp
-dontwarn okhttp3.**
-keep class okhttp3.**{*;}
#okio
-dontwarn okio.**
-keep class okio.**{*;}
# Retrofit
@@ -55,9 +85,10 @@
-keep class retrofit2.** { *; }
-keepattributes Signature-keepattributes Exceptions
-keepattributes Signature-keepattributes,Exceptions
# RxJava RxAndroid
-dontwarn java.util.concurrent.Flow*
-dontwarn sun.misc.**
@@ -69,20 +100,139 @@ long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef* {
rx.internal.util.atomic.LinkedQueueNode producerNode;
rx.internal.util.atomic.LinkedQueueNode* producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef* {
rx.internal.util.atomic.LinkedQueueNode consumerNode;
rx.internal.util.atomic.LinkedQueueNode* consumerNode;
}
# Gson
-keep class com.google.gson.stream.** { *; }
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { <fields>; }
# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
##---------------End: proguard configuration for Gson ----------
-keepattributes EnclosingMethod
#--------融云
-keepattributes Exceptions,InnerClasses
-keepattributes Signature
-keep class io.rong.** {*;}
-keep class cn.rongcloud.** {*;}
-keep class * implements io.rong.imlib.model.MessageContent {*;}
-dontwarn io.rong.push.**
-dontnote com.xiaomi.**
-dontnote com.google.android.gms.gcm.**
-dontnote io.rong.**
# 下方混淆使用了融云 IMKit 提供的 locationKit 位置插件时才需要配置,可参考高德官网的混淆方式:https://lbs.amap.com/api/android-sdk/guide/create-project/dev-attention
-keep class com.amap.api.maps.**{*;}
-keep class com.autonavi.**{*;}
-keep class com.amap.api.trace.**{*;}
-keep class com.amap.api.location.**{*;}
-keep class com.amap.api.fence.**{*;}
-keep class com.loc.**{*;}
-keep class com.autonavi.aps.amapapi.model.**{*;}
-keep class com.amap.api.services.**{*;}
-ignorewarnings
#--------科大讯飞
-keep class com.iflytek.**{*;}
-keepattributes Signature
#EvenBus
-keepattributes *Annotation*
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# If using AsyncExecutord, keep required constructor of default event used.
# Adjust the class name if a custom failure event type is used.
-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
# Accessed via reflection, avoid renaming or removal
-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl*
#--------ARouter
-keep public class com.alibaba.android.arouter.routes.**{*;}
-keep public class com.alibaba.android.arouter.facade.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
# If you use the byType method to obtain Service, add the following rules to protect the interface:
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
# If single-type injection is used, that is, no interface is defined to implement IProvider, the following rules need to be added to protect the implementation
# -keep class * implements com.alibaba.android.arouter.facade.template.IProvider
#----retrofit2
-keepattributes Signature, InnerClasses, EnclosingMethod
-keepattributes RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations
-keepattributes AnnotationDefault
-keepclassmembers,allowshrinking,allowobfuscation interface * {
@retrofit2.http.* <methods>;
}
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement*
-dontwarn javax.annotation.**
-dontwarn kotlin.Unit
-dontwarn retrofit2.KotlinExtensions*
-dontwarn retrofit2.KotlinExtensions$*
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface * extends <1>
-keep,allowobfuscation,allowshrinking class kotlin.coroutines.Continuation
-if interface * { @retrofit2.http.* public *** *(...); }
-keep,allowoptimization,allowshrinking,allowobfuscation class <3>
#-----glide
-keep public class com.bumptech.glide.** {*;}
-keep public class jp.co.cyberagent.** {*;}
-dontwarn jp.co.cyberagent.android.gpuimage.**
-printconfiguration tmp/full-r8-config.txt
#---美颜模块需要暴露出来的参数名
-keep class com.yunbao.faceunity.utils.FURenderer{
public static java.lang.String BUNDLE_AI_FACE;
}
-keep class com.yunbao.faceunity.utils.FaceUnityConfig{
public static java.lang.String BUNDLE_FACE_BEAUTIFICATION;
}
-keep class com.faceunity.wrapper.faceunity$LoadConfig*{
private static boolean sLoadedLibrary;
}

View File

@@ -6,6 +6,8 @@
<uses-permission
android:name="android.permission.CALL_PHONE"
tools:node="remove" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
tools:ignore="ProtectedPermissions" />
<uses-permission
android:name="android.permission.READ_LOGS"
tools:ignore="ProtectedPermissions"
@@ -78,17 +80,22 @@
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<!-- 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.ACCESS_NOTIFICATION_POLICY" />
<queries>
<package android:name="com.twitter.android"/>
<package android:name="jp.naver.line.android"/>
</queries>
<application
android:name="com.shayu.phonelive.AppContext"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:largeHeap="true"
android:supportsRtl="true"
android:preserveLegacyExternalStorage="true"
android:requestLegacyExternalStorage="true"
android:theme="@style/AppTheme"
@@ -152,6 +159,9 @@
<meta-data
android:name="IS_UPLOAD_ERROR_LOG"
android:value="${isUploadLog}" />
<meta-data
android:name="IS_PLUGIN_MODEL"
android:value="${isPluginModel}" />
<meta-data
android:name="firebase_crashlytics_collection_enabled"
android:value="${isUploadLog}" />

View File

@@ -11,16 +11,13 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.Process;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.adjust.sdk.Adjust;
import com.adjust.sdk.AdjustConfig;
import com.adjust.sdk.AdjustEvent;
import com.adjust.sdk.LogLevel;
import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.Utils;
import com.facebook.appevents.AppEventsLogger;
@@ -38,16 +35,15 @@ import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.faceunity.FaceManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.socket.SocketRyClient;
import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.live.views.PortraitLiveManager;
@@ -84,15 +80,14 @@ public class AppContext extends CommonAppContext {
public LiveImDeletUtil liveImDeletUtil;
private final static List<WeakReference<Activity>> activities = new ArrayList<>();
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
@Override
public void onActivityResumed(Activity activity) {
Adjust.onResume();
}
@Override
public void onActivityPaused(Activity activity) {
Adjust.onPause();
}
@Override
@@ -113,12 +108,14 @@ public class AppContext extends CommonAppContext {
return;
}
}
AppManager.getInstance().removeActivity(activity);
}
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
activities.add(new WeakReference<>(activity));
CrashSaveBean.getInstance().setActivitySize(activities);
AppManager.getInstance().addActivity(activity);
}
@Override
@@ -131,11 +128,17 @@ public class AppContext extends CommonAppContext {
@Override
public void onCreate() {
super.onCreate();
//注册全局异常捕获
if (!isMainProcess()) {
return;
}
AppManager.runDebugCode(new Runnable() {
@Override
public void run() {
ToastUtil.show("Debug代码");
}
});
CrashSaveBean.getInstance().setStartTime(System.currentTimeMillis());
//注册全局异常捕获
registerError();
registerFirebaseCrash();
LogUtils.start(this);
@@ -163,38 +166,8 @@ public class AppContext extends CommonAppContext {
OpenInstall.init(this);
}
String environment = AdjustConfig.ENVIRONMENT_PRODUCTION;
AdjustConfig config = new AdjustConfig(this, "3om5fbglyqdc", environment);
if (CommonAppConfig.IS_GOOGLE_PLAY == false) {
config.setDefaultTracker("xa7k5ut");
}
Adjust.onCreate(config);
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
config.setLogLevel(LogLevel.WARN);
//激活操作记录
AdjustEvent adjustEvent = new AdjustEvent("m7wk0c");
Adjust.trackEvent(adjustEvent);
//谷歌激活
mFirebaseAnalytics.logEvent("FS_activation", null);
//FB激活
logger.logEvent("FB_activation");
AdjustEvent adjustEvent2 = new AdjustEvent("p7igfz");
Adjust.trackEvent(adjustEvent2);
CommonHttpUtil.setAdvertisingChannels("p7igfz", new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
//谷歌激活
mFirebaseAnalytics.logEvent("FS_complete_1st_loading", null);
//FB激活
logger.logEvent("FB_complete_1st_loading");
}
}
});
//初始化 AndroidUtilCode
Utils.init(this);
liveImDeletUtil = new LiveImDeletUtil();
@@ -275,6 +248,7 @@ public class AppContext extends CommonAppContext {
configSPApp();
//初始化美颜SDK
// FaceManager.initFaceUnity(this);
}
/**
@@ -316,18 +290,21 @@ public class AppContext extends CommonAppContext {
.setMainCrashHandler((t, e) -> {
Log.e("ApplicationError", "主线程异常");//此处log只是展示当debug为true时主类内部log会打印异常信息
e.printStackTrace();
//闪退后finish所有Activity并且杀死进程
for (WeakReference<Activity> activity : activities) {
if (activity != null && activity.get() != null) {
activity.get().finish();
AppManager.runDebugCode(() -> {
//闪退后finish所有Activity并且杀死进程
for (WeakReference<Activity> activity : activities) {
if (activity != null && activity.get() != null) {
activity.get().finish();
}
}
}
/* Process.killProcess(Process.myPid());
System.exit(0);*/
setFirebaseCrashData();
new Handler(Looper.getMainLooper()).postDelayed(() -> {
throw new RuntimeException(e);
}, 100);
Process.killProcess(Process.myPid());
System.exit(0);
setFirebaseCrashData();
new Handler(Looper.getMainLooper()).postDelayed(() -> {
throw new RuntimeException(e);
}, 100);
});
})
.setUncaughtCrashHandler((t, e) -> {
Log.e("ApplicationError", "子线程异常");//此处log只是展示当debug为true时主类内部log会打印异常信息

View File

@@ -8,7 +8,9 @@ import android.os.Looper;
import android.util.Log;
import android.widget.Toast;
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;
@@ -90,10 +92,12 @@ public class NeverCrashUtils {
*
* @param application application
*/
private boolean errorWhile = true;
public void register(Application application) {
//主线程异常拦截
new Handler(Looper.getMainLooper()).post(() -> {
while (true) {
while (errorWhile) {
try {
Looper.loop();
} catch (Throwable e) {
@@ -101,10 +105,12 @@ public class NeverCrashUtils {
Log.e(TAG, "未捕获的主线程异常行为", e);
}
e.printStackTrace();
Toast.makeText(application, "发生闪退", Toast.LENGTH_SHORT).show();
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);
return;
AppManager.runDebugCode(() -> errorWhile = false);
// return;
}
}
});
@@ -139,11 +145,11 @@ public class NeverCrashUtils {
writer.write("PhoneName=" + Build.BRAND + "\n");
writer.write("Phone=" + Build.MODEL + "\n");
writer.write("CPU=" + Arrays.toString(Build.SUPPORTED_ABIS) + "\n");
writer.write("runTime=" + (System.currentTimeMillis() - CrashSaveBean.getInstance().getStartTime())+ "\n");
writer.write("enterRoom=" + CrashSaveBean.getInstance().getEnterRoom()+ "\n");
writer.write("slidingRoom=" + CrashSaveBean.getInstance().getSlidingRoom()+ "\n");
writer.write("playSvga=" + CrashSaveBean.getInstance().getPlaySvga()+ "\n");
writer.write("ActivitySize=" + CrashSaveBean.getInstance().getActivitySize()+ "\n");
writer.write("runTime=" + (System.currentTimeMillis() - CrashSaveBean.getInstance().getStartTime()) + "\n");
writer.write("enterRoom=" + CrashSaveBean.getInstance().getEnterRoom() + "\n");
writer.write("slidingRoom=" + CrashSaveBean.getInstance().getSlidingRoom() + "\n");
writer.write("playSvga=" + CrashSaveBean.getInstance().getPlaySvga() + "\n");
writer.write("ActivitySize=" + CrashSaveBean.getInstance().getActivitySize() + "\n");
writer.write("UserData=" + SpUtil.getInstance().getStringValue(SpUtil.USER_INFO) + "\n");
writer.write("[ERROR]");
PrintWriter printWriter = new PrintWriter(writer);

View File

@@ -1,12 +1,11 @@
package com.shayu.phonelive.activity;
import static com.yunbao.common.CommonAppContext.logger;
import static com.yunbao.common.CommonAppContext.mFirebaseAnalytics;
import android.Manifest;
import android.app.Dialog;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -23,10 +22,10 @@ import android.widget.ImageView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.app.NotificationManagerCompat;
import com.adjust.sdk.Adjust;
import com.adjust.sdk.AdjustEvent;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@@ -50,8 +49,8 @@ import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DownloadUtil;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LogUtil;
import com.yunbao.common.utils.MD5Util;
@@ -105,20 +104,22 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
private int mVideoLastProgress;
private boolean mForward;
@Override
public Resources getResources() {
Resources res = super.getResources();
Configuration config = new Configuration();
config.setToDefaults();
config.locale = IMLoginManager.get(this).getLocaleLanguage();
res.updateConfiguration(config, res.getDisplayMetrics());
return res;
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
setStatusBar();
setContentView(R.layout.activity_launcher);
//开屏
AdjustEvent adjustEvent = new AdjustEvent("vjqk8g");
Adjust.trackEvent(adjustEvent);
//谷歌激活
mFirebaseAnalytics.logEvent("FS_screen", null);
//FB激活
logger.logEvent("FB_screen");
mContext = this;
mRoot = findViewById(R.id.root);
mCover = findViewById(R.id.cover);
@@ -199,6 +200,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
String adInfo = bean.getAdInfo();
if (!TextUtils.isEmpty(adInfo)) {
JSONObject obj = JSON.parseObject(adInfo);
Log.i(TAG, "callback: " + adInfo);
if (obj.getIntValue("switch") == 1) {
List<AdBean> list = JSON.parseArray(obj.getString("list"), AdBean.class);
if (list != null && list.size() > 0) {
@@ -283,8 +285,19 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
if (getIntent().getStringExtra("activityUrl") != null) {
intent.putExtra("activityUrl", getIntent().getStringExtra("activityUrl"));
}
LauncherActivity.this.startActivity(intent);
if (mImageViewList != null && mImageViewList.size() > 0) {
Log.i(TAG, "forwardMainActivity: " + mImageViewList.size());
AdBean bean = mAdList.get(0);
if (bean != null && bean.getAnimation() == 1) {
intent.putExtra("ad_url", mAdList.get(0).getUrl());
Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(LauncherActivity.this, mImageViewList.get(0), "ad_img_0").toBundle();
LauncherActivity.this.startActivity(intent, bundle);
} else {
LauncherActivity.this.startActivity(intent);
}
} else {
LauncherActivity.this.startActivity(intent);
}
finish();
}
@@ -393,6 +406,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setBackgroundColor(0xffffffff);
imageView.setTransitionName("ad_img_" + i);
mImageViewList.add(imageView);
ImgLoader.display(mContext, mAdList.get(i).getUrl(), imageView);
}
@@ -526,7 +540,7 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
}
} else if (e == TXLiveConstants.PLAY_ERR_NET_DISCONNECT ||
e == TXLiveConstants.PLAY_ERR_FILE_NOT_FOUND) {
ToastUtil.show(WordUtil.getString(R.string.live_play_error));
ToastUtil.show(mContext.getString(R.string.live_play_error));
checkUidAndToken();
} else if (e == TXLiveConstants.PLAY_EVT_PLAY_PROGRESS) {
int progress = bundle.getInt("EVT_PLAY_PROGRESS_MS");

View File

@@ -4,6 +4,7 @@ import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.app.Notification;
import android.app.NotificationChannel;
@@ -34,6 +35,7 @@ import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.makeramen.roundedimageview.RoundedImageView;
import com.shayu.phonelive.AppContext;
import com.shayu.phonelive.activity.LauncherActivity;
import com.yunbao.common.bean.NotificationMsgBean;
import com.yunbao.common.glide.ImgLoader;
@@ -57,7 +59,7 @@ public class CustomMessageReceiver extends PushMessageReceiver {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationManager manager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
NotificationChannel channel = new NotificationChannel(channelID, channelNAME, level);
channel.setSound(Uri.parse("android.resource://" + context.getPackageName() + "/raw/pdlive_sound"),null);
channel.setSound(Uri.parse("android.resource://" + context.getPackageName() + "/raw/pdlive_sound"), null);
manager.createNotificationChannel(channel);
return channelID;
} else {
@@ -86,19 +88,25 @@ public class CustomMessageReceiver extends PushMessageReceiver {
@Override
public boolean onNotificationMessageArrived(Context context, PushType pushType, PushNotificationMessage notificationMessage) {
Log.i("gmc", notificationMessage.getPushContent() + "VVV" + notificationMessage.getPushTitle() + "gmc11112222" + notificationMessage.getExtra());
if(!SpUtil.getInstance().getBooleanValue("NOTIFICATION")){
DialogUitl.showSimpleDialog(context, "应用需要通知权限", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
Intent intent = new Intent();
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("app_package", context.getPackageName());
intent.putExtra("app_uid", context.getApplicationInfo().uid);
// for Android 8 and above
intent.putExtra("android.provider.extra.APP_PACKAGE", context.getPackageName());
context.startActivity(intent);
if (!SpUtil.getInstance().getBooleanValue("NOTIFICATION")) {
if (AppContext.activityWeakReference != null) {
Activity activity = AppContext.activityWeakReference.get();
if (activity != null) {
DialogUitl.showSimpleDialog(activity, "应用需要通知权限", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
Intent intent = new Intent();
intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
intent.putExtra("app_package", context.getPackageName());
intent.putExtra("app_uid", context.getApplicationInfo().uid);
// for Android 8 and above
intent.putExtra("android.provider.extra.APP_PACKAGE", context.getPackageName());
activity.startActivity(intent);
}
});
}
});
}
}
if (notificationMessage.getExtra() == null) {
msg.setImg("" + notificationMessage.getSenderPortrait());
@@ -218,7 +226,7 @@ public class CustomMessageReceiver extends PushMessageReceiver {
PendingIntent pendingIntent;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE);
}else {
} else {
pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
String channelId = createNotificationChannel(context, "my_channel_ID", "my_channel_NAME", NotificationManager.IMPORTANCE_HIGH);
@@ -252,7 +260,7 @@ public class CustomMessageReceiver extends PushMessageReceiver {
PendingIntent pendingIntent;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE);
}else {
} else {
pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
String channelId = createNotificationChannel(context, "my_channel_ID", "my_channel_NAME", NotificationManager.IMPORTANCE_HIGH);
@@ -295,7 +303,7 @@ public class CustomMessageReceiver extends PushMessageReceiver {
PendingIntent pendingIntent;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE);
}else {
} else {
pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
String channelId = createNotificationChannel(context, "my_channel_ID", "my_channel_NAME", NotificationManager.IMPORTANCE_HIGH);

View File

@@ -31,7 +31,7 @@ public class LogUtils {
String[] exec = new String[]{"logcat", "-c"};
Runtime.getRuntime().exec(exec).waitFor();
exec = new String[]{"logcat", "-v", "UTC", "-D"};
exec = new String[]{"logcat", "-v", "color", "UTC-8"};
Process process = Runtime.getRuntime().exec(exec);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
@@ -55,6 +55,7 @@ public class LogUtils {
writer = new PrintWriter(os);
while ((line = bufferedReader.readLine()) != null) {
writer.append(line).write("\n");
writer.flush();
}
writer.flush();
writer.close();

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

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

View File

@@ -86,7 +86,7 @@ public class TieZhiAdapter extends RecyclerView.Adapter<TieZhiAdapter.Vh> {
TiUtils.unzip(file, targetDir);
bean.setDownloadSuccess(mContext);
} catch (Exception e) {
ToastUtil.show(WordUtil.getString(R.string.tiezhi_download_failed));
ToastUtil.show(mContext.getString(R.string.tiezhi_download_failed));
bean.setDownloading(false);
} finally {
file.delete();
@@ -103,7 +103,7 @@ public class TieZhiAdapter extends RecyclerView.Adapter<TieZhiAdapter.Vh> {
@Override
public void onError(Throwable e) {
ToastUtil.show(WordUtil.getString(R.string.tiezhi_download_failed));
ToastUtil.show(mContext.getString(R.string.tiezhi_download_failed));
bean.setDownloading(false);
notifyItemChanged(position, Constants.PAYLOAD);
mLoadingTaskMap.remove(position);

View File

@@ -147,7 +147,6 @@ dependencies {
//谷歌支付
//谷歌内购
api 'com.android.billingclient:billing:5.0.0'
implementation 'com.teprinciple:updateapputils:2.3.0'
api 'com.squareup.picasso:picasso:2.5.2'
api "com.immomo.cosmos.mediax:beautyutils:2.2.1_01071700"
api files('libs/liteavsdk.jar')
@@ -155,27 +154,28 @@ dependencies {
//腾讯im
api 'com.tencent.imsdk:imsdk-plus:5.4.666'
api 'com.google.code.gson:gson:2.8.8'
api 'cn.rongcloud.sdk:rtc_lib:5.2.5.8' // 音视频通话基础能力库
api 'cn.rongcloud.sdk:rtc_lib:5.2.0' // 音视频通话基础能力库
//此处以集成 5.1.2 版本为例
api 'cn.rongcloud.sdk:im_lib:5.2.0.2'
//此处以集成 5.1.2 版本为例
api 'cn.rongcloud.sdk:im_lib:5.2.5.4' // 即时通讯基础能力库
api 'cn.rongcloud.sdk:im_kit:5.2.5.4' // 即时通讯 UI 基础组件
//融云小视频模块
api 'cn.rongcloud.sdk:sight:5.2.5.4'
api 'com.facebook.android:facebook-android-sdk:15.0.1'
implementation 'com.facebook.android:facebook-android-sdk:15.0.1'
api 'com.facebook.android:facebook-android-sdk:15.2.0'
implementation 'com.facebook.android:facebook-android-sdk:15.2.0'
api('com.twitter.sdk.android:twitter-core:3.1.1@aar') {
transitive = true
}
api 'com.linecorp:linesdk:5.0.1'
api 'com.adjust.sdk:adjust-android:4.30.1'
api 'com.android.installreferrer:installreferrer:2.2'
//Retrofit2库
api 'com.squareup.retrofit2:retrofit:2.3.0'
api 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
//gson解析
api 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation "io.reactivex.rxjava2:rxjava:2.2.3"
api 'com.squareup.retrofit2:converter-gson:2.3.0'//混淆
implementation "io.reactivex.rxjava2:rxjava:2.2.3"//混淆
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
api 'com.jakewharton.rxbinding3:rxbinding:3.1.0'
//loading样式库
@@ -190,4 +190,9 @@ dependencies {
api 'com.github.li-xiaojun:XPopup:2.9.1'
api 'com.github.shenbengit:PagerGridLayoutManager:1.1.7'
//选择器
api 'com.github.gzu-liyujiang.AndroidPicker:Common:4.1.11'
api 'com.github.gzu-liyujiang.AndroidPicker:WheelView:4.1.11'
}

View File

@@ -32,8 +32,9 @@
android:resource="@xml/file_paths" />
</provider>
<!--
<!--支付宝-->
支付宝
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
@@ -46,7 +47,8 @@
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize|stateHidden"></activity>
<!--支付宝 end-->
支付宝 end
-->
<activity
android:name="com.yunbao.common.activity.ErrorActivity"

View File

@@ -35,6 +35,8 @@ public class CommonAppConfig {
public static final boolean IS_GOOGLE_PLAY = getMetaDataBoolean("IS_GOOGLE_PLAY");
//是否开启上报错误日志功能
public static final boolean IS_UPLOAD_ERROR_LOG = getMetaDataBoolean("IS_UPLOAD_ERROR_LOG");
//是否为插件包模式
public static final boolean IS_PLUGIN_MODEL = getMetaDataBoolean("IS_PLUGIN_MODEL");
//外部sd卡
public static final String DCMI_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
@@ -383,7 +385,7 @@ public class CommonAppConfig {
public String getAppName() {
if (TextUtils.isEmpty(mAppName)) {
int res = CommonAppContext.sInstance.getResources().getIdentifier("app_name", "string", "myname.pdlive.shayu");
mAppName = WordUtil.getString(res);
mAppName =WordUtil.getString(res);
}
return mAppName;
}

View File

@@ -1,22 +1,22 @@
package com.yunbao.common;
import static com.facebook.FacebookSdk.setAdvertiserIDCollectionEnabled;
import static com.facebook.FacebookSdk.setAutoLogAppEventsEnabled;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import androidx.multidex.MultiDex;
import androidx.multidex.MultiDexApplication;
import android.text.TextUtils;
import android.util.Log;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import com.google.android.gms.common.api.ApiException;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.utils.L;
import java.lang.ref.WeakReference;
import java.util.Locale;
import io.rong.imlib.RongIMClient;
@@ -24,9 +24,6 @@ import io.rong.push.RongPushClient;
import io.rong.push.pushconfig.PushConfig;
import me.leolin.shortcutbadger.ShortcutBadger;
import static com.facebook.FacebookSdk.setAdvertiserIDCollectionEnabled;
import static com.facebook.FacebookSdk.setAutoLogAppEventsEnabled;
/**
* Created by cxf on 2017/8/3.
@@ -35,13 +32,12 @@ import static com.facebook.FacebookSdk.setAutoLogAppEventsEnabled;
public class CommonAppContext extends MultiDexApplication {
public static CommonAppContext sInstance;
public static WeakReference<Activity> activityWeakReference;
private int mCount;
private boolean mFront;//是否前台
public static int jpushMsgNum;
public static int Ingroup = 0;
public static String lang = "chinese";
public static FirebaseAnalytics mFirebaseAnalytics;
public static AppEventsLogger logger;
public static boolean isReady = false;
public static String home_zdy_img_us = "";
public static String home_zdy_img_cn = "";
@@ -67,33 +63,31 @@ public class CommonAppContext extends MultiDexApplication {
//初始化友盟统计
// UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, null);
FacebookSdk.sdkInitialize(getApplicationContext());
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
mFirebaseAnalytics.setAnalyticsCollectionEnabled(true);
mFirebaseAnalytics.setUserProperty("ALLOW_AD_PERSONALIZATION_SIGNALS", "true" );
logger = AppEventsLogger.newLogger(this);
setAutoLogAppEventsEnabled(true);
FacebookSdk.fullyInitialize();
setAdvertiserIDCollectionEnabled(true);
registerActivityLifecycleCallbacks();
Locale locale;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
locale = getResources().getConfiguration().getLocales().get(0);
} else {
locale = getResources().getConfiguration().locale;
}
if(locale.getLanguage().equals("en")){
lang = "english";
}else{
lang = "chinese";
}
Log.i("lang",lang);
Locale locale;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
locale = getResources().getConfiguration().getLocales().get(0);
} else {
locale = getResources().getConfiguration().locale;
}
if (locale.getLanguage().equals("zh")) {
lang = "chinese";
} else {
lang = "english";
}
Log.i("lang", lang);
}
public static Activity getTopActivity() {
return activityWeakReference.get();
}
@Override
protected void attachBaseContext(Context base) {
@@ -111,11 +105,12 @@ public class CommonAppContext extends MultiDexApplication {
@Override
public void onActivityStarted(Activity activity) {
mCount++;
activityWeakReference = new WeakReference<>(activity);
if (!mFront) {
mFront = true;
L.e("AppContext------->处于前台");
ShortcutBadger.applyCount(activity,0);
jpushMsgNum=0;
ShortcutBadger.applyCount(activity, 0);
jpushMsgNum = 0;
CommonAppConfig.getInstance().setFrontGround(true);
}
}

View File

@@ -10,6 +10,8 @@ import java.util.List;
*/
public class Constants {
public static final String NEW_ENTER_ROOM = "enterRoom";
public static final String URL = "url";
public static final String PAYLOAD = "payload";
public static final String SEX = "sex";
@@ -74,7 +76,7 @@ public class Constants {
public static final String PAY_BUY_COIN_ALI = "Charge.getAliOrder";
public static final String PAY_BUY_COIN_WX = "Charge.getWxOrder";
public static final String PACKAGE_NAME_ALI = "com.eg.android.AlipayGphone";//支付宝的包名
// public static final String PACKAGE_NAME_ALI = "com.eg.android.AlipayGphone";//支付宝的包名
public static final String PACKAGE_NAME_WX = "com.tencent.mm";//微信的包名
public static final String PACKAGE_NAME_QQ = "com.tencent.mobileqq";//QQ的包名
public static final String LAT = "lat";
@@ -130,6 +132,8 @@ public class Constants {
public static final int LIVE_FUNC_MIC = 2013;//語音
public static final int LIVE_FUNC_WKS = 2014;//語音
public static final int LIVE_FUNC_ZSLK = 2015;//語音
public static final int LIVE_FUNC_RANDOM_PK = 2016;//随机PK
public static final int LIVE_ROBOT = 2017;//机器人
//socket
public static final String SOCKET_CONN = "conn";
@@ -143,6 +147,7 @@ public class Constants {
public static final String SOCKET_ALL_SERVER_NOTIFY = "AllServerNotify";//全服通知
public static final String SOCKET_SEND_BARRAGE = "SendBarrage";//发弹幕
public static final String SOCKET_LIVE_DRPK = "LiveDRPK";//多人PK
public static final String SOCKET_LIVE_DRPK_RANDOM = "LiveRandomPK";//随机PK
public static final String SOCKET_LEAVE_ROOM = "disconnect";//用户离开房间
public static final String SOCKET_LIVE_END = "StartEndLive";//主播关闭直播
public static final String SOCKET_SYSTEM = "SystemNot";//系统消息
@@ -167,9 +172,19 @@ public class Constants {
public static final String RECOMMEND_CARD_NOTIFY = "recommendCardNotify";//推荐卡通知消息
public static final String STAR_CHALLENGE_UPDATE = "starChallengeUpdate";//星级助力
public static final String AI_AUTOMATIC_SPEECH = "aiAutomaticSpeech";//机器人助手
public static final String AI_AUTOMATIC_SPEECH_LIVE = "aiAutomaticSpeechNew";//机器人助手
public static final String STAR_CHALLENGE_UPGRADE_NOTIFY = "starChallengeUpgradeNotify";//星级挑战成功
public static final String SUPER_VISION = "supervision";//超级发言警告
public static final String PK_RANK_UPDATE = "RankingRankUpdate";//PK排位赛更新数据
public static final String CUSTOM_FULL_SERVICE_NOTIFY = "customFullServiceNotify";//全服通知
public static final String XYD_COMPLETE = "XydComplete";//心愿单完成通知
public static final String WISH_LIST_PROGRESS = "wishListProgress";//心愿单进度通知
public static final String LIVE_VOTE_CREATE = "createVote";
public static final String LIVE_VOTE_UPDATE = "updateVote";
public static final String LIVE_VOTE_END = "endVote";
public static final String LIVE_PK_END = "endPK";//结束PK以这个PK获取到的参数为准
public static final String RED_PACKET = "RedPacket";//红包通知
public static final String RED_PACKET_SUPER_JACKPOT = "RedPacketSuperJackpot";//超级红包通知
//游戏socket
public static final String SOCKET_GAME_ZJH = "startGame";//炸金花
@@ -184,6 +199,7 @@ public class Constants {
public static final String LOVE_CHECK = "LoveCheck";//热度卡消息
public static final String TRUMPET_NOTIFY = "TrumpetNotify";//全栈喇叭
public static final String LuckyAngel = "LuckyCheck";//幸运天使
public static final String Lucky100Check = "Lucky100Check";//幸运天使
public static final int SOCKET_WHAT_CONN = 0;
public static final int SOCKET_WHAT_DISCONN = 2;

View File

@@ -27,6 +27,7 @@ import androidx.appcompat.app.AppCompatActivity;
import com.yunbao.common.R;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.LifeCycleListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.ClickUtil;
import java.util.ArrayList;
@@ -48,6 +49,7 @@ public abstract class AbsActivity extends AppCompatActivity {
Resources res = super.getResources();
Configuration config = new Configuration();
config.setToDefaults();
config.locale = IMLoginManager.get(this).getLocaleLanguage();
res.updateConfiguration(config, res.getDisplayMetrics());
return res;
}
@@ -55,6 +57,7 @@ public abstract class AbsActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
create();
Intent intent = getIntent();
if (intent != null) {
isFullWindow = getIntent().getBooleanExtra("isFull", false);
@@ -86,6 +89,9 @@ public abstract class AbsActivity extends AppCompatActivity {
protected void main() {
}
protected void create(){
}
protected boolean isStatusBarWhite() {

View File

@@ -60,6 +60,6 @@ public class ErrorActivity extends AbsActivity {
ClipboardManager clipboardManager = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", mErrorInfo);
clipboardManager.setPrimaryClip(clipData);
ToastUtil.show(WordUtil.getString(R.string.copy_success));
ToastUtil.show(mContext.getString(R.string.copy_success));
}
}

View File

@@ -1,5 +1,6 @@
package com.yunbao.common.activity;
import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
@@ -22,20 +23,32 @@ import android.widget.ProgressBar;
import androidx.annotation.RequiresApi;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.AndroidBug5497Workaround;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.Bus;
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.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.HintCustomPopup;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.Locale;
import java.util.Stack;
/**
* Created by cxf on 2018/9/25.
*/
@@ -62,19 +75,18 @@ public class WebViewActivity extends AbsActivity {
protected void main() {
String url = getIntent().getStringExtra(Constants.URL);
L.e("H5--->" + url);
Bus.getOn(this);
LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
btnEdit = (ImageView) findViewById(R.id.btn_edit);
ft_title = (FrameLayout) findViewById(R.id.ft_title);
v_spacing = (View) findViewById(R.id.v_spacing);
AndroidBug5497Workaround.assistActivity(this);
mWebView = findViewById(R.id.webView);
mWebView = new WebView(mContext);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
params.topMargin = DpUtil.dp2px(1);
mWebView.setLayoutParams(params);
mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);
rootView.addView(mWebView);
// mWebView.setLayoutParams(params);
//mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
@@ -96,6 +108,12 @@ public class WebViewActivity extends AbsActivity {
if (url.contains("for")) {
mWebView.loadUrl("javascript:goAnchorTab()");
}
//真实屏幕高度-(ft_title的高度+导航栏高度)
//屏蔽掉是因为在线客服页面 AndroidBug5497Workaround会失效
int height = DeviceUtils.getScreenRealHeight(mContext) - DpUtil.dp2px(72) - getCurrentNavigationBarHeight(mContext);
if (!navigationGestureEnabled(mContext)) {
view.loadUrl("javascript:window.androidObject.setHeight(" + height + ",0,false)");
}
}
});
@@ -153,6 +171,7 @@ public class WebViewActivity extends AbsActivity {
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
mWebView.loadUrl(url);
AndroidBug5497Workaround.assistActivity(this);
if (Constants.myIntoIndex == 2) {
ft_title.setVisibility(View.GONE);
@@ -179,7 +198,7 @@ public class WebViewActivity extends AbsActivity {
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, WordUtil.getString(R.string.choose_flie)), CHOOSE);
startActivityForResult(Intent.createChooser(intent, mContext.getString(R.string.choose_flie)), CHOOSE);
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@@ -229,13 +248,13 @@ public class WebViewActivity extends AbsActivity {
}
}
Intent intent = new Intent(context, WebViewActivity.class);
intent.putExtra(Constants.URL, url);
intent.putExtra(Constants.URL, url + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
context.startActivity(intent);
}
public static void forward(Context context, String url) {
forward(context, url, true);
}
forward(context, url, true); }
@Override
protected void onDestroy() {
@@ -249,6 +268,7 @@ public class WebViewActivity extends AbsActivity {
Constants.myIntoIndex = 0;
indexInto = 0;
Constants.LoginKefu = true;
Bus.getOff(this);
super.onDestroy();
}
@@ -304,5 +324,56 @@ public class WebViewActivity extends AbsActivity {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
indexInto = event.getIndexInto();
if (event.getMethod().equals("androidInviteShare")) {
try {
Class<?> clz = mContext.getClassLoader().loadClass("com.yunbao.share.ui.InvitePopDialog");
Object invite = clz.getConstructor(Context.class).newInstance(mContext);
invite = invite.getClass().getMethod("setUrl", String.class).invoke(invite, event.getData());
assert invite != null;
invite.getClass().getMethod("showDialog").invoke(invite);
} catch (Exception e) {
throw new RuntimeException(e);
}
} else if (TextUtils.equals(event.getMethod(), "clickLogOffAccount")) {
new XPopup.Builder(mContext)
.asCustom(new HintCustomPopup(mContext,
mContext.getString(R.string.delete_account1),
mContext.getString(R.string.delete_account2))
.setLiveOpenOk(mContext.getString(R.string.delete_account3))
.setLiveOpenCancel(mContext.getString(R.string.cancel))
.setCallBack(new HintCustomPopup.HintCustomCallBack() {
@Override
public void onSure() {
LiveNetManager.get(mContext).
setLogOff(new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
Stack<Activity> allActivityStacks = AppManager.getInstance().getAllActivityStacks();
for (int i = 0; i < allActivityStacks.size(); i++) {
if (!(allActivityStacks.get(i) instanceof WebViewActivity)) {
allActivityStacks.get(i).finish();
}
}
IMLoginManager.get(mContext).logout(mContext);
CommonAppConfig.getInstance().clearLoginInfo();
mContext.finish();
RouteUtil.forwardLoginActivity();
}
@Override
public void onError(String error) {
}
});
}
@Override
public void onCancel() {
}
}))
.show();
}
}
}

View File

@@ -41,7 +41,7 @@ public class ChatChargeCoinAdapter extends RecyclerView.Adapter<ChatChargeCoinAd
mList = list;
mCoinName = CommonAppConfig.getInstance().getCoinName();
mGoldCoinName = CommonAppConfig.getInstance().getGoldCoinName();
mGiveString = WordUtil.getString(R.string.coin_give);
mGiveString = context.getString(R.string.coin_give);
mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {

View File

@@ -15,6 +15,7 @@ import com.yunbao.common.bean.AnchorRecommendItemModel;
import com.yunbao.common.bean.AnchorRecommendModel;
import com.yunbao.common.bean.CustomSidebarInfoModel;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.DrawerRecommendViewHolder;
import com.yunbao.common.views.DrawerTaskViewHolder;
import com.yunbao.common.views.FunGamesViewHolder;
@@ -121,6 +122,7 @@ public class CustomDrawerPopupAdapter extends RecyclerView.Adapter {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
}
});
}

View File

@@ -1,6 +1,7 @@
package com.yunbao.common.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -48,12 +49,22 @@ public class DrawerTaskAdapter extends RecyclerView.Adapter {
@Override
public int getItemCount() {
return 2;
if (child.size()>3){
return 3;
}else {
return child.size();
}
}
public void updateData(List<CustomSidebarChildModel> mChild) {
child.clear();
child.addAll(mChild);
// for (CustomSidebarChildModel childModel : mChild) {
// if (TextUtils.equals("1", childModel.getIsShow())) {
// child.add(childModel);
// }
// }
notifyDataSetChanged();
}
}

View File

@@ -0,0 +1,164 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
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.views.DayWishItemViewHolder;
import com.yunbao.common.views.LunarWishItemViewHolder;
import com.yunbao.common.views.SeasonalWishItemViewHolder;
import com.yunbao.common.views.WeekWishItemViewHolder;
import java.util.ArrayList;
import java.util.List;
public class LiveNewWishAdapter extends RecyclerView.Adapter {
private int type = 0;
private List<WishModel> wishList = new ArrayList<>();
public void addData(List<WishModel> wishModelList, int type) {
this.type = type;
wishList.clear();
wishList.addAll(wishModelList);
wishList.add(null);
notifyDataSetChanged();
}
public void addGiftListModel(WishModel model) {
switch (type) {
case 1:
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(true));
break;
case 2:
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(true));
break;
case 3:
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(true));
break;
case 4:
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true));
break;
}
wishList.add(0, model);
notifyDataSetChanged();
}
public List<WishModel> getWishList() {
return wishList;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (type == 1) {
View dayWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_day_wish, parent, false);
return new DayWishItemViewHolder(dayWish);
} else if (type == 2) {
View weekWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_week_wish, parent, false);
return new WeekWishItemViewHolder(weekWish);
} else if (type == 3) {
View lunarWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lunar_wish, parent, false);
return new LunarWishItemViewHolder(lunarWish);
} else {
View seasonalWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_seasonal_wish, parent, false);
return new SeasonalWishItemViewHolder(seasonalWish);
}
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if (position == wishList.size()) return;
if (holder instanceof DayWishItemViewHolder) {
DayWishItemViewHolder dayWishItemViewHolder = (DayWishItemViewHolder) holder;
dayWishItemViewHolder.steDayWishData(wishList.get(position), position, new DayWishItemViewHolder.DayWishItemListener() {
@Override
public void onDelete(int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(true));
wishList.remove(index);
notifyDataSetChanged();
}
@Override
public void onUpdate(WishModel model, int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(true));
wishList.remove(index);
wishList.add(index, model);
notifyItemChanged(index);
}
});
} else if (holder instanceof WeekWishItemViewHolder) {
WeekWishItemViewHolder weekWishItemViewHolder = (WeekWishItemViewHolder) holder;
weekWishItemViewHolder.steWeekWishData(wishList.get(position), position, new WeekWishItemViewHolder.WeekWishItemListener() {
@Override
public void onDelete(int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(true));
wishList.remove(index);
notifyDataSetChanged();
}
@Override
public void onUpdate(WishModel model, int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(true));
wishList.remove(index);
wishList.add(index, model);
notifyItemChanged(index);
}
});
} else if (holder instanceof LunarWishItemViewHolder) {
LunarWishItemViewHolder lunarWishItemViewHolder = (LunarWishItemViewHolder) holder;
lunarWishItemViewHolder.steLunarWishData(wishList.get(position), position, new LunarWishItemViewHolder.LunarWishItemListener() {
@Override
public void onDelete(int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(true));
wishList.remove(index);
notifyDataSetChanged();
}
@Override
public void onUpdate(WishModel model, int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(true));
wishList.remove(index);
wishList.add(index, model);
notifyItemChanged(index);
}
});
} else if (holder instanceof SeasonalWishItemViewHolder) {
SeasonalWishItemViewHolder seasonalWishItemViewHolder = (SeasonalWishItemViewHolder) holder;
seasonalWishItemViewHolder.steSeasonalWish(wishList.get(position), position, new SeasonalWishItemViewHolder.SeasonalWishItemListener() {
@Override
public void onDelete(int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true));
wishList.remove(index);
notifyDataSetChanged();
}
@Override
public void onUpdate(WishModel model, int index) {
Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true));
wishList.remove(index);
wishList.add(index, model);
notifyItemChanged(index);
}
});
}
}
@Override
public int getItemCount() {
return wishList.size();
}
}

View File

@@ -0,0 +1,56 @@
package com.yunbao.common.adapter;
import android.annotation.SuppressLint;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftListModel;
import com.yunbao.common.event.LiveNewWishGiftEvent;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.LiveNewWishGiftViewHolder;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.ArrayList;
import java.util.List;
public class LiveNewWishGiftAdapter extends RecyclerView.Adapter {
private List<GiftListModel> giftListModels = new ArrayList<>();
public LiveNewWishGiftAdapter(List<GiftListModel> giftListModels) {
this.giftListModels = giftListModels;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View dayWish = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gitf_wish, parent, false);
return new LiveNewWishGiftViewHolder(dayWish);
}
private int index = -1;
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, @SuppressLint("RecyclerView") int position) {
LiveNewWishGiftViewHolder wishGiftViewHolder = (LiveNewWishGiftViewHolder) holder;
wishGiftViewHolder.setData(giftListModels.get(position), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
index = position;
notifyDataSetChanged();
Bus.get().post(new LiveNewWishGiftEvent().setModel(giftListModels.get(position)));
}
});
wishGiftViewHolder.onSelect(index == position);
}
@Override
public int getItemCount() {
return giftListModels.size();
}
}

View File

@@ -0,0 +1,30 @@
package com.yunbao.common.adapter;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import java.util.ArrayList;
import java.util.List;
public class LiveNewWishListAdapter extends FragmentStateAdapter {
private List<Fragment> list = new ArrayList<>();
public LiveNewWishListAdapter(@NonNull FragmentActivity fragmentActivity, List<Fragment> list) {
super(fragmentActivity);
this.list = list;
}
@NonNull
@Override
public Fragment createFragment(int position) {
return list.get(position);
}
@Override
public int getItemCount() {
return list.size();
}
}

View File

@@ -0,0 +1,52 @@
package com.yunbao.common.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.ListInfoMessageModel;
import com.yunbao.common.views.LiveSystemMessageViewHolder;
import java.util.ArrayList;
import java.util.List;
/**
* 主播消息中心适配器
*/
public class LiveSystemMessageAdapter extends RecyclerView.Adapter {
private Context mContext;
private LayoutInflater mInflater;
private List<ListInfoMessageModel> listInfoMessageModels = new ArrayList<>();
public LiveSystemMessageAdapter(Context mContext) {
this.mContext = mContext;
mInflater = LayoutInflater.from(mContext);
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new LiveSystemMessageViewHolder(mInflater.inflate(R.layout.view_live_system_message, parent, false));
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
LiveSystemMessageViewHolder messageViewHolder = (LiveSystemMessageViewHolder) holder;
messageViewHolder.setViewData(listInfoMessageModels.get(position));
}
@Override
public int getItemCount() {
return listInfoMessageModels.size();
}
public void addData(List<ListInfoMessageModel> list) {
listInfoMessageModels.addAll(list);
notifyDataSetChanged();
}
}

View File

@@ -0,0 +1,51 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.LiveAiRobotBean;
import com.yunbao.common.views.RobotMessageViewHolder;
import java.util.ArrayList;
import java.util.List;
public class RobotMessageAdapter extends RecyclerView.Adapter {
private List<LiveAiRobotBean.Message> messageList = new ArrayList<>();
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View robotMessageView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_robot_message, parent, false);
return new RobotMessageViewHolder(robotMessageView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
RobotMessageViewHolder messageViewHolder = (RobotMessageViewHolder) holder;
messageViewHolder.setData(messageList.get(position), position + 1);
}
@Override
public int getItemCount() {
return messageList.size();
}
public void setDataAll(List<LiveAiRobotBean.Message> messages) {
messageList.clear();
messageList.addAll(messages);
notifyDataSetChanged();
}
// 删除数据
public void removeData(int position) {
messageList.remove(position);
//删除动画
notifyItemRemoved(position);
}
}

View File

@@ -0,0 +1,51 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.LiveAiRobotBean;
import com.yunbao.common.views.RobotSayHelloViewHoler;
import java.util.ArrayList;
import java.util.List;
public class RobotSayHelloAdapter extends RecyclerView.Adapter {
private List<LiveAiRobotBean.Message> messageList = new ArrayList<>();
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View robotSayHelloView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_robot_message, parent, false);
return new RobotSayHelloViewHoler(robotSayHelloView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
RobotSayHelloViewHoler robotSayHelloViewHoler = (RobotSayHelloViewHoler) holder;
robotSayHelloViewHoler.setData(messageList.get(position), position + 1);
}
@Override
public int getItemCount() {
return messageList.size();
}
public void setDataAll(List<LiveAiRobotBean.Message> messages) {
messageList.clear();
messageList.addAll(messages);
notifyDataSetChanged();
}
// 删除数据
public void removeData(int position) {
messageList.remove(position);
//删除动画
notifyItemRemoved(position);
}
}

View File

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.annotation.JSONField;
public class AdBean {
private String mUrl;
private String mLink;
private int animation;//是否使用过度动画
@JSONField(name = "thumb")
public String getUrl() {
@@ -26,4 +27,12 @@ public class AdBean {
public void setLink(String link) {
mLink = link;
}
@JSONField(name = "animation")
public int getAnimation() {
return animation;
}
@JSONField(name = "animation")
public void setAnimation(int animation) {
this.animation = animation;
}
}

View File

@@ -75,7 +75,7 @@ public class AnchorRecommendItemModel extends BaseModel {
private String avatarThumb = "";
@SerializedName("avatar2")
private String avatar2 = "";
@SerializedName("user_nicename")
@SerializedName(value = "user_nicename", alternate = "userNiceName")
private String userNicename = "";
@SerializedName("level")
private String level = "";

View File

@@ -17,6 +17,8 @@ public class AnchorRecommendModel extends BaseModel {
//是否展示0=不展示1=展示
@SerializedName("list_show")
private int listShow = 0;
@SerializedName("red_packet_show")
private int showRedPacket = 0;//是否显示首页红包浮窗
//是否支持换一批0=不支持 1=支持
@SerializedName("up_show")
private int upShow = 0;
@@ -24,6 +26,10 @@ public class AnchorRecommendModel extends BaseModel {
private List<AnchorRecommendItemModel> list = new ArrayList<>();
@SerializedName("slide")
private List<SlideInfoModel> slide = new ArrayList<>();
@SerializedName("red_packet_total")
private int redPacketTotal = 100;
@SerializedName("red_packet_day_create_num")
private int redPacketNum = 0;
public List<SlideInfoModel> getSlide() {
return slide;
@@ -52,6 +58,30 @@ public class AnchorRecommendModel extends BaseModel {
return this;
}
public int getShowRedPacket() {
return showRedPacket;
}
public void setShowRedPacket(int showRedPacket) {
this.showRedPacket = showRedPacket;
}
public int getRedPacketTotal() {
return redPacketTotal;
}
public void setRedPacketTotal(int redPacketTotal) {
this.redPacketTotal = redPacketTotal;
}
public int getRedPacketNum() {
return redPacketNum;
}
public void setRedPacketNum(int redPacketNum) {
this.redPacketNum = redPacketNum;
}
public List<AnchorRecommendItemModel> getList() {
return list;
}

View File

@@ -1,6 +1,9 @@
package com.yunbao.common.bean;
import androidx.annotation.NonNull;
import com.alibaba.fastjson.annotation.JSONField;
import com.google.gson.annotations.SerializedName;
/**
* Created by cxf on 2019/3/30.
@@ -15,7 +18,81 @@ public class BannerBean {
private String mIntoUrl;
private int type;
private String name;
private int activityId=0;
private int activityId = 0;
private int mIconRes;
//心愿单展示数据
@SerializedName("wishlist_icon")
private String wishlistIcon;
@SerializedName("wishlist_num")
private String wishlistNum;
@SerializedName("wishlist_progress")
private String wishlistProgress;
@SerializedName("wishlist_name")
private String wishlistName;
private Object data;//用来存储任意bean
public String getmImageUrl() {
return mImageUrl;
}
public BannerBean setmImageUrl(String mImageUrl) {
this.mImageUrl = mImageUrl;
return this;
}
public String getmLink() {
return mLink;
}
public BannerBean setmLink(String mLink) {
this.mLink = mLink;
return this;
}
public int getmIconRes() {
return mIconRes;
}
public BannerBean setmIconRes(int mIconRes) {
this.mIconRes = mIconRes;
return this;
}
public String getWishlistIcon() {
return wishlistIcon;
}
public BannerBean setWishlistIcon(String wishlistIcon) {
this.wishlistIcon = wishlistIcon;
return this;
}
public String getWishlistNum() {
return wishlistNum;
}
public BannerBean setWishlistNum(String wishlistNum) {
this.wishlistNum = wishlistNum;
return this;
}
public String getWishlistProgress() {
return wishlistProgress;
}
public BannerBean setWishlistProgress(String wishlistProgress) {
this.wishlistProgress = wishlistProgress;
return this;
}
public String getWishlistName() {
return wishlistName;
}
public BannerBean setWishlistName(String wishlistName) {
this.wishlistName = wishlistName;
return this;
}
private StarChallengeStatusModel model;
@@ -79,27 +156,49 @@ public class BannerBean {
public int getType() {
return type;
}
@JSONField(name = "type")
public void setType(int type) {
this.type = type;
}
@JSONField(name = "name")
public String getName() {
return name;
}
@JSONField(name = "name")
public void setName(String name) {
this.name = name;
}
@JSONField(name = "active_id")
public int getActivityId() {
return activityId;
}
@JSONField(name = "active_id")
public void setActivityId(int activityId) {
this.activityId = activityId;
}
public int getIconRes() {
return mIconRes;
}
public void setIconRes(int mIconRes) {
this.mIconRes = mIconRes;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
@NonNull
@Override
public String toString() {
return "BannerBean{" +
@@ -110,6 +209,12 @@ public class BannerBean {
", mIntoUrl='" + mIntoUrl + '\'' +
", type=" + type +
", name='" + name + '\'' +
", activityId=" + activityId +
", mIconRes=" + mIconRes +
", wishlistIcon='" + wishlistIcon + '\'' +
", wishlistNum='" + wishlistNum + '\'' +
", wishlistProgress='" + wishlistProgress + '\'' +
", wishlistName='" + wishlistName + '\'' +
", model=" + model +
'}';
}

View File

@@ -0,0 +1,99 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class BlindBoxInfoModel extends BaseModel {
/**
* "info":[{"item_name":["麒麟勛章饰品","麒麟頭像框饰品","麒麟坐騎饰品","水晶项链礼物","夢幻水晶球礼物","心動泡泡礼物","蝴蝶少女礼物","金色唱片礼物","鑽石禮盒礼物","紙花船礼物"],"threshold_value":268,"threshold_dress_name":"麒麟坐騎","dress_threshold_value":0,"blind_box_type":1,"blind_box_id":1636},{"item_name":["金鳳勛章饰品","金鳳頭像框饰品","金鳳坐騎饰品","浪漫氣球礼物","捕夢網礼物","仙女棒礼物","藍寶石鈴鐺礼物","榮耀星礼物","童話屋礼物","夢幻許願池礼物"],"threshold_value":198,"threshold_dress_name":"金鳳坐騎","dress_threshold_value":0,"blind_box_type":2,"blind_box_id":1637},{"item_name":["神龍勛章饰品","神龍頭像框饰品","神龍坐騎饰品","水晶玫瑰礼物","sweet香水礼物","甜蜜熱氣球礼物","風鈴舞動礼物","音樂噴泉礼物","星空列車礼物","漂洋過海來看你礼物"],"threshold_value":128,"threshold_dress_name":"神龍坐騎","dress_threshold_value":0,"blind_box_type":3,"blind_box_id":1638}]
*/
@SerializedName("item_name")
private List<String> itemName;
@SerializedName("threshold_value")
private String thresholdValue = "0";
@SerializedName("threshold_dress_name")
private String thresholdDressName;
@SerializedName("dress_threshold_value")
private String dressThresholdValue;
@SerializedName("blind_box_type")
private String blindBoxType;
@SerializedName("blind_box_id")
private String blindBoxId;
@SerializedName("blind_box_swf")
private String blindBoxSwf;
@SerializedName("threshold_effect_src")
private String thresholdEffectSrc;
public String getThresholdEffectSrc() {
return thresholdEffectSrc;
}
public BlindBoxInfoModel setThresholdEffectSrc(String thresholdEffectSrc) {
this.thresholdEffectSrc = thresholdEffectSrc;
return this;
}
public String getBlindBoxSwf() {
return blindBoxSwf;
}
public BlindBoxInfoModel setBlindBoxSwf(String blindBoxSwf) {
this.blindBoxSwf = blindBoxSwf;
return this;
}
public List<String> getItemName() {
return itemName;
}
public BlindBoxInfoModel setItemName(List<String> itemName) {
this.itemName = itemName;
return this;
}
public String getThresholdValue() {
return thresholdValue;
}
public BlindBoxInfoModel setThresholdValue(String thresholdValue) {
this.thresholdValue = thresholdValue;
return this;
}
public String getThresholdDressName() {
return thresholdDressName;
}
public BlindBoxInfoModel setThresholdDressName(String thresholdDressName) {
this.thresholdDressName = thresholdDressName;
return this;
}
public String getDressThresholdValue() {
return dressThresholdValue;
}
public BlindBoxInfoModel setDressThresholdValue(String dressThresholdValue) {
this.dressThresholdValue = dressThresholdValue;
return this;
}
public String getBlindBoxType() {
return blindBoxType;
}
public BlindBoxInfoModel setBlindBoxType(String blindBoxType) {
this.blindBoxType = blindBoxType;
return this;
}
public String getBlindBoxId() {
return blindBoxId;
}
public BlindBoxInfoModel setBlindBoxId(String blindBoxId) {
this.blindBoxId = blindBoxId;
return this;
}
}

View File

@@ -0,0 +1,53 @@
package com.yunbao.common.bean;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
public class CheckLiveModel extends BaseModel {
@SerializedName("type")
private int type;
@SerializedName("type_val")
private String typeVal;
@SerializedName("type_msg")
private String typeMsg;
@SerializedName("live_sdk")
private String liveSdk;
public static CheckLiveModel objectFromData(String str) {
return new Gson().fromJson(str, CheckLiveModel.class);
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTypeVal() {
return typeVal;
}
public void setTypeVal(String typeVal) {
this.typeVal = typeVal;
}
public String getTypeMsg() {
return typeMsg;
}
public void setTypeMsg(String typeMsg) {
this.typeMsg = typeMsg;
}
public String getLiveSdk() {
return liveSdk;
}
public void setLiveSdk(String liveSdk) {
this.liveSdk = liveSdk;
}
}

View File

@@ -3,6 +3,7 @@ package com.yunbao.common.bean;
import android.app.Activity;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
/**
@@ -14,7 +15,7 @@ public class CrashSaveBean {
private long enterRoom;//进入房间次数
private long slidingRoom;//滑动直播间次数
private long playSvga;//加载播放svga次数
private List<WeakReference<Activity>> activities;//Activity数量
private List<WeakReference<Activity>> activities = new ArrayList<>();//Activity数量
private CrashSaveBean() {

View File

@@ -31,7 +31,18 @@ public class CustomSidebarChildModel extends BaseModel {
@SerializedName("activity_id")
private String activityId;
@SerializedName("flag")
private String flag;
private String flag = "";
@SerializedName("is_show")
private String isShow;
public String getIsShow() {
return isShow;
}
public CustomSidebarChildModel setIsShow(String isShow) {
this.isShow = isShow;
return this;
}
public String getFlag() {
return flag;

View File

@@ -0,0 +1,109 @@
package com.yunbao.common.bean;
import androidx.annotation.NonNull;
import com.google.gson.annotations.SerializedName;
/**
* 优惠卷
*/
public class DiscountsModel extends BaseModel {
//------------------贵族--------------------
public static final int TYPE_VISCOUNT=1;//子爵
public static final int TYPE_MARQUIS=2;//侯爵
public static final int TYPE_DUKE=3;//公爵
public static final int TYPE_KING=4;//国王
public static final int TYPE_EMPEROR=5;//皇帝
//------------------守护--------------------
public static final int TYPE_WEEKS=6;//周守护
public static final int TYPE_MONTH=7;//月守护
public static final int TYPE_YEARS=8;//月守护
@SerializedName("userCouponId")
private int userCouponID;
@SerializedName("num")
private int num;
@SerializedName("endTime")
private long endTime;
@SerializedName("img")
private String img;
@SerializedName("name")
private String name;
@SerializedName("discount")
private double discount;
@SerializedName("describe")
private String describe;
public DiscountsModel() {
}
public int getUserCouponID() {
return userCouponID;
}
public void setUserCouponID(int userCouponID) {
this.userCouponID = userCouponID;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public long getEndTime() {
return endTime;
}
public void setEndTime(long endTime) {
this.endTime = endTime;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getDiscount() {
return discount;
}
public void setDiscount(double discount) {
this.discount = discount;
}
public String getDescribe() {
return describe;
}
public void setDescribe(String describe) {
this.describe = describe;
}
@NonNull
@Override
public String toString() {
return "DiscountsModel{" +
"userCouponID=" + userCouponID +
", num=" + num +
", endTime=" + endTime +
", img='" + img + '\'' +
", name='" + name + '\'' +
", discount=" + discount +
", describe='" + describe + '\'' +
'}';
}
}

View File

@@ -0,0 +1,578 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.utils.StringUtil;
import java.util.List;
public class EnterRoomInfoModel extends BaseModel {
@SerializedName("votestotal")
private String votestotal;
@SerializedName("medalRankNum")
private String medalRankNum;
@SerializedName("barrage_fee")
private String barrageFee;
@SerializedName("userlist_time")
private String userlistTime;
@SerializedName("chatserver")
private String chatserver;
@SerializedName("linkmic_uid")
private String linkmicUid;
@SerializedName("linkmic_pull")
private String linkmicPull;
@SerializedName("nums")
private String nums;
@SerializedName("game")
private List<?> game;
@SerializedName("gamebet")
private List<String> gamebet;
@SerializedName("gametime")
private String gametime;
@SerializedName("gameid")
private String gameid;
@SerializedName("gameaction")
private String gameaction;
@SerializedName("game_bankerid")
private String gameBankerid;
@SerializedName("game_banker_name")
private String gameBankerName;
@SerializedName("game_banker_avatar")
private String gameBankerAvatar;
@SerializedName("game_banker_coin")
private String gameBankerCoin;
@SerializedName("game_banker_limit")
private String gameBankerLimit;
@SerializedName("shut_time")
private String shutTime;
@SerializedName("kick_time")
private String kickTime;
@SerializedName("speak_limit")
private String speakLimit;
@SerializedName("barrage_limit")
private String barrageLimit;
@SerializedName("coin")
private String coin;
@SerializedName("vip")
private VipModel vip;
@SerializedName("liang")
private LiangModel liang;
@SerializedName("medal_level")
private String medalLevel;
@SerializedName("medal_name")
private String medalName;
@SerializedName("issuper")
private String issuper;
@SerializedName("usertype")
private String usertype;
@SerializedName("front_task")
private String frontTask;
@SerializedName("ismic")
private String ismic;
@SerializedName("isattention")
private String isattention;
@SerializedName("userlists")
private List<LiveUserGiftBean> userlists;
@SerializedName("guard")
private GuardModel guard;
@SerializedName("guard_nums")
private String guardNums;
@SerializedName("pkinfo")
private PkinfoModel pkinfo;
@SerializedName("lminfo")
private LminfoModel lminfo;
@SerializedName("isred")
private String isred;
@SerializedName("is_fans")
private String isFans;
@SerializedName("count_fans")
private String countFans;
@SerializedName("isconnection")
private String isconnection;
@SerializedName("isleave")
private String isleave;
@SerializedName("landscape")
private String landscape;
@SerializedName("un_charge")
private String unCharge;
@SerializedName("see_time")
private String seeTime;
@SerializedName("greetings")
private List<String> greetings;
@SerializedName("live_bg")
private String liveBg;
@SerializedName("anchor_goodnum")
private String anchorGoodnum;
@SerializedName("jackpot_level")
private String jackpotLevel = "-1";
@SerializedName("live_vote")
private LiveRoomVoteModel voteModel;
@SerializedName("red_packet")
private RedPacketModel redPacketModel;
public RedPacketModel getRedPacketModel() {
return redPacketModel;
}
public EnterRoomInfoModel setRedPacketModel(RedPacketModel redPacketModel) {
this.redPacketModel = redPacketModel;
return this;
}
public String getJackpotLevel() {
return jackpotLevel;
}
public LiveRoomVoteModel getVoteModel() {
return voteModel;
}
public void setVoteModel(LiveRoomVoteModel voteModel) {
this.voteModel = voteModel;
}
public EnterRoomInfoModel setJackpotLevel(String jackpotLevel) {
this.jackpotLevel = jackpotLevel;
return this;
}
public String getVotestotal() {
return votestotal;
}
public EnterRoomInfoModel setVotestotal(String votestotal) {
this.votestotal = votestotal;
return this;
}
public String getMedalRankNum() {
return medalRankNum;
}
public EnterRoomInfoModel setMedalRankNum(String medalRankNum) {
this.medalRankNum = medalRankNum;
return this;
}
public String getBarrageFee() {
return barrageFee;
}
public EnterRoomInfoModel setBarrageFee(String barrageFee) {
this.barrageFee = barrageFee;
return this;
}
public String getUserlistTime() {
return userlistTime;
}
public EnterRoomInfoModel setUserlistTime(String userlistTime) {
this.userlistTime = userlistTime;
return this;
}
public String getChatserver() {
return chatserver;
}
public EnterRoomInfoModel setChatserver(String chatserver) {
this.chatserver = chatserver;
return this;
}
public String getLinkmicUid() {
return linkmicUid;
}
public EnterRoomInfoModel setLinkmicUid(String linkmicUid) {
this.linkmicUid = linkmicUid;
return this;
}
public String getLinkmicPull() {
return linkmicPull;
}
public EnterRoomInfoModel setLinkmicPull(String linkmicPull) {
this.linkmicPull = linkmicPull;
return this;
}
public String getNums() {
return nums;
}
public EnterRoomInfoModel setNums(String nums) {
this.nums = nums;
return this;
}
public List<?> getGame() {
return game;
}
public EnterRoomInfoModel setGame(List<?> game) {
this.game = game;
return this;
}
public List<String> getGamebet() {
return gamebet;
}
public EnterRoomInfoModel setGamebet(List<String> gamebet) {
this.gamebet = gamebet;
return this;
}
public String getGametime() {
return gametime;
}
public EnterRoomInfoModel setGametime(String gametime) {
this.gametime = gametime;
return this;
}
public String getGameid() {
return gameid;
}
public EnterRoomInfoModel setGameid(String gameid) {
this.gameid = gameid;
return this;
}
public String getGameaction() {
return gameaction;
}
public EnterRoomInfoModel setGameaction(String gameaction) {
this.gameaction = gameaction;
return this;
}
public String getGameBankerid() {
return gameBankerid;
}
public EnterRoomInfoModel setGameBankerid(String gameBankerid) {
this.gameBankerid = gameBankerid;
return this;
}
public String getGameBankerName() {
return gameBankerName;
}
public EnterRoomInfoModel setGameBankerName(String gameBankerName) {
this.gameBankerName = gameBankerName;
return this;
}
public String getGameBankerAvatar() {
return gameBankerAvatar;
}
public EnterRoomInfoModel setGameBankerAvatar(String gameBankerAvatar) {
this.gameBankerAvatar = gameBankerAvatar;
return this;
}
public String getGameBankerCoin() {
return gameBankerCoin;
}
public EnterRoomInfoModel setGameBankerCoin(String gameBankerCoin) {
this.gameBankerCoin = gameBankerCoin;
return this;
}
public String getGameBankerLimit() {
return gameBankerLimit;
}
public EnterRoomInfoModel setGameBankerLimit(String gameBankerLimit) {
this.gameBankerLimit = gameBankerLimit;
return this;
}
public String getShutTime() {
return shutTime;
}
public EnterRoomInfoModel setShutTime(String shutTime) {
this.shutTime = shutTime;
return this;
}
public String getKickTime() {
return kickTime;
}
public EnterRoomInfoModel setKickTime(String kickTime) {
this.kickTime = kickTime;
return this;
}
public String getSpeakLimit() {
return speakLimit;
}
public EnterRoomInfoModel setSpeakLimit(String speakLimit) {
this.speakLimit = speakLimit;
return this;
}
public String getBarrageLimit() {
return barrageLimit;
}
public EnterRoomInfoModel setBarrageLimit(String barrageLimit) {
this.barrageLimit = barrageLimit;
return this;
}
public String getCoin() {
return coin;
}
public EnterRoomInfoModel setCoin(String coin) {
this.coin = coin;
return this;
}
public VipModel getVip() {
return vip;
}
public EnterRoomInfoModel setVip(VipModel vip) {
this.vip = vip;
return this;
}
public LiangModel getLiang() {
return liang;
}
public EnterRoomInfoModel setLiang(LiangModel liang) {
this.liang = liang;
return this;
}
public String getMedalLevel() {
return medalLevel;
}
public EnterRoomInfoModel setMedalLevel(String medalLevel) {
this.medalLevel = medalLevel;
return this;
}
public String getMedalName() {
return medalName;
}
public EnterRoomInfoModel setMedalName(String medalName) {
this.medalName = medalName;
return this;
}
public String getIssuper() {
return issuper;
}
public EnterRoomInfoModel setIssuper(String issuper) {
this.issuper = issuper;
return this;
}
public String getUsertype() {
return usertype;
}
public EnterRoomInfoModel setUsertype(String usertype) {
this.usertype = usertype;
return this;
}
public String getFrontTask() {
return frontTask;
}
public EnterRoomInfoModel setFrontTask(String frontTask) {
this.frontTask = frontTask;
return this;
}
public String getIsmic() {
return ismic;
}
public EnterRoomInfoModel setIsmic(String ismic) {
this.ismic = ismic;
return this;
}
public String getIsattention() {
return isattention;
}
public EnterRoomInfoModel setIsattention(String isattention) {
this.isattention = isattention;
return this;
}
public List<LiveUserGiftBean> getUserlists() {
return userlists;
}
public EnterRoomInfoModel setUserlists(List<LiveUserGiftBean> userlists) {
this.userlists = userlists;
return this;
}
public GuardModel getGuard() {
return guard;
}
public EnterRoomInfoModel setGuard(GuardModel guard) {
this.guard = guard;
return this;
}
public String getGuardNums() {
return guardNums;
}
public EnterRoomInfoModel setGuardNums(String guardNums) {
this.guardNums = guardNums;
return this;
}
public PkinfoModel getPkinfo() {
return pkinfo;
}
public EnterRoomInfoModel setPkinfo(PkinfoModel pkinfo) {
this.pkinfo = pkinfo;
return this;
}
public LminfoModel getLminfo() {
return lminfo;
}
public EnterRoomInfoModel setLminfo(LminfoModel lminfo) {
this.lminfo = lminfo;
return this;
}
public String getIsred() {
return isred;
}
public EnterRoomInfoModel setIsred(String isred) {
this.isred = isred;
return this;
}
public String getIsFans() {
return isFans;
}
public EnterRoomInfoModel setIsFans(String isFans) {
this.isFans = isFans;
return this;
}
public String getCountFans() {
return countFans;
}
public EnterRoomInfoModel setCountFans(String countFans) {
this.countFans = countFans;
return this;
}
public String getIsconnection() {
if (StringUtil.isEmpty(isconnection)) {
isconnection = "0";
}
return isconnection;
}
public EnterRoomInfoModel setIsconnection(String isconnection) {
this.isconnection = isconnection;
return this;
}
public String getIsleave() {
if (StringUtil.isEmpty(isleave)) {
isleave = "0";
}
return isleave;
}
public EnterRoomInfoModel setIsleave(String isleave) {
this.isleave = isleave;
return this;
}
public String getLandscape() {
return landscape;
}
public EnterRoomInfoModel setLandscape(String landscape) {
this.landscape = landscape;
return this;
}
public String getUnCharge() {
return unCharge;
}
public EnterRoomInfoModel setUnCharge(String unCharge) {
this.unCharge = unCharge;
return this;
}
public String getSeeTime() {
return seeTime;
}
public EnterRoomInfoModel setSeeTime(String seeTime) {
this.seeTime = seeTime;
return this;
}
public List<String> getGreetings() {
return greetings;
}
public EnterRoomInfoModel setGreetings(List<String> greetings) {
this.greetings = greetings;
return this;
}
public String getLiveBg() {
return liveBg;
}
public EnterRoomInfoModel setLiveBg(String liveBg) {
this.liveBg = liveBg;
return this;
}
public String getAnchorGoodnum() {
return anchorGoodnum;
}
public EnterRoomInfoModel setAnchorGoodnum(String anchorGoodnum) {
this.anchorGoodnum = anchorGoodnum;
return this;
}
}

View File

@@ -0,0 +1,149 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
/**
* 整合进入直播间接口
*/
public class EnterRoomNewModel extends BaseModel {
@SerializedName("liveInfo")
private LiveInfoModel liveInfo = new LiveInfoModel();//直播间信息
@SerializedName("enterRoomInfo")
private EnterRoomInfoModel enterRoomInfo = new EnterRoomInfoModel();//原接口进入直播间数据返回
@SerializedName("rankHour")
private RankHourModel rankHour = new RankHourModel();//.热度卡
@SerializedName("newPeopleTask")
private NewPeopleTaskModel newPeopleTask = new NewPeopleTaskModel();//新人任务
@SerializedName("wishList")
private WishListModel wishList = new WishListModel();//心愿单
@SerializedName("guardUser")
private GuardUserModel guardUserAvatar = new GuardUserModel();//守护
@SerializedName("activeList")
private List<ActiveModel> activeList = new ArrayList<>();//活动列表
@SerializedName("isUseHotCard")
private String isUseHotCard = "";//是否使用热度卡
@SerializedName("liveRoomActivity")
private List<LiveRoomActivityModel> liveRoomActivityModels = new ArrayList<>();//活动列表
@SerializedName("clarityType")
private int clarityType;
@SerializedName("wishListProgress")
private WishModel wishListProgress;
public WishModel getWishListProgress() {
return wishListProgress;
}
public EnterRoomNewModel setWishListProgress(WishModel wishListProgress) {
this.wishListProgress = wishListProgress;
return this;
}
public List<LiveRoomActivityModel> getLiveRoomActivityModels() {
return liveRoomActivityModels;
}
public EnterRoomNewModel setLiveRoomActivityModels(List<LiveRoomActivityModel> liveRoomActivityModels) {
this.liveRoomActivityModels = liveRoomActivityModels;
return this;
}
public LiveInfoModel getLiveInfo() {
return liveInfo;
}
public EnterRoomNewModel setLiveInfo(LiveInfoModel liveInfo) {
this.liveInfo = liveInfo;
return this;
}
public EnterRoomInfoModel getEnterRoomInfo() {
return enterRoomInfo;
}
public EnterRoomNewModel setEnterRoomInfo(EnterRoomInfoModel enterRoomInfo) {
this.enterRoomInfo = enterRoomInfo;
return this;
}
public RankHourModel getRankHour() {
return rankHour;
}
public EnterRoomNewModel setRankHour(RankHourModel rankHour) {
this.rankHour = rankHour;
return this;
}
public NewPeopleTaskModel getNewPeopleTask() {
return newPeopleTask;
}
public EnterRoomNewModel setNewPeopleTask(NewPeopleTaskModel newPeopleTask) {
this.newPeopleTask = newPeopleTask;
return this;
}
public WishListModel getWishList() {
return wishList;
}
public EnterRoomNewModel setWishList(WishListModel wishList) {
this.wishList = wishList;
return this;
}
public GuardUserModel getGuardUserAvatar() {
return guardUserAvatar;
}
public EnterRoomNewModel setGuardUserAvatar(GuardUserModel guardUserAvatar) {
this.guardUserAvatar = guardUserAvatar;
return this;
}
public List<ActiveModel> getActiveList() {
return activeList;
}
public EnterRoomNewModel setActiveList(List<ActiveModel> activeList) {
this.activeList = activeList;
return this;
}
public String getIsUseHotCard() {
return isUseHotCard;
}
public EnterRoomNewModel setIsUseHotCard(String isUseHotCard) {
this.isUseHotCard = isUseHotCard;
return this;
}
public int getClarityType() {
return clarityType;
}
public void setClarityType(int clarityType) {
this.clarityType = clarityType;
}
@Override
public String toString() {
return "EnterRoomNewModel{" +
"liveInfo=" + liveInfo +
", enterRoomInfo=" + enterRoomInfo +
", rankHour=" + rankHour +
", newPeopleTask=" + newPeopleTask +
", wishList=" + wishList +
", guardUserAvatar=" + guardUserAvatar +
", activeList=" + activeList +
", isUseHotCard='" + isUseHotCard + '\'' +
", liveRoomActivityModels=" + liveRoomActivityModels +
", clarityType=" + clarityType +
'}';
}
}

View File

@@ -0,0 +1,72 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GiftListModel extends BaseModel {
@SerializedName("name")
private String name;
@SerializedName("price")
private String price;
@SerializedName("img")
private String img;
@SerializedName("id")
private String id;
@SerializedName("gift_type")
private String giftType;
public String getName() {
return name;
}
public GiftListModel setName(String name) {
this.name = name;
return this;
}
public String getPrice() {
return price;
}
public GiftListModel setPrice(String price) {
this.price = price;
return this;
}
public String getImg() {
return img;
}
public GiftListModel setImg(String img) {
this.img = img;
return this;
}
public String getId() {
return id;
}
public GiftListModel setId(String id) {
this.id = id;
return this;
}
public String getGiftType() {
return giftType;
}
public GiftListModel setGiftType(String giftType) {
this.giftType = giftType;
return this;
}
@Override
public String toString() {
return "GiftListModel{" +
"name='" + name + '\'' +
", price='" + price + '\'' +
", img='" + img + '\'' +
", id='" + id + '\'' +
", giftType='" + giftType + '\'' +
'}';
}
}

View File

@@ -0,0 +1,105 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GiftModel extends BaseModel{
@SerializedName("id")
private String id;
@SerializedName("sendtype")
private String sendtype;
@SerializedName("type")
private String type;
@SerializedName("mark")
private String mark;
@SerializedName("giftname")
private String giftname;
@SerializedName("needcoin")
private String needcoin;
@SerializedName("gifticon")
private String gifticon;
@SerializedName("swf")
private String swf;
@SerializedName("gift_uid")
private String giftUid;
public String getId() {
return id;
}
public GiftModel setId(String id) {
this.id = id;
return this;
}
public String getSendtype() {
return sendtype;
}
public GiftModel setSendtype(String sendtype) {
this.sendtype = sendtype;
return this;
}
public String getType() {
return type;
}
public GiftModel setType(String type) {
this.type = type;
return this;
}
public String getMark() {
return mark;
}
public GiftModel setMark(String mark) {
this.mark = mark;
return this;
}
public String getGiftname() {
return giftname;
}
public GiftModel setGiftname(String giftname) {
this.giftname = giftname;
return this;
}
public String getNeedcoin() {
return needcoin;
}
public GiftModel setNeedcoin(String needcoin) {
this.needcoin = needcoin;
return this;
}
public String getGifticon() {
return gifticon;
}
public GiftModel setGifticon(String gifticon) {
this.gifticon = gifticon;
return this;
}
public String getSwf() {
return swf;
}
public GiftModel setSwf(String swf) {
this.swf = swf;
return this;
}
public String getGiftUid() {
return giftUid;
}
public GiftModel setGiftUid(String giftUid) {
this.giftUid = giftUid;
return this;
}
}

View File

@@ -0,0 +1,29 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GuardModel extends BaseModel {
@SerializedName("type")
private String type;
@SerializedName("endtime")
private String endtime;
public String getType() {
return type;
}
public GuardModel setType(String type) {
this.type = type;
return this;
}
public String getEndtime() {
return endtime;
}
public GuardModel setEndtime(String endtime) {
this.endtime = endtime;
return this;
}
}

View File

@@ -0,0 +1,33 @@
package com.yunbao.common.bean;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
public class GuardUserModel extends BaseModel{
@SerializedName("guardUserAvatar")
private String guardUserAvatar;
@SerializedName("guardType")
private String guardType;
public static GuardUserModel objectFromData(String str) {
return new Gson().fromJson(str, GuardUserModel.class);
}
public String getGuardUserAvatar() {
return guardUserAvatar;
}
public void setGuardUserAvatar(String guardUserAvatar) {
this.guardUserAvatar = guardUserAvatar;
}
public String getGuardType() {
return guardType;
}
public void setGuardType(String guardType) {
this.guardType = guardType;
}
}

View File

@@ -0,0 +1,39 @@
package com.yunbao.common.bean;
public class HttpCallbackModel extends BaseModel {
private int code;
private String msg;
public HttpCallbackModel() {
}
public HttpCallbackModel(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
@Override
public String toString() {
return "HttpCallbackModel{" +
"code=" + code +
", msg='" + msg + '\'' +
'}';
}
}

View File

@@ -66,6 +66,7 @@ public class IMLoginModel extends BaseModel {
* noble_name : 贵族
* sex : 1
* slide : [{"listorder":0,"slide_cid":4,"slide_content":"","slide_des":"首充特惠大禮包","slide_id":91,"slide_name":"首充特惠大禮包","slide_pic":"https://qny.shayucm.com/20220531/90f6942fb928c3034baeb380b9c4003d.gif","slide_status":1,"slide_url":"https://ceshi.yaoulive.com/h5/activity/firstTopUp/newUp.html"},{"listorder":0,"slide_cid":4,"slide_content":"","slide_des":"充值反饋活動","slide_id":88,"slide_name":"充值反饋活動","slide_pic":"https://qny.shayucm.com/20220511/faacb51d5a45f7ff24a6f0314df133fb.gif","slide_status":1,"slide_url":"https://ceshi.yaoulive.com/h5/GuildTournament/202204/Tournament.html"}]
* slide : [{"listorder":0,"slide_cid":4,"slide_content":"","slide_des":"首充特惠大禮包","slide_id":91,"slide_name":"首充特惠大禮包","slide_pic":"https://qny.shayucm.com/20220531/90f6942fb928c3034baeb380b9c4003d.gif","slide_status":1,"slide_url":"https://ceshi.yaoulive.com/h5/activity/firstTopUp/newUp.html"},{"listorder":0,"slide_cid":4,"slide_content":"","slide_des":"充值反饋活動","slide_id":88,"slide_name":"充值反饋活動","slide_pic":"https://qny.shayucm.com/20220511/faacb51d5a45f7ff24a6f0314df133fb.gif","slide_status":1,"slide_url":"https://ceshi.yaoulive.com/h5/GuildTournament/202204/Tournament.html"}]
* users_type : A
* votes : 0.00
* votestotal : 0
@@ -224,6 +225,126 @@ public class IMLoginModel extends BaseModel {
//超皇字体颜色
@SerializedName("contentColor")
private String contentColor = "";
//创建时间
@SerializedName("create_time")
private String createTime = "";
@SerializedName("is_guess")
private String isGuess = "";
@SerializedName("goodnum_expire_time")
private String goodnumExpireTime = "";
@SerializedName("version")
private String version = "";
@SerializedName("max_noble_end_time")
private String maxNobleEndTime = "";
@SerializedName("custom_color_id")
private String customColorId = "";
@SerializedName("is_chat")
private String isChat = "";
@SerializedName("is_rong")
private String isRong = "";
@SerializedName("contribution")
private String contribution = "";
@SerializedName("guard_type")
private String guardType = "";
public String getCreateTime() {
return createTime;
}
public IMLoginModel setCreateTime(String createTime) {
this.createTime = createTime;
return this;
}
public String getIsGuess() {
return isGuess;
}
public IMLoginModel setIsGuess(String isGuess) {
this.isGuess = isGuess;
return this;
}
public String getGoodnumExpireTime() {
return goodnumExpireTime;
}
public IMLoginModel setGoodnumExpireTime(String goodnumExpireTime) {
this.goodnumExpireTime = goodnumExpireTime;
return this;
}
public String getVersion() {
return version;
}
public IMLoginModel setVersion(String version) {
this.version = version;
return this;
}
public String getMaxNobleEndTime() {
return maxNobleEndTime;
}
public IMLoginModel setMaxNobleEndTime(String maxNobleEndTime) {
this.maxNobleEndTime = maxNobleEndTime;
return this;
}
public String getCustomColorId() {
return customColorId;
}
public IMLoginModel setCustomColorId(String customColorId) {
this.customColorId = customColorId;
return this;
}
public String getIsChat() {
return isChat;
}
public IMLoginModel setIsChat(String isChat) {
this.isChat = isChat;
return this;
}
public String getIsRong() {
return isRong;
}
public IMLoginModel setIsRong(String isRong) {
this.isRong = isRong;
return this;
}
public String getContribution() {
return contribution;
}
public IMLoginModel setContribution(String contribution) {
this.contribution = contribution;
return this;
}
public String getGuardType() {
return guardType;
}
public IMLoginModel setGuardType(String guardType) {
this.guardType = guardType;
return this;
}
public String getNobleEndTime() {
return nobleEndTime;

View File

@@ -0,0 +1,98 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class LinkMicUserBean extends BaseModel {
@SerializedName("user_nicename")
private String uname;
@SerializedName("avatar")
private String avatar;
@SerializedName("dress_avatar")
private String dress_avatar;
private String uid = "";
private String action;
@SerializedName("id")
private String id;//连麦显示右侧头像时要用
@SerializedName("level")
private int level;
@SerializedName("sex")
private int sex;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getDress_avatar() {
return dress_avatar;
}
public void setDress_avatar(String dress_avatar) {
this.dress_avatar = dress_avatar;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "LinkMicUserBean{" +
"uname='" + uname + '\'' +
", avatar='" + avatar + '\'' +
", dress_avatar='" + dress_avatar + '\'' +
", uid='" + uid + '\'' +
", action='" + action + '\'' +
", id='" + id + '\'' +
", level=" + level +
", sex=" + sex +
'}';
}
}

View File

@@ -0,0 +1,33 @@
package com.yunbao.common.bean;
import java.util.List;
public class LinkMicUserBeanV2 extends BaseModel {
private String roomuserid;
private int status;
private List<LinkMicUserBean> userlist;
public String getRoomuserid() {
return roomuserid;
}
public void setRoomuserid(String roomuserid) {
this.roomuserid = roomuserid;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public List<LinkMicUserBean> getUserlist() {
return userlist;
}
public void setUserlist(List<LinkMicUserBean> userlist) {
this.userlist = userlist;
}
}

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