Compare commits

..

513 Commits

Author SHA1 Message Date
max
f4ef62d2d6 固化混淆配置 2024-06-25 10:02:34 +08:00
max
49a10d9f40 feat:调整版本号 2024-06-24 17:40:34 +08:00
max
42b47fcb64 fix:修复PK-RTL适配问题 2024-06-24 16:26:04 +08:00
max
709b0b0274 fix:调整一些翻译 2024-06-24 15:54:39 +08:00
max
b6d59b5986 feat:微调UI 2024-06-24 14:52:49 +08:00
max
ef80b15f27 feat:修改背包icon 2024-06-24 14:22:24 +08:00
max
c14d376a1a feat;调整首页列表分页大小(减轻服务端压力) 2024-06-24 11:44:37 +08:00
max
7f8cd70d99 feat:调整“我的”翻译 2024-06-21 17:46:38 +08:00
max
d2a686f572 feat:首页房间列表:增加公告标题默认值 2024-06-21 16:53:31 +08:00
max
693a14d6cf fix:修复房间排行榜热度-最小化后恢复页面未展示最新值bug 2024-06-21 15:34:16 +08:00
max
cf078ebc5b feat:调整首页列表-公告展示字段 2024-06-20 19:01:05 +08:00
max
408fe443f4 fix:修复首页-排行榜-RTL问题 2024-06-20 17:56:39 +08:00
max
442bd1f238 fix:修复PK邀请弹窗 适配问题 2024-06-20 16:33:07 +08:00
max
4eed4c0cfb fix:修复首页-我的-房间卡片 展示bug 2024-06-20 15:56:10 +08:00
max
bf3ea4b437 feat:调整启动图标 2024-06-20 10:59:12 +08:00
max
f161a8e96b feat:补充翻译 2024-06-19 19:14:39 +08:00
max
574f290004 feat:首页排行榜资源位-背景改为本地 2024-06-19 18:51:59 +08:00
max
a46b5b4f32 feat:调整首页-排行榜-UI
fix:修复首页-我的列表不能主动刷新问题
2024-06-19 18:51:59 +08:00
max
936dd2f8e8 fix:修复首页排行榜异常 2024-06-19 18:51:59 +08:00
max
9d0b6e3a9f feat:完成我的-菜单列表:动态数据(接口) 2024-06-19 18:51:58 +08:00
max
14fa576814 feat:完善首页数据对接(首页排行榜、我的房间、房间标签列表)
feat:删除部分无用代码
2024-06-19 18:51:58 +08:00
max
9d14936d9c feat:初步实现首页排行榜UI效果 2024-06-19 18:51:58 +08:00
max
3dec68b1fc fix:修复一些英文翻译 2024-06-19 18:51:57 +08:00
max
3c75f0e86a feat:删除首页历史无用代码
feat:调整首页刷新机制(去掉定时刷新任务、改为每次可见刷新)
feat:完善首页-我的-房间信息展示
2024-06-19 18:51:57 +08:00
max
0caee6e191 feat:调整翻译文案 2024-06-19 18:51:43 +08:00
max
b9f87b4984 feat:初步完成首页改版UI部分(首页-推荐、首页-我的) 2024-06-19 18:49:52 +08:00
max
2b22fb3d4c fix:修复线上检测异常(房间公聊列表) 2024-06-19 16:25:00 +08:00
max
d80128f217 feat:调整礼物面板-背包图标大小 2024-06-19 15:52:22 +08:00
max
57a7bee15d 补充提交 2024-06-19 15:52:22 +08:00
max
677eb4327b feat:补充翻译 2024-06-19 15:52:22 +08:00
max
d8815a23e7 feat:完成房间礼物面板-背包位置调整
feat:调整礼物面板部分layout的间距、高度
2024-06-19 15:52:21 +08:00
max
a7faa20321 feat:调整房间在线人数定时任务时长 2024-06-19 15:52:21 +08:00
max
612bd50545 feat:调整给自己送礼的提示文案 2024-06-19 15:52:20 +08:00
max
3187bc0d37 fix:增加给自己送礼的提示(文案待确定) 2024-06-19 15:52:20 +08:00
max
48d2bc88b8 fix:修复团队PK-结束后进度未清零bug 2024-06-19 15:52:20 +08:00
max
168c0eab09 feat:补充游戏房、个播房:房间榜热度展示 2024-06-19 15:52:20 +08:00
max
d1fc37aa24 feat:完成房间榜流水展示 2024-06-19 15:52:19 +08:00
max
94cebe457a feat:补充PK-UI-多语言适配 2024-06-19 15:52:19 +08:00
max
6e8f69d273 feat:完善PK-UI改版:多语言资源适配 2024-06-19 15:52:18 +08:00
max
80d852114c fix:修改房间PK面板拖拽实现方案(RTL适配问题)
fix:修改首页房间悬浮球实现方案(RTL适配问题)
2024-06-19 15:52:17 +08:00
max
634adc5f19 fix:房间团队PK-阿语适配 2024-06-19 15:52:17 +08:00
max
3408f444aa fix:修复PK-头像缩放适配问题 2024-06-19 15:52:17 +08:00
max
95f65558a4 feat:完成房间团队PK-UI改版 2024-06-19 15:52:15 +08:00
max
fbb7d20f3d feat:迁移PK入口到玩法列表
feat:部分UI微调
2024-06-19 15:52:15 +08:00
max
12edababcd feat:调整跨房PK倒计时 颜色 2024-06-19 15:52:14 +08:00
max
97949c4828 feat:完成跨房PK-UI改版 2024-06-19 15:52:14 +08:00
max
78fa5751a6 feat:COS 增加动态配置(是否全球加速) 2024-06-14 16:00:55 +08:00
max
a6798cf35d fix:修复首页房间最小化入口展示不出来问题(去掉再次请求用户信息接口的逻辑,改用读取房间信息里面头像字段) 2024-06-11 10:26:22 +08:00
max
89940edd58 feat:固化混淆配置 2024-06-11 09:42:49 +08:00
max
fb202c1c73 fix:修复公聊厅消息过滤问题 2024-06-07 20:32:19 +08:00
max
840a1243aa fix:修复1v1游戏登录IM问题
fix:修复公聊新消息过滤器问题
2024-06-07 20:03:46 +08:00
max
2019411763 feat:调整部分文案 2024-06-07 18:28:07 +08:00
max
e0e07c718a feat:增加日志输出控制(根据环境) 2024-06-07 17:54:08 +08:00
max
02595f81f7 fix:调整部分翻译 2024-06-07 17:48:41 +08:00
max
95d0527fc9 fix:调整部分场景的时间格式化-时区 2024-06-07 14:27:22 +08:00
max
bc3426c574 fix:修复线上检测异常:Exception java.lang.NullPointerException 2024-06-07 11:21:15 +08:00
max
a2976dbc74 fix;修复线上检测异常:Exception java.util.ConcurrentModificationException 2024-06-07 11:16:06 +08:00
max
e942696e14 fix:修复线上检测空指针异常 2024-06-07 11:05:35 +08:00
max
7c3dee48ae fix:修复空指针异常 2024-06-07 10:45:00 +08:00
max
eabb3a5bd3 fix:修复钱包钻石余额格式化展示问题
fix:修复兑换金币余额格式化展示问题
2024-06-06 16:52:00 +08:00
max
fbc76a0bd3 fix:游戏房增加小时榜(牌照房切换为游戏房需要展示小时榜) 2024-06-06 16:17:36 +08:00
max
d044756bd7 fix:修复游戏麦位布局问题 2024-06-06 16:10:23 +08:00
max
8ad993bb6b fix:修复UI反馈问题 2024-06-06 15:41:57 +08:00
max
f325df4ed0 feat:固化混淆配置 2024-06-06 14:32:57 +08:00
max
19cbd94e98 feat:补充翻译 2024-06-06 11:20:34 +08:00
max
85b9ce903f fix:相亲模式隐藏游戏列表入口 2024-06-06 11:14:29 +08:00
max
408ec3f811 feat:补充文件上传异常时toast具体原因 2024-06-06 11:08:00 +08:00
max
cafeee5305 feat:完善钱包余额更新
feat:调整我的入口UI(钱包、VIP、公会)
2024-06-06 10:53:51 +08:00
max
818acaee8f feat:房间-游戏列表-icon字段调整 2024-06-05 20:07:25 +08:00
max
e72423708e feat:初步完成钱包UI改版(缺少入口icon替换等和兑换跳转联调) 2024-06-05 20:06:01 +08:00
max
5ba98cdb9e fix:调整更新房间接口传参 2024-06-05 15:57:20 +08:00
max
13d87309e1 fix:补充1v1游戏房从后台恢复的状态同步机制 2024-06-05 15:56:45 +08:00
max
dc5d160086 feat:普通房开放跨房PK入口
feat:PK入口迁移到玩法弹窗(待完善,目前注释了关键代码:下个版本的需求)
2024-06-05 14:31:41 +08:00
max
7dca9a1ed5 fix:修复游戏结果状态显示错误问题 2024-06-04 19:49:16 +08:00
max
fc2c2433aa fix:游戏结束后退出云信 2024-06-04 19:29:08 +08:00
max
7aeb80599d fix:游戏结束主动退出游戏 2024-06-04 18:32:57 +08:00
max
53b7bb87f1 fix:修复游戏结果多语言UI适配问题 2024-06-04 18:13:45 +08:00
max
994f0900a7 feat:调整房间标题长度输入限制(改为25) 2024-06-04 17:12:32 +08:00
max
764227edcd feat:调整页面背景主题色资源 2024-06-04 17:07:59 +08:00
max
640d59d4f5 feat:调整转赠相关的翻译文案 2024-06-04 16:55:44 +08:00
max
11bc8068bd feat:调整部分翻译文案 2024-06-04 15:56:56 +08:00
max
bc8f1a6660 feat:游戏退出提示区分状态 2024-06-04 15:19:59 +08:00
max
93fc9d2fef fix:游戏房补充退出房间逻辑 2024-06-04 15:09:52 +08:00
max
2d9c152bd6 feat:调整1v1游戏显示区域 2024-06-04 11:32:46 +08:00
max
0e3d9695f9 feat:完成房间公聊-头条入口调整 2024-06-04 10:52:33 +08:00
max
1acbead001 feat:游戏麦位改为9麦,增加礼物值展示 2024-06-03 19:18:47 +08:00
max
b25276875b feat:完成房间-游戏切换入口调整需求 2024-06-03 19:00:13 +08:00
max
6de2f68106 feat:调整恢复游戏房接口名 2024-06-03 18:18:02 +08:00
max
7ff35b1a50 feat:游戏排行榜入口无需翻译 2024-06-03 16:32:14 +08:00
max
0c4df905e3 feat:补充游戏切换房间逻辑 2024-06-03 16:18:24 +08:00
max
aa0baeccf1 feat:完善游戏翻译
fix:修复结算状态显示bug
2024-06-03 11:54:09 +08:00
max
8a66c4bdb8 feat:补充开始游戏 刷新余额逻辑 2024-06-03 10:19:58 +08:00
max
5c262c93c9 feat:完善游戏断网重连刷新机制
feat:完善部分UI调整
2024-06-03 10:10:29 +08:00
max
2b0e52ac20 feat:恢复游戏dialog禁止空白取消 2024-05-31 20:46:34 +08:00
max
d2d738f618 feat:补充异常退出-恢复游戏策略 2024-05-31 20:28:01 +08:00
max
cdbb895a68 feat:完成游戏SDK加载与游戏状态关联
feat:公屏数据与游戏状态关联
feat:增加轮次ID协议
2024-05-31 19:47:51 +08:00
max
a6f5b24a6d feat:完善提前中端结果展示 2024-05-31 16:13:20 +08:00
max
126215949f feat:游戏房公屏默认添加第一条系统公告 2024-05-31 14:03:01 +08:00
max
92a0e4b408 feat:完成游戏结算 2024-05-31 12:58:38 +08:00
max
5be8ebde3a feat:完善游戏房状态维护 2024-05-30 19:18:05 +08:00
max
2396eb9089 feat:完成部分房间信息获取逻辑对接 2024-05-29 19:31:29 +08:00
max
65ef4810e3 feat:完善游戏房公屏展示与消息发送 2024-05-29 15:26:04 +08:00
max
c72af689e5 feat:初步实现购买游戏接口(待完整联调)
feat:完善游戏房UI
feat:初步实现游戏引擎功能
2024-05-28 19:34:03 +08:00
max
c8f83b4ad8 feat:初步搭建游戏房框架(待完善)
feat:完成游戏首页UI与部分接口联调
feat:完成游戏房部分UI
2024-05-27 19:52:11 +08:00
max
088756891e feat:调整礼物资源缓存文件目录命名 2024-05-23 16:41:29 +08:00
max
e2ad02e8a6 feat:固化新增代码的混淆配置 2024-05-23 16:12:54 +08:00
max
8f4fd9bf7e fix:修复google检测到的异常 2024-05-23 15:36:42 +08:00
max
e998245340 fix:修复因时区导致生日展示错误问题 2024-05-23 15:06:53 +08:00
max
ac212c4949 style:优化礼物弹窗-幸运横幅UI适配 2024-05-23 14:47:34 +08:00
max
115d0d3a01 feat:调整房间公聊Tab文案 2024-05-23 14:47:05 +08:00
max
2aef4076ef style:调整房间背景item样式 2024-05-22 18:06:24 +08:00
max
ded1072961 fix:修复UI反馈问题(房间背景条目-使用中文案未上下局中、主麦没人时礼物值未相对局中问题、调整锁麦ICON) 2024-05-22 17:54:21 +08:00
max
37eaf9d08d fix:修复上个版本做公聊误把私聊语言入口隐藏问题 2024-05-22 16:05:18 +08:00
max
17a56f4c65 fix:修复房间背景设置item间距问题 2024-05-22 16:03:27 +08:00
max
89b381bfbc feat:完成礼物资源预缓存功能,修改礼物播放下载方案 2024-05-22 15:15:16 +08:00
max
58f1002b4e feat:调整麦位icon
feat:调整消息气泡样式
2024-05-22 15:09:18 +08:00
max
8475180048 feat:修改房间背景列表 2024-05-22 14:45:06 +08:00
max
4903a3f9a8 feat:房间背景item圆角展示 2024-05-22 14:23:35 +08:00
max
6b6e72ff25 feat:完成房间底部菜单UI调整 2024-05-22 14:07:11 +08:00
max
9d96b25208 feat:完成房间主题背景设置功能 2024-05-22 14:04:47 +08:00
max
494628918d feat:调整小时榜、房间榜 文案翻译 并修复RTL模式下的适配问题 2024-05-21 19:26:30 +08:00
max
6229ba57be feat:完成家族小秘书消息对接(和之前的家族逻辑一样,只是协议码不对)
fix:修复公会小秘书消息文案展示不完整问题
2024-05-21 19:13:37 +08:00
max
cab7e3542e fix:修复房间在线列表 RTL适配问题 2024-05-21 15:40:54 +08:00
max
a62278ed30 feat:适配新的H5公会体系入口跳转 2024-05-21 11:17:35 +08:00
max
3d707b19db fix:调整送礼数量选择popup-all样式 2024-05-20 17:48:31 +08:00
max
21d982246c feat:完成房间部分UI改版:标题栏新增头像、新增在线列表展示、去掉游戏房小麦位、调整小时榜、房间榜、音乐入口的UI位置 2024-05-20 17:42:33 +08:00
max
21f0a84904 feat:替换我的-我转转赠ICON 2024-05-20 10:11:14 +08:00
max
92070af5e8 feat:恢复转赠功能 2024-05-17 19:56:26 +08:00
max
6ca5589efc fix:修复房间-用户弹窗部分操作按钮图标不对问题 2024-05-17 16:18:45 +08:00
max
d472d671ba feat:完成房间功能弹窗入口改动(部分功能入口移植到房间设置中) 2024-05-17 16:18:19 +08:00
max
9a7c41b6b2 feat:JS新增跳转API(收益记录) 2024-05-17 14:18:45 +08:00
max
d3b3ce8be2 feat:麦位号UI调整(NO.x) 2024-05-17 11:29:28 +08:00
max
812061a601 feat:去掉老板位的特殊UI 2024-05-17 11:10:19 +08:00
max
c666c39769 多语言适配:部分布局属性修改(left->start、right->end等) 2024-05-17 10:50:38 +08:00
max
1b09c46bfc feat:修改VIP中心-返金币icon 2024-05-16 17:59:25 +08:00
max
37b91c22cb feat:移除房间底部VIP入口 2024-05-16 17:18:09 +08:00
max
e500d7a01f feat:完成礼物数量UI改动 2024-05-16 17:13:01 +08:00
max
cab220d917 fix:修复公聊-用户头像字段-读取错误问题 2024-05-15 19:29:21 +08:00
max
70040c5ee1 fix:修复SUD桌球游戏无法加载问题(资源混淆导致,加白解决) 2024-05-15 19:28:20 +08:00
max
7576b30ae7 feat:固化新增的混淆配置 2024-05-15 09:33:27 +08:00
max
dc1ae42fa1 feat:固化新增代码的混淆配置
fix:调整命名(泛型)
2024-05-14 19:50:45 +08:00
max
42c82e1c0b fix:调整一些UI与多语言适配 2024-05-14 19:48:22 +08:00
max
70d0049477 feat:调整翻译文案 2024-05-14 18:19:52 +08:00
max
0eeb9cd105 feat:调整头条文本大小 2024-05-14 18:06:57 +08:00
max
e5b2e3f5e7 feat:增加混淆配置 keep 2024-05-14 18:06:37 +08:00
max
a7076f7bc8 feat:多语言调整(PK相关) 2024-05-14 17:39:26 +08:00
max
54c07468d5 feat:多语言适配;补充部分翻译 2024-05-14 17:39:26 +08:00
max
8135142287 feat:新增公聊新消息过滤功能(只接收文本、图片、1081) 2024-05-14 17:39:25 +08:00
max
5a067ec0fd 多语言适配:粉丝团 2024-05-14 17:39:25 +08:00
max
e377a51094 fix:修复部分多语言适配问题 2024-05-14 17:39:24 +08:00
max
01093d39c5 fix:去掉播放礼物特效的一些判断(价值大于520、特效标识),改为是否有特效 2024-05-14 17:39:23 +08:00
max
e386c0cf58 feat:替换邀请好友icon 2024-05-14 17:39:23 +08:00
max
fffb78a9f6 feat:恢复礼物弹窗-幸运礼物、周星礼物提示 2024-05-14 17:39:22 +08:00
max
209ebabd34 feat:恢复支付密码设置功能 2024-05-14 17:39:22 +08:00
max
5697be0ba9 feat:恢复装扮商城 2024-05-14 17:39:21 +08:00
max
de6d892df5 feat:隐藏房间玩法列表-名称展示 2024-05-14 17:39:20 +08:00
max
f21e14ca5b 多语言适配:修改部分翻译 2024-05-14 17:39:20 +08:00
max
c4c03edc5f feat:调整公聊部分UI 2024-05-14 17:39:20 +08:00
max
72863b8bde feat:恢复粉丝团功能 2024-05-14 17:39:20 +08:00
max
9be483de4b 多余语适配:去掉部分常量 2024-05-14 17:39:20 +08:00
max
bf3098d5c3 fix:修复自定义ImageSpan加载图片回调更新View的线程问题 2024-05-14 17:39:19 +08:00
max
94f33e2fa7 feat:补充公聊加入房间附带参数(和房间一样,但目前用不上) 2024-05-14 17:39:17 +08:00
max
a54b7967c9 feat:恢复房间部分功能(小时榜、房间榜) 2024-05-14 17:39:17 +08:00
max
bd00bb7e91 fix:修复发布头条支付弹窗未选中金币问题 2024-05-14 17:39:17 +08:00
max
a86950f80a fix:修复房间消息列表-消息展示不完整问题 2024-05-14 17:39:15 +08:00
max
ca8f581c69 feat:恢复收益记录-明细H5入口、恢复我的-邀请好友入口 2024-05-14 17:39:15 +08:00
max
7c8685d652 同步PIKO:恢复首页Tab分类功能 2024-05-14 17:39:15 +08:00
max
89065de00f feat:补充房间公聊发送按钮多语言图片 2024-05-14 17:39:14 +08:00
max
338bedb0e0 fix:修复房间-公聊消息昵称不展示问题 2024-05-14 17:39:14 +08:00
max
6635167a30 fix:调整音乐列表分页大小(尽可能避免一直单页播放问题) 2024-05-14 17:39:13 +08:00
max
7c23f5e24b 多语言适配:替换房间在线列表部分icon 2024-05-14 17:39:12 +08:00
max
d51aba4908 多语言适配 2024-05-14 17:39:11 +08:00
max
2a3aa0a77e 多语言适配:部分文案与图片 2024-05-14 17:39:11 +08:00
max
ff25fd4ded fix:修复房间用户资料弹窗-操作按钮点击立即销毁弹窗问题 2024-05-14 17:39:10 +08:00
max
d7be587078 fix:修复福袋公屏未区分地区问题 2024-05-14 17:39:09 +08:00
max
9f7187e7ae feat:公聊发布头条-图片多语言适配 2024-05-14 17:39:09 +08:00
max
7f38169684 feat:房间-公聊文本消息支持emoji 2024-05-14 17:39:09 +08:00
max
3bc264cccb feat:调整公聊大厅弹幕数据加载策略(为空才请求) 2024-05-14 17:39:09 +08:00
max
912ef11d1b fix:获取公聊大厅ID的读取策略优化 2024-05-14 17:39:08 +08:00
max
62679db186 feat:完成游戏房公聊业务
fix:公聊入口弹幕支持emoji展示
2024-05-14 17:39:07 +08:00
max
ea92c08ca1 fix:修复百顺游戏时飘屏无法展示问题(由Activity改为View-Fragment实现) 2024-05-14 17:39:07 +08:00
max
9ae80b839b fix:调整游戏SDK传参
feat:游戏余额不足跳转充值页,增加提示弹窗
2024-05-14 17:39:06 +08:00
max
01f3418f43 feat:初步完成百顺游戏接入 2024-05-14 17:39:05 +08:00
max
5e634b1fda feat:补充创建房间-图片多语言适配 2024-05-14 17:39:04 +08:00
max
32ac09ef60 feat:恢复创建游戏房间功能 2024-05-14 17:39:03 +08:00
max
ae4dea2ab0 feat:恢复游戏房功能 2024-05-14 17:39:03 +08:00
max
f76582b1f6 feat:优化首页Tab-Fragment的可见检测逻辑
fix:修复部分空指针异常
2024-05-14 17:39:02 +08:00
max
f121ef5ad1 feat:完成房间公聊功能 2024-05-14 17:39:02 +08:00
max
a7a04c2950 feat:公聊厅消息列表支持头饰展示 2024-05-14 17:39:01 +08:00
max
af0ba80b30 feat:完善公聊厅UI
feat:公聊厅列表增加数量限制
2024-05-14 17:39:01 +08:00
max
c986a2dce6 feat:完成公聊厅-首页入口 2024-05-14 17:38:59 +08:00
max
376fbdaeb2 feat:初步搭建房间内公聊 2024-05-14 17:38:58 +08:00
max
7fd10e1222 feat:完善公聊厅发布头条支付对接,以及购买后展示逻辑 2024-05-14 17:38:58 +08:00
max
edb8c962cd feat:完善公聊页细节实现
feat:对接公聊ID、发布头条、获取头条接口
2024-05-14 17:38:57 +08:00
max
378ea3802d feat:初步搭建公聊页面(待完善) 2024-05-14 17:38:57 +08:00
max
04f434531c 多语言适配:调整部分阿语翻译 2024-05-06 10:40:47 +08:00
max
a18b0d3f4d feat:调整云信测试环境KEY 2024-04-30 15:10:45 +08:00
max
58c298bbd6 fix:调整老板位阿语文案 2024-04-30 10:13:48 +08:00
max
35bc665f03 fix:调整阿语数字展示为0123.. 2024-04-30 09:56:16 +08:00
max
414a248418 feat:调整我的-加入公会-阿语图片 2024-04-30 09:36:47 +08:00
max
22b45993e4 fix:登录页不同语言字体大小适配 2024-04-29 17:36:04 +08:00
max
2af211457b feat:登录页增加切换环境入口 2024-04-29 17:28:38 +08:00
max
29a62a034d fix:修复首页Tab数据源导致的内存泄露问题 2024-04-29 15:39:12 +08:00
max
a2980914e8 fix:尝试解决部分手机应用名读取成XChat_Android_Core问题 2024-04-29 11:21:55 +08:00
max
920b159820 feat:补充飘屏-异常捕获 2024-04-29 11:20:47 +08:00
max
6e37bd9c68 fix:修复房间前台服务-通知兼容异常问题 2024-04-29 10:15:22 +08:00
max
1d399777b1 fix:修复飘屏findViewById导致偶发异常问题 2024-04-29 10:14:34 +08:00
max
3626d5708a feat:调整版本号 2024-04-26 19:50:21 +08:00
max
ebd9ddd8de feat:首页列表新增房间标签展示 2024-04-26 18:57:44 +08:00
max
20497cb2b7 多语言适配:调整公会相关文案图片,支持我的公会状态 2024-04-26 18:03:50 +08:00
max
61bb91920d fix-多语言适配:修改部分文案与图标 2024-04-26 17:14:19 +08:00
max
6a30060bf9 fix:调整送礼弹窗-全麦文案适配 2024-04-26 17:03:54 +08:00
max
76abafe1cc fix:修复送礼麦位动画错位问题 2024-04-26 17:02:56 +08:00
max
6256151928 fix:修复福袋飘屏异常展示问题 2024-04-26 16:05:46 +08:00
max
3d59e7f244 UI-fix:我的-ID文案调整 2024-04-26 15:40:04 +08:00
max
66f8a527f9 同步PIKO:个播跨房PK-bug处理记录 2024-04-26 15:08:41 +08:00
max
57d0852d14 同步PIKO:完成声网个播PK功能 2024-04-26 14:59:41 +08:00
max
38b0af2f35 同步PIKO:修复个播PK声音状态异常 2024-04-26 14:45:15 +08:00
max
062c2ee0a9 同步PIKO:修复个播PK进房未加入对方房间问题 2024-04-26 14:35:34 +08:00
max
4ff5ca40e3 同步PIKO:修复相亲房送礼导致闭麦、结束导致闭麦问题;修复BaseRoomFragment麦克风状态判断问题 2024-04-26 14:28:46 +08:00
max
ad543ccbbc 同步PIKO:修复音乐无限切换bug 2024-04-26 14:24:53 +08:00
max
2d8f3939ee 恢复首页排行榜入口 2024-04-26 11:04:01 +08:00
max
e43b3348bf 更新混淆配置 2024-04-25 16:12:49 +08:00
max
8f552d6663 混淆配置:这个引用会被误混淆(大概因为同名),改为直接引用路径 2024-04-25 15:49:09 +08:00
max
a7c528fff1 fix:修复文件上传失败问题(混淆导致) 2024-04-25 15:47:30 +08:00
max
afc1d5ef69 混淆异常处理 2024-04-24 23:20:09 +08:00
max
4a3c8cbdac 混淆配置:调整顺序(应该没区别) 2024-04-24 23:11:46 +08:00
max
1c9c084c3e 多语言适配:补充提交 2024-04-24 21:10:00 +08:00
max
39cd73b021 fix:修复多个多语言UI适配问题 2024-04-24 21:07:27 +08:00
max
f6e5017fbb fix:修复VIP中心的多语言适配问题 2024-04-24 20:39:57 +08:00
max
8562768556 fix:去掉不必要的字段(为null导致异常) 2024-04-24 19:53:46 +08:00
max
7d6f0c360b feat:更新混淆规则(新增一些目录移动配置) 2024-04-24 18:36:14 +08:00
max
e635f69b1f fix:欢乐砸蛋公屏文案调整(1.寻爱之旅换欢乐砸蛋2.欢乐砸蛋暂时不需要翻译) 2024-04-24 18:24:18 +08:00
max
66e9a1442e 补充全局飘屏屏蔽页面 2024-04-24 17:34:23 +08:00
max
30036526bd fix:全局飘屏增加屏蔽页面(升级弹窗) 2024-04-24 17:30:26 +08:00
max
de71c445c1 feat:调整收益记录页UI(文本颜色互换) 2024-04-24 17:27:25 +08:00
max
088d27c51c feat:调整状态图资源 2024-04-24 17:12:17 +08:00
max
42007aa075 feat:调整接口日志输出限制(debug环境输出) 2024-04-24 16:13:35 +08:00
max
bc441a8ac2 多语言适配:调整我的页面-VIP中心入口的图片 2024-04-24 15:09:54 +08:00
max
5b9ada0902 多语言适配:我的装扮页面适配 2024-04-24 11:56:22 +08:00
max
5f441aa8eb fix:去掉通用飘屏文本行数限制 2024-04-24 11:54:26 +08:00
max
9e8a95c1d6 feat:补充几个之前删除的SVGA文件 2024-04-23 20:12:00 +08:00
max
ac14be2c88 feat:调整通用飘屏-SVGA方案(自己做进场/退出动画,不用SVGA的动态文本了,自己叠加一个TextView) 2024-04-23 18:58:50 +08:00
max
e334c7ce16 feat:调整接口加密KEY 2024-04-23 18:33:55 +08:00
max
32b0fba6fb 同步PIKO:房间在线列表改用接口加载 2024-04-23 15:08:04 +08:00
max
d9a39877f1 fix:修复欢乐砸蛋排行榜数据加载问题(viewpager2导致) 2024-04-23 14:21:17 +08:00
max
681bd8bca9 修改房间默认背景 2024-04-23 11:37:42 +08:00
max
fc62f8cd28 fix:修复部分手机偶现多语言切换失效问题(发现一台Vivo测试机,进入退出二级页面后,Application的Locale被重置 导致ResUtils.getString没有正确读取文本) 2024-04-22 21:13:16 +08:00
max
696dc32234 fix:调整福袋飘屏 多语言文案问题 2024-04-22 20:54:35 +08:00
max
99e85366b3 多语言适配:创建房间 2024-04-22 18:15:30 +08:00
max
70785fdf47 同步PIKO:恢复地区隔离功能 2024-04-22 17:43:02 +08:00
max
b353105ca2 多语言适配:遗漏的文案适配 2024-04-22 16:45:44 +08:00
max
62dc2e3c9d 多语言适配:修复部分多语言适配问题(私聊页、PK拒绝提示、PK搜索ID等) 2024-04-22 16:34:22 +08:00
max
9c63c56488 feat:全局性广播飘窗-增加地区隔离逻辑(只展示当前地区的飘屏) 2024-04-22 15:20:50 +08:00
max
d3b16529e1 feat:寻爱之旅玩法改版-》欢乐砸蛋 2024-04-22 15:04:09 +08:00
max
d73770cfe2 fix:文案调整(贵族->VIP) 2024-04-19 18:26:30 +08:00
max
191990426a 多语言适配:赠送礼物失败提示文案 2024-04-19 18:24:16 +08:00
max
87052c52c1 补充提交:缺少引用 2024-04-19 18:11:56 +08:00
max
568a42799d 同步PIKO:PK更新值忽略超级幸运礼物 2024-04-19 17:32:39 +08:00
max
c0663e4aa8 同步PIKO:云信消息处理增加异常捕获 2024-04-19 17:18:29 +08:00
max
a8e7634920 同步PIKO:移植超级幸运礼物 2024-04-19 17:07:06 +08:00
max
8d292ccac0 feat:福袋礼物飘屏采用新方案实现 2024-04-19 15:42:07 +08:00
max
b81f0c0808 多语言适配:PK状态背景适配 2024-04-19 14:17:38 +08:00
max
b354931ed2 多语言适配:送礼弹窗-VIP特权图标资源 2024-04-19 11:52:32 +08:00
max
f538dde6da 多语言适配:排麦弹窗操作按钮多语言大小适配 2024-04-19 11:40:09 +08:00
max
a37ff5d9b8 fix:修复相亲房bug及多语言适配 2024-04-19 11:18:55 +08:00
max
f675e3e085 RTL适配:修复PK面板背景图片适配问题 2024-04-19 10:19:26 +08:00
max
63553473bf feat:升级TRTC-SDK(11.7.0.13946) 2024-04-19 10:16:44 +08:00
max
15f8ae439b RTL适配:私聊-消息适配、全局性的布局属性替换(layout_alignParentLeft、layout_alignParentRight、layout_toLeftOf、layout_toRightOf) 2024-04-19 09:43:34 +08:00
max
f73b56726a fix:调整私聊输入框文本:局中 2024-04-18 19:07:49 +08:00
max
cbca06b03d feat:寻爱飘屏实现方案调整(改用新飘屏方案实现) 2024-04-18 18:52:19 +08:00
max
9b0168f614 功能恢复:恢复寻爱玩法 2024-04-18 18:52:18 +08:00
max
70b9e5cbdd 恢复个播房 2024-04-18 18:52:18 +08:00
max
f95f8fb0f5 房间飘屏最大展示条数改为1 2024-04-18 15:01:37 +08:00
max
8b90c472e3 fix:修复google不可用情况下 无法使用金币开通问题 2024-04-18 15:00:31 +08:00
max
c924a2b2ac fix:修复房间底部输入框入口多语言适配问题 2024-04-18 14:32:35 +08:00
max
e7d2c0cf75 同步PIKO:送礼接口修改为V5 2024-04-18 11:26:57 +08:00
max
5946726d0b fix:修复公会部分页面的多语言适配问题 2024-04-18 11:25:35 +08:00
max
ca266841ac RTL适配:VIP中心-返利图片适配 2024-04-17 18:12:38 +08:00
max
5c9ad5b2fb 文案修改:贵族 换成 VIP 2024-04-17 18:09:03 +08:00
max
68e6d2aa15 功能恢复:恢复贵族中心的帮助入口、排行榜入口、特权详情查看功能 2024-04-17 12:04:28 +08:00
max
fcecc29add 多语言适配:图片资源适配 2024-04-17 11:36:24 +08:00
max
81ba536dba fix:修复公会页操作入口多语言适配问题 2024-04-16 20:14:24 +08:00
max
3bf1af2c0b fix:修复切换语言后进房提示文案未及时更新问题 2024-04-16 20:13:59 +08:00
max
48de4c765b feat:调整进房提示文案 2024-04-16 19:47:27 +08:00
max
eb6fb9b2da fix:金币翻译调整为Coins 2024-04-16 19:39:12 +08:00
max
5cf07b86b3 RTL适配:送礼-麦位动画 2024-04-16 18:59:48 +08:00
max
0fce835c0c fix:修复房间用户弹窗操作按钮加载问题 2024-04-16 17:20:26 +08:00
max
dcbd5aae25 fix:调整送礼飘窗阿语文案 2024-04-16 16:15:20 +08:00
max
b5541afc5d RTL适配:送礼公屏 2024-04-16 16:00:51 +08:00
max
25e0c29dbc fix:修复粉丝列表按钮适配问题 2024-04-16 15:53:12 +08:00
max
46c6ee3e99 fix:修复搜索页输入框未局中问题 2024-04-16 15:37:27 +08:00
max
6277322ebe fix:礼物弹窗适配RTL:Viewpager换ViewPager2
fix:移除礼物弹窗-余额文案
2024-04-16 15:19:26 +08:00
max
a8bc86b5aa fix:调整送礼弹窗-钻石图标大小 2024-04-15 18:27:10 +08:00
max
291f85c310 同步PIKO:完成送礼可用金币+钻石功能 2024-04-15 18:23:16 +08:00
max
26ea3dbfd5 feat:完成通用飘屏公屏功能(使用新方案,同时把礼物飘窗也改用新方案实现) 2024-04-15 17:45:27 +08:00
max
14a70f29c8 fix:修复启动页多语言适配问题 2024-04-15 16:57:21 +08:00
max
96174fbfeb feat:首页房间Top榜边框资源适配多语言 2024-04-15 16:38:10 +08:00
max
492b5f7263 feat:调整礼物面包接口、去掉GiftModel构造函数请求礼物数据逻辑 2024-04-15 16:29:25 +08:00
max
408afcebcb feat:调整首页房间列表公告标题字段 2024-04-15 10:28:19 +08:00
max
18904e853e feat:logo调整、占位图调整 2024-04-12 19:19:15 +08:00
max
61ac515cf9 feat:首页房间列表UI调整 2024-04-12 19:16:49 +08:00
max
c47281401e 应用名修改:Molistar->MoliStar 2024-04-12 16:47:08 +08:00
max
58abce7456 同步PIKO:修复礼物Modle默认加载礼物列表未判断登录问题 2024-04-12 16:41:10 +08:00
max
fdd6f1836f 移植文件上传:七牛云换腾讯云 2024-04-12 16:16:37 +08:00
max
5928151853 移除星座展示 2024-04-12 11:19:24 +08:00
max
c4cc6153df RTL适配:Viewpager换为Viewpager2 2024-04-12 11:00:10 +08:00
max
ecdeee3e76 RTL适配:全局替换布局属性(layout_marginLeft->layout_marginStar、layout_marginRight->layout_marginEnd、paddingLeft->paddingStart、paddingRight->paddingEnd、drawableLeft->drawableStar、drawableRight->drawableEnd、gravityLeft->gravityStart、gravityRight->gravityEnd) 2024-04-12 09:55:20 +08:00
max
a39a11343c RTL适配:送礼弹窗、礼物飘窗 2024-04-12 09:38:43 +08:00
max
c5d0b80f1b 修改测试环境域名、云信测试环境KEY 2024-04-11 19:41:32 +08:00
max
520efa04f8 RTL适配:增加EditText全局样式适配 2024-04-11 18:56:22 +08:00
max
5b1b469316 多语言适配:添加部分多语言图片资源 2024-04-11 16:57:15 +08:00
max
7ce3990728 RTL适配:房间右侧操作面板、我的操作条目箭头 2024-04-11 16:18:39 +08:00
max
542e12a88b RTL适配:房间用户卡片底部操作按钮移动到上面的操作按钮区 2024-04-11 16:12:26 +08:00
max
7373093946 适配首页-星球动画RTL 2024-04-11 14:05:17 +08:00
max
792b140f0f fix:修复切换语言启动时未正确设置问题 2024-04-11 14:04:59 +08:00
max
c64d74aa7d fix:修复部分手机切换Application语言无效问题 2024-04-11 11:32:47 +08:00
max
73f24839d4 feat:完成 钻石金币 概念互换(文案、图标资源互换) 2024-04-10 18:38:30 +08:00
max
9a532c5c3f 删除部分目前版本不需要的图片资源 2024-04-10 11:50:31 +08:00
max
1b74aa08ce fix:修复错误引用问题 2024-04-09 15:52:17 +08:00
max
831d219f36 feat:完成切换语言功能,新增阿语(目前只适配部分) 2024-04-09 15:26:37 +08:00
max
6858130a7e 固化新增的混淆规则 2024-04-08 09:29:37 +08:00
max
db9077fbbc feat:增量混淆 2024-04-07 18:27:19 +08:00
max
e67ab3c1b3 feat:移植分享邀请功能(新增LinkActivity相关代码是为了邀请码唤起功能,之前用的MobLink方案,但目前molistar不打算接入第三方SDK) 2024-04-07 16:43:26 +08:00
max
df0b246062 feat:完成登录页UI微调整 2024-04-07 14:29:16 +08:00
max
bf133e5dc6 feat:恢复首页banner 2024-04-07 10:23:17 +08:00
max
b4f26d324c feat:增加支付场景的日志输出 2024-04-02 20:18:28 +08:00
max
4a2618a76b 调整版本号 2024-04-02 17:57:14 +08:00
max
1b56fd075b fix:贵族中心适配英文:微调部分字体大小、文案 、图标 2024-04-02 17:55:44 +08:00
max
f1586fb0ac feat:设置页条目字体大小统一 2024-04-02 17:02:47 +08:00
max
66aa5a5671 fix:修复贵族中心空指针隐患 2024-04-02 16:52:35 +08:00
max
52bfc9636b feat:移除不必要的类 2024-04-02 16:52:12 +08:00
max
7c0665b9ce feat:调整贵族中心部分翻译 2024-04-02 14:22:24 +08:00
max
ecb3c46407 feat:退出登录操作 增加退出google登录 2024-04-02 11:43:23 +08:00
max
6ce3a64ea3 fix:调整贵族中心部分翻译和文本局中对齐 2024-04-02 11:30:11 +08:00
max
408ec37ff2 fix:获取google-service做非空判断 2024-04-02 10:40:25 +08:00
max
ecdbf9e9c3 feat:地区选择添加英国、美国 2024-04-02 10:39:10 +08:00
max
d8ae8a559d feat:初步移植piko的新版贵族中心(返利+购买) 2024-04-01 19:00:26 +08:00
max
2f8511ca16 feat:添加google登录 2024-04-01 16:34:24 +08:00
max
7e6c8bc4d3 图片资源MD5修改固化 2024-04-01 11:47:11 +08:00
max
30c63dd35d 移除无用清单文件配置 2024-03-05 14:22:22 +08:00
max
40b54bdf53 补充混淆配置 2024-03-05 14:21:38 +08:00
max
7bdbae1d9e 移除测试代码 2024-03-05 00:13:24 +08:00
max
30dbebc696 移除无用资源 2024-03-05 00:13:11 +08:00
max
d3c70fa0d9 修改送全麦文案展示(国际化) 2024-03-05 00:04:31 +08:00
max
bc5a20263c 调整注册页-性别提示UI位置 2024-03-04 21:39:56 +08:00
max
2205c59d69 隐藏房间在线列表 部分标签信息 2024-03-04 21:39:50 +08:00
max
a7f8c413d6 修改创建房间图标
修改搜索列表-在直播图标
2024-03-04 21:39:32 +08:00
max
2c098a9092 去掉房间公屏-收藏房间提示 2024-03-04 21:39:21 +08:00
zu
e547fff367 最新混淆配置 2024-03-04 21:38:46 +08:00
max
b7951341b2 调整首页星球滚动速度 2024-03-04 18:30:04 +08:00
max
30d81ebbfd 调整房间公屏开关文案国际化 2024-03-04 18:29:48 +08:00
max
3cb2267032 修改贵族页背景图 2024-03-04 17:52:16 +08:00
max
85dcb4806e 去掉房间小时榜、房间排行榜、粉丝团、个播房
去掉礼物入口首充图标
去掉规则一些H5入口
去掉首页排行榜入口
2024-03-04 17:23:32 +08:00
max
40a93939ad 去掉地区检测 2024-03-04 14:41:11 +08:00
max
98b66940e5 删除部分无用工具类 2024-03-04 14:40:49 +08:00
max
7b4bb010bf 重命名加密模块相关代码 2024-03-04 14:31:55 +08:00
max
9bc58277aa feat:修改声网、云信 配置 2024-03-04 14:24:34 +08:00
max
5a69f092a2 feat:修改消息-【小秘书、工会】头像地址 2024-03-04 14:14:40 +08:00
max
1873359e36 修改域名、应用名、签名等配置 2024-03-04 11:25:20 +08:00
max
eae1539375 国际化配置修改:打包仅保留en(目前版本需求) 2024-03-01 21:15:44 +08:00
max
c49d8c0f0c feat:完成多语言(新增英文) 2024-03-01 21:10:49 +08:00
max
642b0cc1fc 删除贵族特权明细弹窗 2024-03-01 20:17:16 +08:00
max
9850069824 feat:完成首页数据交互 2024-03-01 20:14:23 +08:00
max
038aded819 feat:初步完成首页星球UI部分 2024-02-29 21:10:22 +08:00
max
bffe6916e9 删除部分代码(分享、签到等) 2024-02-29 15:42:17 +08:00
max
9bb7ee73f5 feat:完成个人主页UI改版 2024-02-29 15:21:14 +08:00
max
81769854ee 恢复误删除的房间操作弹窗入口
移除贵族特权详情描述展示
2024-02-29 10:54:08 +08:00
max
614b5ad042 feat:修改Logo
修改主题色
删除首页Tab相关无用代码
2024-02-28 18:21:45 +08:00
max
da86497b95 feat:完成首页TabBarUI改版 2024-02-28 16:52:05 +08:00
max
c37635d6d1 feat:完成首页UI改版 2024-02-28 15:48:27 +08:00
max
1a1d2cf46c feat:完成消息页UI改版(删除部分无用代码) 2024-02-28 14:44:49 +08:00
max
a686dcc19d feat:完成我的页面UI改版 2024-02-28 14:23:45 +08:00
max
1ffd596ab2 feat:完成登录、注册UI改变(删除快捷登录页面) 2024-02-28 10:56:39 +08:00
max
4c01a2eb2c 新增molistar签名文件 2024-02-27 20:58:30 +08:00
max
93ebf4f8e1 删除装扮商城和房间banner入口 2024-02-27 20:58:10 +08:00
Max
c264a25d66 删除礼物面板周星礼物提示 2024-02-27 20:19:41 +08:00
Max
44c76eb00d 删除个人资料-声音签名 2024-02-27 16:05:02 +08:00
Max
36d80dc7f0 删除个人资料-标签 2024-02-27 16:01:28 +08:00
Max
6905425adb 删除抽奖功能 2024-02-27 15:53:53 +08:00
Max
79aa0754d5 删除师徒相关 2024-02-27 15:40:40 +08:00
Max
abad8212a5 删除家族相关代码 2024-02-27 15:07:28 +08:00
Max
f4626dc8b7 删除公聊大厅相关代码 2024-02-27 14:57:51 +08:00
Max
f383b23ad9 删除支付宝&提现相关代码 2024-02-27 12:02:19 +08:00
Max
e31545ddb0 删除提现、转赠、支付密码相关 2024-02-27 11:53:27 +08:00
Max
b9d090cd25 删除首充引导相关 2024-02-27 11:11:09 +08:00
Max
c55b1ba737 补充删除夺宝相关代码 2024-02-27 10:38:57 +08:00
Max
a93f3acdc9 删除房间停留获取免费礼物相关代码 2024-02-27 10:08:45 +08:00
Max
500d5ca1a8 删除首页开启推送通知提醒功能 2024-02-27 10:05:17 +08:00
Max
fdfa571d16 删除装扮商城相关代码 2024-02-26 21:04:28 +08:00
Max
8c14c2e1ab 移除设置-检查版本功能、隐藏设置-支付密码入口 2024-02-26 20:46:53 +08:00
Max
b999193f42 删除幸运礼物顶部提示栏 2024-02-26 20:17:05 +08:00
Max
1c1eb1c959 移除发现萌新相关代码 2024-02-26 19:47:53 +08:00
Max
1b02f13ea2 移除航海冒险相关代码 2024-02-26 18:39:37 +08:00
Max
96e7b58446 删除红包相关代码 2024-02-26 18:22:46 +08:00
Max
3b3b3cea18 去掉基于渠道的判断逻辑,默认按google渠道处理 2024-02-26 17:36:42 +08:00
Max
a1144d47c8 删除社区与话题相关代码 2024-02-26 14:40:27 +08:00
Max
4bd9865ac2 chore:移除原签名包名等信息 2024-02-23 15:17:24 +08:00
Max
9f0b36b951 fix:修复房间榜单入口背景圆角大小问题 2023-12-19 15:32:29 +08:00
Max
7a4a9cf7ea feat:调整aabResGuard配置(不过滤文件) 2023-12-15 17:01:22 +08:00
Max
beb5b04ad9 feat:补充上一个节点的提交 2023-12-15 17:00:59 +08:00
Max
5a92e5c564 fix:调整RegionBean等错误包位置 2023-12-15 17:00:42 +08:00
Max
5a264ef629 feat:调整客态视角下粉丝团提醒文案 2023-12-15 15:15:49 +08:00
Max
44596de033 fix:修复选择幸运礼物后被自动重置为选中第一个的问题 2023-12-15 15:14:09 +08:00
Max
09f7c47bea feat:调低material版本为1.6.1(aab转apks失败?) 2023-12-15 14:44:31 +08:00
Max
3cf3a59a3e feat:调整个播默认背景和默认麦位头饰 2023-12-15 14:38:28 +08:00
Max
873467cbbc feat:新增个播-人气礼物 2023-12-15 14:07:20 +08:00
Max
ec0e0046bd fix:调整dialog_cp_mp.xml内实现方式,避免影响混淆 2023-12-14 19:27:26 +08:00
Max
22439f478a fix:补充公会搜索的空判断 2023-12-14 19:12:44 +08:00
Max
7e8e2d93e7 fix:修复公会搜索不出结果问题 2023-12-14 19:10:16 +08:00
Max
c89029afe8 fix:修复因隐藏小时榜导致的布局问题 2023-12-14 18:40:14 +08:00
Max
bc3555d36c fix:修复小时榜入口展示 未区分房间类型问题 2023-12-14 18:22:25 +08:00
Max
1e2e40a462 feat:完成我的页面的贵族与公会状态展示 2023-12-14 18:20:41 +08:00
Max
798949bce2 fix:调整加入工会搜索按钮样式
fix:区分个播小时榜落地页
2023-12-14 11:03:37 +08:00
Max
1324412250 feat:暂且去掉房间banner中的首充等原生入口,只展示H5资源位 2023-12-14 10:20:47 +08:00
Max
3937aac9d9 feat:恢复房间banner入口 2023-12-13 21:01:36 +08:00
Max
5d9ff675a7 feat:恢复房间小时榜、榜单(榜单入口换方案实现)
feat:调整音乐入口
2023-12-13 20:48:51 +08:00
Max
ac76027eca feat:首页开放榜单入口、banner、房间标签展示 改为读取接口 2023-12-13 17:19:40 +08:00
Max
e633943a74 同步peko:调整加入粉丝团入口UI 2023-12-13 15:41:07 +08:00
Max
873ab6071d 同步peko:修复添加管理员后管理员列表中无法正常展示昵称头像问题 2023-12-13 15:40:37 +08:00
Max
d2bf4ae00d 同步peko:修复个播小时榜飘窗无法展示问题 2023-12-13 15:39:47 +08:00
Max
9a438f1b6b 同步peko:修复升级弹窗偶发异常 2023-12-13 15:37:09 +08:00
Max
db900d6d63 同步peko:个播在麦时禁止滑动 2023-12-13 15:36:47 +08:00
Max
cc285b5832 同步peko:完成搜索结果条目信息展示调整(去掉性别,新增等级信息) 2023-12-13 15:36:14 +08:00
Max
f6c2354f4c 同步peko:完成地区选择器优化(调整地区数据、支持字母索引、有效展示当前地区) 2023-12-13 15:34:17 +08:00
Max
90a9b52551 同步peko:修复RectRoundImageView导致的图片加载问题 2023-12-13 15:16:17 +08:00
Max
ecfe005606 同步peko:声网RTC配置debug环境KEY 2023-12-13 15:14:20 +08:00
Max
c8a23a1532 同步peko:同步音萌完成个播PK屏蔽麦功能 2023-12-13 14:51:49 +08:00
Max
9ac08da9f1 同步peko:修复个播粉丝团入口展示问题(进入有密码房间时因请求时机导致未正确加载状态) 2023-12-13 14:49:51 +08:00
Max
00f025a8c5 同步peko:修复断网时被踢,重连后未退房问题 2023-12-13 14:48:18 +08:00
Max
103f6a2744 同步peko:修复公会高管设置入口展示问题 2023-12-13 14:47:27 +08:00
Max
c68c254073 同步peko:升级vasdolly版本 2023-12-13 14:46:46 +08:00
Max
609386f668 同步peko:修复粉丝团入口逻辑 2023-12-13 14:44:17 +08:00
Max
aa28ad2513 同步peko:通过时间,简单过滤多次重复401异常处理 2023-12-13 14:35:50 +08:00
zu
03a101d8f7 增加资源混淆 2023-12-12 15:41:54 +08:00
zu
ef1c12d14b 混淆脚本配置 2023-12-12 15:41:54 +08:00
zu
089249a5da 清除无用类 2023-12-12 15:41:32 +08:00
zu
07417877f7 影响打包的同名类调整 - Utils.java 2023-12-12 15:41:32 +08:00
zu
6b98da175d 影响打包的同名类调整 - BaseViewHolder.java 2023-12-12 15:41:32 +08:00
zu
0c36bfe7eb 影响打包的同名类调整 - OnItemClickListener 2023-12-12 15:41:32 +08:00
zu
16348e44d8 影响打包的同名类调整 2023-12-12 15:41:32 +08:00
zu
6c73ac79c4 清理影响打包的无用类 2023-12-12 15:41:32 +08:00
zu
9858dbb0f2 ItemEventListener独立,避免混淆干扰 2023-12-12 15:41:32 +08:00
zu
50333f5a66 xml&databind混淆后导致的一些引用错误 2023-12-12 15:41:31 +08:00
zu
64b7a0a808 io.agora.rtc2.UserInfo同类名混淆冲突调整 2023-12-12 15:41:31 +08:00
zu
3d73cae162 kotlin扩展类文件隔离,避免混淆失败 2023-12-12 15:41:31 +08:00
zu
fa33b1d53f 混淆冲突的类文件代码层处理 - ImageGestureListener 2023-12-12 15:41:31 +08:00
zu
6fc4b7528d StringUtils工具类整理 2023-12-12 15:41:31 +08:00
zu
ede0acb1de 删除无用的工具类 2023-12-12 15:41:31 +08:00
zu
93f3a6d87f SystemUtils类处理 2023-12-12 15:41:31 +08:00
zu
10f0c71ad7 library-Logger 重命名 2023-12-12 15:41:31 +08:00
zu
60ecb4f58e core-Logger 重命名 2023-12-12 15:41:31 +08:00
zu
40b4c45fcf TextUtils.java重命名 2023-12-12 15:41:31 +08:00
Max
d44a10b8dd fix:同步修复礼物飘窗按钮样式问题 2023-12-04 17:46:24 +08:00
Max
e14f76cb47 feat:修改加密方案(换so方式)
feat:调整混淆配置
feat:补充部分场景log
2023-12-04 13:34:36 +08:00
Max
62c5aa8bd8 feat:配置正式签名
feat:XChatApplication重命名为App
2023-11-30 14:30:53 +08:00
Max
7a5a706745 feat:移除房间消息快捷语 2023-11-29 22:53:18 +08:00
Max
0ce739db30 fix:调整混淆规则(core模块部分模型类被混淆问题) 2023-11-29 22:09:42 +08:00
Max
5bda23c293 feat:修改正式包名
feat:重新生成加密的第三方SDK-key(感觉没区别)
2023-11-29 20:46:12 +08:00
Max
efef976125 feat:移除全场景对充值渠道的判断:直接进内购 2023-11-29 18:28:54 +08:00
zu
615e0d7427 google_module模块从业务代码仓库移出 2023-11-29 16:38:39 +08:00
zu
6cde3bd66d feat:google隔离架构微调整,暂未移除module_google对module_base的依赖 2023-11-29 16:38:39 +08:00
Max
dcf30b9e13 feat:调整修改资料页音频背景 2023-11-29 15:33:52 +08:00
Max
f0ec5c059d feat:调整登录页背景
feat:调整进房公屏文案
2023-11-29 15:17:44 +08:00
Max
404951a428 fix:修复PK-LiveData空类型导致的异常 2023-11-29 14:50:59 +08:00
Max
129af8f574 fix:修复麦位-PK模式的UI展示问题 2023-11-29 12:41:04 +08:00
Max
4dba696ee3 feat:调整混淆配置(删减了core模块keep范围,仅keep数据模型相关类) 2023-11-29 10:35:01 +08:00
Max
2f895274eb fix:修复房间用户资料弹窗宽度问题 2023-11-28 20:21:29 +08:00
Max
339fb12490 fix:修复首页列表UI展示问题 2023-11-27 17:08:52 +08:00
Max
d9c84e1ac7 feat:升级部分SDK版本 2023-11-27 17:03:31 +08:00
Max
4c80cda20a feat:消息头像修改:小秘书、公会消息 2023-11-27 15:34:19 +08:00
Max
be14ac50e1 feas:删除个人页-动态列表 2023-11-27 14:17:01 +08:00
Max
0bd3686cd2 feat:替换项目中应用名关键字等 2023-11-27 12:02:14 +08:00
Max
568bf9b786 feat:修改启动图标 2023-11-27 11:41:30 +08:00
Max
c28ecebf71 fix:同步修复地区检测因注册完善资料流程导致的bug 2023-11-27 10:56:59 +08:00
Max
624349ea7b feat:删除无用的assets资源 2023-11-27 10:52:27 +08:00
Max
780613ee56 feat:调整负面按钮颜色、补充遗漏的场景换色 2023-11-27 10:22:45 +08:00
Max
5f2dce29e1 feat:全局替换渐变按钮为新主题色 2023-11-26 17:33:09 +08:00
Max
a51813e706 feat:修改google渠道名
feat:增加动态应用名
2023-11-26 15:43:21 +08:00
Max
9828bd433d feat:屏蔽社区 2023-11-26 15:23:23 +08:00
Max
ced0ceb6e3 feat:修改房间默认背景图 2023-11-26 12:39:55 +08:00
Max
729a73ef54 feat:屏蔽部分协议入口 2023-11-26 12:18:57 +08:00
Max
066bcde63c feat:删除Appsflyer-SDK、删除SUD-SDK 2023-11-26 12:14:06 +08:00
Max
f430241d9f feat:屏蔽房间入口 2023-11-26 12:04:10 +08:00
Max
7fc1285ad7 feat:删除游戏房 2023-11-26 12:01:24 +08:00
Max
892ac6b8f9 feat:去掉收益记录-明细入口 2023-11-26 11:54:30 +08:00
Max
897c4ce34d feat:删除房间banner(把刚刚注释代码的也删了) 2023-11-26 11:49:23 +08:00
Max
2e6d3502ea feat:移除房间榜、小时榜相关入口代码 2023-11-26 11:40:33 +08:00
Max
84b6a40e93 feat:删除房间寻爱、夺宝相关代码 2023-11-26 11:25:48 +08:00
Max
c311ab96ac feat:移除第三方SDK相关配置 2023-11-26 10:39:54 +08:00
Max
a274271dd8 feat:完成房间UI改版 2023-11-25 20:09:37 +08:00
Max
fefcc5260a feat:完成房间标题栏目 2023-11-25 18:39:35 +08:00
Max
99451e9bc4 feat:完成首页Tab、默认图、启动页 UI改版 2023-11-25 17:36:41 +08:00
Max
c4631f2143 feat:完成装扮商城UI改版 2023-11-25 15:27:33 +08:00
Max
75d662204a feat:完成充值页UI改版 2023-11-25 15:08:01 +08:00
Max
1fc37eb85d feat:完成用户主页UI改版 2023-11-25 13:34:48 +08:00
Max
bc3097f412 feat:完成我的页面UI改版 2023-11-24 21:13:57 +08:00
Max
4f24fed67f feat:完成消息页UI改版 2023-11-24 19:04:41 +08:00
Max
e1b7a5464d feat:完成首页UI改动 2023-11-24 16:51:34 +08:00
Max
f5ba7b3f22 feat:完成完善资料页UI调整 2023-11-24 14:45:22 +08:00
Max
81da986e04 feat:完成登录页UI改动 2023-11-24 12:36:20 +08:00
Max
85dff2ac90 feat:修改接口地址 2023-11-24 10:18:35 +08:00
Max
7b773d0558 feat:调整部分模块包目录 2023-11-23 21:18:49 +08:00
Max
46ba8d2db3 feat:移动crop模块位置 2023-11-23 20:52:35 +08:00
Max
5d54acd01d feat:调整com.soundcloud.android目录名 2023-11-23 20:47:04 +08:00
Max
c7ff6f0524 feat:删除无关紧要的代码 2023-11-23 18:44:33 +08:00
Max
45ab9ac463 feat:移除Mob-SDK(分享|link) 2023-11-23 18:31:35 +08:00
Max
5287533ee8 feat:新增隔离模式配置 2023-11-23 17:08:19 +08:00
Max
9cacea3ef4 feat:升级Room版本 2023-11-23 16:53:56 +08:00
Max
c4eacb63d9 feat:简单完成包目录名修改(待测试) 2023-11-23 11:15:00 +08:00
Max
157d71edcd feat:随便修改包名/签名,准备换目录名 2023-11-23 10:52:28 +08:00
Max
95ab273750 feat:移除stetho 2023-11-23 10:41:06 +08:00
Max
a7ba26a85b feat:初步搭建google隔离架构 2023-11-22 21:35:05 +08:00
8754 changed files with 136165 additions and 165897 deletions

Binary file not shown.

View File

@@ -1,34 +0,0 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
android {
compileSdkVersion COMPILE_SDK_VERSION.toInteger()
defaultConfig {
minSdkVersion MIN_SDK_VERSION.toInteger()
targetSdkVersion TARGET_SDK_VERSION.toInteger()
testApplicationId 'com.soundcloud.android.crop.test'
testInstrumentationRunner 'android.test.InstrumentationTestRunner'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildToolsVersion = '30.0.3'
}
dependencies {
api 'androidx.annotation:annotation:1.4.0'
api 'androidx.legacy:legacy-support-v4:1.0.0'
implementation "androidx.core:core-ktx:1.7.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
}
repositories {
mavenCentral()
}

View File

@@ -1 +0,0 @@
<manifest package="com.soundcloud.android.crop" />

View File

@@ -1,48 +0,0 @@
package com.soundcloud.android.crop;
import android.content.Context;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import java.io.File;
public class UriUtil {
public final static String getFileProviderName(Context context){
return context.getPackageName()+".fileprovider";
}
/**
* 将TakePhoto 提供的Uri 解析出文件绝对路径
*
* @param uri
* @return
*/
public static String parseOwnUri(Context context, Uri uri) {
if (uri == null) return null;
String path;
if (TextUtils.equals(uri.getAuthority(), getFileProviderName(context))) {
String target_text_camera_photos = "camera_photos/";
if (uri.getPath() != null && uri.getPath().contains(target_text_camera_photos)) {
path = new File(uri.getPath().replace(target_text_camera_photos, ""))
.getAbsolutePath();
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
path = new File(Environment.getExternalStorageDirectory(),
uri.getPath())
.getAbsolutePath();
} else {
path = uri.getPath();
}
}
} else {
path = uri.getPath();
}
return path;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 B

View File

@@ -1,10 +0,0 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="crop__saving">正在儲存相片…</string>
<string name="crop__wait">請稍候…</string>
<string name="crop__pick_error">沒有可用的圖片來源</string>
<string name="crop__done">完成</string>
<string name="crop__cancel" tools:ignore="ButtonCase">取消</string>
</resources>

View File

@@ -1,44 +0,0 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Crop"></style>
<style name="Crop.DoneCancelBar">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/crop__bar_height</item>
<item name="android:orientation">horizontal</item>
<item name="android:divider">@drawable/crop__divider</item>
<item name="android:showDividers" tools:ignore="NewApi">middle</item>
<item name="android:dividerPadding" tools:ignore="NewApi">12dp</item>
<item name="android:background">@color/crop__button_bar</item>
</style>
<style name="Crop.ActionButton">
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_weight">1</item>
<item name="android:background">@drawable/crop__selectable_background</item>
</style>
<style name="Crop.ActionButtonText">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center</item>
<item name="android:gravity">center_vertical</item>
<item name="android:paddingRight">20dp</item> <!-- Offsets left drawable -->
<item name="android:drawablePadding">8dp</item>
<item name="android:textColor">@color/crop__button_text</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">13sp</item>
</style>
<style name="Crop.ActionButtonText.Done">
<item name="android:drawableLeft">@drawable/crop__ic_done</item>
<item name="android:text">@string/crop__done</item>
</style>
<style name="Crop.ActionButtonText.Cancel">
<item name="android:drawableLeft">@drawable/crop__ic_cancel</item>
<item name="android:text">@string/crop__cancel</item>
</style>
</resources>

View File

View File

@@ -1,28 +1,31 @@
apply plugin: 'com.android.application'
//apply plugin: 'com.google.gms.google-services'
//apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'kotlin-android'
apply plugin: 'com.tencent.vasdolly'
apply from: '../mob.gradle'
apply from: '../project.gradle'
def onlyArm64 = Boolean.parseBoolean(only_arm64)
apply plugin: "com.bytedance.android.aabResGuard"
apply plugin: "xml-class-guard"
android {
compileSdkVersion COMPILE_SDK_VERSION.toInteger()
defaultConfig {
applicationId "com.vele.habuplay"
applicationId isolationMode ? 'com.e.oos' : 'com.hhchu.molistar'
minSdkVersion MIN_SDK_VERSION.toInteger()
targetSdkVersion TARGET_SDK_VERSION.toInteger()
versionCode Integer.valueOf(version_code)
versionName version_name
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
flavorDimensions 'default'
// manifestPlaceholders = [CRASHLYTICS_COLLECTION_ENABLED: CRASHLYTICS_COLLECTION_ENABLED.toBoolean()]
buildConfigField "boolean", "ISOLATION_MODE", "$isolationMode"
resConfigs "en", "zh-rTW", "ar"
if (isolationMode) {
resValue "string", "app_launch_name", "Mo-debug"
} else {
resValue "string", "app_launch_name", "MoliStar"
}
}
splits {
@@ -60,7 +63,7 @@ android {
if (abi == null) {
abi = "universal"
}
outputFileName = "habu_${buildType.name}_v${defaultConfig.versionName}_${abi}_${date}.apk"
outputFileName = "MoliStar_${buildType.name}_v${defaultConfig.versionName}_${abi}_${date}.apk"
}
}
@@ -80,24 +83,23 @@ android {
signingConfigs {
v2 {
storeFile file('../ananplay.jks')
storePassword "vele2021"
keyAlias "ananplay"
keyPassword "vele2021"
debug {
storeFile file('../molistar_debug.jks')
storePassword "molistar"
keyAlias "molistar"
keyPassword "molistar"
v2SigningEnabled true
v1SigningEnabled true
}
v1 {
storeFile file('../ananplay.jks')
storePassword "vele2021"
keyAlias "ananplay"
keyPassword "vele2021"
v2SigningEnabled false
release {
storeFile file('../molistar.jks')
storePassword "molistar"
keyAlias "molistar"
keyPassword "molistar"
v2SigningEnabled true
v1SigningEnabled true
}
}
sourceSets {
@@ -105,40 +107,32 @@ android {
main {
java.srcDirs = [
'src/main/java',
'src/module_public_chat_hall/java',
'src/module_upgrade_app/java',
'src/module_mentoring_relationship/java',
'src/module_labour_union/java',
'src/module_room_chat/java',
'src/model_customer_server/java',
'src/module_music/java',
'src/module_mini_world/java',
'src/module_lottery_dialog/java',
'src/module_bank_card/java',
'src/module_super_admin/java',
'src/module_treasure_box/java',
'src/module_community/java',
'src/module_album/java',
'src/module_treasure_box/java',
'src/module_public_chat/java',
'src/module_game/java',
]
res.srcDirs = [
'src/main/res',
'src/common/res',
'src/module_public_chat_hall/res',
'src/module_upgrade_app/res',
'src/module_mentoring_relationship/res',
'src/module_labour_union/res',
'src/module_room_chat/res',
'src/model_customer_server/res',
'src/module_music/res',
'src/module_mini_world/res',
'src/module_lottery_dialog/res',
'src/module_bank_card/res',
'src/module_super_admin/res',
'src/module_treasure_box/res',
'src/module_community/res',
'src/module_album/res',
'src/module_treasure_box/res',
'src/module_public_chat/res',
'src/module_game/res',
]
@@ -147,15 +141,12 @@ android {
}
buildTypes {
def server_url_debug = '"http://beta.api.pekolive.com/"'
def server_url_release = '"https://api.anan.chat/"'
def server_url_debug = '"http://beta.api.molistar.xyz/"'
def server_url_release = '"https://api.molistar.xyz/"'
debug {
println("minifyEnabled = " + minify_enabled)
// ext.enableCrashlytics = false
// ext.alwaysUpdateBuildId = false // Firebase Crashlytics禁用更新构建ID
buildConfigField "String", "BASE_URL", server_url_debug
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
buildConfigField "String", "BASE_URL_STAGING", "BASE_URL"
@@ -163,7 +154,7 @@ android {
minifyEnabled minify_enabled.toBoolean() // 是否混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
crunchPngs false // 停用 PNG 压缩
signingConfig signingConfigs.v2
signingConfig isolationMode ? signingConfigs.debug : signingConfigs.release
gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("Test") || task.name.contains("Lint")) {
@@ -176,10 +167,6 @@ android {
release {
ext.enableCrashlytics = CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
ext.alwaysUpdateBuildId = CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
// firebaseCrashlytics {
// //Firebase Crashlytics控制上传混淆文件开关
// mappingFileUploadEnabled CRASHLYTICS_COLLECTION_ENABLED.toBoolean()
// }
buildConfigField "String", "BASE_URL", server_url_release
buildConfigField "String", "BASE_URL_DEBUG", "BASE_URL"
@@ -189,7 +176,7 @@ android {
shrinkResources true // 开了混淆的时候才能开启 是否去除无效的资源文件
zipAlignEnabled true // 开了混淆的时候才能开启 是否进行压缩并重排列
crunchPngs true // 启用 PNG 压缩
signingConfig signingConfigs.v2
signingConfig isolationMode ? signingConfigs.debug : signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
@@ -212,14 +199,8 @@ def Lombok = "1.18.24"
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation fileTree(dir: 'aliyun-libs', include: ['*.jar', '*.aar'])
implementation 'androidx.appcompat:appcompat:1.4.2'
implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
api 'androidx.multidex:multidex:2.0.1'
@@ -239,9 +220,8 @@ dependencies {
api "com.github.zyyoona7:EasyPopup:1.0.2"
api "com.github.donkingliang:LabelsView:1.6.5"
api "com.github.yyued:SVGAPlayer-Android:2.6.1"
implementation "com.orhanobut:logger:2.2.0"
api "com.ms-square:expandableTextView:0.1.4"
annotationProcessor 'androidx.annotation:annotation:1.4.0'
annotationProcessor 'androidx.annotation:annotation:1.6.0'
implementation 'io.github.h07000223:flycoTabLayout:3.0.0'
@@ -262,7 +242,7 @@ dependencies {
//数字滚动效果
implementation 'com.github.YvesCheung:RollingText:1.2.3'
// 引入原有第三方裁图源码,方便修改
api project(':android_crop_lib')
api project(':libs:lib_crop')
//rx权限请求框架
implementation('com.github.tbruyelle:rxpermissions:0.10.2') {
@@ -275,26 +255,13 @@ dependencies {
implementation 'com.github.fodroid:XRadioGroup:v1.5'
api 'com.tencent.vasdolly:helper:3.0.3'
api 'com.tencent.vasdolly:helper:3.0.6'
implementation "io.github.tencent:vap:2.0.24"
implementation 'com.github.mmin18:realtimeblurview:1.2.1'
implementation 'com.appsflyer:af-android-sdk:6.8.2'
implementation 'com.github.zhpanvip:BannerViewPager:3.5.6'
//fireBase
// implementation platform('com.google.firebase:firebase-bom:31.1.1')
// implementation 'com.google.firebase:firebase-crashlytics-ktx'
// implementation 'com.google.firebase:firebase-analytics-ktx'
//Adjust接入
// implementation 'com.adjust.sdk:adjust-android:4.33.0'
// implementation 'com.android.installreferrer:installreferrer:2.2'
// Add the following if you are using the Adjust SDK inside web views on your app
// implementation 'com.adjust.sdk:adjust-android-webbridge:4.33.0'
implementation 'com.github.yalantis:ucrop:2.2.7'
implementation 'com.github.lihangleo2:ShadowLayout:3.3.2'
@@ -302,15 +269,18 @@ dependencies {
//wheelView
implementation 'com.contrarywind:wheelview:4.1.0'
implementation 'tech.sud.mgp:SudMGP-static:1.3.3.1158'
implementation project(':modules:module_base')
if (!isolationMode && file("../modules/module_google/build.gradle").exists()) {
implementation project(':modules:module_google')
}
}
channel {
//多渠道包的输出目录默认为new File(project.buildDir,"channel")
outputDir = new File(project.buildDir, "channelapk")
//多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}-${buildTime}
def only64 = onlyArm64 ? "-only64" : ""
apkNameFormat = 'habu-${buildType}only64-${flavorName}-v${versionName}-${buildTime}'.replace("only64", only64)
apkNameFormat = 'MoliStar-${buildType}-${flavorName}-v${versionName}-${buildTime}'
//快速模式生成渠道包时不进行校验速度可以提升10倍以上默认为false
fastMode = false
//buildTime的时间格式默认格式yyyyMMdd-HHmmss
@@ -318,3 +288,733 @@ channel {
//低内存模式仅针对V2签名默认为false只把签名块、中央目录和EOCD读取到内存不把最大头的内容块读取到内存在手机上合成APK时可以使用该模式
lowMemory = false
}
aabResGuard {
mappingFile = file("aab-res-guard-mapping.txt").toPath() // Mapping file used for incremental obfuscation
whiteList = [ // White list rules
"*.R.raw.*",
"*.R.drawable.icon",
// SUD游戏-start
"*.R.drawable.fsm_*",
"*.R.string.fsm_*",
"*.R.layout.fsm_*",
"*.R.color.fsm_*",
"*.R.id.fsm_*",
"*.R.style.fsm_*",
"*.R.dimen.fsm_*",
"*.R.array.fsm_*",
"*.R.integer.fsm_*",
"*.R.bool.fsm_*",
"*.R.mipmap.fsm_*",
"*.R.styleable.fsm_*",
"*.R.id.*loading*",
"*.R.id.container_progress",
"*.R.id.reload_btn",
"*.R.id.unitySurfaceView",
"*.R.string.game_view_content_description"
// SUD游戏-end
]
obfuscatedBundleFileName = "MoliStar-app.aab" // Obfuscated file name, must end with '.aab'
mergeDuplicatedRes = true // Whether to allow the merge of duplicate resources
enableFilterFiles = false // Whether to allow filter files
filterList = [ // file filter rules
// "*/arm64-v8a/*",
// "META-INF/*"
]
enableFilterStrings = false // switch of filter strings
unusedStringPath = file("unused.txt").toPath() // strings will be filtered in this file
languageWhiteList = ["en", "zh", "ar", "zh-rTW"] // keep en,en-xx,zh,zh-xx etc. remove others.
}
//以下均为非必须
xmlClassGuard {
findAabConstraintReferencedIds = true
//用于增量混淆的 mapping 文件
mappingFile = file("xml-class-mapping.txt")
//更改manifest文件的package属性即包名
packageChange = ["com.chwl.app": "com.hhchu.molistar",
"com.chwl.core": "com.hhchu.core",
"com.chwl.library": "com.hhchu.library"]
moveDir = [
"com.chwl.app.avroom.headline" : "eefce.eecad",
"com.chwl.core.bean.game" : "caeccd.fdedac",
"com.chwl.core.bean.room" : "afceec.aaafbc",
"com.chwl.app.game" : "fcbfeb.ebfceac",
"com.chwl.core.sud" : "baecf.deccfc",
"com.chwl.library.download" : "aeacf.cecdd",
"com.chwl.app.pay.activity" : "abbe.faaca",
"com.chwl.app.pay.adapter" : "daddd.dcadd",
"com.chwl.app.pay.fragment" : "fceff.acfcf",
"com.chwl.app.pay.interfaces" : "eaadf.dbeecd",
"com.chwl.app.pay.password" : "ebcfe.adfea",
"com.chwl.app.pay.widget" : "fbfb.caeb",
"com.chwl.app.avroom.online" : "bfbdecb.fafffbbc",
"com.chwl.app.avroom.game" : "bbecfa.babcfd",
"com.chwl.app.ui.webview.baishun" : "caebbec.bfcfbdf",
"com.chwl.core.public_chat_hall.model" : "aada.dceaa",
"com.chwl.app.avroom.rank" : "edadcb.beeaca",
"com.chwl.app.fansteam" : "eabdedaed.cfeadaacfe",
"com.chwl.core.fansteam" : "adbfd.adeecd",
"com.chwl.app.public_chat.core.viewholder" : "fffa.accee",
"com.chwl.app.public_chat.core" : "fcbdcbf.afaafbac",
"com.chwl.app.public_chat.ui.message.headline" : "dfcfcad.cbcfdcf",
"com.chwl.app.public_chat.ui.message" : "afdf.affbd",
"com.chwl.library.language" : "faceb.abded",
"com.chwl.app.ui.invite" : "cfdd.baac",
"com.chwl.app.ui.link" : "fdb.ddbd",
"com.chwl.app.ui.language" : "cffafe.edafba",
"com.chwl.core.file.cos" : "cccdbdcce.eccffeccb",
"com.chwl.app.notify.views" : "fbbdbcaa.dbfaeadb",
"com.chwl.app.notify" : "eaafaa.edeeef",
"com.chwl.app.support.float" : "eadbfff.eccceee",
"com.chwl.app.avroom.gameplay" : "dfcf.dbdcb",
"com.chwl.app.treasure_box.activity" : "fdbac.cdfab",
"com.chwl.app.treasure_box.adapter" : "febab.bdfcb",
"com.chwl.app.treasure_box.fragment" : "ecbbc.baaada",
"com.chwl.app.treasure_box.module" : "aecae.aeacf",
"com.chwl.app.treasure_box.presenter" : "ddaaee.bacbdcb",
"com.chwl.app.treasure_box.widget" : "bedacc.bbbceb",
"com.chwl.app.treasure_box" : "afccebdddd.ecdedbfcea",
"com.chwl.core.treasure_box.bean" : "eeaaaa.bbedeee",
"com.chwl.core.treasure_box.event" : "dfbfa.edacdb",
"com.chwl.core.treasure_box.model" : "abdf.ebeab",
"com.example.lib_utils.spannable" : "babdfb.baacfc",
"com.example.lib_utils.log" : "cade.bebee",
"com.example.lib_utils.ktx" : "aedbdf.cbfffd",
"com.example.lib_utils" : "edadfda.cbddcda",
"com.soundcloud.crop" : "eccbecc.eefdcbdd",
"com.example.lib_core.component" : "cebecef.abcfbdda",
"com.example.lib_core" : "ffedce.affffdf",
"com.chwl.library.luban" : "cdbffbd.eadcbca",
"com.chwl.library.easyphoto.utils.uri" : "dbbffdafc.aaadcdfcca",
"com.chwl.library.easyphoto.utils.system" : "adb.ffd",
"com.chwl.library.easyphoto.utils.string" : "bebbc.efcaca",
"com.chwl.library.easyphoto.utils.settings" : "defee.eaccbb",
"com.chwl.library.easyphoto.utils.result" : "eecdc.cddbfa",
"com.chwl.library.easyphoto.utils.permission" : "fea.fcef",
"com.chwl.library.easyphoto.utils.media" : "ddddcde.bfececea",
"com.chwl.library.easyphoto.utils.color" : "ddc.cacb",
"com.chwl.library.easyphoto.utils.bitmap" : "fadfc.bcaac",
"com.chwl.library.easyphoto.ui.widget" : "bfafdb.ffeeadd",
"com.chwl.library.easyphoto.ui.dialog" : "fbaaaf.cdadedd",
"com.chwl.library.easyphoto.ui.adapter" : "fcada.cbadea",
"com.chwl.library.easyphoto.ui" : "beefbfb.bffbefaf",
"com.chwl.library.easyphoto.setting" : "edfd.dbfda",
"com.chwl.library.easyphoto.result" : "fddd.dbae",
"com.chwl.library.easyphoto.models.sticker.view" : "bacccfc.abbadfec",
"com.chwl.library.easyphoto.models.sticker.listener" : "edecfbdbb.fbdcbfaaed",
"com.chwl.library.easyphoto.models.sticker.entity" : "bbfeef.fdaefba",
"com.chwl.library.easyphoto.models.sticker.cache" : "cfeefddf.daadadef",
"com.chwl.library.easyphoto.models.sticker" : "eadfab.aaffafa",
"com.chwl.library.easyphoto.models.puzzle.template.straight" : "cbbfdd.fdbaab",
"com.chwl.library.easyphoto.models.puzzle.template.slant" : "fcffbcef.cbefeefa",
"com.chwl.library.easyphoto.models.puzzle.straight" : "bbacbff.ecbddeb",
"com.chwl.library.easyphoto.models.puzzle.slant" : "ebbbf.bfcbc",
"com.chwl.library.easyphoto.models.puzzle" : "afbfbfd.dffbcec",
"com.chwl.library.easyphoto.models.album.entity" : "baf.edaf",
"com.chwl.library.easyphoto.models.album" : "daddbf.cebdcdd",
"com.chwl.library.easyphoto.models.ad" : "adecece.cdedecc",
"com.chwl.library.easyphoto.engine" : "ecadb.effbcc",
"com.chwl.library.easyphoto.constant" : "abcfbde.cefbdbb",
"com.chwl.library.easyphoto.callback" : "acbfefebc.aefecbfea",
"com.chwl.library.easyphoto.builder" : "cccbcd.fabeea",
"com.chwl.library.easyphoto" : "cebee.abfded",
"com.chwl.library.easypermisssion.helper" : "dcbcfd.abebba",
"com.chwl.library.easypermisssion" : "fdecdffb.cbddcdadd",
"com.chwl.library.common.widget" : "dbcccf.adbaeab",
"com.chwl.library.common.util" : "abadefdd.bbdedefbe",
"com.chwl.library.common.transform" : "ddecee.dbeafe",
"com.chwl.library.common.photo" : "bdbbad.cbbefbe",
"com.chwl.library.common.glide" : "faacc.afcba",
"com.chwl.library.common.fragmentation.windowcallback" : "bafbddf.cdcdbdb",
"com.chwl.library.common.fragmentation.queue" : "ffceba.caedfea",
"com.chwl.library.common.fragmentation.internal" : "fcfc.dceae",
"com.chwl.library.common.fragmentation" : "cafcfb.febddef",
"com.chwl.library.common.file" : "cdcdeb.ccfddae",
"com.chwl.library.common.entity" : "acdb.aacb",
"com.chwl.library.common.delegate" : "cbdf.beed",
"com.chwl.library.common.base" : "daebfd.bfaada",
"com.chwl.library.common.application" : "afdbd.ffcebb",
"com.chwl.library.common" : "fede.deddf",
"com.chwl.library.widget.xlist" : "ccbecd.ffdfcdb",
"com.chwl.library.widget.decoration" : "dacceb.bcfbca",
"com.chwl.library.widget" : "eacad.fcafd",
"com.chwl.library.utils.valid" : "eccee.fdbec",
"com.chwl.library.utils.pref" : "aaebaf.edefdcf",
"com.chwl.library.utils.net" : "aadbf.cfabd",
"com.chwl.library.utils.log" : "cdefbea.aedfceec",
"com.chwl.library.utils.keyboard" : "acbbf.ecdbcf",
"com.chwl.library.utils.json" : "cad.dcad",
"com.chwl.library.utils.image" : "ccdabf.fefcfbc",
"com.chwl.library.utils.file" : "cfe.bbdd",
"com.chwl.library.utils.constant" : "fcde.abaf",
"com.chwl.library.utils.config" : "edaaebed.afbeccda",
"com.chwl.library.utils.codec" : "ffbedacf.cadbdefa",
"com.chwl.library.utils.cache" : "beaeed.adcfbd",
"com.chwl.library.utils.asynctask" : "dacf.bbfea",
"com.chwl.library.utils.anim" : "dbcbbd.cbccefa",
"com.chwl.library.utils" : "fdeaee.fddfeca",
"com.chwl.library.threadmgr" : "eddebea.dcbdfbf",
"com.chwl.library.swipeactivity" : "eaacbeb.fddeacad",
"com.chwl.library.softinput" : "ecefea.cfddea",
"com.chwl.library.service" : "efdcc.dfcbe",
"com.chwl.library.rxbus" : "aefdcd.dbadbed",
"com.chwl.library.rx" : "eab.bee",
"com.chwl.library.record" : "dafcbfe.afcdffa",
"com.chwl.library.net.rxnet.utils" : "acfbbb.ceeeab",
"com.chwl.library.net.rxnet.model" : "cefdcae.ecabacf",
"com.chwl.library.net.rxnet.manager" : "fdccbc.fbdadfe",
"com.chwl.library.net.rxnet.interceptor" : "fcce.cbdf",
"com.chwl.library.net.rxnet.https" : "dcdca.eafdc",
"com.chwl.library.net.rxnet.factory" : "afbebbbdb.eafdafcbb",
"com.chwl.library.net.rxnet.exception" : "eeeab.bebfa",
"com.chwl.library.net.rxnet.converter" : "baaccbeb.efccaccde",
"com.chwl.library.net.rxnet.callback" : "dfad.eccaf",
"com.chwl.library.net.rxnet" : "facdef.bbedadd",
"com.chwl.library.manager" : "cbaf.aadf",
"com.chwl.library.list" : "bddaaa.ffeead",
"com.chwl.library.coremanager" : "aadcbecd.fedbababd",
"com.chwl.library.bindinglist" : "afabdcf.feacfbfb",
"com.chwl.library.base.factory" : "ddbfbdf.acbaddc",
"com.chwl.library.base" : "bfba.fcbd",
"com.chwl.library.annatation" : "bcfcaaa.cefecab",
"com.chwl.library.animator" : "acbc.afcdd",
"com.chwl.library.adapters" : "caffe.edbbcd",
"com.chwl.core.upgrade.model" : "cad.abdd",
"com.chwl.core.upgrade.event" : "fffdf.aaaccc",
"com.chwl.core.upgrade.bean" : "aea.baaf",
"com.chwl.core.super_admin.util" : "cacffea.cbcafbe",
"com.chwl.core.super_admin.model.exception" : "cabed.eeaede",
"com.chwl.core.super_admin.model" : "bdbd.affda",
"com.chwl.core.super_admin.bean" : "ddfb.edcab",
"com.chwl.core.super_admin.attachment" : "bfeea.cbedcb",
"com.chwl.core.super_admin" : "cddaaf.ddabfc",
"com.chwl.core.code" : "aeabedb.eebbdcaa",
"com.chwl.core.public_chat_hall.manager" : "cefdad.fefbeef",
"com.chwl.core.public_chat_hall.event" : "ccff.dfccf",
"com.chwl.core.public_chat_hall.bean" : "aeaaa.dedad",
"com.chwl.core.public_chat_hall.attachment" : "fedd.fadb",
"com.chwl.core.music.view" : "dafddd.eecfdad",
"com.chwl.core.music.model" : "ecabcfecb.bafeafaeb",
"com.chwl.core.music.event" : "dbbfcd.fcacbed",
"com.chwl.core.music.db.model" : "dcaac.ddecf",
"com.chwl.core.music.db.dao" : "fafafcea.fbfbbfda",
"com.chwl.core.music.db.converter" : "baf.fac",
"com.chwl.core.music.db.bean" : "acbfad.dcbefe",
"com.chwl.core.music.bean" : "deafc.bebac",
"com.chwl.core.miniworld.model" : "cdcbc.cfbbc",
"com.chwl.core.miniworld.event" : "babacc.becdde",
"com.chwl.core.miniworld.bean" : "ffbe.bdac",
"com.chwl.core.mentoring_relationship.view" : "aadffbfa.fedbaace",
"com.chwl.core.mentoring_relationship.model" : "dfdeb.baabec",
"com.chwl.core.mentoring_relationship.exception" : "beebbbe.debeffc",
"com.chwl.core.mentoring_relationship.event" : "fcaceace.afcfdceb",
"com.chwl.core.mentoring_relationship.bean" : "eaedcce.eebdfabf",
"com.chwl.core.mentoring_relationship.attachment" : "faebfdc.bcbbbbfc",
"com.chwl.core.module_hall.team.event" : "ebfdfe.fcefebd",
"com.chwl.core.module_hall.team.bean" : "edcbb.bcfca",
"com.chwl.core.module_hall.team" : "bbeafe.ffebdfa",
"com.chwl.core.module_hall.secretcode.bean" : "ffdab.eabbd",
"com.chwl.core.module_hall.secretcode" : "eedbec.ffbcbed",
"com.chwl.core.module_hall.income.event" : "bdecee.edfdbad",
"com.chwl.core.module_hall.income.bean" : "fcfc.debbb",
"com.chwl.core.module_hall.income" : "afdaaf.afcbfd",
"com.chwl.core.module_hall.im.bean" : "bfbcaedcbf.fddedfaafe",
"com.chwl.core.module_hall.im" : "fabf.dada",
"com.chwl.core.module_hall.hall.event" : "fdcc.edcba",
"com.chwl.core.module_hall.hall.bean" : "eacfafb.adbcafda",
"com.chwl.core.module_hall.hall" : "bfdade.fbabba",
"com.chwl.core.db" : "dccfb.bfeca",
"com.chwl.core.community.square" : "fbacff.ebfcca",
"com.chwl.core.community.im" : "ddfc.bbcdb",
"com.chwl.core.community.event" : "baaeac.edbfbcd",
"com.chwl.core.community.dynamic" : "abdce.bdebca",
"com.chwl.core.community.bean.comment" : "aedfcaaf.cdfbbcce",
"com.chwl.core.community.bean" : "bbcf.abac",
"com.chwl.core.community.attachment" : "ceebd.fefcbb",
"com.chwl.core.community" : "fcefbba.abbefae",
"com.chwl.core.channel_page.model" : "eed.bae",
"com.chwl.core.channel_page.bean" : "edfea.cddcb",
"com.chwl.core.bank_card.view" : "fbefdfd.fecfadeb",
"com.chwl.core.bank_card.model" : "afdeac.aecbbce",
"com.chwl.core.bank_card.exception" : "dccfcc.cbdaacd",
"com.chwl.core.bank_card.bean" : "ccaad.bddfa",
"com.chwl.core.withdraw.bean" : "aaffcba.daeefdac",
"com.chwl.core.web.event" : "ecefca.fecfafc",
"com.chwl.core.web.bean" : "cbcdae.acdabfe",
"com.chwl.core.vip.bean" : "eedbaeb.defbdfae",
"com.chwl.core.vip" : "bfcdb.eeabef",
"com.chwl.core.utils.net" : "dadebe.fbcfaa",
"com.chwl.core.utils.extension" : "aeef.afaa",
"com.chwl.core.utils" : "eafcbdd.abaeccf",
"com.chwl.core.user.event" : "ffbae.efabfb",
"com.chwl.core.user.bean" : "cfeddda.aafffbc",
"com.chwl.core.user" : "afacaed.bbaefab",
"com.chwl.core.treasurefairy.bean" : "eaffcdbc.daeffdba",
"com.chwl.core.treasurefairy" : "bcdefdc.efbefada",
"com.chwl.core.team.model" : "eefedae.dfccaca",
"com.chwl.core.team.bean" : "bfbdcd.fafefd",
"com.chwl.core.support.room.lifecycle.rx" : "defdaecac.ccedeecec",
"com.chwl.core.support.room.lifecycle" : "afcfafa.dffefaa",
"com.chwl.core.support.room" : "ddaddaf.fccabdf",
"com.chwl.core.support.config" : "cfacaac.feafadc",
"com.chwl.core.statistic.protocol" : "ccefcc.aecaac",
"com.chwl.core.statistic" : "dbdef.bfdea",
"com.chwl.core.sound.model" : "beffe.abfeac",
"com.chwl.core.skill.event" : "edaba.ddedb",
"com.chwl.core.skill.entity" : "bacfcf.dddbef",
"com.chwl.core.share.bean" : "aceac.ecabfe",
"com.chwl.core.settings.bean" : "cdccdab.ebdbacb",
"com.chwl.core.settings" : "adcfbfced.fadbfddca",
"com.chwl.core.set.model" : "efcb.ccac",
"com.chwl.core.set.bean" : "bababbc.cecaffca",
"com.chwl.core.room.treasure_box.event" : "fdccbea.eacbffe",
"com.chwl.core.room.treasure_box.bean" : "edbce.fdbbbc",
"com.chwl.core.room.recommendpos.bean" : "dfaabac.aabbefcc",
"com.chwl.core.room.recommendpos" : "ffbadbcda.dfdcbffdf",
"com.chwl.core.room.queuing_mic.event" : "abfbcbe.bceaabda",
"com.chwl.core.room.queuing_mic.bean" : "edccdc.abfbfcc",
"com.chwl.core.room.queuing_mic.attachment" : "eabbdce.ecdbefc",
"com.chwl.core.room.queue.bean" : "eebfd.aaccca",
"com.chwl.core.room.pk.model" : "acefeab.bddecfb",
"com.chwl.core.room.pk.event" : "fbbefcc.efafcfb",
"com.chwl.core.room.pk.bean.response" : "ecaed.eebace",
"com.chwl.core.room.pk.bean.request" : "cfeee.cdeea",
"com.chwl.core.room.pk.bean" : "afb.eaca",
"com.chwl.core.room.pk.attachment" : "cdd.cfde",
"com.chwl.core.room.model.inteface" : "bfcaceb.eaaeaae",
"com.chwl.core.room.model" : "bdefe.abaefa",
"com.chwl.core.room.giftvalue.helper" : "ffaaa.aceba",
"com.chwl.core.room.giftvalue.bean" : "bdebccd.fbfaecdb",
"com.chwl.core.room.giftvalue" : "caeb.acffa",
"com.chwl.core.room.game.bean" : "eacfafb.aadfdcee",
"com.chwl.core.room.game" : "acecfafb.cdacfdabe",
"com.chwl.core.room.face" : "cfcefbebdc.fecabacfcb",
"com.chwl.core.room.exception" : "baebbfcb.debebcfe",
"com.chwl.core.room.event" : "afdece.ecaeae",
"com.chwl.core.room.dragonball" : "adbbbaa.bcccfdf",
"com.chwl.core.room.core" : "efddaaf.aaabbfcd",
"com.chwl.core.room.bean" : "bceba.bbfce",
"com.chwl.core.room.auction.bean" : "fddadcc.fbdbaaa",
"com.chwl.core.room.auction" : "bacebdb.bceeffa",
"com.chwl.core.room.anotherroompk" : "edbcdb.efbadd",
"com.chwl.core.room.activitytimer" : "adabddff.ccfdcfbd",
"com.chwl.core.room" : "fcea.defb",
"com.chwl.core.retry" : "dbee.cafae",
"com.chwl.core.relation.cp.bean" : "bdabfb.aecccbc",
"com.chwl.core.relation.cp" : "caedeb.abacfbc",
"com.chwl.core.redpackage.bean" : "edbaad.bbdcdfc",
"com.chwl.core.redpackage" : "bcc.ffd",
"com.chwl.core.redPacket.event" : "efcdfd.fdfbcae",
"com.chwl.core.redPacket.bean" : "acdfe.ebeaed",
"com.chwl.core.redPacket" : "edfebe.eebcfad",
"com.chwl.core.recall.event" : "eebebe.eeeacfa",
"com.chwl.core.recall.bean" : "fabffdc.ffcdadbe",
"com.chwl.core.recall" : "cbdac.cadea",
"com.chwl.core.realm" : "bdbdef.cffbbf",
"com.chwl.core.radish.task.bean" : "abbefdab.daeaadad",
"com.chwl.core.radish.task" : "bbedaaf.fbdfcce",
"com.chwl.core.radish.signin.bean" : "def.cff",
"com.chwl.core.radish.signin" : "ecabbcaca.eddcdecfe",
"com.chwl.core.radish.event" : "cdfaedb.eecdebad",
"com.chwl.core.radish" : "fdbeeb.eddbbaf",
"com.chwl.core.praise.event" : "fdddf.ceacfd",
"com.chwl.core.praise" : "becbbbfc.beafebfff",
"com.chwl.core.pay.event" : "dbdfe.efdce",
"com.chwl.core.pay.bean" : "fbefaae.fddefebe",
"com.chwl.core.pay" : "eefbfb.ccdcdeb",
"com.chwl.core.patriarch.exception" : "bbcdfae.eddfdbfe",
"com.chwl.core.patriarch.event" : "eabff.eccdc",
"com.chwl.core.patriarch.bean" : "fbdfcae.fefbfee",
"com.chwl.core.noble.bean" : "dfefd.bacabc",
"com.chwl.core.noble" : "fdfb.adfec",
"com.chwl.core.newbie.event" : "facdeeb.fbeaaff",
"com.chwl.core.newbie.bean" : "ffedae.acfcdbb",
"com.chwl.core.msg.sysv2.bean" : "ddeeb.bdcdf",
"com.chwl.core.msg.sysv2" : "accaef.bfedba",
"com.chwl.core.msg.sys.bean" : "dcabc.bbdaea",
"com.chwl.core.msg.sys" : "ecdbfa.bedeee",
"com.chwl.core.msg" : "bafbfed.efeeebd",
"com.chwl.core.monsterhunting.rxevent" : "dfafbbe.afcbecce",
"com.chwl.core.monsterhunting.model" : "eabaaa.afcbcd",
"com.chwl.core.monsterhunting.manager" : "bdabaef.eaeccdc",
"com.chwl.core.monsterhunting.bean" : "adbaee.fffffc",
"com.chwl.core.monsterhunting" : "dddbd.cecfcf",
"com.chwl.core.market_verify.event" : "bedbcf.ffcdfb",
"com.chwl.core.market_verify.bean" : "fffba.cdbfee",
"com.chwl.core.market_verify" : "ecddaa.decfae",
"com.chwl.core.manager.trtc" : "cdffbe.cfbefa",
"com.chwl.core.manager.event" : "ebeccadeab.daaebfafbc",
"com.chwl.core.manager.agora" : "bdfbed.baaadfc",
"com.chwl.core.manager" : "eada.dedbf",
"com.chwl.core.magic.toolbox" : "feaabe.faacdb",
"com.chwl.core.magic.exception" : "bdc.dbdc",
"com.chwl.core.magic.bean" : "cbeee.efcdfb",
"com.chwl.core.magic" : "effdcba.daeaeedf",
"com.chwl.core.luckymoney.bean" : "cdaabd.cfabfca",
"com.chwl.core.linked.event" : "dccdeb.adfceff",
"com.chwl.core.linked.bean" : "dbeef.acefca",
"com.chwl.core.linked" : "dfcbeac.affedbe",
"com.chwl.core.level.event" : "ecbafad.dceddabe",
"com.chwl.core.level" : "eeaeecb.efdafbdc",
"com.chwl.core.kick" : "fccbdc.febfaf",
"com.chwl.core.interceptor" : "abeb.bdbf",
"com.chwl.core.initial.bean" : "edbabbab.acdccacc",
"com.chwl.core.initial" : "dfbcef.ddbeede",
"com.chwl.core.im.sysmsg" : "cdfe.ddaf",
"com.chwl.core.im.state" : "ddcefccc.baeddeeec",
"com.chwl.core.im.room" : "efafb.cccabc",
"com.chwl.core.im.notification" : "cbace.fedfba",
"com.chwl.core.im.login" : "febec.facfc",
"com.chwl.core.im.friend" : "ea.ea",
"com.chwl.core.im.custom.bean" : "dedfdbd.ebffbcba",
"com.chwl.core.im.custom" : "ccfbca.bcccebd",
"com.chwl.core.im.chatterbox.bean" : "dfdefbe.fedadcf",
"com.chwl.core.im.chatterbox" : "ffdffe.ccecbfc",
"com.chwl.core.im.avroom" : "bcafa.eadbc",
"com.chwl.core.im" : "dffa.ebaa",
"com.chwl.core.home.model" : "ffdbfa.ddcfcea",
"com.chwl.core.home.event" : "dfbbd.cefeaf",
"com.chwl.core.home.bean" : "accd.bbdff",
"com.chwl.core.home" : "bccfeaf.fbdedea",
"com.chwl.core.helper" : "fcddab.afabccd",
"com.chwl.core.gift.toolbox" : "bcbed.ffcdaf",
"com.chwl.core.gift.exception" : "beccc.cccee",
"com.chwl.core.gift.event" : "ccde.faea",
"com.chwl.core.gift.bean" : "ebbffdf.beebece",
"com.chwl.core.gift" : "dbbcc.dbceee",
"com.chwl.core.file" : "ccafedb.bddaadf",
"com.chwl.core.fansteam.bean" : "fcfdaa.edabfab",
"com.chwl.core.fansteam" : "adbfd.adeecd",
"com.chwl.core.family.model" : "bbcedbab.caaefbfb",
"com.chwl.core.family.event" : "efa.edde",
"com.chwl.core.family.bean.response.moneyManagement" : "afbba.abdcd",
"com.chwl.core.family.bean.response.memberList" : "dbcce.ecaeff",
"com.chwl.core.family.bean.response.familyPlaza" : "fbbcdb.ddfadba",
"com.chwl.core.family.bean.response" : "bbecb.daedaf",
"com.chwl.core.family.bean" : "cdade.adeda",
"com.chwl.core.exception" : "eeceaead.ceacebbe",
"com.chwl.core.earn.model" : "ffebb.edbcaf",
"com.chwl.core.earn.bean" : "bbcabbb.dcabfcd",
"com.chwl.core.decoration.nameplate.bean" : "cfadf.caddb",
"com.chwl.core.decoration.nameplate" : "cbddeb.bebdcc",
"com.chwl.core.decoration.headwear.throwable" : "bebcb.aefce",
"com.chwl.core.decoration.headwear.bean" : "bdbabbdc.ffafceeac",
"com.chwl.core.decoration.headwear" : "cbcebdb.bdebbebd",
"com.chwl.core.decoration.car.bean" : "ccbd.abca",
"com.chwl.core.decoration.car" : "ebdefd.befcae",
"com.chwl.core.decoration.bean" : "fbeebae.ebcadebe",
"com.chwl.core.decoration.backgroud.bean" : "aaecbd.bfafacd",
"com.chwl.core.decoration.backgroud" : "ecabbc.ccafec",
"com.chwl.core.decoration" : "babeeeb.ecbaceee",
"com.chwl.core.contacts" : "becea.cccca",
"com.chwl.core.community" : "fcefbba.abbefae",
"com.chwl.core.channel" : "ccb.fcf",
"com.chwl.core.certification.event" : "ceecd.bebccf",
"com.chwl.core.certification" : "fafbaf.febcecf",
"com.chwl.core.bills.result" : "defceb.bddedaa",
"com.chwl.core.bills.bean" : "fcef.caffe",
"com.chwl.core.bills" : "ebcfbec.defbbcbc",
"com.chwl.core.bean.response.result" : "decd.efffc",
"com.chwl.core.bean.response" : "cdfaac.caaeba",
"com.chwl.core.bean.attachmsg" : "fdab.dbaad",
"com.chwl.core.bean" : "dbcdb.edafab",
"com.chwl.core.base" : "eadbead.cefeacdf",
"com.chwl.core.auth.exception" : "bfcced.baedbeb",
"com.chwl.core.auth.event" : "ddcbacef.ebcaacba",
"com.chwl.core.auth.entity" : "cfeaf.ddccec",
"com.chwl.core.auth" : "debfc.deefa",
"com.chwl.core.audio.event" : "edfdda.fdabdf",
"com.chwl.core.audio.bean" : "feacbcff.edcaafbbb",
"com.chwl.core.audio" : "eeaca.ebabbb",
"com.chwl.core.association.model" : "eacfeca.adcbbfa",
"com.chwl.core.association.bean" : "ebdeaeb.dbccefdb",
"com.chwl.core.activity.model" : "debbcfdb.edbdfdeaf",
"com.chwl.core.activity.event" : "cfaafeb.ffdedef",
"com.chwl.core.activity.bean" : "feacdf.cefdbd",
"com.chwl.core" : "dddeaae.cfddfded",
"com.chwl.app.sadmin.utils" : "cccafa.feaeab",
"com.chwl.app.sadmin" : "accdab.baeeaee",
"com.chwl.app.room_chat.utils" : "ebdddaa.feeeabb",
"com.chwl.app.room_chat.fragment" : "afeccfe.dcfbfca",
"com.chwl.app.room_chat.event" : "cebb.fcbd",
"com.chwl.app.room_chat.adapter" : "baad.cfcfa",
"com.chwl.app.room_chat.activity" : "eaaadcc.ebdbede",
"com.chwl.app.room_chat" : "cdfaf.eceabb",
"com.chwl.app.music.widget" : "fadfedef.abeacebff",
"com.chwl.app.music.presenter" : "cdfa.baab",
"com.chwl.app.music.fragment" : "edfcdf.aabfdc",
"com.chwl.app.music.adapter" : "fadcdbbe.cebcdaae",
"com.chwl.app.music.activity" : "baddf.dbacfa",
"com.chwl.app.module_hall.viewmodel" : "fddae.dbafab",
"com.chwl.app.module_hall.team.view.widget" : "fecfabd.ffecdfb",
"com.chwl.app.module_hall.team.view" : "fead.fecfb",
"com.chwl.app.module_hall.team.presenter" : "edbfcf.eddebd",
"com.chwl.app.module_hall.team.adapter" : "dceeca.cabfcb",
"com.chwl.app.module_hall.team.activity" : "bdefdae.dbdbbbeb",
"com.chwl.app.module_hall.team" : "acfaacfd.aaddcbfed",
"com.chwl.app.module_hall.secretcode" : "eaafad.ebbdfca",
"com.chwl.app.module_hall.income.view" : "eefbddf.bebcebcf",
"com.chwl.app.module_hall.income.presenter" : "afbba.afcffb",
"com.chwl.app.module_hall.income.adapter" : "eabcac.bebbec",
"com.chwl.app.module_hall.income" : "acaede.cfecbe",
"com.chwl.app.module_hall.im.msgholder" : "decfc.acfca",
"com.chwl.app.module_hall.im.dialog" : "caca.dcdfa",
"com.chwl.app.module_hall.im" : "ebfceeb.dcaaedfe",
"com.chwl.app.module_hall.hall.view.indicator" : "bcdebe.cceeae",
"com.chwl.app.module_hall.hall.view.dialog" : "beffcef.ddaebdd",
"com.chwl.app.module_hall.hall.view" : "efbe.ccbe",
"com.chwl.app.module_hall.hall.presenter" : "bbebecb.bdacbefa",
"com.chwl.app.module_hall.hall.fragment" : "dffdae.dbaeadb",
"com.chwl.app.module_hall.hall.adapter" : "badadbfc.feddfdcae",
"com.chwl.app.module_hall.hall.activity" : "bdcdd.aaccc",
"com.chwl.app.module_hall" : "aedebf.dbedcab",
"com.chwl.app.bank_card.presenter" : "fcefbfa.bbabedeb",
"com.chwl.app.bank_card.adapter" : "ecdae.feffda",
"com.chwl.app.bank_card.activity" : "baaebb.adacabb",
"com.chwl.app.bank_card" : "afdfbbee.acccbcafe",
"com.example.matisse.widget" : "fafdc.ccdcea",
"com.example.matisse.ui" : "bddeecdf.daebcbca",
"com.example.matisse.listener" : "fdeec.edddcc",
"com.example.matisse.internal.utils" : "daadd.dccbda",
"com.example.matisse.internal.ui.widget" : "feebb.dcbfa",
"com.example.matisse.internal.ui.adapter" : "dcaaa.cabef",
"com.example.matisse.internal.ui" : "cabaff.aababab",
"com.example.matisse.internal.model" : "cdadc.cccccd",
"com.example.matisse.internal.loader" : "bcbcac.cfecdb",
"com.example.matisse.internal.entity" : "fecfdeeae.aefaabccf",
"com.example.matisse.filter" : "aabfe.eacfa",
"com.example.matisse.engine.impl" : "debe.ddbed",
"com.example.matisse.engine" : "bfcfa.aabec",
"com.example.matisse" : "badbf.fadfea",
"com.jph.takephoto.uitl" : "fbbaffa.faecdbe",
"com.jph.takephoto.permission" : "accbfce.fccdabb",
"com.jph.takephoto.model" : "afbfaa.afcdcd",
"com.jph.takephoto.compress" : "aecbcaf.acdbabae",
"com.jph.takephoto.app" : "edeebee.fefabfb",
"com.chwl.app.vip.view" : "ecad.baecf",
"com.chwl.app.vip.util" : "bcfe.ccaa",
"com.chwl.app.vip.dialog" : "cafded.caafcba",
"com.chwl.app.vip.bean" : "efbbc.adeda",
"com.chwl.app.vip.adapter" : "dceeffbc.eaffbcfd",
"com.chwl.app.vip" : "abaeec.bdedac",
"com.chwl.app.view.layoutmanager" : "fabcc.cffdbf",
"com.chwl.app.view" : "cabdb.accfda",
"com.chwl.app.utils" : "bcead.dfdbfb",
"com.chwl.app.ui.widget.viewpager" : "cbffcedc.ceeebada",
"com.chwl.app.ui.widget.rollviewpager.hintview" : "eedaced.ccaeddd",
"com.chwl.app.ui.widget.rollviewpager.adapter" : "bdeeebd.aaacacf",
"com.chwl.app.ui.widget.rollviewpager" : "ebffacb.ecccaaf",
"com.chwl.app.ui.widget.recyclerview.layoutmanager" : "faffb.bbcdba",
"com.chwl.app.ui.widget.recyclerview.decoration" : "afbbfef.dbebefb",
"com.chwl.app.ui.widget.password" : "cdbdc.cfcdde",
"com.chwl.app.ui.widget.marqueeview" : "fe.cff",
"com.chwl.app.ui.widget.magicindicator.ext" : "edcebdc.abcdfda",
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.titles.badge" : "aefeb.bfcdf",
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.titles" : "eacbbaf.edaceeb",
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.model" : "afcebbb.bcbbaba",
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.indicators" : "ddede.cbafa",
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs" : "aebeae.dcddcfc",
"com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator" : "acab.aaea",
"com.chwl.app.ui.widget.magicindicator.buildins.circlenavigator" : "acdcf.aecead",
"com.chwl.app.ui.widget.magicindicator.buildins" : "eaeaabd.ccbaeabc",
"com.chwl.app.ui.widget.magicindicator.abs" : "beeadefa.cffedbfa",
"com.chwl.app.ui.widget.magicindicator" : "deecdc.cefebd",
"com.chwl.app.ui.widget.interfacex" : "afef.cbfae",
"com.chwl.app.ui.widget.higuide" : "cfc.cefd",
"com.chwl.app.ui.widget.dynamicface" : "bacace.febaea",
"com.chwl.app.ui.widget.drawgift" : "cae.cbb",
"com.chwl.app.ui.widget.dialog" : "bccfaa.eeedea",
"com.chwl.app.ui.widget.bubble" : "fccea.caeaa",
"com.chwl.app.ui.widget.XRecyclerView" : "cff.dfb",
"com.chwl.app.ui.widget" : "efaded.babadae",
"com.chwl.app.ui.webview.room_banner" : "cada.eecbe",
"com.chwl.app.ui.webview.event" : "ffbbb.ceebbb",
"com.chwl.app.ui.webview" : "aaadff.eebecc",
"com.chwl.app.ui.wallet.adapter" : "deccfe.bcbbbe",
"com.chwl.app.ui.utils.sys" : "dfcdebe.adfefffe",
"com.chwl.app.ui.utils" : "dcbeeada.dfeedeab",
"com.chwl.app.ui.user.viewmodel" : "fafab.bedbf",
"com.chwl.app.ui.user.fragment" : "dcbf.bdefe",
"com.chwl.app.ui.user.event" : "feea.afda",
"com.chwl.app.ui.user.dialog" : "feeaaf.cdbbab",
"com.chwl.app.ui.user.decorationsend" : "abfbeaad.badffeebd",
"com.chwl.app.ui.user.adapter" : "bbdbd.acccbd",
"com.chwl.app.ui.user.activity" : "cbce.cfaac",
"com.chwl.app.ui.setting.viewmodel" : "bfafaedcc.fbdbadacae",
"com.chwl.app.ui.setting.bean" : "bccd.dddee",
"com.chwl.app.ui.setting.adapter" : "ffcaca.fbfaafc",
"com.chwl.app.ui.setting" : "ecaccbb.beccadff",
"com.chwl.app.ui.search.view" : "fdbeb.deffd",
"com.chwl.app.ui.search.presenter" : "adcae.bcfdca",
"com.chwl.app.ui.search.event" : "acfa.ffcb",
"com.chwl.app.ui.search" : "ddbffcaa.ffbccbbe",
"com.chwl.app.ui.relation.adapter" : "fdcecaf.eabaeaef",
"com.chwl.app.ui.relation" : "bedfeb.eeedcfb",
"com.chwl.app.ui.radish" : "ffbac.dfaec",
"com.chwl.app.ui.praise.base" : "eacffed.bfaeded",
"com.chwl.app.ui.praise" : "cdcbd.fbecf",
"com.chwl.app.ui.pay" : "eaddab.fdfdafb",
"com.chwl.app.ui.patriarch.help" : "dfcbd.cdcfcc",
"com.chwl.app.ui.patriarch" : "dfdeaddb.dbbdcaee",
"com.chwl.app.ui.login.ui" : "aaadcea.bdbfdaba",
"com.chwl.app.ui.login.helper" : "defefbb.cbfaccae",
"com.chwl.app.ui.login.fragment" : "dcfb.bfdce",
"com.chwl.app.ui.login" : "fbdb.abea",
"com.chwl.app.ui.list" : "afbeccf.eeadfbf",
"com.chwl.app.ui.keepalive" : "aabffd.fbaccfa",
"com.chwl.app.ui.indicator_impl" : "cead.ddea",
"com.chwl.app.ui.im.recent.holder" : "bdcb.eedb",
"com.chwl.app.ui.im.recent.adapter" : "eeefed.becfad",
"com.chwl.app.ui.im.recent" : "dfaebff.aabdecc",
"com.chwl.app.ui.im.model" : "cbafae.dbecfdc",
"com.chwl.app.ui.im.friend" : "dbecb.ccfcda",
"com.chwl.app.ui.im.fragment" : "fcfffef.cdaaffee",
"com.chwl.app.ui.im.chat" : "cddcabe.afbdedeb",
"com.chwl.app.ui.im.avtivity" : "bebec.afdec",
"com.chwl.app.ui.im.audio" : "accfdc.cdcbfac",
"com.chwl.app.ui.im.actions" : "feefed.becfccf",
"com.chwl.app.ui.im" : "beafbfbeb.dedfbbdbcb",
"com.chwl.app.ui.gift.widget" : "bfaeacf.aabcdbfa",
"com.chwl.app.ui.gift.util" : "deacecd.addbcee",
"com.chwl.app.ui.gift.gif" : "befcb.affcf",
"com.chwl.app.ui.gift.dialog" : "dccddf.bfcedeb",
"com.chwl.app.ui.gift.callback" : "dceed.febbe",
"com.chwl.app.ui.gift.adapter" : "eceedadb.dcfbbfdec",
"com.chwl.app.ui.behavior" : "ccdfda.debfad",
"com.chwl.app.ui.bean" : "faafdf.cefbbcb",
"com.chwl.app.ui.anim" : "bacee.daccf",
"com.chwl.app.ui.adapter" : "bdbce.adbdfc",
"com.chwl.app.team.viewmodel" : "bfeace.ffbefff",
"com.chwl.app.team.view" : "caead.eedace",
"com.chwl.app.team.event" : "cacdecf.ddebcbd",
"com.chwl.app.team.dialog" : "fdfcfc.aafcdc",
"com.chwl.app.team.bean" : "fcebb.eebee",
"com.chwl.app.team.adapter" : "bfddccfa.eadeaddae",
"com.chwl.app.sys" : "cbebab.dacbed",
"com.chwl.app.support" : "bdbeedc.fcdfcfa",
"com.chwl.app.star" : "bffcec.cebfbb",
"com.chwl.app.skill.widget" : "daeec.fdbbfb",
"com.chwl.app.skill.repository" : "bbcdaeca.dcfbfcfbe",
"com.chwl.app.skill.dialog" : "aedad.fefbab",
"com.chwl.app.skill.decoration" : "bbeee.feabad",
"com.chwl.app.skill.adapter" : "eeababfbe.accdfbdbd",
"com.chwl.app.skill.activity" : "ebceceb.facbeebc",
"com.chwl.app.skill" : "bfbacc.eabfde",
"com.chwl.app.share.viewholder" : "dcdaef.bbcdfa",
"com.chwl.app.share" : "bad.fabf",
"com.chwl.app.service" : "ddacadb.abafdaa",
"com.chwl.app.relation.extention" : "caedcc.deceffc",
"com.chwl.app.relation.cp.widget" : "cefecca.adfcdaf",
"com.chwl.app.relation.cp.viewmodel" : "bcabafedc.ccbfeeada",
"com.chwl.app.relation.cp.model" : "ccfafe.fbdbaec",
"com.chwl.app.relation.cp.fragment" : "bceb.dadfb",
"com.chwl.app.relation.cp.dialog" : "fbceea.cefbefb",
"com.chwl.app.relation.cp.adapter" : "abccbf.eaacbd",
"com.chwl.app.relation.cp.activity" : "efaeff.aececca",
"com.chwl.app.relation.cp" : "eabafed.efacabe",
"com.chwl.app.reciever" : "cca.cba",
"com.chwl.app.radish.widget" : "ffbea.aaddd",
"com.chwl.app.radish.wallet" : "efeedaeccc.cfcaeacafa",
"com.chwl.app.radish.view" : "becee.bcfeee",
"com.chwl.app.radish.task.view" : "faaee.afbce",
"com.chwl.app.radish.task.presenter" : "faedd.eecbcd",
"com.chwl.app.radish.task.fragment" : "abfacfbc.deefaddda",
"com.chwl.app.radish.task.adpter" : "bbdadbc.bcdcddbc",
"com.chwl.app.radish.task.activity" : "dceccff.aafdfebc",
"com.chwl.app.radish.presenter" : "acaecc.eaeddf",
"com.chwl.app.radish.helper" : "faaeb.fffedc",
"com.chwl.app.radish.adapter" : "fcfbbe.ddeecf",
"com.chwl.app.radish.activity" : "bdfffab.dffcdfbf",
"com.chwl.app.photo" : "eecccd.bfdbfcc",
"com.chwl.app.pay.view" : "eacfaa.fbeaac",
"com.chwl.app.pay.presenter" : "afceab.feabbff",
"com.chwl.app.other.view" : "ddacd.cdbfca",
"com.chwl.app.other.present" : "bbddcabe.bebbbdae",
"com.chwl.app.other.dialog" : "cedb.bdeeb",
"com.chwl.app.other.activity" : "e.ba",
"com.chwl.app.other" : "faedfe.fabffda",
"com.chwl.app.monsterhunting.bean" : "cedec.faddde",
"com.chwl.app.monsterhunting" : "fbabff.dbfeac",
"com.chwl.app.module" : "efdfeaf.efcddef",
"com.chwl.app.luckymoney.viewholder" : "dfedf.eedab",
"com.chwl.app.luckymoney.view" : "ddaddcd.caccbde",
"com.chwl.app.luckymoney.dialog" : "ffecde.ebbcfef",
"com.chwl.app.luckymoney.adapter" : "efeefc.eccdbf",
"com.chwl.app.home.widget" : "dfaafb.fcdcae",
"com.chwl.app.home.view" : "edfeb.efbcb",
"com.chwl.app.home.refresh" : "cfadbacde.cfaedfcccf",
"com.chwl.app.home.presenter" : "bdfece.fbefff",
"com.chwl.app.home.helper" : "fadcf.dfbdfa",
"com.chwl.app.home.fragment" : "beffafaea.aaccfbeab",
"com.chwl.app.home.event" : "aadff.cfbdd",
"com.chwl.app.home.dialog" : "bfbfb.ccacbc",
"com.chwl.app.home.adapter" : "dcaaa.bacefa",
"com.chwl.app.home.activity" : "cbafdaea.dabbbcef",
"com.chwl.app.home" : "facc.ffdec",
"com.chwl.app.guide" : "bafbbace.feffabda",
"com.chwl.app.friend.view" : "dabb.cedce",
"com.chwl.app.friend.action" : "deeead.dfedfad",
"com.chwl.app.friend" : "bfddd.dfdef",
"com.chwl.app.fansteam" : "eabdedaed.cfeadaacfe",
"com.chwl.app.event" : "bdff.bafcc",
"com.chwl.app.earn.adapter" : "dbddedf.cecfafa",
"com.chwl.app.earn.activity" : "aedee.bcdadb",
"com.chwl.app.earn" : "ffdbec.afddefd",
"com.chwl.app.decoration.viewmodel" : "dccaca.cbaaeea",
"com.chwl.app.decoration.view.widgets" : "dafde.edfde",
"com.chwl.app.decoration.view" : "affeefb.cddaaab",
"com.chwl.app.decoration.helper" : "bdbfa.aeccba",
"com.chwl.app.decoration.adapter" : "ebbd.edae",
"com.chwl.app.constants" : "ddeeea.cbabbd",
"com.chwl.app.common.widget.dialog" : "adbbdfcb.abacbeeb",
"com.chwl.app.common.widget" : "cdcbfd.cdcdaad",
"com.chwl.app.common.util" : "bcaabadbafe.cbdddabbbcfd",
"com.chwl.app.common.svga" : "dedde.effdb",
"com.chwl.app.common.server" : "abbadac.adcefdc",
"com.chwl.app.common.photo" : "bceefea.bcefcab",
"com.chwl.app.common.permission" : "acfda.dfeeab",
"com.chwl.app.common.dialog" : "deaeba.ffcaae",
"com.chwl.app.common.app" : "dbcedb.cccffe",
"com.chwl.app.common" : "cbaca.adadbb",
"com.chwl.app.bindadapter" : "bacefd.cdbedf",
"com.chwl.app.bills.widget" : "cdcfbd.fcadcaa",
"com.chwl.app.bills.view" : "cda.aedf",
"com.chwl.app.bills.presenter" : "bcbdbd.cfaccfd",
"com.chwl.app.bills.fragmemt" : "baffeb.dedcfc",
"com.chwl.app.bills.event" : "bdacea.effdae",
"com.chwl.app.bills.adapter" : "dffcceeb.cfbbbddde",
"com.chwl.app.bills.activities" : "ffaf.eadaa",
"com.chwl.app.base.list" : "dffcde.efbadaa",
"com.chwl.app.base" : "aedbb.fbfebd",
"com.chwl.app.avroom.widget" : "caeddfb.efcaeecd",
"com.chwl.app.avroom.view" : "bbaff.dbaabe",
"com.chwl.app.avroom.singleroompk" : "bbadb.dbabde",
"com.chwl.app.avroom.room_album" : "fffc.cdafe",
"com.chwl.app.avroom.recommendcard" : "aaefc.cffadd",
"com.chwl.app.avroom.rank" : "edadcb.beeaca",
"com.chwl.app.avroom.presenter" : "dddee.cfdea",
"com.chwl.app.avroom.newuserchargegift" : "bbfcc.bdbbb",
"com.chwl.app.avroom.helper" : "bcfbb.dffeae",
"com.chwl.app.avroom.giftvalue" : "acfcd.fbbcdd",
"com.chwl.app.avroom.fragment" : "beefbb.fbcafec",
"com.chwl.app.avroom.dialog" : "abbcea.ceadbc",
"com.chwl.app.avroom.core" : "fbebb.bdbebf",
"com.chwl.app.avroom.bean" : "affae.fcdff",
"com.chwl.app.avroom.anotherroompk" : "bbdba.edbbe",
"com.chwl.app.avroom.adapter" : "bffc.bbcd",
"com.chwl.app.avroom.activity" : "dccdfed.ccdfdde",
"com.chwl.app.avroom" : "bfedffaa.adfffbef",
"com.chwl.app.audio.widget" : "bfcafa.fbbfdb",
"com.chwl.app.audio.viewmodel" : "bdfe.bfccf",
"com.chwl.app.audio.view" : "abdfdcc.bbcaebb",
"com.chwl.app.audio.presenter" : "aeef.cbbaf",
"com.chwl.app.audio.helper" : "cfeb.ebade",
"com.chwl.app.audio.adapter" : "ddeceecf.dddcbccf",
"com.chwl.app.audio" : "cdedecf.fbddecef",
"com.chwl.app.application" : "cfd.ccae",
"com.chwl.app" : "cfdd.baac",
]
}

212
app/proguard-rules.pro vendored
View File

@@ -116,20 +116,15 @@
-dontwarn com.netease.**
-keep class com.netease.** {*;}
# Presenter 相关
-keep class com.yizhuan.habu.base.** { *; }
-keep public class * extends com.yizhuan.habu.base.BaseMvpPresenter
-keep public class * extends com.yizhuan.xchat_android_library.base.factory.AbstractMvpPresenter
# 云信自定义 ViewHolder 配置
-dontwarn com.yizhuan.habu.ui.im.recent.holder.**
-keep class com.yizhuan.habu.ui.im.recent.holder.** {*;}
-keep class com.yizhuan.habu.ui.im.chat.** {*;}
-keep class com.yizhuan.habu.luckymoney.viewholder.** {*;}
-keep class com.yizhuan.habu.share.viewholder.** {*;}
-keep class com.yizhuan.habu.public_chat_hall.msg.viewholder.** {*;}
-keep class com.yizhuan.habu.module_hall.im.msgholder.** {*;}
-keep class com.yizhuan.habu.mentoring_relationship.viewholder.** {*;}
-dontwarn com.chwl.app.ui.im.recent.holder.**
-keep class com.chwl.app.ui.im.recent.holder.** {*;}
-keep class com.chwl.app.ui.im.chat.** {*;}
-keep class com.chwl.app.luckymoney.viewholder.** {*;}
-keep class com.chwl.app.share.viewholder.** {*;}
-keep class com.chwl.app.public_chat_hall.msg.viewholder.** {*;}
-keep class com.chwl.app.module_hall.im.msgholder.** {*;}
-keep class com.chwl.app.mentoring_relationship.viewholder.** {*;}
-keep public class * extends com.netease.nim.uikit.common.ui.recyclerview.holder.RecyclerViewHolder {*;}
-keep public class * extends com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase {*;}
@@ -177,8 +172,8 @@
-keep class com.darsh.multipleimageselect.** { *; }
-dontwarn com.darsh.multipleimageselect.**
-keep class com.soundcloud.android.crop.** { *; }
-dontwarn com.soundcloud.android.crop.**
-keep class com.soundcloud.crop.** { *; }
-dontwarn com.soundcloud.crop.**
# glide4.0
-keep public class * implements com.bumptech.glide.module.GlideModule
@@ -190,6 +185,11 @@
# for DexGuard only
#-keepresourcexmlelements manifest/application/meta-data@value=GlideModule
# Presenter 相关
-keep class com.chwl.app.base.** { *; }
-keep public class * extends com.chwl.app.base.BaseMvpPresenter
-keep public class * extends com.chwl.library.base.factory.AbstractMvpPresenter
# BaseAdapter
-keep class com.chad.library.adapter.** {
*;
@@ -201,8 +201,8 @@
<init>(...);
}
-dontwarn com.yizhuan.habu.bindadapter.**
-keep class com.yizhuan.habu.bindadapter.** {*;}
-dontwarn com.chwl.app.bindadapter.**
-keep class com.chwl.app.bindadapter.** {*;}
# Ping++ 混淆过滤
-dontwarn com.pingplusplus.**
@@ -233,11 +233,9 @@
# TODO 网络加载 一些业务bean gson 时候混淆问题
-keep class org.json.** {*;}
-dontwarn com.yizhuan.xchat_android_core.**
-keep class com.yizhuan.xchat_android_core.** {*;}
-keep class com.yizhuan.treasure_box.bean.** {*;}
-keep class com.yizhuan.habu.avroom.bean.** {*;}
-keep class com.chwl.**.bean.** {*;}
-keep class com.chwl.**.result.** {*;}
-keep class com.chwl.**.entity.** {*;}
#百度统计
-keep class com.baidu.bottom.** { *; }
@@ -310,8 +308,8 @@
-keep class com.autonavi.aps.amapapi.model.**{*;}
#暂时keep这个View排查华为oom问题
-keep class com.yizhuan.habu.avroom.widget.MicroView{*;}
-keep class com.yizhuan.habu.ui.widget.rollviewpager.RollPagerView{*;}
-keep class com.chwl.app.avroom.widget.MicroView{*;}
-keep class com.chwl.app.ui.widget.rollviewpager.RollPagerView{*;}
#linkedMe
-keep class com.microquation.linkedme.android.** { *; }
@@ -369,7 +367,7 @@
-dontwarn com.meizu.cloud.**
-keep class com.meizu.cloud.** {*;}
-keep class com.yizhuan.habu.ui.widget.AppBarLayoutBehavior {*;}
-keep class com.chwl.app.ui.widget.AppBarLayoutBehavior {*;}
#ViewBinding使用的反射生成的对应Binding
-keepclassmembers class * implements androidx.viewbinding.ViewBinding {
@@ -454,7 +452,7 @@
}
## EasyPhotos
-keep class com.yizhuan.xchat_android_library.easyphoto.models.** { *; }
-keep class com.chwl.library.easyphoto.models.** { *; }
## 图片裁剪UCrop
-dontwarn com.yalantis.ucrop.**
@@ -479,4 +477,164 @@
}
-keep public class com.android.installreferrer.**{ *; }
-keep public class * extends java.lang.Exception
-keep public class * extends java.lang.Exception
-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{*;}
-keep class tech.sud.mgp.SudMGPWrapper.** {*;}
#new after proguard
-dontwarn bdcb.eedb.**
-keep class bdcb.eedb.** {*;}
-keep class cddcabe.afbdedeb.** {*;}
-keep class dfedf.eedab.** {*;}
-keep class dcdaef.bbcdfa.** {*;}
-keep class com.chwl.app.public_chat_hall.msg.viewholder.** {*;}
-keep class decfc.acfca.** {*;}
-keep class com.chwl.app.mentoring_relationship.viewholder.** {*;}
-keep class b.** { *; }
-keep class cb.** { *; }
-keep public class * extends b.NP
-keep public class * extends ddbfbdf.acbaddc.AbstractMvpPresenter
-dontwarn bacefd.cdbedf.**
-keep class bacefd.cdbedf.** {*;}
-keep class f.DG{*;}
-keep class bf.CA{*;}
-keep class q.Y {*;}
-keep class bacccfc.abbadfec.** { *; }
-keep class edecfbdbb.fbdcbfaaed.** { *; }
-keep class bbfeef.fdaefba.** { *; }
-keep class cfeefddf.daadadef.** { *; }
-keep class eadfab.aaffafa.** { *; }
-keep class cbbfdd.fdbaab.** { *; }
-keep class fcffbcef.cbefeefa.** { *; }
-keep class bbacbff.ecbddeb.** { *; }
-keep class ebbbf.bfcbc.** { *; }
-keep class afbfbfd.dffbcec.** { *; }
-keep class el.** {*;}
-keep class baf.edaf.** { *; }
-keep class daddbf.cebdcdd.** { *; }
-keep class adecece.cdedecc.** { *; }
-keep class fbbaffa.faecdbe.** { *; }
-keep class accbfce.fccdabb.** { *; }
-keep class afbfaa.afcdcd.** { *; }
-keep class aecbcaf.acdbabae.** { *; }
-keep class edeebee.fefabfb.** { *; }
-dontwarn fbbaffa.faecdbe.**
-dontwarn accbfce.fccdabb.**
-dontwarn afbfaa.afcdcd.**
-dontwarn aecbcaf.acdbabae.**
-dontwarn edeebee.fefabfb.**
-keep class cp.** { *; }
-dontwarn cp.**
-keep public class * extends com.netease.nim.uikit.common.ui.recyclerview.holder.RecyclerViewHolder {*;}
-keep public class * extends com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase {*;}
-keep class aea.baaf.** { *; }
-keep class ddfb.edcab.** { *; }
-keep class aeaaa.dedad.** { *; }
-keep class acbfad.dcbefe.** { *; }
-keep class deafc.bebac.** { *; }
-keep class ffbe.bdac.** { *; }
-keep class eaedcce.eebdfabf.** { *; }
-keep class edcbb.bcfca.** { *; }
-keep class ffdab.eabbd.** { *; }
-keep class fcfc.debbb.** { *; }
-keep class bfbcaedcbf.fddedfaafe.** { *; }
-keep class eacfafb.adbcafda.** { *; }
-keep class aedfcaaf.cdfbbcce.** { *; }
-keep class bbcf.abac.** { *; }
-keep class edfea.cddcb.** { *; }
-keep class ccaad.bddfa.** { *; }
-keep class aaffcba.daeefdac.** { *; }
-keep class cbcdae.acdabfe.** { *; }
-keep class eedbaeb.defbdfae.** { *; }
-keep class cfeddda.aafffbc.** { *; }
-keep class y.** {*;}
-keep class eaffcdbc.daeffdba.** { *; }
-keep class bfbdcd.fafefd.** { *; }
-keep class ba.** {*;}
-keep class aceac.ecabfe.** { *; }
-keep class cdccdab.ebdbacb.** { *; }
-keep class bababbc.cecaffca.** { *; }
-keep class edbce.fdbbbc.** { *; }
-keep class dfaabac.aabbefcc.** { *; }
-keep class edccdc.abfbfcc.** { *; }
-keep class eebfd.aaccca.** { *; }
-keep class ecaed.eebace.** { *; }
-keep class cfeee.cdeea.** { *; }
-keep class afb.eaca.** { *; }
-keep class bdebccd.fbfaecdb.** { *; }
-keep class eacfafb.aadfdcee.** { *; }
-keep class bceba.bbfce.** { *; }
-keep class cd.** {*;}
-keep class fddadcc.fbdbaaa.** { *; }
-keep class bdabfb.aecccbc.** { *; }
-keep class g.** {*;}
-keep class edbaad.bbdcdfc.** { *; }
-keep class acdfe.ebeaed.** { *; }
-keep class fabffdc.ffcdadbe.** { *; }
-keep class abbefdab.daeaadad.** { *; }
-keep class def.cff.** { *; }
-keep class fbefaae.fddefebe.** { *; }
-keep class fbdfcae.fefbfee.** { *; }
-keep class dfefd.bacabc.** { *; }
-keep class ffedae.acfcdbb.** { *; }
-keep class ddeeb.bdcdf.** { *; }
-keep class dcabc.bbdaea.** { *; }
-keep class adbaee.fffffc.** { *; }
-keep class bb.** {*;}
-keep class fffba.cdbfee.** { *; }
-keep class cbeee.efcdfb.** { *; }
-keep class cdaabd.cfabfca.** { *; }
-keep class dbeef.acefca.** { *; }
-keep class edbabbab.acdccacc.** { *; }
-keep class dedfdbd.ebffbcba.** { *; }
-keep class dfdefbe.fedadcf.** { *; }
-keep class accd.bbdff.** { *; }
-keep class u.** {*;}
-keep class ebbffdf.beebece.** { *; }
-keep class fcfdaa.edabfab.** { *; }
-keep class afbba.abdcd.** { *; }
-keep class dbcce.ecaeff.** { *; }
-keep class fbbcdb.ddfadba.** { *; }
-keep class bbecb.daedaf.** { *; }
-keep class cdade.adeda.** { *; }
-keep class bg.** {*;}
-keep class bbcabbb.dcabfcd.** { *; }
-keep class cfadf.caddb.** { *; }
-keep class bdbabbdc.ffafceeac.** { *; }
-keep class bd.** {*;}
-keep class ccbd.abca.** { *; }
-keep class j.** {*;}
-keep class fbeebae.ebcadebe.** { *; }
-keep class aaecbd.bfafacd.** { *; }
-keep class fcef.caffe.** { *; }
-keep class decd.efffc.** { *; }
-keep class cdfaac.caaeba.** { *; }
-keep class fdab.dbaad.** { *; }
-keep class dbcdb.edafab.** { *; }
-keep class feacbcff.edcaafbbb.** { *; }
-keep class ebdeaeb.dbccefdb.** { *; }
-keep class feacdf.cefdbd.** { *; }
-keep class efbbc.adeda.** { *; }
-keep class bccd.dddee.** { *; }
-keep class faafdf.cefbbcb.** { *; }
-keep class fcebb.eebee.** { *; }
-keep class cedec.faddde.** { *; }
-keep class affae.fcdff.** { *; }
-keep class eecdc.cddbfa.** { *; }
-keep class fddd.dbae.** { *; }
-keep class defceb.bddedaa.** { *; }
-keep class decd.efffc.** { *; }
-keep class bbfeef.fdaefba.** { *; }
-keep class baf.edaf.** { *; }
-keep class acdb.aacb.** { *; }
-keep class bacfcf.dddbef.** { *; }
-keep class cfeaf.ddccec.** { *; }

View File

@@ -1,28 +0,0 @@
package com.yizhuan.habu;
import static org.junit.Assert.assertEquals;
import android.content.Context;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* 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() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.yizhuan.habu_android_client", appContext.getPackageName());
}
}

View File

@@ -1,7 +1,7 @@
<?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.yizhuan.habu">
package="com.chwl.app">
<uses-sdk tools:overrideLibrary="com.huawei.android.hms.base,com.huawei.android.hms.push" />
@@ -19,8 +19,8 @@
android:protectionLevel="signature" />
<queries>
<package android:name="com.facebook.katana" />
<package android:name="jp.naver.line.android" />
<!-- <package android:name="com.facebook.katana" />-->
<!-- <package android:name="jp.naver.line.android" />-->
<package android:name="com.android.vending" />
</queries>
@@ -84,17 +84,17 @@
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<application
android:name=".application.XChatApplication"
android:name=".application.App"
android:allowBackup="false"
android:icon="@mipmap/app_logo"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_launch_name"
android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config"
android:resizeableActivity="true"
android:supportsRtl="true"
android:testOnly="false"
android:theme="@style/MyMaterialTheme"
tools:replace="android:name,android:allowBackup"
tools:replace="android:name,android:label,android:allowBackup"
tools:targetApi="n">
<activity
@@ -127,12 +127,30 @@
<!-- </intent-filter>-->
</activity>
<activity
android:name=".ui.link.LinkActivity"
android:configChanges="orientation|screenSize"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/transparent_activity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="app"
android:scheme="molistar" />
</intent-filter>
</activity>
<!-- <meta-data-->
<!-- android:name="firebase_crashlytics_collection_enabled"-->
<!-- android:value="${CRASHLYTICS_COLLECTION_ENABLED}" /> &lt;!&ndash; 刘海屏适配 begin &ndash;&gt;-->
<!-- 小米 -->
<activity
android:name="com.soundcloud.android.crop.CropImageActivity"
android:name="com.soundcloud.crop.CropImageActivity"
android:screenOrientation="portrait" /> <!-- 华为 -->
<activity
android:name="com.darsh.multipleimageselect.activities.AlbumSelectActivity"
@@ -152,31 +170,31 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> <!-- 刘海屏适配 end -->
<activity
android:name="com.mob.tools.MobUIShell"
android:configChanges="keyboardHidden|orientation|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize" /> <!-- 云信配置 begin ##################################################### -->
<!-- <activity-->
<!-- android:name="com.mob.tools.MobUIShell"-->
<!-- android:configChanges="keyboardHidden|orientation|screenSize"-->
<!-- android:theme="@android:style/Theme.Translucent.NoTitleBar"-->
<!-- android:windowSoftInputMode="stateHidden|adjustResize" /> &lt;!&ndash; 云信配置 begin ##################################################### &ndash;&gt;-->
<!--
APP key, 可以在这里设置,也可以在 SDKOptions 中提供。
如果 SDKOptions 中提供了,取 SDKOptions 中的值。
-->
<activity
android:name="com.vele.habuplay.lineapi.LineAuthenticationCallbackActivity"
android:exported="true"
android:launchMode="singleTask"
android:noHistory="true">
<!-- <activity-->
<!-- android:name="app.molistar.fun.lineapi.LineAuthenticationCallbackActivity"-->
<!-- android:exported="true"-->
<!-- android:launchMode="singleTask"-->
<!-- android:noHistory="true">-->
<!-- 集成line客户端登录授权需要添如下格式的过滤器 -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<!-- &lt;!&ndash; 集成line客户端登录授权需要添如下格式的过滤器 &ndash;&gt;-->
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.VIEW" />-->
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<!-- <category android:name="android.intent.category.BROWSABLE" />-->
<!-- <category android:name="android.intent.category.DEFAULT" />-->
<data android:scheme="lineauth" />
</intent-filter>
</activity>
<!-- <data android:scheme="lineauth" />-->
<!-- </intent-filter>-->
<!-- </activity>-->
<!--
声明云信后台服务,如需保持后台推送,使用独立进程效果会更好。
ca46478c438dda51d25306f52fe7506b
@@ -223,7 +241,7 @@
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="Habu Live"
android:label="MoliStar"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateAlwaysHidden" /> <!-- 配置的service和receiver -->
@@ -247,6 +265,9 @@
android:name=".avroom.activity.RoomSettingActivity"
android:label="@string/main_androidmanifest_07"
android:screenOrientation="portrait" />
<activity
android:name=".avroom.activity.RoomBgSettingActivity"
android:screenOrientation="portrait" />
<activity
android:name=".avroom.activity.RoomManagerListActivity"
android:label="@string/main_androidmanifest_08"
@@ -260,12 +281,12 @@
android:label="房间流水"
android:screenOrientation="portrait" />
<activity
android:name="com.yizhuan.habu.music.activity.AddLocalMusicListActivity"
android:name="com.chwl.app.music.activity.AddLocalMusicListActivity"
android:label="@string/main_androidmanifest_010"
android:screenOrientation="portrait"
android:theme="@style/AVRoomTheme" />
<activity
android:name="com.yizhuan.habu.music.activity.MusicListActivity"
android:name="com.chwl.app.music.activity.MusicListActivity"
android:label="@string/main_androidmanifest_011"
android:launchMode="singleTop"
android:screenOrientation="portrait"
@@ -300,12 +321,11 @@
android:label="@string/main_androidmanifest_018"
android:screenOrientation="portrait" />
<activity
android:name=".home.activity.CollectionRoomActivity"
android:label="@string/main_androidmanifest_019"
android:name=".ui.wallet.WalletActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.wallet.ExchangeGoldActivity"
android:label="@string/main_androidmanifest_020"
android:name=".home.activity.CollectionRoomActivity"
android:label="@string/main_androidmanifest_019"
android:screenOrientation="portrait" />
<activity
android:name=".ui.setting.SettingActivity"
@@ -316,18 +336,6 @@
<activity
android:name=".ui.relation.FansListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.withdraw.WithdrawActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.withdraw.bankcard.BindWithdrawBankCardActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.withdraw.WithdrawRuleActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.withdraw.BinderAlipayActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.user.activity.AboutActivity"
android:screenOrientation="portrait" />
@@ -404,10 +412,6 @@
android:name=".decoration.view.MyDecorationActivity"
android:label="@string/main_androidmanifest_027"
android:screenOrientation="portrait" />
<activity
android:name=".decoration.view.DecorationStoreActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".ui.user.activity.UserGiftActivity"
android:screenOrientation="portrait"
@@ -416,42 +420,6 @@
android:name=".friend.view.SelectFriendActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyPlazaActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyHomeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilySearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyManageActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyCurrencyActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyMemberListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyInfoActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyMemberSearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".team.view.NimTeamMessageActivity"
android:screenOrientation="portrait"
@@ -496,10 +464,6 @@
android:name=".luckymoney.view.LuckyMoneyDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" /> <!-- android:launchMode="singleTask" -->
<activity
android:name=".family.view.activity.FamilyMemberCurrencyActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".ErbanTakePhotoActivity"
android:screenOrientation="portrait"
@@ -508,21 +472,9 @@
android:name=".team.view.UpdateTeamNameActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilySelectFriendActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyTextInputActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyGameListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".treasure_box.activity.TreasureBoxActivity"
android:theme="@style/dialog_web_view_activity" />
android:theme="@style/transparent_activity" />
<activity
android:name=".treasure_box.activity.BoxRankingActivity"
android:theme="@style/room_message_activity" />
@@ -540,17 +492,6 @@
android:name=".ui.widget.RecallDialog"
android:screenOrientation="portrait"
android:theme="@style/dialog_activity_close_inside" />
<activity
android:name=".public_chat_hall.activity.PublicChatHallHomeActivity"
android:configChanges="keyboardHidden|orientation"
android:label="@string/main_androidmanifest_028"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".public_chat_hall.activity.PublicChatHallAitFriendsActivity"
android:configChanges="keyboardHidden|orientation"
android:label="@string/main_androidmanifest_029"
android:screenOrientation="portrait" />
<activity
android:name=".ui.user.decorationsend.DecorationSendActivity"
android:screenOrientation="portrait"
@@ -561,14 +502,6 @@
<activity
android:name=".avroom.activity.RoomOnlineUserActivity"
android:screenOrientation="portrait" />
<activity
android:name=".public_chat_hall.activity.PublicChatHallRelatedToMeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".public_chat_hall.activity.AitFriendsSearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".ui.login.ShowBindPhoneActivity"
android:screenOrientation="portrait" />
@@ -634,9 +567,6 @@
<activity
android:name=".module_hall.hall.activity.MemberSearchActivity"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".avroom.activity.CpRoomInviteActivity"
android:screenOrientation="portrait" />
<activity
android:name=".module_hall.hall.activity.HallSearchActivity"
android:screenOrientation="portrait" />
@@ -649,36 +579,25 @@
<activity
android:name=".module_hall.team.activity.HTeamMemberListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.yizhuan.habu.mentoring_relationship.activity.MentoringRelationshipActivity"
android:label="@string/main_androidmanifest_030"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".avroom.recommendcard.MyRecommendCardActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name="com.yizhuan.habu.room_chat.activity.NimRoomP2PMessageActivity"
android:name="com.chwl.app.room_chat.activity.NimRoomP2PMessageActivity"
android:theme="@style/room_message_activity" />
<activity
android:name="com.yizhuan.habu.room_chat.activity.RoomMsgActivity"
android:name="com.chwl.app.room_chat.activity.RoomMsgActivity"
android:theme="@style/room_message_activity" />
<activity
android:name="com.yizhuan.habu.room_chat.activity.RoomNewbieActivity"
android:name="com.chwl.app.room_chat.activity.RoomInviteFansActivity"
android:theme="@style/room_message_activity" />
<activity
android:name="com.yizhuan.habu.room_chat.activity.RoomNewbieMessageActivity"
android:theme="@style/room_message_activity" />
<activity
android:name="com.yizhuan.habu.room_chat.activity.RoomInviteFansActivity"
android:theme="@style/room_message_activity" />
<activity
android:name="com.yizhuan.habu.room_chat.activity.NimTeamRoomMessageActivity"
android:name="com.chwl.app.room_chat.activity.NimTeamRoomMessageActivity"
android:screenOrientation="portrait"
android:theme="@style/room_message_activity" />
<activity
android:name="com.yizhuan.habu.room_chat.activity.NimHallTeamRoomMessageActivity"
android:name="com.chwl.app.room_chat.activity.NimHallTeamRoomMessageActivity"
android:screenOrientation="portrait"
android:theme="@style/room_message_activity" />
<activity
@@ -687,9 +606,6 @@
<activity
android:name=".radish.activity.RadishRecordActivity"
android:screenOrientation="portrait" />
<activity
android:name=".radish.signin.SignInActivity"
android:screenOrientation="portrait" />
<activity
android:name=".radish.task.activity.TaskCenterActivity"
android:screenOrientation="portrait" />
@@ -713,42 +629,6 @@
<activity
android:name=".audio.VoiceMatchActivity"
android:screenOrientation="portrait" />
<activity
android:name=".miniworld.activity.MiniWorldGuestPageActivity"
android:screenOrientation="portrait" /> <!-- 推荐位 -->
<activity
android:name=".miniworld.activity.TopicMainActivity"
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
<activity
android:name=".miniworld.activity.MiniWorldEditActivity"
android:screenOrientation="portrait" />
<activity
android:name=".miniworld.activity.MiniWorldMemberListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".miniworld.activity.MiniWorldTeamMessageActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".miniworld.activity.MWTeamRoomMessageAct"
android:screenOrientation="portrait"
android:theme="@style/room_message_activity" />
<activity
android:name=".miniworld.activity.MiniWorldGroupThemeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".miniworld.activity.MiniWorldActivity"
android:screenOrientation="portrait" />
<activity
android:name=".miniworld.activity.AllTopicActivity"
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
<!-- 萝卜-签到-任务 -->
<activity
android:name=".miniworld.activity.MiniWorldSearchActivity"
android:screenOrientation="portrait" />
<activity
android:name=".miniworld.activity.MiniWorldMainActivity"
android:screenOrientation="portrait" />
<activity android:name=".ui.im.friend.ActFriendList" />
<activity
android:name=".bank_card.activity.BankCardListActivity"
@@ -763,70 +643,45 @@
android:name=".bank_card.activity.AddBankCardAgreementActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.yizhuan.habu.sadmin.RoomSAdminManagerActivity"
android:name="com.chwl.app.sadmin.RoomSAdminManagerActivity"
android:screenOrientation="portrait" />
<activity
android:name=".home.activity.CommunityNoticeAct"
android:screenOrientation="portrait" />
<activity
android:name=".community.publish.view.PublishActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustNothing" />
<activity
android:name=".community.dynamic.view.DynamicDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".community.photo.PreviewPhotoActivity"
android:name=".photo.PreviewPhotoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".community.photo.BigPhotoActivity"
android:name=".photo.BigPhotoActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhihu.matisse.ui.MatisseActivity"
android:name="com.example.matisse.ui.MatisseActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhihu.matisse.internal.ui.AlbumPreviewActivity"
android:name="com.example.matisse.internal.ui.AlbumPreviewActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.zhihu.matisse.internal.ui.SelectedPreviewActivity"
android:name="com.example.matisse.internal.ui.SelectedPreviewActivity"
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
<activity
android:name=".ui.wallet.sendgold.SendGoldActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".pay.activity.GiveGoldActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".pay.activity.GiveGoldDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".pay.activity.GiveGoldToUserActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".pay.activity.GiveGoldSearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".ui.setting.PrivacySettingActivity"
android:screenOrientation="portrait" /> <!-- 银行卡列表 -->
<activity
android:name=".ui.setting.NoticeSettingActivity"
android:screenOrientation="portrait" /> <!-- 解除绑定银行卡 -->
<activity
android:name=".ui.login.LoginActivity"
android:label="@string/main_androidmanifest_031"
android:launchMode="singleTask"
android:screenOrientation="portrait" /> <!-- 绑定银行卡 -->
<activity
android:name=".ui.webview.DialogWebViewActivity"
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" /> <!-- 隐私政策 -->
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.webview.baishun.BaiShunGameWebActivity"
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".ui.webview.room_banner.RoomWebDialogActivity"
android:theme="@style/room_dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
<!-- 隐私政策 -->
<activity
android:name=".ui.webview.DatingRuleWebViewActivity"
android:theme="@style/dialog_web_view_activity" />
@@ -839,6 +694,7 @@
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".ui.login.LoginPasswordActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" /> <!-- 社区 -->
<activity
android:name=".ui.setting.ResetPasswordActivity"
@@ -866,9 +722,6 @@
android:name=".avroom.singleroompk.SingleRoomPKSearchActivity"
android:theme="@style/dialog_web_view_activity"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".avroom.firstcharge.FirstChargeDialog"
android:theme="@style/dialogactivity" />
<activity
android:name=".ui.setting.GrantedPermissionsActivity"
android:screenOrientation="portrait" />
@@ -908,21 +761,6 @@
<activity
android:name=".relation.cp.activity.CpInviteRecordActivity"
android:screenOrientation="portrait" />
<activity
android:name=".fansteam.FansTeamJoinActivity"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".fansteam.FansTeamJoinedActivity"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".fansteam.FansTeamListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".shipantics.PullRadishActivity"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".shipantics.RadishRankingActivity"
android:theme="@style/room_message_activity" />
<activity
android:name=".AgentActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
@@ -942,11 +780,6 @@
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".earn.activity.EarnWithdrawActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:screenOrientation="portrait" /> <!-- com.yizhuan.xchat_android_core.skill -->
<activity
android:name=".earn.activity.BindWithdrawMsgActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
@@ -977,15 +810,6 @@
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".ui.user.activity.EditUserLabelActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".treasurefairy.HomeFairyActivity"
android:exported="false"
android:theme="@style/transparent_activity" />
<activity
android:name=".ui.webview.FairyDialogWebViewActivity"
@@ -1015,9 +839,9 @@
android:name="flutterEmbedding"
android:value="2" />
<meta-data
android:name="Mob-Https"
android:value="yes" />
<!-- <meta-data-->
<!-- android:name="Mob-Https"-->
<!-- android:value="yes" />-->
<provider
android:name="com.netease.nimlib.ipc.NIMContentProvider"
@@ -1064,6 +888,49 @@
<activity android:name=".avroom.room_album.RoomAlbumActivity" />
<activity android:name=".ui.language.LanguageActivity" />
<activity android:name=".public_chat.ui.message.PublicChatRoomMessageActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".fansteam.FansTeamJoinActivity"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".fansteam.FansTeamJoinedActivity"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".fansteam.FansTeamListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".decoration.view.DecorationStoreActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".pay.activity.GiveGoldActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".pay.activity.GiveGoldDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".pay.activity.GiveGoldToUserActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".pay.activity.GiveGoldSearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".game.ui.game.GameActivity"
android:hardwareAccelerated="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
</application>
</manifest>

View File

@@ -0,0 +1 @@
[{"name":"Taiwan","abbr":"TW","mcc":"466","code":"886"},{"name":"Hong Kong","abbr":"HK","mcc":"454","code":"852"},{"name":"Singapore","abbr":"SG","mcc":"525","code":"65"},{"name":"Malaysia","abbr":"MY","mcc":"502","code":"60"},{"name":"China","abbr":"CN","mcc":"460","code":"86"}]

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,17 +0,0 @@
{
"supplier":{
"vivo":{
"appid":"100215079"
},
"xiaomi":{
},
"huawei":{
},
"oppo":{
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu;
package com.chwl.app;
import android.app.ActivityManager;
import android.content.ComponentName;
@@ -7,14 +7,6 @@ import android.os.Build;
import androidx.appcompat.app.AppCompatActivity;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.yizhuan.habu.other.activity.SplashActivity;
import com.yizhuan.xchat_android_core.linked.LinkedModel;
import com.yizhuan.xchat_android_core.linked.bean.LinkedInfo;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.utils.TextUtils;
import java.util.HashMap;
import java.util.List;
public class AgentActivity extends AppCompatActivity {

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu;
package com.chwl.app;
import android.content.Context;
import android.content.Intent;
@@ -9,8 +9,8 @@ import com.jph.takephoto.app.TakePhotoActivity;
import com.jph.takephoto.compress.CompressConfig;
import com.jph.takephoto.model.CropOptions;
import com.jph.takephoto.model.TResult;
import com.yizhuan.habu.common.permission.PermissionActivity;
import com.yizhuan.xchat_android_library.utils.file.JXFileUtils;
import com.chwl.app.common.permission.PermissionActivity;
import com.chwl.library.utils.file.JXFileUtils;
import java.io.File;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu;
package com.chwl.app;
import android.content.Context;
import android.view.View;

View File

@@ -0,0 +1,940 @@
package com.chwl.app;
import static com.chwl.core.channel_page.model.ChannelPageModel.KEY_FLAG_VALID_CHANNEL_PAGE;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.util.SparseArray;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.LinearInterpolator;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.ViewModelProvider;
import com.chwl.app.base.GlobalViewModelOwner;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.app.game.core.GameStateAbility;
import com.chwl.app.game.data.GameModel2;
import com.chwl.app.game.ui.game.GameActivity;
import com.chwl.app.game.ui.game.GameIntent;
import com.chwl.app.game.ui.home.GameHomeFragment;
import com.chwl.app.star.StarFragment;
import com.chwl.app.support.PreloadResourceViewModel;
import com.chwl.app.ui.login.LoginPasswordActivity;
import com.chwl.core.home.bean.MainTabInfo;
import com.chwl.core.settings.SettingsModel;
import com.chwl.library.utils.JavaUtil;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nim.uikit.common.util.string.StringUtil;
import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent;
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.RecentContact;
import com.netease.nimlib.sdk.team.TeamService;
import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum;
import com.netease.nimlib.sdk.team.model.Team;
import com.orhanobut.logger.Logger;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.chwl.app.application.IReportConstants;
import com.chwl.app.application.ReportManager;
import com.chwl.app.application.App;
import com.chwl.app.avroom.activity.AVRoomActivity;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.app.common.widget.CircleImageView;
import com.chwl.app.common.widget.DragLayout;
import com.chwl.app.home.HomeViewModel;
import com.chwl.app.home.dialog.NewUserHelloDialog;
import com.chwl.app.home.dialog.ProtocolUpdateDialog;
import com.chwl.app.home.fragment.ContactsListFragment;
import com.chwl.app.home.fragment.HomeFragment;
import com.chwl.app.home.fragment.MeFragment;
import com.chwl.app.home.presenter.MainPresenter;
import com.chwl.app.home.view.IMainView;
import com.chwl.app.home.widget.AnchorCardView;
import com.chwl.app.module.Extras;
import com.chwl.app.module_hall.secretcode.PwdCodeMgr;
import com.chwl.app.service.DaemonService;
import com.chwl.app.ui.im.ImInitHelper;
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
import com.chwl.app.ui.login.BindPhoneActivity;
import com.chwl.app.ui.login.fragment.AddUserInfoFragment;
import com.chwl.app.ui.patriarch.help.LimitEnterRoomHelper;
import com.chwl.app.ui.patriarch.help.PmDialogShowMrg;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
import com.chwl.app.ui.webview.CommonWebViewActivity;
import com.chwl.app.ui.widget.LivingIconView;
import com.chwl.app.ui.widget.MainTabLayout;
import com.chwl.app.utils.CleanLeakUtils;
import com.chwl.app.utils.PushMessageHandler;
import com.chwl.core.Constants;
import com.chwl.core.DemoCache;
import com.chwl.core.UriProvider;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.auth.event.KickOutEvent;
import com.chwl.core.auth.event.LoginEvent;
import com.chwl.core.auth.event.LogoutEvent;
import com.chwl.core.channel_page.model.ChannelPageModel;
import com.chwl.core.community.event.SquareTaskEvent;
import com.chwl.core.community.event.UnReadCountEvent;
import com.chwl.core.home.bean.MainTabType;
import com.chwl.core.home.event.VisitorUnreadCountEvent;
import com.chwl.core.home.model.GameHomeModel;
import com.chwl.core.home.model.HomeModel;
import com.chwl.core.initial.InitialModel;
import com.chwl.core.linked.LinkedModel;
import com.chwl.core.linked.bean.LinkedInfo;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.manager.IMBroadcastManager;
import com.chwl.core.manager.IMMessageManager;
import com.chwl.core.manager.RoomEvent;
import com.chwl.core.patriarch.event.CloseMinRoomEvent;
import com.chwl.core.patriarch.event.ImPushMsgPmLimitTimeEvent;
import com.chwl.core.patriarch.event.PmDismissAllLimitDialogEvent;
import com.chwl.core.room.bean.RoomInfo;
import com.chwl.core.user.UserModel;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.core.user.event.LoadLoginUserInfoEvent;
import com.chwl.core.user.event.LoginUserInfoUpdateEvent;
import com.chwl.core.user.event.NeedBindPhoneEvent;
import com.chwl.core.user.event.NeedCompleteInfoEvent;
import com.chwl.core.utils.SharedPreferenceUtils;
import com.chwl.core.utils.StringFormatUtils;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.threadmgr.ThreadPoolManager;
import com.chwl.library.utils.ResUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.jetbrains.annotations.NotNull;
import java.lang.ref.WeakReference;
import java.util.HashMap;
import java.util.List;
/**
* @author Administrator
*/
@CreatePresenter(MainPresenter.class)
public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
implements MainTabLayout.OnTabClickListener, IMainView, View.OnClickListener {
public static final String MSG_TAB = "msgTab";
private static final String TAG = "MainActivity";
private static final String EXTRA_APP_QUIT = "APP_QUIT";
private final SparseArray<Fragment> fragmentArray = new SparseArray<>();
private View avatarLayout;
private CircleImageView avatarImage;
private LivingIconView userLivingView;
private MainTabLayout mMainTabLayout;
private AnchorCardView anchorCardView;
private View viewClose;
private int mCurrentTabType = MainTabType.TAB_TYPE_STAR;
/**
* 房间最小化动画换成属性动画原先的补间动画影响了activity的生命周期
*/
private ObjectAnimator roomMinAnim;
/**
* 管理限制进房
*/
private LimitEnterRoomHelper limitEnterRoomHelper;
private HomeViewModel homeViewModel;
private boolean mResumed = false;
@Nullable
private Fragment tempFragment = null;
private DialogManager resumeGameDialogManager;
@Nullable
private Runnable touchRunnable;
{
fragmentArray.put(MainTabType.TAB_TYPE_STAR, new StarFragment());
fragmentArray.put(MainTabType.TAB_TYPE_GAME, new GameHomeFragment());
fragmentArray.put(MainTabType.TAB_TYPE_HOME, new HomeFragment());
fragmentArray.put(MainTabType.TAB_TYPE_MSG, new ContactsListFragment());
fragmentArray.put(MainTabType.TAB_TYPE_ME, new MeFragment());
}
public static void start(Context context) {
start(context, null);
}
public static void start(Context context, Intent extras) {
Intent intent = new Intent();
intent.setClass(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
if (extras != null) {
intent.putExtras(extras);
}
context.startActivity(intent);
}
/**
* @return true 如果处理了跳转
*/
public static boolean handleLinkedJump(Context context) {
LinkedInfo linkedInfo = LinkedModel.get().getLinkedInfo();
LinkedModel.get().setLinkedInfo(null);
if (linkedInfo == null || linkedInfo.getType() == null || linkedInfo.getType().equals("null")) {
return false;
}
LogUtil.print(ResUtil.getString(R.string.yizhuan_erban_mainactivity_01));
// 跳转
if (!StringUtil.isEmpty(linkedInfo.getRoomUid()) && linkedInfo.getType().equals("2")) {
AVRoomActivity.start(context, Long.parseLong(linkedInfo.getRoomUid()));
} else if (!TextUtils.isEmpty(linkedInfo.getUrl()) && linkedInfo.getType().equals("3")) {
CommonWebViewActivity.start(context, UriProvider.getLinkUrl(linkedInfo.getUrl()));
} else if (linkedInfo.getType().equals("7") && !TextUtils.isEmpty(linkedInfo.getUid())) {
NimP2PMessageActivity.start(context, linkedInfo.getUid());
} else {
return false;
}
return true;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(Constants.KEY_MAIN_POSITION, mCurrentTabType);
}
@Override
protected void onRestoreInstanceState(@NotNull Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mCurrentTabType = savedInstanceState.getInt(Constants.KEY_MAIN_POSITION);
}
@SuppressLint("CheckResult")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ViewModelProvider viewModelProvider = new ViewModelProvider(this);
homeViewModel = viewModelProvider.get(HomeViewModel.class);
NimMiddleActivity.firstEnter = false;
if (savedInstanceState != null) {
mCurrentTabType = savedInstanceState.getInt(Constants.KEY_MAIN_POSITION);
}
setContentView(R.layout.activity_main);
//自动登录
AuthModel.get().autoLogin()
.doOnError(throwable -> onNeedLogin())
.subscribe();
initView();
List<MainTabInfo> mainTabInfo = InitialModel.get().getMainTabInfosLiveData().getValue();
if (mainTabInfo != null) {
mMainTabLayout.setMainTabInfoList(mainTabInfo);
}
initMaterialView();
onParseIntent();
updateDatas();
updateRoomState();
ImInitHelper.get().init();
EventBus.getDefault().register(this);
otherModelInit();
homeViewModel.getAnchorInfoLiveData().observe(this, anchorInfo -> {
if (anchorInfo != null) {
anchorCardView.setAnchorInfo(anchorInfo);
DemoCache.saveAnchorCardView(2);
}
});
checkResumeGame();
}
private void otherModelInit() {
PwdCodeMgr.get().onCreateInit();
//初始化线程池
ThreadPoolManager.instance().init();
IMBroadcastManager.get().onCreate();
ImageLoadUtilsV2.init(context);
SettingsModel.get().checkSysAccount();
initPreloadResource();
}
@SuppressLint("CheckResult")
private void checkResumeGame() {
GameModel2.INSTANCE.getResumeGameRoomInfo().compose(bindToLifecycle()).subscribe(gameRoomInfo -> {
if (gameRoomInfo != null && gameRoomInfo.getData() != null) {
Integer state = gameRoomInfo.getData().getMatchStatus();
if (state != null && (state == GameStateAbility.STATE_MATCH_SUCCESS || state == GameStateAbility.STATE_MATCHING)) {
if (resumeGameDialogManager == null) {
resumeGameDialogManager = new DialogManager(this);
}
resumeGameDialogManager.showOkCancelDialog(getString(R.string.resume_game_tips), getString(R.string.join_organization_ok), getString(R.string.join_organization_no), false, new DialogManager.OkCancelDialogListener() {
@Override
public void onOk() {
long gameId = JavaUtil.str2long(gameRoomInfo.getData().getMgId());
int gameMode = 0;
GameActivity.Companion.start(context, new GameIntent(gameId, gameMode));
}
@Override
public void onCancel() {
DialogManager.OkCancelDialogListener.super.onCancel();
Long roomId = gameRoomInfo.getRoomId();
if (roomId != null) {
GameModel2.INSTANCE.closeGameRx(roomId).compose(bindToLifecycle()).subscribe(s -> {
}, throwable -> {
});
}
}
});
}
}
}, throwable -> {
});
}
private void initPreloadResource() {
PreloadResourceViewModel viewModel = new ViewModelProvider(
GlobalViewModelOwner.Companion.getInstance()
).get(PreloadResourceViewModel.class);
viewModel.start();
}
@Override
protected void onReceiveChatRoomEvent(RoomEvent roomEvent) {
super.onReceiveChatRoomEvent(roomEvent);
if (roomEvent == null || roomEvent.getEvent() == RoomEvent.NONE) return;
int event = roomEvent.getEvent();
if (event == RoomEvent.ENTER_ROOM) {
onEnter(AvRoomDataManager.get().mCurrentRoomInfo);
} else if (event == RoomEvent.KICK_OUT_ROOM) {
ChatRoomKickOutEvent reason = roomEvent.getReason();
if (reason == null) return;
//加入黑名单,踢出房间回调
ChatRoomKickOutEvent.ChatRoomKickOutReason reasonReason = reason.getReason();
if (reasonReason == ChatRoomKickOutEvent.ChatRoomKickOutReason.BE_BLACKLISTED
|| reasonReason == ChatRoomKickOutEvent.ChatRoomKickOutReason.KICK_OUT_BY_MANAGER
|| reasonReason == ChatRoomKickOutEvent.ChatRoomKickOutReason.KICK_OUT_BY_CONFLICT_LOGIN
|| reasonReason == ChatRoomKickOutEvent.ChatRoomKickOutReason.CHAT_ROOM_INVALID) {
exitRoom(AvRoomDataManager.get().mCurrentRoomInfo);
}
} else if (event == RoomEvent.ROOM_EXIT) {
exitRoom(roomEvent.getRoomInfo());
} else if (event == RoomEvent.ROOM_CHAT_RECONNECTION) {
updateRoomState();
} else if (event == RoomEvent.MY_SELF_KICK_OUT_ROOM_BY_S_ADMIN) {
AvRoomDataManager.get().addCurrentRoomLimitEnter();
toast(R.string.kick_out_room_by_s_admin);
getMvpPresenter().exitRoom();
}
}
private void closeOpenRoomAnimation() {
stopRoomMinAnim();
avatarLayout.setVisibility(View.GONE);
}
@Override
protected void onResume() {
super.onResume();
mResumed = true;
if (avatarLayout.getVisibility() == View.VISIBLE) {
userLivingView.start();
}
//这里是为了处理APP后台运行的情况下点击分享房间等LinkedMe链接的情况
UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
if (userInfo != null) {
handleLinkedJump(this);
}
}
@Override
protected void onPause() {
super.onPause();
mResumed = false;
if (avatarLayout.getVisibility() == View.VISIBLE) {
userLivingView.stop();
}
mMainTabLayout.removeCallbacks(touchRunnable);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (touchRunnable == null) return super.onTouchEvent(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mMainTabLayout.removeCallbacks(touchRunnable);
break;
case MotionEvent.ACTION_UP:
mMainTabLayout.postDelayed(touchRunnable, 5000);
break;
}
return super.onTouchEvent(event);
}
private void initView() {
mMainTabLayout = findViewById(R.id.main_tab_layout);
avatarLayout = findViewById(R.id.avatar_image_layout);
viewClose = findViewById(R.id.view_close);
avatarImage = findViewById(R.id.avatar_image);
userLivingView = findViewById(R.id.liv_user);
userLivingView.setColor(Color.WHITE);
mMainTabLayout.setOnTabClickListener(this);
anchorCardView = findViewById(R.id.vs_anchor_card);
mMainTabLayout.setDefaultTabType(mCurrentTabType);
}
private void updateDatas() {
handleNimIntent();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
//这里退出登录实际上mainActivity是没有销毁的当从linkme 调起来时候这里需要检查一下登录状态。
if (TextUtils.isEmpty(AuthModel.get().getTicket())) {
onNeedLogin();
return;
}
onParseIntent();
handleNimIntent();
InitialModel.get().regionCheck();
}
private void onParseIntent() {
Intent intent = getIntent();
if (intent.hasExtra(EXTRA_APP_QUIT)) {
onLogout();
} else if (intent.hasExtra(Extras.EXTRA_JUMP_P2P)) {
Intent data = intent.getParcelableExtra(Extras.EXTRA_DATA);
String account = data.getStringExtra(Extras.EXTRA_ACCOUNT);
if (!TextUtils.isEmpty(account)) {
NimP2PMessageActivity.start(this, account);
}
} else if (intent.hasExtra(MSG_TAB) && intent.getBooleanExtra(MSG_TAB, false)) {
if (mMainTabLayout != null) {
mMainTabLayout.setDefaultTabType(MainTabType.TAB_TYPE_MSG);
}
}
}
private void initMaterialView() {
avatarLayout.setVisibility(View.GONE);
avatarImage.setOnClickListener(this);
viewClose.setOnClickListener(this);
}
@Override
protected void onDestroy() {
CleanLeakUtils.fixInputMethodManagerLeak(MainActivity.this);
super.onDestroy();
if (resumeGameDialogManager != null) {
resumeGameDialogManager.dismissDialog();
}
ImInitHelper.get().unInit();
EventBus.getDefault().unregister(this);
stopRoomMinAnim();
if (limitEnterRoomHelper != null) {
limitEnterRoomHelper.release();
}
IMBroadcastManager.get().onDestroy();
}
/**
* 双击返回键退出
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
/**
* 防止华为机型未加入白名单时按返回键回到桌面再锁屏后几秒钟进程被杀
*/
try {
Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
launcherIntent.addCategory(Intent.CATEGORY_HOME);
startActivity(launcherIntent);
} catch (Throwable e) {
e.printStackTrace();
}
try {
moveTaskToBack(false);
} catch (Exception e) {
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
try {
moveTaskToBack(false);
} catch (Exception e) {
e.printStackTrace();
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLoginEvent(LoginEvent event) {
onLogin(AuthModel.get().getCurrentUid());
}
/**
* 检查是否绑定手机
*/
private void checkBindPhone() {
BindPhoneActivity.start(context);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLogoutEvent(LogoutEvent event) {
PwdCodeMgr.get().onLogout();
onLogout();
}
@SuppressLint("CheckResult")
public void onLogin(long uid) {
Logger.e(TAG, "onLogin Success ~~~~");
Log.i("checkLostUser", "onLogin");
int unreadCount = IMMessageManager.get().queryUnreadMsg();
mMainTabLayout.setMsgNum(unreadCount);
openCommunityNotice();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLoadLoginUserInfoEvent(LoadLoginUserInfoEvent event) {
firstLoadedUserInfo();
InitialModel.get().regionCheck();
}
public void onLogout() {
Logger.e(TAG, "onLogout Success ~~~~");
getMvpPresenter().exitRoom();
LoginPasswordActivity.start(MainActivity.this);
PmDialogShowMrg.get().onLogout();
finish();
}
public void onNeedLogin() {
NimMiddleActivity.openCommunity = false;
LoginPasswordActivity.start(MainActivity.this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onKickedOutEvent(KickOutEvent event) {
toast(getString(R.string.you_have_been_kicked_offline));
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onReceiveRecentContactChanged(List<RecentContact> imMessages) {
int countIgnore = 0;
for (RecentContact recentContact : imMessages) {
if (recentContact.getSessionType() == SessionTypeEnum.Team) {
Team team = NIMClient.getService(TeamService.class).queryTeamBlock(recentContact.getContactId());
if (team != null && team.getMessageNotifyType() == TeamMessageNotifyTypeEnum.Mute) {
countIgnore += recentContact.getUnreadCount();
}
}
}
int unreadCount = IMMessageManager.get().queryUnreadMsg() + countIgnore;
mMainTabLayout.setMsgNum(unreadCount);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onNeedCompleteInfo(NeedCompleteInfoEvent event) {
getDialogManager().dismissDialog();
UIHelper.showAddInfoAct(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLoginUserInfoUpdateEvent(LoginUserInfoUpdateEvent event) {
int unreadCount = IMMessageManager.get().queryUnreadMsg();
mMainTabLayout.setMsgNum(unreadCount);
}
@SuppressLint("CheckResult")
private void updateRoomState() {
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
if (roomInfo != null) {
displayAvatarLayout(roomInfo.getAvatar(), roomInfo.getTitle(), roomInfo.getUid());
}
}
private void startRoomMinAnim() {
roomMinAnim = ObjectAnimator.ofFloat(avatarImage, "rotation", 0f, 360f);
roomMinAnim.setDuration(10000);
roomMinAnim.setRepeatCount(-1);
roomMinAnim.setInterpolator(new LinearInterpolator());
roomMinAnim.start();
}
private void stopRoomMinAnim() {
if (roomMinAnim != null) {
roomMinAnim.cancel();
roomMinAnim = null;
}
}
@SuppressLint("SetTextI18n")
private void displayAvatarLayout(String avatar, String nickName, long uid) {
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
if (roomInfo != null) {
avatarLayout.clearAnimation();
avatarLayout.setVisibility(View.VISIBLE);
userLivingView.start();
stopRoomMinAnim();
startRoomMinAnim();
ImageLoadUtils.loadAvatar(MainActivity.this, avatar, avatarImage);
}
}
public void onEnter(RoomInfo roomInfo) {
updateRoomState();
DaemonService.start(this, roomInfo);
}
@SuppressLint("RestrictedApi")
@Override
public void onTabClick(int tabType) {
Fragment showFragment = fragmentArray.get(tabType);
if (showFragment == tempFragment) return;
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
if (!showFragment.isAdded()) {
transaction.add(R.id.main_fragment, showFragment, null);
}
transaction.show(showFragment);
if (tempFragment != null) {
transaction.hide(tempFragment);
}
tempFragment = showFragment;
if (!isDestroyed()) {
transaction.commitNowAllowingStateLoss();
}
mCurrentTabType = tabType;
//每次点击我的都更新当前用户信息
if (mCurrentTabType == MainTabType.TAB_TYPE_ME) {
UserModel.get().updateCurrentUserInfo().subscribe();
}
switch (tabType) {
case MainTabType.TAB_TYPE_HOME:
reportTabClick(IReportConstants.ELEVEN);
break;
case MainTabType.TAB_TYPE_MSG:
reportTabClick(IReportConstants.THIRTEEN);
break;
case MainTabType.TAB_TYPE_ME:
reportTabClick(IReportConstants.FOURTEEN);
break;
}
}
/**
* 导航栏tab板块点击
*
* @param type
*/
private void reportTabClick(int type) {
//登录页展示时
HashMap<String, Object> map = new HashMap<>(3);
map.put(IReportConstants.HOMEPAGE_TYPE, type);
map.put(IReportConstants.MODULE, IReportConstants.MOLISTAR_HOMEPAGE);
ReportManager.get().reportEvent(IReportConstants.MODULE_HOMEPAGE_CLICK, map);
}
@Override
public void exitRoom(RoomInfo roomInfo) {
closeOpenRoomAnimation();
DaemonService.stop(MainActivity.this);
}
/**
* 第一次加载到用户信息
*/
@SuppressLint("CheckResult")
private void firstLoadedUserInfo() {
//青少年弹窗处理
PmDialogShowMrg.get().handle(new WeakReference<>(this));
handleChannelPageInfo();
checkProtocolUpdate();
// 互动消息未读数量
HomeModel.INSTANCE.getUnreadCount(AuthModel.get().getCurrentUid())
.compose(bindUntilEvent(ActivityEvent.DESTROY))
.subscribe((integer, throwable) -> {
if (integer != null) {
EventBus.getDefault().post(new UnReadCountEvent(integer));
}
});
// checkShowAnchorCardView();
}
@SuppressLint("CheckResult")
private void checkProtocolUpdate() {
UserModel.get()
.getProtocolInfo()
.compose(bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(protocolInfo -> {
float version = (float) SharedPreferenceUtils.get(ProtocolUpdateDialog.SP_KEY, 0f);
//第一次打开APP不弹,因为闪屏页已经弹了!
if (version == 0f) {
SharedPreferenceUtils.put(ProtocolUpdateDialog.SP_KEY, protocolInfo.getVer());
} else if (version < protocolInfo.getVer()) {
new ProtocolUpdateDialog(MainActivity.this, protocolInfo).show();
}
});
}
/**
* 跳转优先级 闪屏→linkedMe→邀请码→新用户打招呼引导→渠道指定房间
*/
@SuppressLint("CheckResult")
private void handleChannelPageInfo() {
if (handleSplashJump()) return;
if (handleLinkedJump(this)) return;
//渠道落地页和邀请码跳转只需要完善资料后处理一次
String spKey = KEY_FLAG_VALID_CHANNEL_PAGE + AuthModel.get().getCurrentUid();
if ((boolean) SharedPreferenceUtils.get(spKey, true)) {
SharedPreferenceUtils.put(spKey, false);
checkInviteUserInRoom();
}
}
/**
* 检查邀请码跳转
*/
@SuppressLint("CheckResult")
private void checkInviteUserInRoom() {
if (!TextUtils.isEmpty(AddUserInfoFragment.INVITE_USER_CODE)) {
ChannelPageModel.get().checkInviteUserInRoom(AddUserInfoFragment.INVITE_USER_CODE)
.subscribe(inviteUserInfo -> {
if (inviteUserInfo.isInRoom()) {
if (inviteUserInfo.getFromType() == 0) {
AVRoomActivity.start(context, inviteUserInfo.getRoomUid());
} else {
AVRoomActivity.startForFromType(context,
inviteUserInfo.getRoomUid(),
inviteUserInfo.getFromType(),
inviteUserInfo.getInviteNick(),
String.valueOf(inviteUserInfo.getInviteUid()));
}
} else {
checkNewUserInRoom();
}
}, throwable -> checkNewUserInRoom());
AddUserInfoFragment.INVITE_USER_CODE = "";
} else {
checkNewUserInRoom();
}
}
@SuppressLint("CheckResult")
private void checkNewUserInRoom() {
ChannelPageModel.get().checkNewUserInRoom()
.subscribe(newUserHelloInfo -> {
if (newUserHelloInfo.getSayHello()) {
NewUserHelloDialog.Companion.newInstance(newUserHelloInfo).show(context);
} else {
checkChannelPageInRoom();
}
}, throwable -> checkChannelPageInRoom());
}
/**
* 处理渠道落地页
*/
@SuppressLint("CheckResult")
private void checkChannelPageInRoom() {
GameHomeModel.get().getRoomShortcut()
.compose(bindUntilEvent(ActivityEvent.DESTROY))
.subscribe(uid -> {
if (StringFormatUtils.toLong(uid) != 0) {
AVRoomActivity.start(context, StringFormatUtils.toLong(uid));
}
},
Throwable::printStackTrace);
}
/**
* @return true 如果处理了跳转
*/
private boolean handleSplashJump() {
if (getIntent().hasExtra("url") && getIntent().hasExtra("type")) {
LogUtil.print(getString(R.string.clicked_the_splash_screen));
//如果没有渠道页,就按原来的逻辑即可
int type = getIntent().getIntExtra("type", 0);
String url = getIntent().getStringExtra("url");
if (type == 3) {
Intent intent = new Intent(context, CommonWebViewActivity.class);
intent.putExtra("url", url);
startActivity(intent);
} else if (type == 2) {
AVRoomActivity.start(context, Long.parseLong(url));
} else {
return false;
}
return true;
}
return false;
}
public LimitEnterRoomHelper getLimitEnterRoomHelper() {
if (limitEnterRoomHelper == null) {
limitEnterRoomHelper = new LimitEnterRoomHelper();
}
return limitEnterRoomHelper;
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onImPushMsgPmLimitTimeEvent(ImPushMsgPmLimitTimeEvent event) {
//先判断Avroom存不存在存在的话则不处理avroom会处理
Activity reference = App.gStack.getAvRoomActivity();
if (reference != null) {
return;
}
getLimitEnterRoomHelper().handleThisContext(this, event.getData(), true, this::handlePmExitRoom);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPmDismissAllLimitDialogEvent(PmDismissAllLimitDialogEvent event) {
if (limitEnterRoomHelper != null) {
limitEnterRoomHelper.dismissDialog();
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void SquarePublish(SquareTaskEvent event) {
}
private void handlePmExitRoom() {
if (AvRoomDataManager.get().mCurrentRoomInfo != null) {
closeOpenRoomAnimation();
getMvpPresenter().exitRoom();
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onCloseMinRoomEvent(CloseMinRoomEvent event) {
//如果房间存在,就关闭
if (AvRoomDataManager.get().mCurrentRoomInfo != null) {
handlePmExitRoom();
}
}
/**
* 处理开房限制时长
*/
public void handleOpenRoomWhenPmLimit(String error) {
getLimitEnterRoomHelper().handleThisContext(this, error, false, this::handlePmExitRoom);
}
/**
* 云信通知栏跳转的处理
*/
private void handleNimIntent() {
openCommunityNotice();
Intent intent = getIntent();
if (intent == null) {
return;
}
boolean isNimPush = intent.getBooleanExtra(NimMiddleActivity.EXTRA_IS_NIM_PUSH, false);
if (isNimPush && mMainTabLayout != null) {
mMainTabLayout.setDefaultTabType(MainTabType.TAB_TYPE_MSG);
}
}
/**
* 点击互动通知通知栏,重启进程打开互动通知页
*/
private void openCommunityNotice() {
if (NimMiddleActivity.delayOpenCommunity) {
return;
}
if (NimMiddleActivity.openCommunity) {
NimMiddleActivity.openCommunity = false;
if (NimMiddleActivity.skipType == 0) return;
new Handler().postDelayed(() -> {
if (NimMiddleActivity.skipType == PushMessageHandler.PAYLOAD_SKIPTYPE_INVITE_FANS &&
NimMiddleActivity.payloadUid > 0) {
AVRoomActivity.start(MainActivity.this, NimMiddleActivity.payloadUid);
} else if (NimMiddleActivity.skipType == PushMessageHandler.PAYLOAD_SKIPTYPE_PRIVATE_MSG &&
NimMiddleActivity.payloadUid > 0) {
NimP2PMessageActivity.start(MainActivity.this, NimMiddleActivity.payloadUid + "");
} else if (NimMiddleActivity.skipType == PushMessageHandler.PAYLOAD_SKIPTYPE_H5 &&
!TextUtils.isEmpty(NimMiddleActivity.payloadUrl)) {
CommonWebViewActivity.start(MainActivity.this, NimMiddleActivity.payloadUrl);
}
}, 2000);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onNeedBindPhoneEvent(NeedBindPhoneEvent event) {
// checkBindPhone();
}
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void onVisitorUnreadCountEvent(VisitorUnreadCountEvent event) {
if (mMainTabLayout != null) {
mMainTabLayout.setUnreadVisitorCount(event.getVisitNum());
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.avatar_image:
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
if (roomInfo != null) {
AVRoomActivity.start(MainActivity.this, roomInfo.getUid());
} else {
toast(getString(R.string.room_information_is_empty));
}
break;
case R.id.view_close:
MainActivity.this.getMvpPresenter().exitRoom();
break;
}
}
@Override
protected boolean needSteepStateBar() {
return true;
}
@Override
protected void setStatusBar() {
super.setStatusBar();
StatusBarUtil.transparencyBar(this);
StatusBarUtil.StatusBarLightMode(this);
}
}

View File

@@ -0,0 +1,4 @@
package com.chwl.app
interface MainTabContentView {
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu;
package com.chwl.app;
import android.content.Intent;
import android.os.Bundle;
@@ -10,19 +10,18 @@ import com.coorchice.library.utils.LogUtils;
import com.netease.nimlib.sdk.NimIntent;
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.yizhuan.habu.avroom.activity.AVRoomActivity;
import com.yizhuan.habu.base.BaseActivity;
import com.yizhuan.habu.radish.signin.SignInActivity;
import com.yizhuan.habu.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.habu.ui.webview.CommonWebViewActivity;
import com.yizhuan.habu.utils.PushMessageHandler;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomInviteFansAttachment;
import com.yizhuan.xchat_android_library.utils.UIUtils;
import com.chwl.app.avroom.activity.AVRoomActivity;
import com.chwl.app.base.BaseActivity;
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
import com.chwl.app.ui.webview.CommonWebViewActivity;
import com.chwl.app.utils.PushMessageHandler;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.im.custom.bean.CustomAttachment;
import com.chwl.core.im.custom.bean.OpenRoomNotiAttachment;
import com.chwl.core.im.custom.bean.OpenSignInAttachment;
import com.chwl.core.im.custom.bean.RedPackageAttachment;
import com.chwl.core.im.custom.bean.RoomInviteFansAttachment;
import com.chwl.library.utils.UIUtils;
import java.util.ArrayList;
import java.util.Map;
@@ -106,11 +105,6 @@ public class NimMiddleActivity extends BaseActivity {
if (noticeAttachment.getUid() > 0) {
AVRoomActivity.start(this, noticeAttachment.getUid());
}
} else if (attachment instanceof OpenSignInAttachment) {
if (AuthModel.get().isImLogin()
&& !UIUtils.isTopActivity(this, SignInActivity.class.getSimpleName())) {
SignInActivity.start(this);
}
} else if (attachment.getFirst() == CustomAttachment.CUSTOM_MSG_RED_PACKAGE) {
if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND) {
RedPackageAttachment redPackageAttachment = (RedPackageAttachment) attachment;

View File

@@ -1,22 +1,21 @@
package com.yizhuan.habu;
package com.chwl.app;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import com.yizhuan.habu.audio.MyVoiceActivity;
import com.yizhuan.habu.audio.RecordingVoiceActivity;
import com.yizhuan.habu.audio.SoundSignatureActivity;
import com.yizhuan.habu.ui.login.AddUserInfoActivity;
import com.yizhuan.habu.ui.login.ModifyInfoActivity;
import com.yizhuan.habu.ui.setting.SettingActivity;
import com.yizhuan.habu.ui.user.activity.EditUserLabelActivity;
import com.yizhuan.habu.ui.user.activity.UserInfoActivity;
import com.yizhuan.habu.ui.user.activity.UserInfoModifyActivity;
import com.yizhuan.habu.ui.user.activity.UserModifyPhotosActivity;
import com.yizhuan.habu.ui.webview.CommonWebViewActivity;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.chwl.app.audio.MyVoiceActivity;
import com.chwl.app.audio.RecordingVoiceActivity;
import com.chwl.app.audio.SoundSignatureActivity;
import com.chwl.app.ui.login.AddUserInfoActivity;
import com.chwl.app.ui.login.ModifyInfoActivity;
import com.chwl.app.ui.setting.SettingActivity;
import com.chwl.app.ui.user.activity.UserInfoActivity;
import com.chwl.app.ui.user.activity.UserInfoModifyActivity;
import com.chwl.app.ui.user.activity.UserModifyPhotosActivity;
import com.chwl.app.ui.webview.CommonWebViewActivity;
import com.chwl.core.UriProvider;
import com.chwl.core.user.bean.UserInfo;
/**
@@ -108,12 +107,7 @@ public class UIHelper {
public static void showMonsterResult(Context context, String monsterId) {
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL +
"/anan_vestBag/modules/monster/index.html?monsterId=" + monsterId);
}
public static void showLabelInfoAct(Activity mActivity, int requestCode) {
Intent intent = new Intent(mActivity, EditUserLabelActivity.class);
mActivity.startActivityForResult(intent, requestCode);
"/molistar/modules/monster/index.html?monsterId=" + monsterId);
}
/**
@@ -132,11 +126,11 @@ public class UIHelper {
*/
public static void showRecommendPosH5(Context context) {
String cardUrl = UriProvider.JAVA_WEB_URL +
"/anan_vestBag/modules/recommend-card/index.html";
"/molistar/modules/recommend-card/index.html";
CommonWebViewActivity.start(context, cardUrl);
}
public static void openContactUs(Context context) {
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL + "/anan_vestBag/modules/contact/contact.html");
CommonWebViewActivity.start(context, UriProvider.IM_SERVER_URL + "/molistar/modules/contact/contact.html");
}
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu;
package com.chwl.app;
import android.content.Context;
import android.content.Intent;
@@ -8,8 +8,8 @@ import android.widget.ImageView;
import androidx.viewpager.widget.ViewPager;
import com.yizhuan.habu.base.BaseActivity;
import com.yizhuan.xchat_android_core.PreferencesUtils;
import com.chwl.app.base.BaseActivity;
import com.chwl.core.PreferencesUtils;
public class UserGuideActivity extends BaseActivity {

View File

@@ -0,0 +1,576 @@
package com.chwl.app.application;
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_OPEN_ROOM_NOTI;
import android.annotation.SuppressLint;
import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Color;
import android.net.http.HttpResponseCache;
import android.os.Build;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.util.Supplier;
import androidx.multidex.MultiDex;
import com.alibaba.android.arouter.launcher.ARouter;
import com.bumptech.glide.request.target.ViewTarget;
import com.chwl.app.support.IMUserInfoProvider;
import com.chwl.library.language.LanguageHelper;
import com.coorchice.library.utils.LogUtils;
import com.example.lib_utils.ServiceTime;
import com.hjq.toast.ToastUtils;
import com.liulishuo.filedownloader.FileDownloader;
import com.netease.nim.uikit.api.NimUIKit;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.NotificationFoldStyle;
import com.netease.nimlib.sdk.SDKOptions;
import com.netease.nimlib.sdk.StatusBarNotificationConfig;
import com.netease.nimlib.sdk.mixpush.MixPushConfig;
import com.netease.nimlib.sdk.mixpush.NIMPushClient;
import com.netease.nimlib.sdk.msg.MessageNotifierCustomization;
import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.netease.nimlib.sdk.util.NIMUtil;
import com.opensource.svgaplayer.SVGAParser;
import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.Logger;
import com.scwang.smartrefresh.header.MaterialHeader;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.tencent.vasdolly.helper.ChannelReaderUtil;
import com.chwl.app.BuildConfig;
import com.chwl.app.NimMiddleActivity;
import com.chwl.app.R;
import com.chwl.app.common.app.ActivityStack;
import com.chwl.app.common.util.AppLifeCycleHelper;
import com.chwl.app.module_hall.HallDataManager;
import com.chwl.app.radish.wallet.RadishWalletManager;
import com.chwl.app.utils.PushMessageHandler;
import com.chwl.core.XConstants;
import com.chwl.core.Constants;
import com.chwl.core.DemoCache;
import com.chwl.core.UriProvider;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.bean.response.ServiceResult;
import com.chwl.core.channel.ChannelModel;
import com.chwl.core.family.model.FamilyModel;
import com.chwl.core.gift.GiftModel;
import com.chwl.core.im.custom.bean.CustomAttachment;
import com.chwl.core.im.custom.bean.OpenSignInAttachment;
import com.chwl.core.initial.InitialModel;
import com.chwl.core.interceptor.NoParamsInterceptor;
import com.chwl.core.interceptor.ParamsInterceptor;
import com.chwl.core.interceptor.TimeSyncInterceptor;
import com.chwl.core.manager.IMMessageManager;
import com.chwl.core.manager.IMSystemMsgManager;
import com.chwl.core.market_verify.MarketVerifyModel;
import com.chwl.core.pay.PayModel;
import com.chwl.core.radish.RadishModel;
import com.chwl.core.radish.signin.bean.ImNotice;
import com.chwl.core.room.face.DynamicFaceModel;
import com.chwl.core.user.UserModel;
import com.chwl.core.user.event.NeedCompleteInfoEvent;
import com.chwl.core.utils.SharedPreferenceUtils;
import com.chwl.core.utils.net.ServerException;
import com.chwl.library.common.application.BaseApp;
import com.chwl.library.common.application.Env;
import com.chwl.library.common.file.FileHelper;
import com.chwl.library.net.rxnet.RxNet;
import com.chwl.library.net.rxnet.converter.GsonConverterPlugins;
import com.chwl.library.utils.AppMetaDataUtil;
import com.chwl.library.utils.AppUtils;
import com.chwl.library.utils.DeviceUuidFactory;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import com.chwl.library.utils.SystemUtils;
import com.chwl.library.utils.VersionUtil;
import com.chwl.library.utils.codec.MD5Utils;
import com.chwl.library.utils.config.BasicConfig;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import io.reactivex.plugins.RxJavaPlugins;
import io.realm.Realm;
import io.realm.RealmConfiguration;
/**
* @author chenran
* @date 2017/2/11
*/
public class App extends BaseApp {
public static final String TAG = "XChatApplication";
public static Application gContext;
// 接收到退出登录事件(跳转到登录页了)
private static long logoutEventTime = 0;
private static final MessageNotifierCustomization messageNotifierCustomization = new MessageNotifierCustomization() {
@Override
public String makeNotifyContent(String nick, IMMessage message) {
if (message.getMsgType() == MsgTypeEnum.custom) {
CustomAttachment customAttachment = (CustomAttachment) message.getAttachment();
if (customAttachment.getFirst() == CUSTOM_MSG_HEADER_TYPE_OPEN_ROOM_NOTI) {
return message.getFromNick();
} else if (customAttachment instanceof OpenSignInAttachment) {
return getContentFromOpenSignIn(customAttachment);
}
}
// 采用SDK默认文案
return ResUtil.getString(R.string.erban_application_xchatapplication_01);
}
@Override
public String makeTicker(String nick, IMMessage message) {
if (message.getMsgType() == MsgTypeEnum.custom) {
CustomAttachment customAttachment = (CustomAttachment) message.getAttachment();
if (customAttachment != null) {
if (customAttachment.getFirst() == CUSTOM_MSG_HEADER_TYPE_OPEN_ROOM_NOTI) {
return message.getFromNick();
} else if (customAttachment instanceof OpenSignInAttachment) {
return getContentFromOpenSignIn(customAttachment);
}
}
}
// 采用SDK默认文案
return ResUtil.getString(R.string.erban_application_xchatapplication_02);
}
private String getContentFromOpenSignIn(CustomAttachment attachment) {
String result = null;
if (attachment instanceof OpenSignInAttachment) {
ImNotice notice = ((OpenSignInAttachment) attachment).getImNotice();
if (notice != null) {
result = notice.getContent();
}
}
if (TextUtils.isEmpty(result)) {
result = ResUtil.getString(R.string.erban_application_xchatapplication_03);
}
return result;
}
@Override
public String makeRevokeMsgTip(String s, IMMessage imMessage) {
return null;
}
@Override
public String makeCategory(IMMessage message) {
return null;
}
};
private static App instance;
//生命周期监听
private static AppLifeCycleHelper lifeCycleHelper;
public static ActivityStack gStack = new ActivityStack();
private static boolean isInitOtherSDK = false;
//static 代码段可以防止内存泄露
static {
SmartRefreshLayout.setDefaultRefreshHeaderCreater(
(context, layout) -> {
layout.setEnableHeaderTranslationContent(false);
MaterialHeader materialHeader = new MaterialHeader(context);
materialHeader.setShowBezierWave(false);
return materialHeader;
});
SmartRefreshLayout.setDefaultRefreshFooterCreater(
(context, layout) -> new ClassicsFooter(context).setDrawableSize(20));
}
public static App instance() {
return instance;
}
public static void initOtherSDK() {
if (isInitOtherSDK) return;
isInitOtherSDK = true;
Context context = BasicConfig.INSTANCE.getAppContext();
Application application = (Application) context.getApplicationContext();
// 初始化 sp
long startTime = System.currentTimeMillis();
String channel = "";
channel = ChannelReaderUtil.getChannel(instance);
Log.d("APP", "localChannel:" + channel);
if (TextUtils.isEmpty(channel)) {
channel = Constants.GOOGLE;
}
Log.d("APP", "finalChannel:" + channel);
BasicConfig.INSTANCE.setOriginalChannel(channel);
BasicConfig.INSTANCE.setChannel(channel);
initEnv();
// ARouter
if (isDebug()) { // These two lines must be written before init, otherwise these configurations will be invalid in the init process
ARouter.openLog(); // Print log
ARouter.openDebug(); // Turn on debugging mode (If you are running in InstantRun mode, you must turn on debug mode! Online version needs to be closed, otherwise there is a security risk)
}
ARouter.init(application); // As early as possible, it is recommended to initialize in the Application
//延迟初始化云信
NIMClient.init(context, null, options());
//logger 配置
Logger.addLogAdapter(new AndroidLogAdapter() {
@Override
public boolean isLoggable(int priority, String tag) {
return BuildConfig.DEBUG;
}
});
ToastUtils.init(application);
if (inMainProcess(context)) {
DemoCache.saveLaunchCount();
// 注册自定义推送消息处理,这个是可选项
NIMPushClient.registerMixPushMessageHandler(new PushMessageHandler());
RxJavaPlugins.setErrorHandler(throwable -> {
if (BuildConfig.DEBUG) {
Log.e(TAG, "the subscribe() method default error handler", throwable);
}
});
//需要完善资料错误码全局处理
GsonConverterPlugins.setResultHandler(result -> {
if (result instanceof ServiceResult<?>) {
ServiceResult<?> serviceResult = (ServiceResult<?>) result;
if (serviceResult.getCode() == ServiceResult.CODE_NEED_COMPLETE_USER_INFO) {
SingleToastUtil.showToast(serviceResult.getMessage());
EventBus.getDefault().post(new NeedCompleteInfoEvent());
throw new ServerException(serviceResult.getMessage(), serviceResult.getCode());
} else if (serviceResult.getCode() == 401) {
if ((ServiceTime.INSTANCE.getTime() - logoutEventTime) > 800) {
logoutEventTime = ServiceTime.INSTANCE.getTime();
SingleToastUtil.showToast(serviceResult.getMessage());
AuthModel.get().cleanLogInfo();
}
throw new ServerException(serviceResult.getMessage(), serviceResult.getCode());
}
}
return null;
});
GsonConverterPlugins.lockdown();
//fixed: Glide Exception:"You must not call setTag() on a view Glide is targeting"
ViewTarget.setTagId(R.id.tag_glide);
init(channel);
//生命周期监听
if (lifeCycleHelper == null) {
lifeCycleHelper = new AppLifeCycleHelper();
}
registerActivityLifecycleCallback(lifeCycleHelper);
// initLinkedMe();
// MobSDK.init(context);
// MobSDK.submitPolicyGrantResult(true);
}
LogUtils.d("init time = " + (System.currentTimeMillis() - startTime) + "ms");
}
public static void registerActivityLifecycleCallback(Application.ActivityLifecycleCallbacks callbacks) {
((Application) BasicConfig.INSTANCE.getAppContext().getApplicationContext()).registerActivityLifecycleCallbacks(callbacks);
}
// /**
// * 初始化linkedMe
// */
// private static void initLinkedMe() {
// MobSDK.init(instance, "32fd2f8457880", "ef796ca85e8cd95a76929663de133214");
// MobLink.setRestoreSceneListener(new RestoreSceneListener() {
// @Override
// public Class<? extends Activity> willRestoreScene(Scene scene) {
// return AgentActivity.class;
// }
//
// @Override
// public void completeRestore(Scene scene) {
// }
//
// @Override
// public void notFoundScene(Scene scene) {
// }
// });
// }
private static void initEnv() {
//首先初始化环境
Env.initEnv(BuildConfig.BUILD_TYPE, BuildConfig.DEBUG);
//切换生产坏境和测试环境 true/测试环境 false/生产环境
BasicConfig.INSTANCE.setDebuggable(Env.isDebug());
BasicConfig.INSTANCE.setRootDir(Constants.ERBAN_DIR_NAME);
BasicConfig.INSTANCE.setLogDir(Constants.LOG_DIR);
BasicConfig.INSTANCE.setConfigDir(Constants.CONFIG_DIR);
BasicConfig.INSTANCE.setVoiceDir(Constants.VOICE_DIR);
BasicConfig.INSTANCE.setCacheDir(Constants.CACHE_DIR);
BasicConfig.INSTANCE.setImageDir(Constants.IMAGE_CACHE_DIR);
com.example.lib_utils.log.LogUtil.INSTANCE.setConsolePrinterEnabled(BuildConfig.DEBUG);
}
/**
* 云信配置
*
* @return
*/
public static SDKOptions options() {
SDKOptions options = new SDKOptions();
options.disableAwake = true;
options.asyncInitSDK = true;
// options.customPushContentType = "";
if (isDebug()) {
options.checkManifestConfig = true;
}
// 如果将新消息通知提醒托管给 SDK 完成,需要添加以下配置。否则无需设置。
StatusBarNotificationConfig config = new StatusBarNotificationConfig();
// 点击通知栏跳转到该Activity
config.notificationEntrance = NimMiddleActivity.class;
// config.notificationSmallIconId = R.drawable.icon_msg_normal;
// 呼吸灯配置
config.ledARGB = Color.GREEN;
config.ledOnMs = 1000;
config.ledOffMs = 1500;
config.notificationFoldStyle = NotificationFoldStyle.CONTACT;
// 通知铃声的uri字符串
config.notificationSound = "android.resource://com.netease.nim.demo/raw/msg";
options.statusBarNotificationConfig = config;
// 定制通知栏提醒文案可选如果不定制将采用SDK默认文案
options.messageNotifierCustomization = messageNotifierCustomization;
options.appKey = Constants.nimAppKey;
// 配置保存图片文件log 等数据的目录
// 如果 options 中没有设置这个值SDK 会使用下面代码示例中的位置作为 SDK 的数据目录。
// 该目录目前包含 log, file, image, audio, video, thumb 这6个目录。
// 如果第三方 APP 需要缓存清理功能, 清理这个目录下面个子目录的内容即可。
String sdkPath = null;
try {
sdkPath = FileHelper.getRootCacheDir().getAbsolutePath() + "/nim";
} catch (ArrayIndexOutOfBoundsException e) {
}
options.sdkStorageRootPath = sdkPath;
// 配置是否需要预下载附件缩略图,默认为 true
options.preloadAttach = true;
// 配置附件缩略图的尺寸大小。表示向服务器请求缩略图文件的大小
// 该值一般应根据屏幕尺寸来确定, 默认值为 Screen.width / 2
int widthPixels = BasicConfig.INSTANCE.getAppContext().getResources().getDisplayMetrics().widthPixels;
options.thumbnailSize = widthPixels / 2;
// // save cache留做切换账号备用
DemoCache.setNotificationConfig(config);
MixPushConfig mixPushConfig = new MixPushConfig();
options.mixPushConfig = mixPushConfig;
return options;
}
/**
* 判断当前进程是否主进程
*
* @param context
* @return
*/
private static boolean inMainProcess(Context context) {
String packageName = context.getPackageName();
String processName = NIMUtil.getProcessName(context);
return packageName.equals(processName);
}
/**
* 初始化RxNet
*
* @param context
* @param url
*/
@SuppressLint("CheckResult")
public static void initRxNet(Context context, String url) {
Map<String, String> httpParams = new ConcurrentHashMap<>();
httpParams.put("os", "android");
httpParams.put("osVersion", Build.VERSION.RELEASE);
httpParams.put("app", XConstants.APP_MARK);
httpParams.put("ispType", String.valueOf(SystemUtils.getIspType(context)));
httpParams.put("netType", String.valueOf(SystemUtils.getNetworkType(context)));
httpParams.put("model", SystemUtils.getPhoneModel());
httpParams.put("appVersion", VersionUtil.getLocalName(context));
httpParams.put("appVersionCode", String.valueOf(AppUtils.getVersionCode(context)));
httpParams.put("deviceId", DeviceUuidFactory.getDeviceId(context));
httpParams.put("androidId", MD5Utils.getMD5String(Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID)));
httpParams.put("channel", AppMetaDataUtil.getChannelID());
httpParams.put("lang", LanguageHelper.INSTANCE.getSystemLanguage().toLanguageTag());
RxNet.init(context)
.debug(Env.isRealDebug())
.setBaseUrl(url)
.addInterceptors(new ParamsInterceptor(httpParams))
.addInterceptors(new NoParamsInterceptor())//注意:拦截器的添加顺序,请求的拦截顺序
.addInterceptors(new TimeSyncInterceptor())
.certificates()
.build();
//单例的model 初始化
initModel();
}
private static void init(String channel) {
initNimUIKit();
UriProvider.initUri(BuildConfig.BASE_URL_DEBUG, BuildConfig.BASE_URL_STAGING, BuildConfig.BASE_URL_RELEASE);
SVGAParser.Companion.shareParser().init(BasicConfig.INSTANCE.getAppContext());
try {
/** svga动画缓存路径 */
String cacheDirPath = FileHelper.getRootCacheDir().getAbsolutePath();
File cacheFie = new File(cacheDirPath, "cacheDir");
HttpResponseCache.install(cacheFie, 1024 * 1024 * 128);
} catch (IOException e) {
Log.e(TAG, "HttpResponseCache install error :" + e.getMessage());
}
initRxNet(BasicConfig.INSTANCE.getAppContext(), UriProvider.JAVA_WEB_URL);
/**
* 使用到realm 数据库,这里配置数据库 这里必须先于模块初始化前进行初始化配置
*/
Realm.init(BasicConfig.INSTANCE.getAppContext());
RealmConfiguration config = new RealmConfiguration.Builder()
.name("accompany.realm")
.deleteRealmIfMigrationNeeded()
.build();
Realm.setDefaultConfiguration(config);
FileDownloader.setup(BasicConfig.INSTANCE.getAppContext());
LogUtil.i(TAG, channel);
}
/**
* 一些单例的 model
*/
private static void initModel() {
DynamicFaceModel.get().init();
PayModel.get();
UserModel.get();
//ui层的萝卜钱包
RadishWalletManager.get();
//model层的
RadishModel.get();
IMMessageManager.get().init();
IMSystemMsgManager.get().init();
FamilyModel.Instance();
AuthModel.get();
ChannelModel.get();
MarketVerifyModel.get();
GiftModel.get();
GiftModel.get().tryLoadGiftList();
// 模厅
HallDataManager.get().application();
//全局处理
GlobalHandleManager.get().init();
InitialModel.get().init(true).subscribe();
//上报平台初始化
ReportManager.get().init();
}
private static void initNimUIKit() {
// 初始化
NimUIKit.init(BasicConfig.INSTANCE.getAppContext(), new IMUserInfoProvider(), null);
}
/**
* debug 环境 受到实验室模式影响
*/
public static boolean isDebug() {
return Env.isDebug();
}
/**
* 是否是真实的debug的环境 不受实验室模式影响
*
* @return
*/
public static boolean isRealDebug() {
return Env.isRealDebug();
}
/**
* 用户没同意隐私协议之前,啥也不干!!
*/
@Override
public void onCreate() {
super.onCreate();
instance = this;
BaseApp.init(this);
BasicConfig.INSTANCE.setAppContext(this.getApplicationContext());
SharedPreferenceUtils.init(this);
ResUtil.init(this);
ResUtil.contextSupplier = () -> App.gStack.getTopContext();
LanguageHelper.INSTANCE.wrapContext(instance);
initOtherSDK();
initContext(this);
//首次启动事件
HashMap<String, Object> map = new HashMap<>(2);
map.put(IReportConstants.MODULE, IReportConstants.MOLISTAR_ACTIVATE);
ReportManager.get().reportEvent(IReportConstants.ACTIVATE_FIRST, map);
}
/**
* 初始化Application实例
*/
public void initContext(Application application) {
gContext = application;
}
/**
* @return 获取Application实例
*/
public static Application getApplication() {
return gContext;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(base);
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
LanguageHelper.INSTANCE.wrapContext(this);
}
@Override
public void onTerminate() {
super.onTerminate();
GlobalHandleManager.get().unInit();
if (lifeCycleHelper != null) {
unregisterActivityLifecycleCallbacks(lifeCycleHelper);
}
}
}

View File

@@ -0,0 +1,115 @@
package com.chwl.app.application;
import android.app.Activity;
import com.chwl.app.avroom.newuserchargegift.NewUserChargePrizeDialog;
import com.chwl.app.relation.cp.dialog.CpGlobalDialog;
import com.chwl.app.ui.widget.LevelUpDialog;
import com.chwl.app.ui.widget.RecallDialog;
import com.chwl.app.vip.dialog.VipUpgradeDialog;
import com.chwl.core.level.event.CharmLevelUpEvent;
import com.chwl.core.level.event.LevelUpEvent;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.pay.event.NewUserChargeEvent;
import com.chwl.core.recall.bean.CheckLostUserInfo;
import com.chwl.core.recall.event.CheckLostUserEvent;
import com.chwl.core.relation.cp.bean.CpInviteInfo;
import com.chwl.core.upgrade.event.ImPushUpdateAppEvent;
import com.chwl.core.user.UserModel;
import com.chwl.core.utils.SharedPreferenceUtils;
import com.chwl.core.vip.VipUpgradeEvent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
/**
* 全局处理比如App弹窗
* create by lvzebiao @2019/8/14
*/
public class GlobalHandleManager {
private GlobalHandleManager() {
}
public static GlobalHandleManager get() {
return Helper.INSTANCE;
}
public void init() {
EventBus.getDefault().register(this);
}
public void unInit() {
EventBus.getDefault().unregister(this);
}
public Activity getActivity() {
return App.gStack.getTopActivity();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onImPushUpdateAppEvent(ImPushUpdateAppEvent event) {
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onVipUpgradeEvent(VipUpgradeEvent vipUpgradeEvent) {
Activity activity = getActivity();
if (activity == null) return;
UserModel.get().onlyUpdateLoginUserInfoCache();
VipUpgradeDialog.newInstance(vipUpgradeEvent.getVipInfo()).show(activity);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onCpInviteEvent(CpInviteInfo entity) {
Activity activity = getActivity();
if (activity == null) return;
CpGlobalDialog.newInstance(entity, activity).openDialog();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onNewUserChargeEvent(NewUserChargeEvent event) {
Activity activity = getActivity();
if (activity == null) return;
new NewUserChargePrizeDialog(activity, event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onReceiveRecallStatus(CheckLostUserEvent event) {
Activity activity = getActivity();
if (activity == null) return;
//如果没有获取到当前登录用户的信息,不弹出提示
if (UserModel.get().getCacheLoginUserInfo() == null) {
return;
}
CheckLostUserInfo checkLostUserInfo = (CheckLostUserInfo) event.getData();
boolean goBackOnce = (boolean) SharedPreferenceUtils.get(RecallDialog.GO_BACK_ONCE, false);
if (!goBackOnce && !event.isFailed() && checkLostUserInfo.isLostUser() && !checkLostUserInfo.isClaimedAward())
RecallDialog.start(activity);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onReceiveLevelUpActivity(LevelUpEvent event) {
Activity activity = getActivity();
if (activity == null) return;
if (AvRoomDataManager.get().isSelfGamePlaying()) return;
LevelUpDialog.start(activity, event.getLevelName(), true);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onReceiveCharmLevelUpActivity(CharmLevelUpEvent event) {
Activity activity = getActivity();
if (activity == null) return;
if (AvRoomDataManager.get().isSelfGamePlaying()) return;
LevelUpDialog.start(activity, event.getLevelName(), false);
}
private static final class Helper {
private static final GlobalHandleManager INSTANCE = new GlobalHandleManager();
}
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.application;
package com.chwl.app.application;
/**
* Created by wushaocheng on 2022/11/10.
@@ -32,9 +32,9 @@ public interface IReportConstants {
int FIFTEEN = 15;
String ACTIVATE_FIRST = "activate_first";
String PEKO_ACTIVATE = "peko_activate";
String MOLISTAR_ACTIVATE = "molistar_activate";
String AGREEMENT_SHOW = "agreement_show";
String PEKO_LOGIN = "peko_login";
String MOLISTAR_LOGIN = "molistar_login";
String AGREEMENT_CLICK = "agreement_click";
String CLICK_TYPE = "click_type";
String PAGE = "page";
@@ -47,7 +47,7 @@ public interface IReportConstants {
String FAIL_DETAIL = "fail_detail";
String MODULE_HOMEPAGE_CLICK = "module_homepage_click";
String HOMEPAGE_TYPE = "homepage_type";
String PEKO_HOMEPAGE = "peko_homepage";
String MOLISTAR_HOMEPAGE = "molistar_homepage";
String TAB_HOMEPAGE_CLICK = "tab_homepage_click";
String HOMEPAGE_TAB = "homepage_tab";
String PAYPAGE_SHOW = "paypage_show";
@@ -55,6 +55,6 @@ public interface IReportConstants {
String ACCOUNT_BALANCE = "account_balance";
String PAY_CLICK = "pay_click";
String MONEY = "money";
String PEKO_PAY = "peko_pay";
String MOLISTAR_PAY = "molistar_pay";
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.application;
package com.chwl.app.application;
import android.os.Bundle;

View File

@@ -0,0 +1,63 @@
package com.chwl.app.application;
import android.os.Bundle;
import java.util.Map;
/**
* 统一埋点事件
* create by lvzebiao @2019/8/14
*/
public class ReportManager implements IReportService {
private static final String TAG = "ReportManager";
private ReportManager() {
}
private static final class Helper {
private static final ReportManager INSTANCE = new ReportManager();
}
public static ReportManager get() {
return Helper.INSTANCE;
}
public void init() {
}
/**
* 设置FirebaseAnalytics公共属性
*
* @param bundle 公共属性
*/
@Override
public void setFirebaseAnalyticsDefaultEventParameters(Bundle bundle) {
}
/**
* 埋点,不需要上报网络质量和事件耗时
*
* @param eventId 事件名称
*/
@Override
public void reportEvent(String eventId) {
reportEvent(eventId, null);
}
/**
* 埋点
*
* @param eventId 事件名称
* @param map 事件参数和值
*/
@Override
public void reportEvent(String eventId, Map<String, Object> map) {
}
@Override
public void reportAdjustEvent(String eventId) {
}
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio;
package com.chwl.app.audio;
import android.annotation.SuppressLint;
import android.content.Intent;
@@ -12,20 +12,20 @@ import com.netease.nimlib.sdk.media.player.OnPlayListener;
import com.netease.nimlib.sdk.media.record.AudioRecorder;
import com.netease.nimlib.sdk.media.record.IAudioRecordCallback;
import com.netease.nimlib.sdk.media.record.RecordType;
import com.yizhuan.habu.R;
import com.yizhuan.habu.base.BaseViewBindingActivity;
import com.yizhuan.habu.common.widget.dialog.DialogManager;
import com.yizhuan.habu.databinding.ActivityAudiorecordBinding;
import com.yizhuan.xchat_android_core.audio.AudioPlayAndRecordManager;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.file.FileModel;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.log.MLog;
import com.chwl.app.R;
import com.chwl.app.base.BaseViewBindingActivity;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.app.databinding.ActivityAudiorecordBinding;
import com.chwl.core.audio.AudioPlayAndRecordManager;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.file.FileModel;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.room.bean.RoomInfo;
import com.chwl.core.room.model.AvRoomModel;
import com.chwl.core.user.UserModel;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.log.MLog;
import java.io.File;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio;
package com.chwl.app.audio;
import android.Manifest;
import android.annotation.SuppressLint;
@@ -10,21 +10,21 @@ import android.view.View;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.yizhuan.habu.R;
import com.yizhuan.habu.UIHelper;
import com.yizhuan.habu.audio.adapter.MyVoiceListAdapter;
import com.yizhuan.habu.audio.helper.AudioPlayerHelper;
import com.yizhuan.habu.audio.presenter.MyVoicePresenter;
import com.yizhuan.habu.audio.view.IMyVoiceView;
import com.yizhuan.habu.base.BaseMvpActivity;
import com.yizhuan.habu.common.NoDataFragment;
import com.yizhuan.habu.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.habu.ui.widget.recyclerview.decoration.HorizontalDecoration;
import com.yizhuan.xchat_android_core.audio.bean.UserVoiceInfo;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.log.MLog;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.audio.adapter.MyVoiceListAdapter;
import com.chwl.app.audio.helper.AudioPlayerHelper;
import com.chwl.app.audio.presenter.MyVoicePresenter;
import com.chwl.app.audio.view.IMyVoiceView;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.app.common.NoDataFragment;
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
import com.chwl.app.ui.widget.recyclerview.decoration.HorizontalDecoration;
import com.chwl.core.audio.bean.UserVoiceInfo;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.log.MLog;
import java.util.List;
@@ -98,7 +98,7 @@ public class MyVoiceActivity extends BaseMvpActivity<IMyVoiceView, MyVoicePresen
private void playVoice(String voice) {
// AudioEngineManager.get().setOpenVoiceMatchActivity(true);
// PlayerModel.get().pause();
AudioPlayerHelper.get().playInThread(voice, new com.yizhuan.habu.audio.helper.OnPlayListener() {
AudioPlayerHelper.get().playInThread(voice, new com.chwl.app.audio.helper.OnPlayListener() {
@Override
public void onError(String error) {
if (adapter != null) {

View File

@@ -1,8 +1,8 @@
package com.yizhuan.habu.audio;
package com.chwl.app.audio;
import static com.yizhuan.habu.audio.presenter.RecordingVoicePresenter.STATE_RECORD_NORMAL;
import static com.yizhuan.habu.audio.presenter.RecordingVoicePresenter.STATE_RECORD_RECORDING;
import static com.yizhuan.habu.audio.presenter.RecordingVoicePresenter.STATE_RECORD_SUCCESS;
import static com.chwl.app.audio.presenter.RecordingVoicePresenter.STATE_RECORD_NORMAL;
import static com.chwl.app.audio.presenter.RecordingVoicePresenter.STATE_RECORD_RECORDING;
import static com.chwl.app.audio.presenter.RecordingVoicePresenter.STATE_RECORD_SUCCESS;
import android.Manifest;
import android.animation.Animator;
@@ -28,24 +28,24 @@ import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.yizhuan.habu.R;
import com.yizhuan.habu.audio.adapter.CardAdapter;
import com.yizhuan.habu.audio.helper.AudioPlayerHelper;
import com.yizhuan.habu.audio.presenter.RecordingVoicePresenter;
import com.yizhuan.habu.audio.view.IRecordingVoiceView;
import com.yizhuan.habu.audio.widget.OnSwipeListener;
import com.yizhuan.habu.audio.widget.RingProgressView;
import com.yizhuan.habu.audio.widget.VoiceCardConfig;
import com.yizhuan.habu.audio.widget.VoiceCardItemTouchHelperCallback;
import com.yizhuan.habu.audio.widget.VoiceCardLayoutManager;
import com.yizhuan.habu.audio.widget.VoiceCardRecyclerView;
import com.yizhuan.habu.audio.widget.VoiceWave;
import com.yizhuan.habu.base.BaseMvpActivity;
import com.yizhuan.habu.common.widget.dialog.DialogManager;
import com.yizhuan.xchat_android_core.audio.bean.VoiceCardInfo;
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.chwl.app.R;
import com.chwl.app.audio.adapter.CardAdapter;
import com.chwl.app.audio.helper.AudioPlayerHelper;
import com.chwl.app.audio.presenter.RecordingVoicePresenter;
import com.chwl.app.audio.view.IRecordingVoiceView;
import com.chwl.app.audio.widget.OnSwipeListener;
import com.chwl.app.audio.widget.RingProgressView;
import com.chwl.app.audio.widget.VoiceCardConfig;
import com.chwl.app.audio.widget.VoiceCardItemTouchHelperCallback;
import com.chwl.app.audio.widget.VoiceCardLayoutManager;
import com.chwl.app.audio.widget.VoiceCardRecyclerView;
import com.chwl.app.audio.widget.VoiceWave;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.core.audio.bean.VoiceCardInfo;
import com.chwl.core.room.model.AvRoomModel;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.utils.ResUtil;
import java.lang.ref.WeakReference;
import java.util.ArrayList;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio
package com.chwl.app.audio
import android.Manifest
import android.annotation.SuppressLint
@@ -17,17 +17,17 @@ import com.opensource.svgaplayer.SVGADrawable
import com.opensource.svgaplayer.SVGAImageView
import com.opensource.svgaplayer.SVGAParser
import com.opensource.svgaplayer.SVGAVideoEntity
import com.yizhuan.habu.R
import com.yizhuan.habu.audio.helper.AudioPlayerHelper
import com.yizhuan.habu.audio.viewmodel.SoundViewModel
import com.yizhuan.habu.base.BaseViewBindingActivity
import com.yizhuan.habu.databinding.ActivitySoundSignatureBinding
import com.yizhuan.habu.ui.widget.dialog.CommonDialog
import com.yizhuan.xchat_android_core.file.FileModel
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
import com.yizhuan.xchat_android_core.user.bean.UserInfo.SoundBean
import com.yizhuan.xchat_android_library.utils.ResUtil
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
import com.chwl.app.R
import com.chwl.app.audio.helper.AudioPlayerHelper
import com.chwl.app.audio.viewmodel.SoundViewModel
import com.chwl.app.base.BaseViewBindingActivity
import com.chwl.app.databinding.ActivitySoundSignatureBinding
import com.chwl.app.ui.widget.dialog.CommonDialog
import com.chwl.core.file.FileModel
import com.chwl.core.manager.AvRoomDataManager
import com.chwl.core.user.bean.UserInfo.SoundBean
import com.chwl.library.utils.ResUtil
import com.chwl.library.utils.SingleToastUtil
import io.reactivex.SingleObserver
import io.reactivex.disposables.Disposable
import java.util.*

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio;
package com.chwl.app.audio;
import android.content.Context;
import android.content.Intent;
@@ -14,36 +14,36 @@ import android.widget.TextView;
import com.opensource.svgaplayer.SVGACallback;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.yizhuan.habu.R;
import com.yizhuan.habu.UIHelper;
import com.yizhuan.habu.audio.helper.AudioPlayerHelper;
import com.yizhuan.habu.audio.helper.OnPlayListener;
import com.yizhuan.habu.audio.helper.OnRefreshListener;
import com.yizhuan.habu.audio.helper.SvgaCacheManager;
import com.yizhuan.habu.audio.helper.VmSoundManager;
import com.yizhuan.habu.audio.helper.VoiceMacthHelper;
import com.yizhuan.habu.audio.view.IBottleOpListener;
import com.yizhuan.habu.audio.widget.VoiceBottleFilterGenderBottomDialog;
import com.yizhuan.habu.audio.widget.VoiceLine;
import com.yizhuan.habu.base.BaseViewBindingActivity;
import com.yizhuan.habu.base.TitleBar;
import com.yizhuan.habu.common.widget.dialog.DialogManager;
import com.yizhuan.habu.databinding.ActivityVoiceMatchBinding;
import com.yizhuan.habu.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.habu.ui.widget.higuide.TuTuGuideHelper;
import com.yizhuan.xchat_android_core.audio.AudioModel;
import com.yizhuan.xchat_android_core.audio.bean.HistoryVoiceInfo;
import com.yizhuan.xchat_android_core.audio.bean.VoiceMatchInfo;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.music.model.PlayerModel;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.ActivityUtil;
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.audio.helper.AudioPlayerHelper;
import com.chwl.app.audio.helper.OnPlayListener;
import com.chwl.app.audio.helper.OnRefreshListener;
import com.chwl.app.audio.helper.SvgaCacheManager;
import com.chwl.app.audio.helper.VmSoundManager;
import com.chwl.app.audio.helper.VoiceMacthHelper;
import com.chwl.app.audio.view.IBottleOpListener;
import com.chwl.app.audio.widget.VoiceBottleFilterGenderBottomDialog;
import com.chwl.app.audio.widget.VoiceLine;
import com.chwl.app.base.BaseViewBindingActivity;
import com.chwl.app.base.TitleBar;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.app.databinding.ActivityVoiceMatchBinding;
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
import com.chwl.app.ui.widget.higuide.TuTuGuideHelper;
import com.chwl.core.audio.AudioModel;
import com.chwl.core.audio.bean.HistoryVoiceInfo;
import com.chwl.core.audio.bean.VoiceMatchInfo;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.music.model.PlayerModel;
import com.chwl.core.user.UserModel;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.core.utils.ActivityUtil;
import com.chwl.core.utils.SharedPreferenceUtils;
import com.chwl.core.utils.net.DontWarnObserver;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import java.util.List;
import java.util.Locale;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.adapter;
package com.chwl.app.audio.adapter;
import android.text.method.ScrollingMovementMethod;
import android.view.LayoutInflater;
@@ -11,8 +11,8 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yizhuan.habu.R;
import com.yizhuan.xchat_android_core.audio.bean.VoiceCardInfo;
import com.chwl.app.R;
import com.chwl.core.audio.bean.VoiceCardInfo;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.adapter;
package com.chwl.app.audio.adapter;
import android.view.View;
import android.view.ViewGroup;
@@ -10,11 +10,11 @@ import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.yizhuan.habu.R;
import com.yizhuan.habu.audio.widget.VoiceLine;
import com.yizhuan.xchat_android_core.audio.bean.UserVoiceInfo;
import com.yizhuan.xchat_android_core.utils.StringUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.chwl.app.R;
import com.chwl.app.audio.widget.VoiceLine;
import com.chwl.core.audio.bean.UserVoiceInfo;
import com.chwl.core.utils.StringFormatUtils;
import com.chwl.library.utils.ResUtil;
import java.util.List;
import java.util.Locale;
@@ -105,7 +105,7 @@ public class MyVoiceListAdapter extends BaseQuickAdapter<UserVoiceInfo, BaseView
});
// 点击播放声音/停止声音
helper.voiceBarLayout.setOnClickListener(view -> {
if (StringUtils.isEmpty(item.getVoiceUrl())) {
if (StringFormatUtils.isEmpty(item.getVoiceUrl())) {
return;
}
boolean isChange = helper.getAdapterPosition() != voiceClickPos;
@@ -140,7 +140,7 @@ public class MyVoiceListAdapter extends BaseQuickAdapter<UserVoiceInfo, BaseView
});
// 点击播放声音/停止声音
helper.voiceBarLayout.setOnClickListener(view -> {
if (StringUtils.isEmpty(item.getVoiceUrl())) {
if (StringFormatUtils.isEmpty(item.getVoiceUrl())) {
return;
}
boolean isChange = helper.getAdapterPosition() != voiceClickPos;
@@ -177,7 +177,7 @@ public class MyVoiceListAdapter extends BaseQuickAdapter<UserVoiceInfo, BaseView
});
// 点击播放声音/停止声音
helper.voiceBarLayout.setOnClickListener(view -> {
if (StringUtils.isEmpty(item.getVoiceUrl())) {
if (StringFormatUtils.isEmpty(item.getVoiceUrl())) {
return;
}
boolean isChange = helper.getAdapterPosition() != voiceClickPos;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.helper;
package com.chwl.app.audio.helper;
import android.annotation.SuppressLint;
import android.media.AudioManager;
@@ -7,8 +7,8 @@ import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import com.yizhuan.habu.R;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.chwl.app.R;
import com.chwl.library.utils.ResUtil;
import java.io.IOException;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.helper;
package com.chwl.app.audio.helper;
/**
* create by lvzebiao @2019/6/17

View File

@@ -0,0 +1,10 @@
package com.chwl.app.audio.helper;
/**
* create by lvzebiao @2019/6/11
*/
public interface OnRefreshListener {
void refresh();
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.helper;
package com.chwl.app.audio.helper;
import android.annotation.SuppressLint;
import android.content.Context;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.helper;
package com.chwl.app.audio.helper;
import lombok.Getter;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.helper;
package com.chwl.app.audio.helper;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;

View File

@@ -0,0 +1,35 @@
package com.chwl.app.audio.presenter;
import com.chwl.app.audio.view.IMyVoiceView;
import com.chwl.app.base.BaseMvpPresenter;
import com.chwl.core.audio.AudioModel;
import com.chwl.core.audio.bean.UserVoiceInfo;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.utils.net.DontWarnObserver;
import com.chwl.library.base.PresenterEvent;
import java.util.List;
/**
* 我的声音页面
*/
public class MyVoicePresenter extends BaseMvpPresenter<IMyVoiceView> {
public void getUserVoiceInfo() {
getMvpView().showLoadingView();
AudioModel.get().getMyVoiceInfoList(AuthModel.get().getCurrentUid())
.compose(bindUntilEvent(PresenterEvent.DESTROY))
.subscribe(new DontWarnObserver<List<UserVoiceInfo>>() {
@Override
public void accept(List<UserVoiceInfo> userVoiceInfos, String error) {
super.accept(userVoiceInfos, error);
if (getMvpView() == null) {
return;
}
getMvpView().hideLoadingView();
getMvpView().showVoiceInfo(userVoiceInfos);
}
});
}
}

View File

@@ -1,8 +1,8 @@
package com.yizhuan.habu.audio.presenter;
package com.chwl.app.audio.presenter;
import static com.yizhuan.habu.audio.RecordingVoiceActivity.AUDIO_DURA;
import static com.yizhuan.habu.audio.RecordingVoiceActivity.AUDIO_FILE;
import static com.yizhuan.habu.audio.RecordingVoiceActivity.MIN_RECORD_VOICE_DURATION;
import static com.chwl.app.audio.RecordingVoiceActivity.AUDIO_DURA;
import static com.chwl.app.audio.RecordingVoiceActivity.AUDIO_FILE;
import static com.chwl.app.audio.RecordingVoiceActivity.MIN_RECORD_VOICE_DURATION;
import android.content.Context;
import android.content.Intent;
@@ -13,25 +13,25 @@ import android.util.Log;
import com.netease.nimlib.sdk.media.record.AudioRecorder;
import com.netease.nimlib.sdk.media.record.IAudioRecordCallback;
import com.netease.nimlib.sdk.media.record.RecordType;
import com.yizhuan.habu.R;
import com.yizhuan.habu.audio.helper.AudioPlayerHelper;
import com.yizhuan.habu.audio.helper.OnPlayListener;
import com.yizhuan.habu.audio.view.IRecordingVoiceView;
import com.yizhuan.habu.base.BaseMvpPresenter;
import com.yizhuan.xchat_android_core.audio.AudioModel;
import com.yizhuan.xchat_android_core.audio.AudioPlayAndRecordManager;
import com.yizhuan.xchat_android_core.audio.bean.SaveVoiceSuccessResultInfo;
import com.yizhuan.xchat_android_core.audio.bean.VoiceCardInfo;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.file.FileModel;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
import com.yizhuan.xchat_android_library.base.PresenterEvent;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.yizhuan.xchat_android_library.utils.log.MLog;
import com.chwl.app.R;
import com.chwl.app.audio.helper.AudioPlayerHelper;
import com.chwl.app.audio.helper.OnPlayListener;
import com.chwl.app.audio.view.IRecordingVoiceView;
import com.chwl.app.base.BaseMvpPresenter;
import com.chwl.core.audio.AudioModel;
import com.chwl.core.audio.AudioPlayAndRecordManager;
import com.chwl.core.audio.bean.SaveVoiceSuccessResultInfo;
import com.chwl.core.audio.bean.VoiceCardInfo;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.file.FileModel;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.room.bean.RoomInfo;
import com.chwl.core.utils.net.DontWarnObserver;
import com.chwl.library.base.PresenterEvent;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import com.chwl.library.utils.log.MLog;
import java.io.File;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.view;
package com.chwl.app.audio.view;
import android.content.Context;
import android.util.AttributeSet;
@@ -9,9 +9,9 @@ import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.yizhuan.habu.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.xchat_android_core.audio.bean.VoiceMatchInfo;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
import com.chwl.core.audio.bean.VoiceMatchInfo;
import com.chwl.library.utils.ListUtils;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.view;
package com.chwl.app.audio.view;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -14,27 +14,29 @@ import androidx.annotation.NonNull;
import com.coorchice.library.SuperTextView;
import com.opensource.svgaplayer.SVGAImageView;
import com.yizhuan.habu.R;
import com.yizhuan.habu.UIHelper;
import com.yizhuan.habu.audio.VoiceMatchActivity;
import com.yizhuan.habu.audio.helper.OnPlayListener;
import com.yizhuan.habu.audio.helper.SvgaCacheManager;
import com.yizhuan.habu.audio.helper.VmSoundManager;
import com.yizhuan.habu.common.widget.CircleImageView;
import com.yizhuan.habu.ui.utils.ImageLoadUtils;
import com.yizhuan.habu.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.xchat_android_constants.XChatConstants;
import com.yizhuan.xchat_android_core.audio.bean.VoiceMatchInfo;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.yizhuan.xchat_android_library.utils.TimeUtils;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.audio.VoiceMatchActivity;
import com.chwl.app.audio.helper.OnPlayListener;
import com.chwl.app.audio.helper.SvgaCacheManager;
import com.chwl.app.audio.helper.VmSoundManager;
import com.chwl.app.common.widget.CircleImageView;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
import com.chwl.core.XConstants;
import com.chwl.core.audio.bean.VoiceMatchInfo;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.utils.SharedPreferenceUtils;
import com.chwl.core.utils.net.DontWarnObserver;
import com.chwl.core.utils.net.RxHelper;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import com.chwl.library.utils.TimeUtils;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import io.reactivex.Single;
@@ -428,7 +430,7 @@ public class BottleLayout extends FrameLayout {
ivReport.setOnClickListener(view -> {
// 跳转到举报页面
UIHelper.showReportPage(context, info.getUid(), XChatConstants.REPORT_TYPE_VOICE);
UIHelper.showReportPage(context, info.getUid(), XConstants.REPORT_TYPE_VOICE);
});
}
@@ -519,6 +521,7 @@ public class BottleLayout extends FrameLayout {
double num = likeCountDouble / 10000;
DecimalFormat decimalFormat = new DecimalFormat("0.00");// 构造方法的字符格式这里如果小数不足2位,会以0补足.
decimalFormat.setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.ENGLISH));
BigDecimal bigDecimal = new BigDecimal(num);
double likeCountFormat = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
if (likeCountFormat > 9999) {

View File

@@ -0,0 +1,14 @@
package com.chwl.app.audio.view;
import com.chwl.core.audio.bean.VoiceMatchInfo;
/**
* create by lvzebiao @2019/6/19
*/
public interface IBottleOpListener {
void onLimit(boolean isRight);
void onLikeOrUnLike(VoiceMatchInfo info, boolean isRight, boolean needLoading);
}

View File

@@ -0,0 +1,23 @@
package com.chwl.app.audio.view;
import com.chwl.core.audio.bean.UserVoiceInfo;
import com.chwl.library.base.IMvpBaseView;
import java.util.List;
/**
* 我的声音页面
*/
public interface IMyVoiceView extends IMvpBaseView {
/**
* 显示声音数据消息
*/
void showVoiceInfo(List<UserVoiceInfo> voiceList);
/**
* 请稍后
*/
void showLoadingView();
void hideLoadingView();
}

View File

@@ -1,9 +1,9 @@
package com.yizhuan.habu.audio.view;
package com.chwl.app.audio.view;
import android.content.Intent;
import com.yizhuan.xchat_android_core.audio.bean.VoiceCardInfo;
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
import com.chwl.core.audio.bean.VoiceCardInfo;
import com.chwl.library.base.IMvpBaseView;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.view;
package com.chwl.app.audio.view;
import android.content.Context;
import android.graphics.Canvas;
@@ -8,8 +8,8 @@ import android.util.AttributeSet;
import androidx.appcompat.widget.AppCompatImageView;
import com.yizhuan.habu.R;
import com.yizhuan.habu.ui.widget.magicindicator.buildins.UIUtil;
import com.chwl.app.R;
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
import lombok.Setter;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.viewmodel
package com.chwl.app.audio.viewmodel
import android.content.Intent
import android.util.Log
@@ -6,22 +6,22 @@ import androidx.lifecycle.MutableLiveData
import com.netease.nimlib.sdk.media.record.AudioRecorder
import com.netease.nimlib.sdk.media.record.IAudioRecordCallback
import com.netease.nimlib.sdk.media.record.RecordType
import com.yizhuan.habu.R
import com.yizhuan.habu.audio.SoundSignatureActivity
import com.yizhuan.habu.audio.helper.AudioPlayerHelper
import com.yizhuan.habu.audio.helper.OnPlayListener
import com.yizhuan.habu.base.BaseViewModel
import com.yizhuan.xchat_android_core.Constants
import com.yizhuan.xchat_android_core.audio.AudioPlayAndRecordManager
import com.yizhuan.xchat_android_core.auth.AuthModel
import com.yizhuan.xchat_android_core.manager.AudioEngineManager
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
import com.yizhuan.xchat_android_core.sound.model.SoundModel
import com.yizhuan.xchat_android_core.utils.toast
import com.yizhuan.xchat_android_library.common.application.BaseApp
import com.yizhuan.xchat_android_library.utils.ResUtil
import com.yizhuan.xchat_android_library.utils.SingleToastUtil
import com.yizhuan.xchat_android_library.utils.log.MLog
import com.chwl.app.R
import com.chwl.app.audio.SoundSignatureActivity
import com.chwl.app.audio.helper.AudioPlayerHelper
import com.chwl.app.audio.helper.OnPlayListener
import com.chwl.app.base.BaseViewModel
import com.chwl.core.Constants
import com.chwl.core.audio.AudioPlayAndRecordManager
import com.chwl.core.auth.AuthModel
import com.chwl.core.manager.AudioEngineManager
import com.chwl.core.manager.AvRoomDataManager
import com.chwl.core.sound.model.SoundModel
import com.chwl.core.utils.extension.toast
import com.chwl.library.common.application.BaseApp
import com.chwl.library.utils.ResUtil
import com.chwl.library.utils.SingleToastUtil
import com.chwl.library.utils.log.MLog
import java.io.File
/**

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.content.Context;
import android.graphics.Canvas;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import androidx.recyclerview.widget.RecyclerView;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.content.Context;
import android.content.res.TypedArray;
@@ -11,7 +11,7 @@ import android.view.View;
import androidx.annotation.Nullable;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.yizhuan.habu.R;
import com.chwl.app.R;
/**
* 录制声音页面的环形进度条

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.content.Context;
import android.content.res.TypedArray;
@@ -11,7 +11,7 @@ import android.graphics.SweepGradient;
import android.util.AttributeSet;
import android.view.View;
import com.yizhuan.habu.R;
import com.chwl.app.R;
public class RoundProgressView extends View {
// 画实心圆的画笔

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.content.Context;
import android.os.Bundle;
@@ -15,7 +15,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.yizhuan.habu.R;
import com.chwl.app.R;
/**
* 声音瓶子.筛选性别Dialog

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
/**
* 录制声音页面.声音卡片滑动配置

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.graphics.Canvas;
import android.util.Log;
@@ -9,8 +9,8 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.yizhuan.habu.R;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.chwl.app.R;
import com.chwl.library.utils.ResUtil;
/**
* 录制声音页面.声音卡片滑动列表ItemTouchHelperCallback

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.view.MotionEvent;
import android.view.View;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.content.Context;
import android.graphics.Canvas;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.animation.ValueAnimator;
import android.content.Context;
@@ -11,7 +11,7 @@ import android.util.AttributeSet;
import android.view.View;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.yizhuan.habu.R;
import com.chwl.app.R;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.audio.widget;
package com.chwl.app.audio.widget;
import android.animation.ValueAnimator;
import android.content.Context;
@@ -11,7 +11,7 @@ import android.util.AttributeSet;
import android.view.View;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.yizhuan.habu.R;
import com.chwl.app.R;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom;
package com.chwl.app.avroom;
/**
* Created by chenran on 2017/11/21.
@@ -47,4 +47,8 @@ public abstract class BottomViewListenerWrapper {
}
public void onRoomGameplayClick(){
}
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom;
package com.chwl.app.avroom;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -9,38 +9,36 @@ import com.netease.nim.uikit.common.util.log.LogUtil;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
import com.orhanobut.logger.Logger;
import com.yizhuan.habu.R;
import com.yizhuan.habu.UIHelper;
import com.yizhuan.habu.avroom.widget.ViewItem;
import com.yizhuan.habu.common.widget.dialog.DialogManager;
import com.yizhuan.habu.public_chat_hall.widget.ShutUpDialog;
import com.yizhuan.habu.ui.im.avtivity.NimFriendModel;
import com.yizhuan.habu.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.habu.ui.widget.ButtonItem;
import com.yizhuan.habu.ui.widget.GiftDialog;
import com.yizhuan.habu.vip.util.VipHelper;
import com.yizhuan.habu.room_chat.activity.RoomMsgActivity;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo;
import com.yizhuan.xchat_android_core.initial.InitialModel;
import com.yizhuan.xchat_android_core.initial.bean.InitInfo;
import com.yizhuan.xchat_android_core.kick.KickModel;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
import com.yizhuan.xchat_android_core.public_chat_hall.manager.PublicChatHallDataManager;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
import com.yizhuan.xchat_android_core.statistic.StatLogKey;
import com.yizhuan.xchat_android_core.super_admin.bean.KickOutExtBean;
import com.yizhuan.xchat_android_core.super_admin.model.SuperAdminModel;
import com.yizhuan.xchat_android_core.super_admin.util.SAdminOptUtil;
import com.yizhuan.xchat_android_core.super_admin.util.SaAttachmentFactory;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_library.utils.JavaUtil;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.avroom.widget.ViewItem;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.app.ui.im.avtivity.NimFriendModel;
import com.chwl.app.ui.im.avtivity.NimP2PMessageActivity;
import com.chwl.app.ui.widget.ButtonItem;
import com.chwl.app.ui.widget.GiftDialog;
import com.chwl.app.vip.util.VipHelper;
import com.chwl.app.room_chat.activity.RoomMsgActivity;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.bean.RoomQueueInfo;
import com.chwl.core.initial.InitialModel;
import com.chwl.core.initial.bean.InitInfo;
import com.chwl.core.kick.KickModel;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.manager.IMNetEaseManager;
import com.chwl.core.room.bean.RoomInfo;
import com.chwl.core.room.model.AvRoomModel;
import com.chwl.core.statistic.StatLogKey;
import com.chwl.core.super_admin.bean.KickOutExtBean;
import com.chwl.core.super_admin.model.SuperAdminModel;
import com.chwl.core.super_admin.util.SAdminOptUtil;
import com.chwl.core.super_admin.util.SaAttachmentFactory;
import com.chwl.core.super_admin.util.SuperAdminUtil;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.library.utils.JavaUtil;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import com.chwl.library.utils.config.BasicConfig;
import java.util.ArrayList;
import java.util.HashMap;
@@ -195,42 +193,6 @@ public class ButtonItemFactory {
return buttonItems;
}
/**
* 创建相关的buttons 添加到资料卡片
*
* @param context context
* @param uid uid or 云信account
* @param listener dialog的监听回调
* @return List<ViewItem>
*/
public static List<ViewItem> createPublicChatHallButtonItems(
Context context,
long uid,
boolean isInRoom,
GiftDialog.OnGiftDialogBtnClickListener listener) {
if (uid <= 0) return null;
String currentUid = String.valueOf(AuthModel.get().getCurrentUid());
String account = String.valueOf(uid);
//account和chatRoomMember 不会同时为空如果同时为空则是前面传参出错
boolean isMySelf = Objects.equals(currentUid, account);
if (isMySelf) {
return null;
}
List<ViewItem> buttonItems = new ArrayList<>();
//不在房间内也不需要魔法
buttonItems.add(createSendGiftItem(context, uid, true, true, listener));
// 私聊
buttonItems.add(createPrivateChatItem(context, account, isInRoom));
//装扮和关注目前是都有的操作
//buttonItems.add(createSendDecorationItem(context, uid));
buttonItems.add(createAttentItem());
buttonItems.add(createFindMeItem());
if (PublicChatHallDataManager.get().isRoomAdmin()) {
buttonItems.add(createShutupItem(context, uid));
}
return buttonItems;
}
/**
* 踩TA当该人再房间中的时候进入他所在的房间
*
@@ -463,15 +425,6 @@ public class ButtonItemFactory {
});
}
/**
* 公聊大厅禁言
*/
public static ViewItem createShutupItem(Context context, long uid) {
return new ViewItem(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_028), R.drawable.icon_shut_up, () -> {
new ShutUpDialog(context, uid).openDialog();
});
}
/**
* @param isInRoom true 在房间内弹起

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom;
package com.chwl.app.avroom;
import androidx.recyclerview.widget.DiffUtil;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom;
package com.chwl.app.avroom;
import android.app.Activity;
import android.graphics.Rect;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom;
package com.chwl.app.avroom;
/**
* 用户卡片的管理

View File

@@ -1,23 +1,17 @@
package com.yizhuan.habu.avroom.activity;
package com.chwl.app.avroom.activity;
import static android.view.View.VISIBLE;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ALL_SERVICE_GIFT;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_BOX;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_FAIRY;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_HEADER_TYPE_GIFT;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_ALL;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA_GIFT_SERVER_ALL;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ROOM_PK;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_DRAW_GIFT_L5;
import static com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_NOTIFY;
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_FAIRY;
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA;
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_LUCKY_SEA_GIFT_SERVER_ALL;
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_ROOM_PK;
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_DRAW_GIFT_L5;
import static com.chwl.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_ROOM_PK_NOTIFY;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.app.FragmentManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
@@ -40,10 +34,18 @@ import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.LiveData;
import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.chwl.app.notify.RoomNotifyManager;
import com.chwl.app.ui.webview.baishun.BaiShunGameWebFragment;
import com.chwl.app.ui.webview.baishun.IBaiShunGameListener;
import com.chwl.core.monsterhunting.bean.MonsterDataBean;
import com.chwl.core.room.game.bean.BaiShunGameConfig;
import com.chwl.core.support.room.AudioRoomContext;
import com.chwl.core.support.room.RoomWidget;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nimlib.sdk.NIMSDK;
import com.netease.nimlib.sdk.Observer;
@@ -56,101 +58,89 @@ import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.orhanobut.logger.Logger;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.yizhuan.habu.R;
import com.yizhuan.habu.avroom.dialog.NewUserGiftDialog;
import com.yizhuan.habu.avroom.dialog.SingleRoomTipDialog;
import com.yizhuan.habu.avroom.firstcharge.FirstChargeDialog;
import com.yizhuan.habu.avroom.fragment.FakeSingleRoomBackFragment;
import com.yizhuan.habu.avroom.fragment.FakeSingleRoomFragment;
import com.yizhuan.habu.avroom.fragment.HomePartyFragment;
import com.yizhuan.habu.avroom.fragment.InputPwdDialogFragment;
import com.yizhuan.habu.avroom.presenter.AvRoomPresenter;
import com.yizhuan.habu.avroom.presenter.HomePartyPresenter;
import com.yizhuan.habu.avroom.redpackage.RedPackageHandler;
import com.yizhuan.habu.avroom.view.IAvRoomView;
import com.yizhuan.habu.avroom.widget.VerticalViewPagerAdapter;
import com.yizhuan.habu.base.BaseMvpActivity;
import com.yizhuan.habu.common.util.Utils;
import com.yizhuan.habu.common.widget.CircleImageView;
import com.yizhuan.habu.common.widget.CustomImageSpan;
import com.yizhuan.habu.common.widget.dialog.DialogManager;
import com.yizhuan.habu.home.dialog.HelloMessageDialog;
import com.yizhuan.habu.treasure_box.activity.TreasureBoxActivity;
import com.yizhuan.habu.ui.patriarch.help.LimitEnterRoomHelper;
import com.yizhuan.habu.ui.user.activity.UserInfoActivity;
import com.yizhuan.habu.ui.utils.ImageLoadUtils;
import com.yizhuan.habu.ui.webview.CommonWebViewActivity;
import com.yizhuan.habu.ui.webview.DialogWebViewActivity;
import com.yizhuan.habu.ui.widget.NobleOpenNoticeView;
import com.yizhuan.habu.ui.widget.dialog.AllServiceGiftLevelDialog;
import com.yizhuan.habu.ui.widget.dialog.MonsterDialog;
import com.yizhuan.habu.utils.UserUtils;
import com.yizhuan.habu.room_chat.activity.RoomMsgActivity;
import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.auth.event.LogoutEvent;
import com.yizhuan.xchat_android_core.bean.BaseProtocol;
import com.yizhuan.xchat_android_core.channel_page.bean.HelloMessageInfo;
import com.yizhuan.xchat_android_core.gift.GiftModel;
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo;
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.FairyMsgAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.NotifyH5Attachment;
import com.yizhuan.xchat_android_core.im.custom.bean.NotifyH5Info;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomBoxPrizeAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomBoxPrizeInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomLuckySeaAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomLuckySeaMsgBean;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPKAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomReceivedLuckyGiftAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.TarotAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.TarotMsgBean;
import com.yizhuan.xchat_android_core.initial.InitialModel;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
import com.yizhuan.xchat_android_core.manager.RoomEvent;
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
import com.yizhuan.xchat_android_core.module_hall.hall.bean.SuperAdminInfo;
import com.yizhuan.xchat_android_core.monsterhunting.bean.MonsterHuntingResult;
import com.yizhuan.xchat_android_core.monsterhunting.bean.MonsterInfo;
import com.yizhuan.xchat_android_core.monsterhunting.bean.MonsterProtocol;
import com.yizhuan.xchat_android_core.monsterhunting.manager.MonsterDataManager;
import com.yizhuan.xchat_android_core.noble.AllServiceGiftProtocol;
import com.yizhuan.xchat_android_core.noble.NobleInfo;
import com.yizhuan.xchat_android_core.noble.NobleResourceType;
import com.yizhuan.xchat_android_core.noble.NobleUtil;
import com.yizhuan.xchat_android_core.patriarch.event.CloseMinRoomEvent;
import com.yizhuan.xchat_android_core.patriarch.event.ImPushMsgPmLimitTimeEvent;
import com.yizhuan.xchat_android_core.patriarch.event.PmDismissAllLimitDialogEvent;
import com.yizhuan.xchat_android_core.patriarch.exception.PmRoomLimitException;
import com.yizhuan.xchat_android_core.redpackage.RedPackageNotifyInfo;
import com.yizhuan.xchat_android_core.room.anotherroompk.ShowGiftDialogEvent;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.bean.RoomModeType;
import com.yizhuan.xchat_android_core.room.dragonball.DragonBallModel;
import com.yizhuan.xchat_android_core.room.event.FinishAvRoomEvent;
import com.yizhuan.xchat_android_core.room.event.RoomExitEvent;
import com.yizhuan.xchat_android_core.room.event.RoomTaskTipsEvent;
import com.yizhuan.xchat_android_core.room.pk.event.PKStateEvent;
import com.yizhuan.xchat_android_core.super_admin.util.SAdminOptUtil;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
import com.yizhuan.xchat_android_core.support.room.RoomContext;
import com.yizhuan.xchat_android_core.support.room.RoomView;
import com.yizhuan.xchat_android_core.treasurefairy.FairyMsgInfoBean;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.FirstChargeInfo;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.LogUtils;
import com.yizhuan.xchat_android_core.utils.StringUtils;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.rxbus.RxBus;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.yizhuan.xchat_android_library.utils.UIUtils;
import com.chwl.app.R;
import com.chwl.app.avroom.dialog.NewUserGiftDialog;
import com.chwl.app.avroom.dialog.SingleRoomTipDialog;
import com.chwl.app.avroom.fragment.FakeSingleRoomBackFragment;
import com.chwl.app.avroom.fragment.FakeSingleRoomFragment;
import com.chwl.app.avroom.fragment.HomePartyFragment;
import com.chwl.app.avroom.fragment.InputPwdDialogFragment;
import com.chwl.app.avroom.presenter.AvRoomPresenter;
import com.chwl.app.avroom.presenter.HomePartyPresenter;
import com.chwl.app.avroom.view.IAvRoomView;
import com.chwl.app.avroom.widget.VerticalViewPagerAdapter;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.library.common.util.Utils;
import com.chwl.app.common.widget.CircleImageView;
import com.chwl.app.common.widget.CustomImageSpan;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.app.home.dialog.HelloMessageDialog;
import com.chwl.app.ui.patriarch.help.LimitEnterRoomHelper;
import com.chwl.app.ui.user.activity.UserInfoActivity;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.webview.CommonWebViewActivity;
import com.chwl.app.ui.widget.NobleOpenNoticeView;
import com.chwl.app.ui.widget.dialog.AllServiceGiftLevelDialog;
import com.chwl.app.ui.widget.dialog.MonsterDialog;
import com.chwl.app.utils.UserUtils;
import com.chwl.core.Constants;
import com.chwl.core.DemoCache;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.auth.event.LogoutEvent;
import com.chwl.core.bean.BaseProtocol;
import com.chwl.core.channel_page.bean.HelloMessageInfo;
import com.chwl.core.gift.GiftModel;
import com.chwl.core.gift.bean.GiftInfo;
import com.chwl.core.im.custom.bean.CustomAttachment;
import com.chwl.core.im.custom.bean.FairyMsgAttachment;
import com.chwl.core.im.custom.bean.NotifyH5Attachment;
import com.chwl.core.im.custom.bean.NotifyH5Info;
import com.chwl.core.im.custom.bean.RoomLuckySeaAttachment;
import com.chwl.core.im.custom.bean.RoomLuckySeaMsgBean;
import com.chwl.core.im.custom.bean.RoomPKAttachment;
import com.chwl.core.im.custom.bean.RoomPkBean;
import com.chwl.core.im.custom.bean.TarotAttachment;
import com.chwl.core.im.custom.bean.TarotMsgBean;
import com.chwl.core.initial.InitialModel;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.manager.IMNetEaseManager;
import com.chwl.core.manager.RoomEvent;
import com.chwl.core.module_hall.hall.HallModel;
import com.chwl.core.module_hall.hall.bean.SuperAdminInfo;
import com.chwl.core.monsterhunting.bean.MonsterHuntingResult;
import com.chwl.core.monsterhunting.bean.MonsterInfo;
import com.chwl.core.monsterhunting.manager.MonsterDataManager;
import com.chwl.core.noble.bean.AllServiceGiftProtocol;
import com.chwl.core.noble.bean.NobleInfo;
import com.chwl.core.noble.NobleResourceType;
import com.chwl.core.noble.NobleUtil;
import com.chwl.core.patriarch.event.CloseMinRoomEvent;
import com.chwl.core.patriarch.event.ImPushMsgPmLimitTimeEvent;
import com.chwl.core.patriarch.event.PmDismissAllLimitDialogEvent;
import com.chwl.core.patriarch.exception.PmRoomLimitException;
import com.chwl.core.redpackage.bean.RedPackageNotifyInfo;
import com.chwl.core.room.anotherroompk.ShowGiftDialogEvent;
import com.chwl.core.room.bean.RoomInfo;
import com.chwl.core.room.bean.RoomModeType;
import com.chwl.core.room.dragonball.DragonBallModel;
import com.chwl.core.room.event.FinishAvRoomEvent;
import com.chwl.core.room.event.RoomExitEvent;
import com.chwl.core.room.event.RoomTaskTipsEvent;
import com.chwl.core.room.pk.event.PKStateEvent;
import com.chwl.core.super_admin.util.SAdminOptUtil;
import com.chwl.core.super_admin.util.SuperAdminUtil;
import com.chwl.core.support.room.RoomContext;
import com.chwl.core.support.room.RoomView;
import com.chwl.core.treasurefairy.bean.FairyMsgInfoBean;
import com.chwl.core.user.UserModel;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.core.utils.LogUtils;
import com.chwl.core.utils.StringFormatUtils;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.rxbus.RxBus;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import com.chwl.library.utils.UIUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -160,13 +150,12 @@ import java.lang.ref.WeakReference;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.LinkedList;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import io.reactivex.Single;
import io.reactivex.SingleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
/**
@@ -225,6 +214,14 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
private SingleRoomTipDialog singleRoomTipDialog;
// 通过红包进来时有该参数
private RedPackageNotifyInfo redPackageNotifyInfo;
// 是否禁用VP滑动true不允许滑动false某些条件下可以滑动
private boolean viewPagerInputDisable;
private RoomNotifyManager roomNotify;
private BaiShunGameWebFragment baiShunGameFragment;
public static void start(Context context, long roomUid) {
startForFromType(context, roomUid, FROM_TYPE_NORMAL, null, null);
}
@@ -296,7 +293,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
public static void setBackBg(Context context, RoomInfo roomInfo, SVGAImageView svgaRoomBg, String[] bgPicture) {
if (roomInfo != null && svgaRoomBg != null) {
if (!StringUtils.isBlank(roomInfo.getBackPic())) {
if (!StringFormatUtils.isBlank(roomInfo.getBackPic())) {
int resourceType = NobleUtil.getResourceType(roomInfo.getBackPic());
if (resourceType == NobleResourceType.URLS) {
if (!roomInfo.getBackPic().equals(bgPicture[0])) {
@@ -319,7 +316,8 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
}
} else if (roomInfo.getType() == RoomInfo.ROOM_TYPE_SINGLE) {
bgPicture[0] = "";
svgaRoomBg.setImageResource(R.drawable.bg_room_single_pic);
// svgaRoomBg.setImageResource(R.drawable.bg_room_single_pic);
playSvgaBg(svgaRoomBg, "svga/room_bg_single.svga");
} else {
bgPicture[0] = "";
if (roomInfo.getRoomModeType() == RoomModeType.OPEN_PK_MODE) {
@@ -396,7 +394,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
public void setCurrentItem(int item) {
dismissLoadingDialog();
if (viewpager != null) {
viewpager.setUserInputEnabled(true);
tryEnabledViewPagerInput();
viewpager.setCurrentItem(item, false);
}
}
@@ -411,7 +409,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
Object notifyInfo = intent.getSerializableExtra("notifyInfo");
if (notifyInfo instanceof RedPackageNotifyInfo) {
redPackageNotifyInfo = (RedPackageNotifyInfo) notifyInfo;
}else{
} else {
redPackageNotifyInfo = null;
}
if (mRoomInfo != null) {
@@ -445,7 +443,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
viewpager.setOffscreenPageLimit(2);
viewpager.setOrientation(ViewPager2.ORIENTATION_VERTICAL);
viewpager.getChildAt(0).setOverScrollMode(View.OVER_SCROLL_NEVER);
viewpager.setUserInputEnabled(false);
disableViewPagerInput();
viewpager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
@@ -472,11 +470,11 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
if (state == 0 && viewpager.getCurrentItem() == 2) {
showLoadingDialog();
((FakeSingleRoomFragment) mAdapter.getItem(2)).tryJumpRoom();
viewpager.setUserInputEnabled(false);
disableViewPagerInput();
} else if (state == 0 && viewpager.getCurrentItem() == 0) {
showLoadingDialog();
((FakeSingleRoomBackFragment) mAdapter.getItem(0)).tryJumpRoom();
viewpager.setUserInputEnabled(false);
disableViewPagerInput();
}
}
});
@@ -502,6 +500,17 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
}
});
roomNotify = new RoomNotifyManager(this);
roomNotify.setOnShowUserCard(new Function1<String, Unit>() {
@Override
public Unit invoke(String s) {
if (mCurrentFragment != null) {
mCurrentFragment.showUserCardDialog(s);
}
return null;
}
});
roomNotify.start();
}
@Override
@@ -556,7 +565,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
}
break;
case RoomEvent.MONSTER_STATUS_CHANGED:
MonsterProtocol.DataBean dataBean = roomEvent.getMonsterStatusAttachment().getDataBean();
MonsterDataBean dataBean = roomEvent.getMonsterStatusAttachment().getDataBean();
Log.e(TAG, "onRoomEventReceive: monster status changed: " + dataBean);
RoomInfo myRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
// 当前为房间页面并且当前房间为怪兽出现房间时才出现通知
@@ -604,7 +613,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
// 当前为房间页面并且当前房间为怪兽出现房间时才出现通知
if (UIUtils.isTopActivity(AVRoomActivity.this) && currentRoomInfo != null &&
currentRoomInfo.getUid() == monsterHuntingResult.getMonster().getAppearRoomUid()) {
MonsterProtocol.DataBean monsterInfo = monsterHuntingResult.getMonster();
MonsterDataBean monsterInfo = monsterHuntingResult.getMonster();
if (monsterDialog != null && monsterDialog.isShowing()) {
monsterDialog.dismiss();
}
@@ -663,7 +672,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
*/
private void showRoomFragment(boolean isRoomMin) {
mCurrentFragment = (HomePartyFragment) mAdapter.getItem(1);
viewpager.setUserInputEnabled(AvRoomDataManager.get().isSingleRoom());
tryEnabledViewPagerInput();
viewpager.setCurrentItem(1, false);
if (isRoomMin) {
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
@@ -681,12 +690,10 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
* TODO 临时方案后续逐步完善整个房间的RoomContext替换计划
* PS:目前房间进入的逻辑有些凌乱没有明确的生命周期看代码逻辑无论是第一次还是再次进入都会走这里所以在这里绑定View
*/
getRoomContext().onViewAttach(this);
/**
* 每次View重新创建意味着可能在房间外点了红包就重新尝试加载红包并展示
*/
tryShowSourceRedPackage();
RoomContext roomContext = getRoomContext();
if (roomContext != null) {
roomContext.onViewAttach(this);
}
}
private void showLiveFinishView(long uid) {
@@ -723,23 +730,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
AvRoomDataManager.get().release();
}
/**
* 尝试展示来源红包在房间外点击红包入口进入房间时
*/
private void tryShowSourceRedPackage() {
try {
if (redPackageNotifyInfo != null) {
RedPackageHandler handler = getRoomContext().findAbility(RedPackageHandler.class.getSimpleName());
if (handler != null) {
long id = Long.parseLong(redPackageNotifyInfo.getRedEnvelopeId());
handler.tryShowRedPackage(id);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void dismissRedPackageDialog() {
if (mCurrentFragment != null) {
mCurrentFragment.dismissSendRedPackageDialog();
@@ -930,7 +920,9 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
@Override
public void onBackPressed() {
if (closeBaiShunGame()) {
return;
}
if (AvRoomDataManager.get().isGamePlaying(AvRoomDataManager.get().getMicPosition(AuthModel.get().getCurrentUid()))) {
getDialogManager().showOkCancelDialog(ResUtil.getString(R.string.avroom_activity_avroomactivity_09), false,
this::minRoomCode);
@@ -1186,56 +1178,56 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
if (baseProtocol == null) return;
if (!isValid()) return;
switch (baseProtocol.getFirst()) {
case CUSTOM_MSG_HEADER_TYPE_GIFT:
if (giftList == null) {
giftList = new LinkedList<>();
}
int second2 = baseProtocol.getSecond();
AllServiceGiftProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), AllServiceGiftProtocol.DataBean.class);
if (data == null || (data.getGiftUrl()) == null)
return;
giftList.add(data);
if (second2 == CUSTOM_MSG_ALL_SERVICE_GIFT) {
if (giftDialog != null && giftDialog.isShowing()) {
// 如果当前以及有礼物弹窗在展示则需要等到他 dismiss 后再显示下一个
AllServiceGiftProtocol.DataBean dataBean = giftList.peekFirst();
if (dataBean != null) {
return;
} else {
giftDialog.dismiss();
}
} else {
showGiftDialog();
}
}
break;
case CUSTOM_MSG_BOX://寻爱之旅
if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
RoomBoxPrizeAttachment roomBoxPrizeAttachment = new RoomBoxPrizeAttachment(CUSTOM_MSG_BOX, CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA);
RoomBoxPrizeInfo roomBoxPrizeBean = JSON.parseObject(String.valueOf(baseProtocol.getData()), RoomBoxPrizeInfo.class);
roomBoxPrizeAttachment.setUid(roomBoxPrizeBean.getUid());
roomBoxPrizeAttachment.setPrizeName(roomBoxPrizeBean.getPrizeName());
roomBoxPrizeAttachment.setNick(roomBoxPrizeBean.getNick());
roomBoxPrizeAttachment.setBoxTypeStr(roomBoxPrizeBean.getBoxTypeStr());
roomBoxPrizeAttachment.setRoomUid(roomBoxPrizeBean.getRoomUid());
roomBoxPrizeAttachment.setPrizeNum(roomBoxPrizeBean.getPrizeNum());
roomBoxPrizeAttachment.setUserLevelLimit(roomBoxPrizeBean.getUserLevelLimit());
if (AvRoomDataManager.get().isOpenPureMode()) {
// 純凈模式打開後僅能看跟自己相關的砸蛋消息
if (Objects.equals(roomBoxPrizeAttachment.getUid(), AuthModel.get().getCurrentUid())) {
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
IMNetEaseManager.get().addMessages(message);
}
} else {
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
IMNetEaseManager.get().addMessages(message);
IMNetEaseManager.get().getChatRoomEventObservable()
.onNext(new RoomEvent()
.setEvent(RoomEvent.BOX_NOTIFY_SVGA)
.setChatRoomMessage(message));
}
}
break;
// case CUSTOM_MSG_HEADER_TYPE_GIFT:
// if (giftList == null) {
// giftList = new LinkedList<>();
// }
// int second2 = baseProtocol.getSecond();
// AllServiceGiftProtocol.DataBean data = JSON.parseObject(String.valueOf(baseProtocol.getData()), AllServiceGiftProtocol.DataBean.class);
// if (data == null || (data.getGiftUrl()) == null)
// return;
// giftList.add(data);
// if (second2 == CUSTOM_MSG_ALL_SERVICE_GIFT) {
// if (giftDialog != null && giftDialog.isShowing()) {
// // 如果当前以及有礼物弹窗在展示则需要等到他 dismiss 后再显示下一个
// AllServiceGiftProtocol.DataBean dataBean = giftList.peekFirst();
// if (dataBean != null) {
// return;
// } else {
// giftDialog.dismiss();
// }
// } else {
// showGiftDialog();
// }
// }
// break;
// case CUSTOM_MSG_BOX://寻爱之旅
// if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA) {
// RoomBoxPrizeAttachment roomBoxPrizeAttachment = new RoomBoxPrizeAttachment(CUSTOM_MSG_BOX, CUSTOM_MSG_SUB_BOX_ALL_ROOM_NOTIFY_BY_SVGA);
// RoomBoxPrizeInfo roomBoxPrizeBean = JSON.parseObject(String.valueOf(baseProtocol.getData()), RoomBoxPrizeInfo.class);
// roomBoxPrizeAttachment.setUid(roomBoxPrizeBean.getUid());
// roomBoxPrizeAttachment.setPrizeName(roomBoxPrizeBean.getPrizeName());
// roomBoxPrizeAttachment.setNick(roomBoxPrizeBean.getNick());
// roomBoxPrizeAttachment.setBoxTypeStr(roomBoxPrizeBean.getBoxTypeStr());
// roomBoxPrizeAttachment.setRoomUid(roomBoxPrizeBean.getRoomUid());
// roomBoxPrizeAttachment.setPrizeNum(roomBoxPrizeBean.getPrizeNum());
// roomBoxPrizeAttachment.setUserLevelLimit(roomBoxPrizeBean.getUserLevelLimit());
// if (AvRoomDataManager.get().isOpenPureMode()) {
// // 純凈模式打開後僅能看跟自己相關的砸蛋消息
// if (Objects.equals(roomBoxPrizeAttachment.getUid(), AuthModel.get().getCurrentUid())) {
// ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
// IMNetEaseManager.get().addMessages(message);
// }
// } else {
// ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), roomBoxPrizeAttachment);
// IMNetEaseManager.get().addMessages(message);
// IMNetEaseManager.get().getChatRoomEventObservable()
// .onNext(new RoomEvent()
// .setEvent(RoomEvent.BOX_NOTIFY_SVGA)
// .setChatRoomMessage(message));
// }
// }
// break;
case CustomAttachment.CUSTOM_MESS_TAROT:
if (baseProtocol.getSecond() == CustomAttachment.CUSTOM_MESS_TAROT_SENIOR_PRIZE_WINNING) {
TarotMsgBean tarotMsgBean = JSON.parseObject(String.valueOf(baseProtocol.getData()), TarotMsgBean.class);
@@ -1273,15 +1265,15 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
IMNetEaseManager.get().noticeRoomEvent(message, RoomEvent.LUCKY_SEA_GIFT_SERVER_NOTIFY);
}
break;
case CUSTOM_MSG_LUCKY_GIFT://福袋
if (baseProtocol.getSecond() == CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY || baseProtocol.getSecond() == CUSTOM_MSG_LUCKY_GIFT_SERVER_ALL) {
RoomReceivedLuckyGiftAttachment attachment = new RoomReceivedLuckyGiftAttachment(CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY);
attachment.setLuckyBagNoticeInfo(JSON.parseObject(String.valueOf(baseProtocol.getData()), LuckyBagNoticeInfo.class));
ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), attachment);
IMNetEaseManager.get().noticeServiceLuckyBagNotice(message);
IMNetEaseManager.get().addMessages(message);
}
break;
// case CUSTOM_MSG_LUCKY_GIFT://福袋
// if (baseProtocol.getSecond() == CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY || baseProtocol.getSecond() == CUSTOM_MSG_LUCKY_GIFT_SERVER_ALL) {
// RoomReceivedLuckyGiftAttachment attachment = new RoomReceivedLuckyGiftAttachment(CUSTOM_MSG_LUCKY_GIFT_SERVER_NOTIFY);
// attachment.setLuckyBagNoticeInfo(JSON.parseObject(String.valueOf(baseProtocol.getData()), LuckyBagNoticeInfo.class));
// ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage(String.valueOf(AvRoomDataManager.get().getRoomId()), attachment);
// IMNetEaseManager.get().noticeServiceLuckyBagNotice(message);
// IMNetEaseManager.get().addMessages(message);
// }
// break;
case CUSTOM_MSG_FAIRY://夺宝精灵
if (baseProtocol.getSecond() == CUSTOM_MSG_SUB_DRAW_GIFT_L5) {
FairyMsgAttachment attachment = new FairyMsgAttachment(CUSTOM_MSG_FAIRY, CUSTOM_MSG_SUB_DRAW_GIFT_L5);
@@ -1355,22 +1347,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
new NewUserGiftDialog(giftInfo).show(this);
}
@Override
public void showFirstChargeDialog(FirstChargeInfo firstChargeInfo) {
Single.timer(firstChargeInfo.getShowAfterSecond() * 1000L, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread())
.compose(bindUntilEvent(ActivityEvent.DESTROY))
.doOnSuccess(aLong -> {
if (!DemoCache.readBoolean("FirstCharge", false) &&
(UIUtils.isTopActivity(AVRoomActivity.this)
|| UIUtils.isTopActivity(this, TreasureBoxActivity.class.getName())
|| UIUtils.isTopActivity(this, DialogWebViewActivity.class.getName())
|| UIUtils.isTopActivity(this, RoomMsgActivity.class.getName()))) {
FirstChargeDialog.start(this);
}
})
.subscribe();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onImPushMsgPmLimitTimeEvent(ImPushMsgPmLimitTimeEvent event) {
//时间到限制时间段之后后台推送im消息
@@ -1383,10 +1359,21 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
return this;
}
@Override
public FragmentManager getFragmentManager() {
return super.getFragmentManager();
}
@Nullable
@Override
public RoomContext getRoomContext() {
return RoomContext.Companion.get();
return AudioRoomContext.Companion.get();
}
@NonNull
@Override
public LiveData<? extends RoomContext> getRoomContextLiveData() {
return AudioRoomContext.Companion.getContextLiveData();
}
@NonNull
@@ -1395,6 +1382,19 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
return this;
}
@NonNull
@Override
public androidx.fragment.app.FragmentManager getViewFragmentManager() {
return getSupportFragmentManager();
}
@Nullable
@Override
public RoomWidget findWidget(@NonNull String name) {
return null;
}
private static class GiftBroadcastObserver implements Observer<BroadcastMessage> {
private WeakReference<AVRoomActivity> mReference;
@@ -1414,17 +1414,80 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
JSONObject jsonObject;
try {
jsonObject = JSON.parseObject(contentStr);
if (jsonObject == null) return;
if (jsonObject.containsKey("body")) {
String body = jsonObject.getString("body");
if (TextUtils.isEmpty(body)) return;
activity.onReceivedGiftBroadcastMessage(body);
}
} catch (Exception e) {
jsonObject = null;
}
if (jsonObject == null) return;
if (jsonObject.containsKey("body")) {
String body = jsonObject.getString("body");
if (TextUtils.isEmpty(body)) return;
activity.onReceivedGiftBroadcastMessage(body);
e.printStackTrace();
}
}
}
}
}
@Override
protected void onReceiveChatRoomEvent(RoomEvent roomEvent) {
super.onReceiveChatRoomEvent(roomEvent);
switch (roomEvent.getEvent()) {
case RoomEvent.UP_MIC:
case RoomEvent.DOWN_MIC:
resetViewPagerInputEnabled();
break;
}
}
/**
* 禁用VP滑动
*/
private void disableViewPagerInput() {
this.viewPagerInputDisable = true;
resetViewPagerInputEnabled();
}
private void tryEnabledViewPagerInput() {
this.viewPagerInputDisable = false;
resetViewPagerInputEnabled();
}
private void resetViewPagerInputEnabled() {
if (viewPagerInputDisable) {
viewpager.setUserInputEnabled(false);
} else {
if (AvRoomDataManager.get().isSingleRoom() && !AvRoomDataManager.get().isOwnerOnMic()) {
// 个播+没在麦位=可以滑动
viewpager.setUserInputEnabled(true);
} else {
viewpager.setUserInputEnabled(false);
}
}
}
public void showBaiShunGame(String url, BaiShunGameConfig config) {
closeBaiShunGame();
baiShunGameFragment = BaiShunGameWebFragment.Companion.newInstance(url, config);
baiShunGameFragment.setListener(new IBaiShunGameListener() {
@Override
public void onGameClose() {
closeBaiShunGame();
}
});
findViewById(R.id.layout_baishun_game).setVisibility(VISIBLE);
getSupportFragmentManager().beginTransaction().add(R.id.layout_baishun_game, baiShunGameFragment).commitAllowingStateLoss();
}
private boolean closeBaiShunGame() {
boolean isClose = false;
if (baiShunGameFragment != null) {
if (baiShunGameFragment.isAdded()) {
getSupportFragmentManager().beginTransaction().remove(baiShunGameFragment).commitAllowingStateLoss();
isClose = true;
}
}
findViewById(R.id.layout_baishun_game).setVisibility(View.GONE);
baiShunGameFragment = null;
return isClose;
}
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom.activity;
package com.chwl.app.avroom.activity;
import android.content.Context;
import android.content.Intent;
@@ -14,21 +14,21 @@ import androidx.gridlayout.widget.GridLayout;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.yizhuan.habu.R;
import com.yizhuan.habu.avroom.dialog.PKSelectPeopleDialog;
import com.yizhuan.habu.avroom.dialog.PKTimePickerDialog;
import com.yizhuan.habu.avroom.presenter.CreatePKPresenter;
import com.yizhuan.habu.avroom.view.ICreatePKView;
import com.yizhuan.habu.base.BaseMvpActivity;
import com.yizhuan.habu.base.TitleBar;
import com.yizhuan.habu.common.widget.dialog.DialogManager;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.room.pk.bean.PKMemberInfo;
import com.yizhuan.xchat_android_core.room.pk.bean.PKTeamInfo;
import com.yizhuan.xchat_android_core.room.pk.model.PkModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.chwl.app.R;
import com.chwl.app.avroom.dialog.PKSelectPeopleDialog;
import com.chwl.app.avroom.dialog.PKTimePickerDialog;
import com.chwl.app.avroom.presenter.CreatePKPresenter;
import com.chwl.app.avroom.view.ICreatePKView;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.app.base.TitleBar;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.room.pk.bean.PKMemberInfo;
import com.chwl.core.room.pk.bean.PKTeamInfo;
import com.chwl.core.room.pk.model.PkModel;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.utils.ResUtil;
import java.util.ArrayList;
import java.util.List;
@@ -210,7 +210,7 @@ public class CreatePKActivity extends BaseMvpActivity<ICreatePKView, CreatePKPre
redTeamName.get(i).setText(userInfoList.get(i).getNick());
} else {
redTeamAvatar.get(i).setImageResource(R.mipmap.ic_red_seat);
redTeamName.get(i).setText(R.string.wait_for_mic);
redTeamName.get(i).setText(String.valueOf(i+1));
}
}
@@ -248,7 +248,7 @@ public class CreatePKActivity extends BaseMvpActivity<ICreatePKView, CreatePKPre
blueTeamName.get(i).setText(userInfoList.get(i).getNick());
} else {
blueTeamAvatar.get(i).setImageResource(R.mipmap.ic_blue_seat);
blueTeamName.get(i).setText(R.string.wait_for_mic);
blueTeamName.get(i).setText(String.valueOf(i+1));
}
}
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom.activity;
package com.chwl.app.avroom.activity;
import android.content.Context;
import android.content.Intent;
@@ -11,17 +11,17 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.netease.nim.uikit.StatusBarUtil;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.yizhuan.habu.R;
import com.yizhuan.habu.avroom.adapter.RecordForPKAdapter;
import com.yizhuan.habu.avroom.presenter.RecordForPKPresenter;
import com.yizhuan.habu.avroom.view.IRecordForPKView;
import com.yizhuan.habu.base.BaseMvpActivity;
import com.yizhuan.habu.common.util.Utils;
import com.yizhuan.habu.ui.widget.recyclerview.decoration.ColorDecoration;
import com.yizhuan.xchat_android_core.room.pk.bean.PKRecordInfo;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.chwl.app.R;
import com.chwl.app.avroom.adapter.RecordForPKAdapter;
import com.chwl.app.avroom.presenter.RecordForPKPresenter;
import com.chwl.app.avroom.view.IRecordForPKView;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.library.common.util.Utils;
import com.chwl.app.ui.widget.recyclerview.decoration.ColorDecoration;
import com.chwl.core.room.pk.bean.PKRecordInfo;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import java.util.List;

View File

@@ -0,0 +1,77 @@
package com.chwl.app.avroom.activity
import android.annotation.SuppressLint
import androidx.core.view.WindowCompat
import com.chwl.app.R
import com.chwl.app.avroom.adapter.RoomBgAdapter
import com.chwl.app.base.BaseViewBindingActivity
import com.chwl.app.databinding.RoomBgSettingActivityBinding
import com.chwl.core.auth.AuthModel
import com.chwl.core.manager.AvRoomDataManager
import com.chwl.core.room.model.RoomSettingModel
import com.chwl.library.utils.ResUtil
import com.netease.nim.uikit.StatusBarUtil
class RoomBgSettingActivity : BaseViewBindingActivity<RoomBgSettingActivityBinding>() {
private val adapter = RoomBgAdapter()
private val model = RoomSettingModel()
override fun init() {
initWhiteTitleBar(ResUtil.getString(R.string.room_theme))
mTitleBar.setTitleColor(resources.getColor(R.color.white))
mTitleBar.setLeftImageResource(R.drawable.arrow_left_white)
binding.recyclerView.adapter = adapter
adapter.selectItem(AvRoomDataManager.get().mCurrentRoomInfo?.backPic)
adapter.setOnItemClickListener { _, view, position ->
adapter.getItem(position)?.let {
if (adapter.getSelectItem() != it) {
showUpdateRoomBackgroundTips(it)
}
}
}
val list = listOf(
"https://image.molistar.xyz/BG_0.webp",
"https://image.molistar.xyz/BG_1.webp",
"https://image.molistar.xyz/BG_2.webp",
"https://image.molistar.xyz/BG_3.webp",
"https://image.molistar.xyz/BG_4.webp",
"https://image.molistar.xyz/BG_5.webp"
)
adapter.setNewData(list)
}
private fun showUpdateRoomBackgroundTips(url: String) {
dialogManager.showOkCancelDialog(
getString(R.string.room_theme_changed_tips),
getString(R.string.btn_text_confirm_select_team_member)
) {
updateRoomBackground(url)
}
}
@SuppressLint("CheckResult")
private fun updateRoomBackground(url: String) {
dialogManager.showProgressDialog(this)
model.updateRoomBackground(AuthModel.get().currentUid, url)
.compose(bindToLifecycle()).subscribe({
dialogManager.dismissDialog()
toast(R.string.avroom_dialog_roomimposedialog_04)
adapter.selectItem(url)
}, {
dialogManager.dismissDialog()
toast(it.message)
})
}
override fun needSteepStateBar(): Boolean {
return true
}
override fun setStatusBar() {
StatusBarUtil.transparencyBar(this)
StatusBarUtil.StatusBarLightMode(this)
WindowCompat.getInsetsController(window, window.decorView).let {
it.isAppearanceLightStatusBars = false
}
}
}

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom.activity;
package com.chwl.app.avroom.activity;
import android.content.Context;
import android.content.Intent;
@@ -11,25 +11,25 @@ import androidx.recyclerview.widget.RecyclerView;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.yizhuan.habu.R;
import com.yizhuan.habu.avroom.adapter.RoomNormalListAdapter;
import com.yizhuan.habu.avroom.presenter.RoomBlackPresenter;
import com.yizhuan.habu.avroom.view.IRoomBlackView;
import com.yizhuan.habu.base.BaseMvpActivity;
import com.yizhuan.habu.common.widget.dialog.DialogManager;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.im.room.IIMRoomCoreClient;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
import com.yizhuan.xchat_android_core.super_admin.model.SuperAdminModel;
import com.yizhuan.xchat_android_core.super_admin.util.SuperAdminUtil;
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.coremanager.CoreEvent;
import com.yizhuan.xchat_android_library.utils.JavaUtil;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.chwl.app.R;
import com.chwl.app.avroom.adapter.RoomNormalListAdapter;
import com.chwl.app.avroom.presenter.RoomBlackPresenter;
import com.chwl.app.avroom.view.IRoomBlackView;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.im.room.IIMRoomCoreClient;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.room.bean.RoomInfo;
import com.chwl.core.room.model.AvRoomModel;
import com.chwl.core.super_admin.model.SuperAdminModel;
import com.chwl.core.super_admin.util.SuperAdminUtil;
import com.chwl.core.utils.net.DontWarnObserver;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.coremanager.CoreEvent;
import com.chwl.library.utils.JavaUtil;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import java.util.List;
import java.util.ListIterator;

View File

@@ -1,4 +1,4 @@
package com.yizhuan.habu.avroom.activity;
package com.chwl.app.avroom.activity;
import android.content.Intent;
import android.os.Bundle;
@@ -7,25 +7,25 @@ import android.text.TextUtils;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.chwl.core.room.bean.RoomOnlineUserBean;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMember;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
import com.yizhuan.habu.R;
import com.yizhuan.habu.avroom.adapter.RoomInviteAdapter;
import com.yizhuan.habu.avroom.presenter.RoomInvitePresenter;
import com.yizhuan.habu.avroom.view.IRoomInviteView;
import com.yizhuan.habu.base.BaseMvpActivity;
import com.yizhuan.xchat_android_core.Constants;
import com.yizhuan.xchat_android_core.noble.NobleResourceType;
import com.yizhuan.xchat_android_core.room.bean.OnlineChatMember;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.chwl.app.R;
import com.chwl.app.avroom.adapter.RoomInviteAdapter;
import com.chwl.app.avroom.presenter.RoomInvitePresenter;
import com.chwl.app.avroom.view.IRoomInviteView;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.core.Constants;
import com.chwl.core.noble.NobleResourceType;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.library.base.factory.CreatePresenter;
import com.chwl.library.utils.ListUtils;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import java.util.List;
import java.util.Map;
@@ -106,8 +106,9 @@ public class RoomInviteActivity extends BaseMvpActivity<IRoomInviteView, RoomInv
getMvpPresenter().requestChatMemberByPage(mPage, time, onlyManager);
}
@Override
public void onRequestChatMemberByPageSuccess(List<OnlineChatMember> memberList, int page) {
public void onRequestRoomOnlineListSuccess(List<RoomOnlineUserBean> memberList) {
}

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