Compare commits

...

2398 Commits

Author SHA1 Message Date
5dfbe5c571 Merge branch 'hotfix-v5.22.3-793-change_fixed_tea_version' into 'release'
fix: 头条 SDK 版本跟随输入变更

See merge request halo/android/assistant-android!888
2023-04-10 14:01:13 +08:00
b8adfc7a4b fix: 头条 SDK 版本跟随输入变更 2023-04-10 13:58:04 +08:00
87de104da6 Merge branch 'pack-v5.22.3-793-multithread_download' into 'release'
feat: 游戏下载底层下载切换至多线程

See merge request halo/android/assistant-android!887
2023-04-10 11:15:28 +08:00
b97a68828d Merge branch 'feature-meta_build_without_multithread_download' into 'release'
feat: 【光环助手】推广组测试打包任务 https://jira.shanqu.cc/browse/GHZS-972

See merge request halo/android/assistant-android!885
2023-04-10 10:59:19 +08:00
18e96d1c0c feat: 【光环助手】推广组测试打包任务 https://jira.shanqu.cc/browse/GHZS-972 2023-04-10 10:04:32 +08:00
316778e8a5 feat: 底层下载切换至多线程 2023-04-06 10:31:12 +08:00
210f731b59 chore: 版本更新至 5.22.3 2023-04-06 10:29:32 +08:00
9e6816440b Merge branch 'hotfix-v5.22.2-792-crashes' into 'release'
处理线上测试包 5.22 的相关闪退

See merge request halo/android/assistant-android!879
2023-04-06 09:24:22 +08:00
128fea4446 fix: 修复游戏详情页快速跳转时的闪退 https://sentry.shanqu.cc/organizations/lightgame/issues/285364/?project=22&query=dist%3A792&statsPeriod=14d 2023-04-05 10:19:37 +08:00
7e6e85469c fix: 修复刷新延时触发的空指针闪退 https://sentry.shanqu.cc/organizations/lightgame/issues/283770/events/9e0110112aa34b369fdfe89f00fe41f8/?project=22&query=LazyListFragment&statsPeriod=14d 2023-04-05 10:09:06 +08:00
d9c1108dfe fix: 捕抓游戏详情顶部视频暂停时显示占位图所有的异常 2023-04-05 10:01:24 +08:00
86b79d6240 fix: 修复接收卸载应用广播时偶发的数组越界闪退 https://sentry.shanqu.cc/organizations/lightgame/issues/240065/events/0ea60d852bd9400faa6ab2fc611be890/?project=22&query=dist%3A792&statsPeriod=14d 2023-04-05 10:00:29 +08:00
acd308eb00 Merge branch 'hotfix-v5.22.1-791-gid' into 'release'
处理神策 gid 绑定问题

See merge request halo/android/assistant-android!877
2023-04-04 15:35:19 +08:00
c0937b7393 fix: 补充 gid 变更的数据上报,以及神策的临时 gid 解绑操作 2023-04-04 15:27:18 +08:00
62b9e8a76c chore: 版本更新至 5.22.2 2023-04-04 10:35:52 +08:00
76b3607c7f Merge branch 'hotfix-v5.22.1-791-crash' into 'release'
fix: 修复游戏详情页顶部视频闪退

See merge request halo/android/assistant-android!875
2023-04-04 10:27:07 +08:00
619ca32a4a fix: 修复游戏详情页顶部视频闪退 2023-04-04 10:16:03 +08:00
2bd9b7cfe2 Merge branch 'feat-GHZS-1870' into 'release'
feat: VPN预授权弹窗文案修改 https://jira.shanqu.cc/browse/GHZS-1869

See merge request halo/android/assistant-android!874
2023-04-04 09:22:33 +08:00
c93978c773 feat: VPN预授权弹窗文案修改 https://jira.shanqu.cc/browse/GHZS-1869 2023-04-04 09:20:51 +08:00
60b3c25162 Merge branch 'fix-GHZS-1976' into 'release'
fix:【光环助手】神策分析报告问题(2、4) https://jira.shanqu.cc/browse/GHZS-1976

See merge request halo/android/assistant-android!872
2023-04-03 17:32:44 +08:00
8ac408b5c8 fix:【光环助手】神策分析报告问题(2、4) https://jira.shanqu.cc/browse/GHZS-1976 2023-04-03 17:18:19 +08:00
b9ea681431 Merge branch 'hotfix-v5.22.0-790-crashes' into 'release'
fix: 修复快速跳转页面时游戏详情顶部视频 mTextureView 为空导致的闪退

See merge request halo/android/assistant-android!870
2023-04-03 14:38:49 +08:00
2fb956cd3b fix: 修复快速跳转页面时游戏详情顶部视频 mTextureView 为空导致的闪退 2023-04-03 14:32:46 +08:00
b18d268f73 chore: 版本更新至 5.22.1 2023-04-03 13:54:25 +08:00
2e4c341bb2 Merge branch 'hotfix-v5.22.0-570-crashes' into 'release'
Hotfix v5.22.0 570 crashes

See merge request halo/android/assistant-android!869
2023-04-03 12:00:06 +08:00
bfed223640 fix: 修复游戏详情页顶部视频播放控件暂停 bitmap 被回收后的闪退问题 2023-04-03 11:49:23 +08:00
5bf74b5631 fix: 修复多线程遍历安装包监听对象变更时的闪退 2023-04-03 11:48:28 +08:00
fd16bc33ef chore: 更新神策 SDK 版本至 6.6.6 2023-04-03 10:21:07 +08:00
393f0942ad Merge branch 'fix-sensor' into 'dev'
fix: 调整神策 URL 存放位置,屏蔽神策 SDK 获取 MAC, IMEI 等相关数据

See merge request halo/android/assistant-android!851
2023-03-28 10:58:58 +08:00
a57f8ed305 fix: 调整神策 URL 存放位置,屏蔽神策 SDK 获取 MAC, IMEI 等相关数据 2023-03-28 10:55:10 +08:00
6fcfc2f4be Merge branch 'fix-GHZS-1788' into 'dev'
fix: 神策数据埋点第一期—0323测试(调整AppLaunch事件) https://jira.shanqu.cc/browse/GHZS-1788

See merge request halo/android/assistant-android!849
2023-03-28 09:47:17 +08:00
0ffbba06fc fix: 神策数据埋点第一期—0323测试(调整AppLaunch事件) https://jira.shanqu.cc/browse/GHZS-1788 2023-03-28 09:21:42 +08:00
baf33ca5db Merge branch 'fix-sensors' into 'dev'
fix: 修复无法切换测试环境的问题

See merge request halo/android/assistant-android!847
2023-03-27 18:04:39 +08:00
5f4ebea65e fix: 修复无法切换测试环境的问题 2023-03-27 16:46:18 +08:00
13d90793c4 Merge branch 'fix-GHZS-1783' into 'dev'
fix: 云存档点击问题 https://jira.shanqu.cc/browse/GHZS-1783

See merge request halo/android/assistant-android!844
2023-03-27 14:07:51 +08:00
85ab438e5f fix: 云存档点击问题 https://jira.shanqu.cc/browse/GHZS-1783 2023-03-27 14:05:16 +08:00
948adaa5ec Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt
2023-03-27 13:48:41 +08:00
88dc6584e7 Merge branch 'hotfix-v5.21.0-770-crashes' into 'release'
Hotfix v5.21.0 770 crashes

See merge request halo/android/assistant-android!843
2023-03-27 11:30:13 +08:00
7ed06b6c06 fix: 捕抓清理清理 APK 页面调起安装时没有 Activity 响应的问题 2023-03-27 11:26:15 +08:00
aa7bc499b2 fix: 捕抓畅玩 ContentProvider 数据插入异常 2023-03-27 11:24:51 +08:00
126064c7f1 fix: 修复系统内存不足时启动光环或重启光环造成的闪退 2023-03-27 10:51:36 +08:00
90de69b338 Merge branch 'fix-GHZS-1788' into 'dev'
fix: 神策数据埋点第一期—0323测试 https://jira.shanqu.cc/browse/GHZS-1788

See merge request halo/android/assistant-android!841
2023-03-24 16:13:42 +08:00
a16c52980f fix: 神策数据埋点第一期—0323测试 https://jira.shanqu.cc/browse/GHZS-1788 2023-03-24 15:32:07 +08:00
9b0c9aceb8 Merge branch 'fix-GHZS-1790' into 'dev'
fix:【光环助手】同步正式环境问题-新发布的视频帖详情页展示错误 https://jira.shanqu.cc/browse/GHZS-1790

See merge request halo/android/assistant-android!839
2023-03-24 11:29:42 +08:00
e9c00b4a32 fix:【光环助手】同步正式环境问题-新发布的视频帖详情页展示错误 https://jira.shanqu.cc/browse/GHZS-1790 2023-03-24 11:04:32 +08:00
e2106dd7ca Merge branch 'fix-package_observer_crash' into 'dev'
fix: 修复多线程注册取消注册包名变更回调引起的闪退问题

See merge request halo/android/assistant-android!834
2023-03-23 09:57:00 +08:00
aad3186a5e fix: 修复多线程注册取消注册包名变更回调引起的闪退问题 2023-03-23 09:37:25 +08:00
311e2292be Merge branch 'fix-GHZS-1629' into 'dev'
fix: 神策数据埋点第一期--光环助手(修改游戏单相关事件埋点,增加web上报调用方法) https://jira.shanqu.cc/browse/GHZS-1629

See merge request halo/android/assistant-android!833
2023-03-22 18:03:21 +08:00
842999ec9d fix: 神策数据埋点第一期--光环助手(修改游戏单相关事件埋点,增加web上报调用方法) https://jira.shanqu.cc/browse/GHZS-1629 2023-03-22 18:03:21 +08:00
fcba306373 fix: 更新畅玩连接服务依赖,修复连接问题 2023-03-22 14:26:29 +08:00
7cb059f1e8 Merge branch 'fix-web_download_delete_error' into 'dev'
fix: 修复网页下载游戏没有正确获取到任务被删除信息的问题

See merge request halo/android/assistant-android!823
2023-03-20 15:19:49 +08:00
78ecde06b1 fix: 修复网页下载游戏没有正确获取到任务被删除信息的问题 2023-03-20 14:49:33 +08:00
44d98090ca Merge branch 'fix-GHZS-1629' into 'dev'
fix: 神策数据埋点第一期--光环助手(修复部分上报数据不准确的问题) https://jira.shanqu.cc/browse/GHZS-1629

See merge request halo/android/assistant-android!820
2023-03-20 10:17:45 +08:00
d7e9b82ef7 fix: 神策数据埋点第一期--光环助手(修复部分上报数据不准确的问题) https://jira.shanqu.cc/browse/GHZS-1629 2023-03-20 10:05:00 +08:00
9345b70c0b Merge branch 'feature-GHZS-1629' into 'dev'
feat: 神策数据埋点第一期--光环助手 https://jira.shanqu.cc/browse/GHZS-1629

See merge request halo/android/assistant-android!818
2023-03-17 16:34:41 +08:00
168e0fff08 feat: 神策数据埋点第一期--光环助手 https://jira.shanqu.cc/browse/GHZS-1629 2023-03-17 16:34:40 +08:00
1af6776356 Merge branch 'fix-home-test-v2-game-filter' into 'dev'
fix:首页-新游开测,优化首页游戏过滤效果,优化下拉刷新效果

See merge request halo/android/assistant-android!817
2023-03-17 11:03:59 +08:00
8340dcb3a0 fix:首页-新游开测,优化首页游戏过滤效果,优化下拉刷新效果 2023-03-17 11:03:58 +08:00
863b6b7970 Merge branch 'fix-GHZS-1663' into 'dev'
fix: 游戏镜像&游戏屏蔽相关优化—0315测试(开服表卡片无法显示问题) https://jira.shanqu.cc/browse/GHZS-1663

See merge request halo/android/assistant-android!816
2023-03-16 22:41:40 +08:00
fb109bab4f Merge branch 'fix-region_settion_error' into 'dev'
fix: 修复区域镜像/屏蔽功能因为接口延迟可能出现的问题

See merge request halo/android/assistant-android!815
2023-03-16 22:31:00 +08:00
fc9bbde996 fix: 游戏镜像&游戏屏蔽相关优化—0315测试(开服表卡片无法显示问题) https://jira.shanqu.cc/browse/GHZS-1663 2023-03-16 22:29:17 +08:00
1c47720561 fix: 修复区域镜像/屏蔽功能因为接口延迟可能出现的问题 2023-03-16 22:27:42 +08:00
8f0bd4e4b5 Merge branch 'fix-GHZS-1673' into 'dev'
fix:首页-新游开测,优化 列表左右滑动的时候,容易触发页面上下滑动 的问题

See merge request halo/android/assistant-android!814
2023-03-16 22:08:01 +08:00
4427523ed9 fix:首页-新游开测,优化 列表左右滑动的时候,容易触发页面上下滑动 的问题 2023-03-16 21:56:14 +08:00
8281d36d69 Merge branch 'fix-GHZS-1668' into 'dev'
fix:首页-新游开测,修复UI间距问题,优化分页逻辑:https://jira.shanqu.cc/browse/GHZS-1668

See merge request halo/android/assistant-android!813
2023-03-16 21:24:20 +08:00
15b2073771 fix:首页-新游开测,修复UI间距问题,优化分页逻辑:https://jira.shanqu.cc/browse/GHZS-1668 2023-03-16 21:24:20 +08:00
c481d99205 Merge branch 'fix-GHZS-1663' into 'dev'
fix: 游戏镜像&游戏屏蔽相关优化—0315测试(补充问题1,2) https://jira.shanqu.cc/browse/GHZS-1663

See merge request halo/android/assistant-android!812
2023-03-16 21:16:10 +08:00
27c4cbd38b fix: 游戏镜像&游戏屏蔽相关优化—0315测试(补充问题1,2) https://jira.shanqu.cc/browse/GHZS-1663 2023-03-16 21:09:25 +08:00
32cb10853c Merge branch 'fix-GHZS-1663' into 'dev'
fix: 游戏镜像&游戏屏蔽相关优化—0315测试(0316测试:1(1)) https://jira.shanqu.cc/browse/GHZS-1663

See merge request halo/android/assistant-android!811
2023-03-16 19:40:46 +08:00
d937fa1953 fix: 游戏镜像&游戏屏蔽相关优化—0315测试(0316测试:1(1)) https://jira.shanqu.cc/browse/GHZS-1663 2023-03-16 19:36:15 +08:00
dc2bcb4699 Merge branch 'fix-GHZS-1173' into 'dev'
fix: OPPO手机拦截安装相关优化(修复弹窗显示异常) https://jira.shanqu.cc/browse/GHZS-1173

See merge request halo/android/assistant-android!810
2023-03-16 18:29:37 +08:00
f514037c48 fix: OPPO手机拦截安装相关优化(修复弹窗显示异常) https://jira.shanqu.cc/browse/GHZS-1173 2023-03-16 18:24:04 +08:00
fcae6fa36c Merge branch 'fix-GHZS-1587' into 'dev'
fix: 畅玩组件安装后自动下载游戏—0310测试(修复初始化时序问题) https://jira.shanqu.cc/browse/GHZS-1587

See merge request halo/android/assistant-android!809
2023-03-16 17:56:55 +08:00
a2594dd700 Merge branch 'fix-GHZS-1637' into 'dev'
fix:首页-新游开测,调整边框颜色和粗细,修复点击最后一个时间轴,小概率会往前移动一个时间轴问题 https://jira.shanqu.cc/browse/GHZS-1637https://jira.shanqu.cc/browse/GHZS-1668

See merge request halo/android/assistant-android!808
2023-03-16 17:53:51 +08:00
8f9fd3a24e fix:首页-新游开测,调整边框颜色和粗细,修复点击最后一个时间轴,小概率会往前移动一个时间轴问题 https://jira.shanqu.cc/browse/GHZS-1637https://jira.shanqu.cc/browse/GHZS-1668 2023-03-16 17:53:50 +08:00
b7da892475 fix: 畅玩组件安装后自动下载游戏—0310测试(修复初始化时序问题) https://jira.shanqu.cc/browse/GHZS-1587 2023-03-16 17:53:05 +08:00
9a68db252e Merge branch 'fix-GHZS-1394' into 'dev'
fix: OPPO手机拦截安装相关优化埋点上报问题 https://jira.shanqu.cc/browse/GHZS-1173

See merge request halo/android/assistant-android!807
2023-03-16 16:13:38 +08:00
5e04e62939 fix: OPPO手机拦截安装相关优化埋点上报问题 https://jira.shanqu.cc/browse/GHZS-1173 2023-03-16 16:08:11 +08:00
403991acc9 Merge branch 'fix-home-test-v2-page' into 'dev'
fix: 调整卡片条目开服日期显示格式,游戏上报字段名称,优化分页逻辑 https://jira.shanqu.cc/browse/GHZS-1637

See merge request halo/android/assistant-android!806
2023-03-16 16:06:20 +08:00
bc21fbcb1a fix: 调整卡片条目开服日期显示格式,游戏上报字段名称,优化分页逻辑 https://jira.shanqu.cc/browse/GHZS-1637 2023-03-16 16:06:20 +08:00
f0dc5a9c83 Merge branch 'fix-GHZS-1669' into 'dev'
fix: 论坛详情页相关优化—0316测试反馈(2-3) https://jira.shanqu.cc/browse/GHZS-1669

See merge request halo/android/assistant-android!805
2023-03-16 15:53:26 +08:00
a170284a3b fix: 论坛详情页相关优化—0316测试反馈(2-3) https://jira.shanqu.cc/browse/GHZS-1669 2023-03-16 15:45:50 +08:00
bd1d300341 Merge branch 'fix-GHZS-1394' into 'dev'
fix: 【光环助手】下载开始埋点上报问题 https://jira.shanqu.cc/browse/GHZS-1394

See merge request halo/android/assistant-android!804
2023-03-16 15:13:15 +08:00
ef29af1aaa fix: 【光环助手】下载开始埋点上报问题 https://jira.shanqu.cc/browse/GHZS-1394 2023-03-16 15:09:16 +08:00
eaf1696a93 Merge branch 'feature-GHZS-1664' into 'dev'
feat: 论坛详情页相关优化—0316优化 https://jira.shanqu.cc/browse/GHZS-1664

See merge request halo/android/assistant-android!803
2023-03-16 14:37:41 +08:00
5ec05a4cb8 feat: 论坛详情页相关优化—0316优化 https://jira.shanqu.cc/browse/GHZS-1664 2023-03-16 14:24:54 +08:00
277acd08eb Merge branch 'fix-GHZS-1587' into 'dev'
fix: 畅玩组件安装后自动下载游戏—0310测试 https://jira.shanqu.cc/browse/GHZS-1587

See merge request halo/android/assistant-android!802
2023-03-16 14:05:23 +08:00
9738269f56 Merge branch 'fix-GHZS-1663' into 'dev'
fix: 游戏镜像&游戏屏蔽相关优化—0315测试 https://jira.shanqu.cc/browse/GHZS-1663

See merge request halo/android/assistant-android!801
2023-03-16 13:50:13 +08:00
13dff229e9 fix: 游戏镜像&游戏屏蔽相关优化—0315测试 https://jira.shanqu.cc/browse/GHZS-1663 2023-03-16 13:45:38 +08:00
8de7e990ac fix: 畅玩组件安装后自动下载游戏—0310测试 https://jira.shanqu.cc/browse/GHZS-1587 2023-03-16 11:56:02 +08:00
97433cd0bd Merge branch 'fix-GHZS-1639' into 'dev'
fix: 游戏镜像&游戏屏蔽相关优化—0314测试-客户端 https://jira.shanqu.cc/browse/GHZS-1639

See merge request halo/android/assistant-android!800
2023-03-15 18:23:58 +08:00
3306db8f68 fix: 游戏镜像&游戏屏蔽相关优化—0314测试-客户端 https://jira.shanqu.cc/browse/GHZS-1639 2023-03-15 18:20:57 +08:00
aabc70d9bb Merge branch 'fix-test-v2-game-filter' into 'dev'
fix-修复测试和UI反馈的问题:https://jira.shanqu.cc/browse/GHZS-1637https://jira.shanqu.cc/browse/GHZS-1641

See merge request halo/android/assistant-android!799
2023-03-15 17:37:46 +08:00
aff9e036cb fix-修复测试和UI反馈的问题:https://jira.shanqu.cc/browse/GHZS-1637https://jira.shanqu.cc/browse/GHZS-1641 2023-03-15 17:37:46 +08:00
e2988cdba6 Merge branch 'fix-low_memory_error' into 'release'
fix: 修改内存不足的时候清空数据造成的闪退问题

See merge request halo/android/assistant-android!798
2023-03-15 16:02:38 +08:00
42c674c1d8 fix: 修改内存不足的时候清空数据造成的闪退问题 2023-03-15 15:59:35 +08:00
dd0962df27 Merge branch 'fix-GHZS-1634' into 'dev'
fix: 论坛详情页相关优化—0315测试-客户端 https://jira.shanqu.cc/browse/GHZS-1634

See merge request halo/android/assistant-android!797
2023-03-15 15:22:57 +08:00
c158be5714 fix: 论坛详情页相关优化—0315测试-客户端 https://jira.shanqu.cc/browse/GHZS-1634 2023-03-15 15:12:48 +08:00
ee6ec82d27 Merge branch 'fix-GHZS-1622' into 'dev'
fix: OPPO手机拦截安装相关优化—0314测试 (更正接口调用) https://jira.shanqu.cc/browse/GHZS-1622

See merge request halo/android/assistant-android!796
2023-03-15 09:24:07 +08:00
317cce1f56 fix: OPPO手机拦截安装相关优化—0314测试 (更正接口调用) https://jira.shanqu.cc/browse/GHZS-1622 2023-03-14 18:31:10 +08:00
f29f5089fd Merge branch 'feature-GHZS-1216' into 'dev'
feat:【光环助手】实名认证接口崩溃预案  https://jira.shanqu.cc/browse/GHZS-1216

See merge request halo/android/assistant-android!795
2023-03-14 18:06:49 +08:00
f5b71fdcb2 feat:【光环助手】实名认证接口崩溃预案 https://jira.shanqu.cc/browse/GHZS-1216 2023-03-14 18:03:45 +08:00
79c0e61a24 Merge branch 'feature-GHZS-1576' into 'dev'
feat: 游戏专题相关功能优化—客户端(补充下载完成的广告曝光埋点) https://jira.shanqu.cc/browse/GHZS-1576

See merge request halo/android/assistant-android!794
2023-03-14 17:50:50 +08:00
bfeadf8c75 feat: 游戏专题相关功能优化—客户端(补充下载完成的广告曝光埋点) https://jira.shanqu.cc/browse/GHZS-1576 2023-03-14 17:23:36 +08:00
b118309d4e Merge branch 'feature-GHZS-1498' into 'dev'
feat: 论坛详情页相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-1498

See merge request halo/android/assistant-android!792
2023-03-14 15:59:39 +08:00
5aab516058 feat: 论坛详情页相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-1498 2023-03-14 15:59:38 +08:00
3ef4214313 Merge branch 'fix-GHZS-1611' into 'dev'
fix: 游戏镜像&游戏屏蔽相关优化—0314测试-后端(3(2)) https://jira.shanqu.cc/browse/GHZS-1611

See merge request halo/android/assistant-android!793
2023-03-14 15:57:20 +08:00
dcca1b9ff9 fix: 游戏镜像&游戏屏蔽相关优化—0314测试-后端(3(2)) https://jira.shanqu.cc/browse/GHZS-1611 2023-03-14 15:53:26 +08:00
905b6395d7 Merge branch 'hotfix-v5.21.0-770-change_sensor_scheme' into 'release'
feat: 限制神策 SDK 渠道,日志上报稳定前先上报到测试项目,添加全局开关 https://jira.shanqu.cc/browse/GHZS-1613

See merge request halo/android/assistant-android!791
2023-03-14 14:31:24 +08:00
7bdc7a946d Merge branch 'fix-change-debug-log-class' into 'dev'
fix:更换新游开测使用的debug日志类。并补充新游开测需求地址:https://jira.shanqu.cc/browse/GHZS-1351

See merge request halo/android/assistant-android!790
2023-03-14 14:26:44 +08:00
55a92847c7 fix:更换新游开测使用的debug日志类。并补充新游开测需求地址:https://jira.shanqu.cc/browse/GHZS-1351 2023-03-14 14:26:44 +08:00
0889abef9e feat: 限制神策 SDK 渠道,日志上报稳定前先上报到测试项目,添加全局开关 https://jira.shanqu.cc/browse/GHZS-1613 2023-03-14 14:18:11 +08:00
b858365c1d Merge branch 'feat-GHZS-1351' into 'dev'
feat:首页/板块-新游开测-开发完成

See merge request halo/android/assistant-android!788
2023-03-14 14:00:57 +08:00
92d2f7e701 feat:首页/板块-新游开测-开发完成 2023-03-14 14:00:57 +08:00
0967df5751 Merge branch 'feature-GHZS-1492' into 'dev'
feat: 镜像游戏-游戏更新优化—客户端 https://jira.shanqu.cc/browse/GHZS-1492

See merge request halo/android/assistant-android!789
2023-03-14 12:03:47 +08:00
d6e5b88d95 Merge remote-tracking branch 'origin/dev' into dev-5.22.0 2023-03-13 17:47:57 +08:00
b08e653b99 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
#	module_common/src/main/java/com/gh/gamecenter/common/view/MaxHeightLinearLayout.kt
2023-03-13 17:41:10 +08:00
f539e45e18 feat: 镜像游戏-游戏更新优化—客户端 https://jira.shanqu.cc/browse/GHZS-1492 2023-03-13 15:50:49 +08:00
6a6ff5b12a ci: 调整最大 JVM heap size,避免编译时 OOM 2023-03-13 14:57:41 +08:00
b8ba5f85c9 Merge branch 'fix-GHZS-1587' into 'dev-5.22.0'
fix: 畅玩组件安装后自动下载游戏—0310测试 https://jira.shanqu.cc/browse/GHZS-1587

See merge request halo/android/assistant-android!787
2023-03-13 11:41:25 +08:00
67ed3cb919 fix: 畅玩组件安装后自动下载游戏—0310测试 https://jira.shanqu.cc/browse/GHZS-1587 2023-03-13 11:37:20 +08:00
c973bd6b5e Merge branch 'fix-GHZS-1591' into 'dev-5.22.0'
fix: 游戏专题新增[视频横屏滑动]样式—0313UI测试 https://jira.shanqu.cc/browse/GHZS-1591

See merge request halo/android/assistant-android!786
2023-03-13 11:29:10 +08:00
61e9bcb89d fix: 游戏专题新增[视频横屏滑动]样式—0313UI测试 https://jira.shanqu.cc/browse/GHZS-1591 2023-03-13 11:27:23 +08:00
2d3f18a302 Merge branch 'fix-vpn_setting_null_pointer' into 'dev-5.22.0'
fix: 修复安装配置为空时的空指针异常

See merge request halo/android/assistant-android!785
2023-03-13 11:17:50 +08:00
401d36a74e fix: 修复安装配置为空时的空指针异常 2023-03-13 11:15:36 +08:00
bee52ba0bd Merge branch 'feature-GHZS-1343' into 'dev-5.22.0'
fix: 【光环助手】OPPO手机拦截安装相关优化 https://jira.shanqu.cc/browse/GHZS-1343

See merge request halo/android/assistant-android!784
2023-03-13 11:01:02 +08:00
6d2e0853ff feat: 【光环助手】OPPO手机拦截安装相关优化 https://jira.shanqu.cc/browse/GHZS-1343 2023-03-13 11:01:02 +08:00
3b23f086c8 Merge branch 'fix-GHZS-1544' into 'dev-5.22.0'
fix: 【光环助手】游戏详情滑动问题 https://jira.shanqu.cc/browse/GHZS-1544

See merge request halo/android/assistant-android!783
2023-03-10 11:42:58 +08:00
d50e4e044b fix: 【光环助手】游戏详情滑动问题 https://jira.shanqu.cc/browse/GHZS-1544 2023-03-10 11:40:08 +08:00
84f56681d0 Merge remote-tracking branch 'origin/dev' into dev-5.22.0 2023-03-10 10:52:41 +08:00
7fbb3eec86 Merge branch 'feature-GHZS-1287' into 'dev-5.22.0'
feat: 游戏专题新增[视频横屏滑动]样式—客户端 https://jira.shanqu.cc/browse/GHZS-1287

See merge request halo/android/assistant-android!782
2023-03-09 15:55:11 +08:00
ef11044b50 feat: 游戏专题新增[视频横屏滑动]样式—客户端 https://jira.shanqu.cc/browse/GHZS-1287 2023-03-09 15:55:11 +08:00
26395038bd Merge branch 'feature-GHZS-1528' into 'dev-5.22.0'
fix: 【光环助手】畅玩组件安装后自动下载游戏 https://jira.shanqu.cc/browse/GHZS-1516

See merge request halo/android/assistant-android!781
2023-03-09 09:47:34 +08:00
68b0691618 fix: 【光环助手】畅玩组件安装后自动下载游戏 https://jira.shanqu.cc/browse/GHZS-1516 2023-03-09 09:36:32 +08:00
f5a4e4ca06 Merge branch 'fix-GHZS-1543' into 'dev-5.22.0'
fix: 启动广告图显示错误—0306测试 https://jira.shanqu.cc/browse/GHZS-1543

See merge request halo/android/assistant-android!780
2023-03-08 16:52:43 +08:00
c75eacaf45 fix: 启动广告图显示错误—0306测试 https://jira.shanqu.cc/browse/GHZS-1543 2023-03-08 16:37:09 +08:00
aa5ecb8e6c Merge branch 'feature-GHZS-1550' into 'dev-5.22.0'
fix: 游戏镜像&游戏屏蔽相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-1550

See merge request halo/android/assistant-android!779
2023-03-08 09:30:56 +08:00
00dda64279 Merge branch 'fix-GHZS-1549' into 'dev-5.22.0'
fix: 新增用户-用户短ID显示优化—0307测试 https://jira.shanqu.cc/browse/GHZS-1549

See merge request halo/android/assistant-android!778
2023-03-08 09:20:34 +08:00
2bd3be0088 fix: 新增用户-用户短ID显示优化—0307测试 https://jira.shanqu.cc/browse/GHZS-1549 2023-03-07 21:39:15 +08:00
3bff64af27 fix: 游戏镜像&游戏屏蔽相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-1550 2023-03-07 21:15:51 +08:00
32210875da chore: 版本更新至 5.19.5 2023-03-07 17:36:38 +08:00
db9d7d9d22 Merge branch 'merge_dev_to_release' into 'release'
合并 dev 部分修改到 release 分支

See merge request halo/android/assistant-android!777
2023-03-07 17:29:25 +08:00
1f211356fd fix:【光环助手】资讯文章-下载按钮显示问题(0206测试1) https://jira.shanqu.cc/browse/GHZS-1066 2023-03-07 17:20:10 +08:00
81b5b6b369 fix:【光环助手】资讯文章-下载按钮显示问题 https://jira.shanqu.cc/browse/GHZS-1066 2023-03-07 17:20:07 +08:00
98e263f99a fix:【光环助手】多版本下载面板-版本说明显示问题 https://jira.shanqu.cc/browse/GHZS-1064 2023-03-07 17:19:55 +08:00
81b74e7077 Merge branch 'feature-GHZS-1484' into 'dev-5.22.0'
feat: 游戏搜素-内容标签点击优化—客户端 https://jira.shanqu.cc/browse/GHZS-1484

See merge request halo/android/assistant-android!775
2023-03-07 16:42:35 +08:00
083a893582 feat: 游戏搜素-内容标签点击优化—客户端 https://jira.shanqu.cc/browse/GHZS-1484 2023-03-07 16:42:35 +08:00
405d4b709f Merge branch 'feature-GHZS-1491' into 'dev-5.22.0'
feat: 多版本下载面板优化—客户端 https://jira.shanqu.cc/browse/GHZS-1491

See merge request halo/android/assistant-android!776
2023-03-07 16:41:58 +08:00
36942aab5a feat: 多版本下载面板优化—客户端 https://jira.shanqu.cc/browse/GHZS-1491 2023-03-07 16:04:45 +08:00
e61b21ca49 Merge branch 'fix-dark_mode' into 'dev'
fix: 修复切换深色模式首页游戏没有更新颜色的问题

See merge request halo/android/assistant-android!774
2023-03-07 15:21:37 +08:00
b9e7f4145a fix: 修复切换深色模式首页游戏没有更新颜色的问题 2023-03-07 15:21:37 +08:00
517b474a1e Merge branch 'fix-GHZS-1440' into 'dev'
fix: 【光环助手】游戏专题夜间模式显示问题 https://jira.shanqu.cc/browse/GHZS-1440

See merge request halo/android/assistant-android!773
2023-03-07 14:24:28 +08:00
dfac1e93b7 fix: 【光环助手】游戏专题夜间模式显示问题 https://jira.shanqu.cc/browse/GHZS-1440 2023-03-07 14:02:02 +08:00
d848081f62 Merge branch 'fix-typo' into 'dev'
fix: 更正用户 id 和 gid 的命名

See merge request halo/android/assistant-android!772
2023-03-07 10:49:04 +08:00
2bac0feb2c fix: 更正用户 id 和 gid 的命名 2023-03-07 10:44:48 +08:00
a602055f98 Merge branch 'hotfix-v5.19.4-734-vector_crash' into 'release'
fix: 修复5.0以下系统矢量图相关闪退问题

See merge request halo/android/assistant-android!771
2023-03-07 10:11:00 +08:00
28ba14e9ec Merge branch 'feature-GHZS-1419' into 'dev'
feat: 神策埋点接入测试--光环埋点 https://jira.shanqu.cc/browse/GHZS-1419

See merge request halo/android/assistant-android!770
2023-03-07 09:31:20 +08:00
c36fb04f81 feat: 神策埋点接入测试--光环埋点 https://jira.shanqu.cc/browse/GHZS-1419 2023-03-07 09:21:04 +08:00
7d26a66bc3 Merge remote-tracking branch 'origin/dev' into dev-5.22.0 2023-03-06 19:57:30 +08:00
9451f9bae3 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2023-03-06 19:55:40 +08:00
ac18a678ff Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	app/proguard-rules.txt
2023-03-06 19:55:05 +08:00
bd2871788f fix: 修复5.0以下系统矢量图相关闪退问题 2023-03-06 17:16:58 +08:00
beeece1d0e Merge branch 'feature-GHZS-1417' into 'dev'
feat: 神策埋点接入测试--SDK接入 https://jira.shanqu.cc/browse/GHZS-1417

See merge request halo/android/assistant-android!769
2023-03-06 16:10:51 +08:00
1e9e39eea9 feat: 神策埋点接入测试--SDK接入 https://jira.shanqu.cc/browse/GHZS-1417 2023-03-06 16:10:51 +08:00
9162b0f67d Merge branch 'fix-news_js_error' into 'dev'
fix: 修复新闻资讯页因为没有设置 PageFinishListener 导致的方法调用问题

See merge request halo/android/assistant-android!768
2023-03-06 11:49:38 +08:00
46dd84aaf9 fix: 修复新闻资讯页因为没有设置 PageFinishListener 导致的方法调用问题 2023-03-06 11:46:24 +08:00
e5e0d99abb Merge branch 'feature-GHZS-1428' into 'dev-5.22.0'
fix: 【光环助手】游戏详情-游戏礼包显示问题 https://jira.shanqu.cc/browse/GHZS-1428

See merge request halo/android/assistant-android!767
2023-03-06 09:09:29 +08:00
6f34b16bba fix: 【光环助手】游戏详情-游戏礼包显示问题 https://jira.shanqu.cc/browse/GHZS-1428 2023-03-03 21:09:13 +08:00
5b2512f16f Merge branch 'feature-GHZS-1537' into 'dev-5.22.0'
fix: 新增用户-用户短ID显示优化—客户端 https://jira.shanqu.cc/browse/GHZS-1537

See merge request halo/android/assistant-android!766
2023-03-03 18:42:07 +08:00
9a1e0f1ae2 fix: 新增用户-用户短ID显示优化—客户端 https://jira.shanqu.cc/browse/GHZS-1537 2023-03-03 18:34:10 +08:00
a03b6b643f Merge branch 'fix-GHZS-1539' into 'dev-5.22.0'
fix: 修复缓存的启动广告图过期仍显示的问题 https://jira.shanqu.cc/browse/GHZS-1539

See merge request halo/android/assistant-android!765
2023-03-03 16:36:59 +08:00
8b2cb8b40c fix: 修复缓存的启动广告图过期仍显示的问题 https://jira.shanqu.cc/browse/GHZS-1539 2023-03-03 16:32:43 +08:00
c2402bd4d2 Merge branch 'feature-GHZS-1490' into 'dev-5.22.0'
fix: 游戏详情-顶部视频播放优化—客户端 https://jira.shanqu.cc/browse/GHZS-1490

See merge request halo/android/assistant-android!764
2023-03-03 15:53:22 +08:00
b724cde6ca fix: 游戏详情-顶部视频播放优化—客户端 https://jira.shanqu.cc/browse/GHZS-1490 2023-03-03 15:53:22 +08:00
fd3058e0be Merge branch 'fix-gdt' into 'legacy-release'
fix: 修改广点通默认数据源id和密钥

See merge request halo/android/assistant-android!762
2023-03-03 11:12:58 +08:00
03431ef3a3 Merge branch 'feature-GHZS-1502' into 'dev-5.22.0'
fix: 新增GIF图片可点击关闭—客户端 https://jira.shanqu.cc/browse/GHZS-1502

See merge request halo/android/assistant-android!761
2023-03-03 09:51:08 +08:00
23e2a79bee fix: 新增GIF图片可点击关闭—客户端 https://jira.shanqu.cc/browse/GHZS-1502 2023-03-03 09:40:06 +08:00
3aa14c9541 chore: 版本更新为 5.22.0 2023-03-02 17:54:57 +08:00
39fcc5ed63 Merge branch 'fix-GHZS-1448' into 'dev-5.21.0'
fix: 游戏礼包新增兑换码功能—0228测试-客户端部分-客户端 https://jira.shanqu.cc/browse/GHZS-1448

See merge request halo/android/assistant-android!760
2023-03-02 16:53:12 +08:00
577be922a6 fix: 游戏礼包新增兑换码功能—0228测试-客户端部分-客户端 https://jira.shanqu.cc/browse/GHZS-1448 2023-03-02 16:48:38 +08:00
19d128e98a Merge branch 'fix-typo' into 'dev-5.21.0'
fix: 更新畅玩提示文案

See merge request halo/android/assistant-android!759
2023-03-02 16:45:42 +08:00
a8acf1d6c8 fix: 更新畅玩提示文案 2023-03-02 16:44:06 +08:00
ce0a301348 Merge branch 'fix-GHZS-1485' into 'dev-5.21.0'
fix: 多版本游戏下载按钮显示问题—客户端 https://jira.shanqu.cc/browse/GHZS-1485

See merge request halo/android/assistant-android!758
2023-03-02 15:06:01 +08:00
2567e520da fix: 多版本游戏下载按钮显示问题—客户端 https://jira.shanqu.cc/browse/GHZS-1485 2023-03-02 14:57:02 +08:00
2394cf837e Merge branch 'fix-GHZS-1450' into 'dev-5.21.0'
fix: 用户更换头像功能优化—0301UI测试(第3点、添加头像边框) https://jira.shanqu.cc/browse/GHZS-1450

See merge request halo/android/assistant-android!757
2023-03-02 11:41:14 +08:00
bf692569e6 fix: 用户更换头像功能优化—0301UI测试(第3点、添加头像边框) https://jira.shanqu.cc/browse/GHZS-1450 2023-03-02 11:36:09 +08:00
090102ec5d Merge branch 'fix-GHZS-1425' into 'dev-5.21.0'
fix: 副标题前端显示优化—0228测试(修复无副标题时广告标识不显示的问题) https://jira.shanqu.cc/browse/GHZS-1425

See merge request halo/android/assistant-android!756
2023-03-02 09:57:16 +08:00
61e9966de8 fix: 副标题前端显示优化—0228测试(修复无副标题时广告标识不显示的问题) https://jira.shanqu.cc/browse/GHZS-1425 2023-03-02 09:24:44 +08:00
fe26504f43 Merge branch 'fix-video_callback_error' into 'dev-5.21.0'
fix: 修复帖子详情页的网页视频进度同步异常

See merge request halo/android/assistant-android!755
2023-03-01 19:21:40 +08:00
e4d2036cc2 chore: 版本更新至 5.19.4 2023-03-01 19:12:38 +08:00
2627a4c39c fix: 调整方法实现 2023-03-01 19:08:48 +08:00
a44d454f13 fix: 修复帖子详情页的网页视频进度同步异常 2023-03-01 18:07:35 +08:00
0600daadde Merge branch 'feature-add_download_header' into 'release'
feat: 添加新的 download header 供后端接口使用

See merge request halo/android/assistant-android!752
2023-03-01 17:55:07 +08:00
f29b1a6124 Merge branch 'fix-GHZS-1450' into 'dev-5.21.0'
fix: 用户更换头像功能优化—0301UI测试 https://jira.shanqu.cc/browse/GHZS-1450

See merge request halo/android/assistant-android!754
2023-03-01 15:41:56 +08:00
1892d10040 Merge branch 'fix-GHZS-1425' into 'dev-5.21.0'
fix: 副标题前端显示优化—0228测试 https://jira.shanqu.cc/browse/GHZS-1425

See merge request halo/android/assistant-android!753
2023-03-01 15:16:24 +08:00
9a8df13870 fix: 用户更换头像功能优化—0301UI测试 https://jira.shanqu.cc/browse/GHZS-1450 2023-03-01 15:14:11 +08:00
4eabeae5d5 fix: 副标题前端显示优化—0228测试 https://jira.shanqu.cc/browse/GHZS-1425 2023-03-01 14:34:05 +08:00
c4b1be9925 feat: 添加新的 download header 供后端接口使用 2023-03-01 13:43:37 +08:00
b2a6393afd Merge branch 'hotfix-v5.19.3-733-vspace_update_issue' into 'release'
fix: 修复畅玩组件更新后因为服务连接延迟导致的游戏游戏状态显示异常

See merge request halo/android/assistant-android!750
2023-03-01 13:38:46 +08:00
b5c15940a1 Merge branch 'hotfix-v5.19.3-733-archive_tab_error' into 'release'
fix: 修复游戏详情隐藏专区 tab 且显示云存档 tab 时,云存档红点错位的问题

See merge request halo/android/assistant-android!751
2023-03-01 13:38:01 +08:00
3f6f55b265 fix: 修复畅玩组件更新后因为服务连接延迟导致的游戏游戏状态显示异常 2023-03-01 11:19:27 +08:00
ba666da059 fix: 修复游戏详情隐藏专区 tab 且显示云存档 tab 时,云存档红点错位的问题 2023-03-01 11:16:33 +08:00
8b1f251c80 Merge remote-tracking branch 'origin/dev' into dev-5.21.0 2023-02-28 19:18:52 +08:00
01aadbd64c Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2023-02-28 19:17:48 +08:00
6256b31cd9 Merge branch 'fix-ultra_short_device_display_issue' into 'dev-5.21.0'
fix: 修复部分设备使用 applicationContext 无法获取到实时 window 高度的问题

See merge request halo/android/assistant-android!749
2023-02-28 17:43:20 +08:00
8e4d1e7e6e fix: 修复部分设备使用 applicationContext 无法获取到实时 window 高度的问题 2023-02-28 17:34:28 +08:00
fa29e00864 Merge branch 'hotfix-v5.19.3-733-gamedetail_tab' into 'release'
fix: 修复游戏详情页超过 3 个 tab 时,页面变空白的问题

See merge request halo/android/assistant-android!748
2023-02-28 16:27:36 +08:00
1b412bf081 fix: 修复游戏详情页超过 3 个 tab 时,页面变空白的问题 2023-02-28 16:13:52 +08:00
0d82b9ec71 Merge branch 'feature-GHZS-1342' into 'dev-5.21.0'
feat: 帖子详情页视频播放优化 https://jira.shanqu.cc/browse/GHZS-1342

See merge request halo/android/assistant-android!747
2023-02-28 15:43:01 +08:00
1055d0c728 feat: 帖子详情页视频播放优化 https://jira.shanqu.cc/browse/GHZS-1342 2023-02-28 15:43:01 +08:00
a53183d405 Merge branch 'feature-GHZS-1304' into 'dev-5.21.0'
feat: 用户更换头像功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-1304

See merge request halo/android/assistant-android!745
2023-02-28 15:07:52 +08:00
11874c3984 fix: 更换默认头像确认后添加正在修改dialog,修复更换默认头像后没有关闭所有弹窗的问题 2023-02-28 15:07:16 +08:00
47464b2864 Merge branch 'fix-GHZS-1422' into 'dev-5.21.0'
fix: 游戏专题-双列卡片 动图加载优化—0228测试 https://jira.shanqu.cc/browse/GHZS-1422

See merge request halo/android/assistant-android!746
2023-02-28 14:14:07 +08:00
a2ed4987ed Merge branch 'feature-GHZS-1300' into 'dev-5.21.0'
feat: 游戏礼包新增兑换码功能 https://jira.shanqu.cc/browse/GHZS-1300

See merge request halo/android/assistant-android!744
2023-02-28 14:06:58 +08:00
4392f9f20b feat: 游戏礼包新增兑换码功能 https://jira.shanqu.cc/browse/GHZS-1300 2023-02-28 14:06:57 +08:00
8e43d0cae3 Merge branch 'dev-5.21.0' into feature-GHZS-1304
# Conflicts:
#	app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt
2023-02-28 14:06:34 +08:00
f83f67553c feat: 用户更换头像功能优化—客户端(数据埋点) https://jira.shanqu.cc/browse/GHZS-1304 2023-02-28 14:02:19 +08:00
14893acf4b fix: 游戏专题-双列卡片 动图加载优化—0228测试 https://jira.shanqu.cc/browse/GHZS-1422 2023-02-28 13:44:30 +08:00
1cbed03788 Merge branch 'feature-GHZS-1312' into 'dev-5.21.0'
fix: 跳转链接通用模块新增[发现页]—客户端 https://jira.shanqu.cc/browse/GHZS-1312

See merge request halo/android/assistant-android!743
2023-02-28 11:46:09 +08:00
0eff89acfc fix: 跳转链接通用模块新增[发现页]—客户端 https://jira.shanqu.cc/browse/GHZS-1312 2023-02-28 11:40:28 +08:00
560b6046ab Merge branch 'feature-GHZS-1307' into 'dev-5.21.0'
feat: 副标题前端显示优化—客户端 https://jira.shanqu.cc/browse/GHZS-1307

See merge request halo/android/assistant-android!740
2023-02-28 09:56:58 +08:00
e898886659 feat: 副标题前端显示优化—客户端 https://jira.shanqu.cc/browse/GHZS-1307 2023-02-28 09:56:58 +08:00
b1abadc145 chore: 版本更新至 5.19.3 2023-02-27 16:21:22 +08:00
05da2c3da4 Merge branch 'hotfix-v5.19.2-732-crashes' into 'release'
fix: 修复闪退

See merge request halo/android/assistant-android!742
2023-02-27 15:35:18 +08:00
e83ece5520 fix: 捕抓游戏详情页上报视频相关日志时的闪退 https://sentry.shanqu.cc/organizations/lightgame/issues/272842/?project=22&query=release%3Acom.gh.gamecenter%405.19.2%2B732+error.unhandled%3Atrue&sort=freq 2023-02-27 15:26:59 +08:00
08a86c778d fix: 修复游戏详情延迟选中时的闪退 https://sentry.shanqu.cc/organizations/lightgame/issues/272842/?project=22&query=release%3Acom.gh.gamecenter%405.19.2%2B732+error.unhandled%3Atrue&sort=freq 2023-02-27 14:57:03 +08:00
58119a0bdb Merge branch 'feature-GHZS-1293' into 'dev-5.21.0'
feat: 游戏详情-置顶标签功能—客户端 https://jira.shanqu.cc/browse/GHZS-1293

See merge request halo/android/assistant-android!741
2023-02-27 09:55:20 +08:00
8d9c57e972 feat: 游戏详情-置顶标签功能—客户端 https://jira.shanqu.cc/browse/GHZS-1293 2023-02-27 09:55:20 +08:00
b216d33d6b chore: 版本更新至 5.19.2 2023-02-24 16:00:21 +08:00
4fe062ea40 Merge branch 'feature-GHZS-1386' into 'release'
feat: 启动畅玩游戏时添加光环版本和渠道 https://jira.shanqu.cc/browse/GHZS-1386

See merge request halo/android/assistant-android!739
2023-02-24 11:14:43 +08:00
7d678085d5 feat: 启动畅玩游戏时添加光环版本和渠道 https://jira.shanqu.cc/browse/GHZS-1386 2023-02-24 11:09:57 +08:00
acae755461 Merge branch 'fix-add_direct_link_type' into 'dev'
fix: 添加新游开测跳转链接类型 https://jira.shanqu.cc/browse/GHZS-1127

See merge request halo/android/assistant-android!738
2023-02-23 17:39:27 +08:00
f29d3b4e29 fix: 添加新游开测跳转链接类型 https://jira.shanqu.cc/browse/GHZS-1127 2023-02-23 17:37:05 +08:00
e1907fcea8 fix: 修改广点通默认数据源id和密钥 2023-02-23 15:46:22 +08:00
41f616b4a5 Merge branch 'fix-arm_build_error' into 'dev-5.21.0'
处理 ARM 处理器的编译问题

See merge request halo/android/assistant-android!736
2023-02-23 12:05:15 +08:00
d966f83b2d fix: 更换 7zip 二进制文件源 2023-02-23 11:54:07 +08:00
2c064f8ac3 chore: room 版本更新到 2.4.3 2023-02-23 11:52:21 +08:00
ca547d9ee3 Revert "fix: 将 andResGuard 移动至 init.gradle 避免 arm 处理器找不到处理文件无法正常编译运行"
This reverts commit 462e407238.
2023-02-23 11:40:56 +08:00
ff5f844a9d Merge branch 'fix_arm_build_error' into 'dev-5.21.0'
处理 ARM 设备的正常编译异常问题

See merge request halo/android/assistant-android!735
2023-02-23 10:54:59 +08:00
462e407238 fix: 将 andResGuard 移动至 init.gradle 避免 arm 处理器找不到处理文件无法正常编译运行 2023-02-23 10:40:11 +08:00
e8f9c9349d Merge branch 'fix-lint_error' into 'dev-5.21.0'
fix: 升级 LiveData 依赖来处理 lint 时误报的 error https://issuetracker.google.com/issues/169249668

See merge request halo/android/assistant-android!734
2023-02-23 10:30:22 +08:00
a931f03f1a fix: 升级 LiveData 依赖来处理 lint 时的误报的 error https://issuetracker.google.com/issues/169249668 2023-02-23 10:20:29 +08:00
f16d67a30f Merge remote-tracking branch 'origin/dev' into dev-5.21.0 2023-02-22 17:20:19 +08:00
f2b6c22235 Merge remote-tracking branch 'origin/release' into dev 2023-02-22 17:16:06 +08:00
38798446f2 Merge branch 'fix-GHZS-1372' into 'dev'
fix: 新增[新游开测]功能-前端详情页部分-0221测试  https://jira.shanqu.cc/browse/GHZS-1372

See merge request halo/android/assistant-android!733
2023-02-22 17:06:56 +08:00
d8817e98c8 fix: 新增[新游开测]功能-前端详情页部分-0221测试 https://jira.shanqu.cc/browse/GHZS-1372 2023-02-22 16:59:59 +08:00
d2238de04f Merge branch 'hotfix-v5.19.1-731-vspace_uninstall' into 'release'
fix: 畅玩组件被卸载时清空已安装的畅玩游戏列表

See merge request halo/android/assistant-android!732
2023-02-22 09:19:25 +08:00
43334a91ef fix: 畅玩组件被卸载时清空已安装的畅玩游戏列表 2023-02-22 09:19:25 +08:00
e10207452a Merge branch 'hotfix-v5.19.1-731-vspace_log' into 'release'
fix: 畅玩启动时传递游戏 id 等数据,避免日志上报异常

See merge request halo/android/assistant-android!731
2023-02-21 17:34:01 +08:00
0ef88ecfb7 Merge branch 'fix-GHZS-1372' into 'dev'
fix: 新增[新游开测]功能-前端详情页部分-0221测试 https://jira.shanqu.cc/browse/GHZS-1372

See merge request halo/android/assistant-android!730
2023-02-21 17:33:52 +08:00
b9532a7b2d fix: 畅玩启动时传递游戏 id 等数据,避免日志上班异常 2023-02-21 17:27:38 +08:00
a70cf3ffd0 fix: 新增[新游开测]功能-前端详情页部分-0221测试 https://jira.shanqu.cc/browse/GHZS-1372 2023-02-21 17:16:22 +08:00
58685b7c24 Merge remote-tracking branch 'origin/dev' into dev-5.21.0 2023-02-21 15:22:20 +08:00
76564b2414 feat: 用户更换头像功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-1304 2023-02-21 14:57:05 +08:00
70f64a755e Merge remote-tracking branch 'origin/release' into dev 2023-02-21 14:50:23 +08:00
3f84ad3a96 Merge branch 'hotfix-v5.19.1-731-wrong_download_time' into 'release'
fix: 修复小文件下载过快,统计的下载累计时间为 0 的问题

See merge request halo/android/assistant-android!729
2023-02-20 17:51:38 +08:00
74ed0080c3 fix: 修复小文件下载过快,统计的下载累计时间为 0 的问题 2023-02-20 17:40:27 +08:00
5371b5be09 Merge branch 'feature-GHZS-1272' into 'dev-5.21.0'
feat: 游戏专题-双列卡片, 动图加载优化 https://jira.shanqu.cc/browse/GHZS-1272

See merge request halo/android/assistant-android!728
2023-02-20 15:15:40 +08:00
68f58588d1 feat: 游戏专题-双列卡片, 动图加载优化 https://jira.shanqu.cc/browse/GHZS-1272 2023-02-20 15:09:30 +08:00
c72d34b4f7 Merge branch 'fix-gdt_permission' into 'legacy-release'
fix: 广点通打包时恢复READ_PHONE_STATE权限

See merge request halo/android/assistant-android!727
2023-02-20 14:51:28 +08:00
8145f389a9 fix: 广点通打包时恢复READ_PHONE_STATE权限 2023-02-20 14:45:00 +08:00
ccbfc69775 Merge branch 'feature-GHZS-1227' into 'dev-5.21.0'
feat: 畅玩组件下载面板文案修改 https://jira.shanqu.cc/browse/GHZS-1227

See merge request halo/android/assistant-android!726
2023-02-20 14:31:46 +08:00
697c1b20bf feat: 畅玩组件下载面板文案修改 https://jira.shanqu.cc/browse/GHZS-1227 2023-02-20 14:22:58 +08:00
d1aaa4c2b1 Merge branch 'fix-GHZS-1257' into 'dev-5.21.0'
fix:【光环助手】竖屏滑动专题闪烁问题 https://jira.shanqu.cc/browse/GHZS-1257

See merge request halo/android/assistant-android!724
2023-02-20 11:06:01 +08:00
826c6a896f Merge branch 'hotfix-v5.19.1-731-mypost_crash' into 'release'
fix: 修复我的发布页面跳转时回调的闪退问题

See merge request halo/android/assistant-android!725
2023-02-20 10:36:00 +08:00
90f386e84b fix: 修复我的发布页面跳转时回调的闪退问题 2023-02-20 09:58:28 +08:00
8d58f9baa5 fix:【光环助手】竖屏滑动专题闪烁问题 https://jira.shanqu.cc/browse/GHZS-1257 2023-02-17 16:50:48 +08:00
03cf5b0add Merge branch 'fix-GHZS-1258' into 'dev-5.21.0'
fix:【光环助手】游戏单合集数据显示错乱问题 https://jira.shanqu.cc/browse/GHZS-1258

See merge request halo/android/assistant-android!723
2023-02-17 15:04:57 +08:00
ff843c4e5f fix:【光环助手】游戏单合集数据显示错乱问题 https://jira.shanqu.cc/browse/GHZS-1258 2023-02-17 15:04:57 +08:00
f3033b4439 Merge branch 'feature-GHZS-1266' into 'dev-5.21.0'
fix: 【光环助手】APP启动广告图显示异常 https://jira.shanqu.cc/browse/GHZS-1266

See merge request halo/android/assistant-android!721
2023-02-17 12:04:55 +08:00
ddc3335e01 Merge branch 'fix-GHZS-1127' into 'dev'
fix: 修改新游开测不能上拉下拉加载更多的问题

See merge request halo/android/assistant-android!722
2023-02-17 12:04:44 +08:00
81549c78b3 Merge branch 'feature-GHZS-1261' into 'dev-5.21.0'
feat: 【光环助手】APP在横屏场景下显示优化 https://jira.shanqu.cc/browse/GHZS-1261

See merge request halo/android/assistant-android!720
2023-02-17 12:00:38 +08:00
e2c32d9add fix: 修改新游开测不能上拉下拉加载更多的问题 2023-02-17 11:15:12 +08:00
ac79b6eebb fix: 【光环助手】APP启动广告图显示异常 https://jira.shanqu.cc/browse/GHZS-1266 2023-02-17 10:31:26 +08:00
0ba25aaca9 feat: 【光环助手】APP在横屏场景下显示优化 https://jira.shanqu.cc/browse/GHZS-1261 2023-02-17 10:24:59 +08:00
3526787b92 Merge branch 'fix-GHZS-1256' into 'dev'
fix:【光环助手】开服日历表-详细开服显示问题 https://jira.shanqu.cc/browse/GHZS-1256

See merge request halo/android/assistant-android!719
2023-02-16 17:54:54 +08:00
515298361f Merge branch 'fix-GHZS-1331' into 'dev'
fix: 新增[新游开测]功能-前端详情页部分—0216UI测试 https://jira.shanqu.cc/browse/GHZS-1331

See merge request halo/android/assistant-android!718
2023-02-16 17:33:25 +08:00
67b493b335 fix: 新增[新游开测]功能-前端详情页部分—0216UI测试 https://jira.shanqu.cc/browse/GHZS-1331 2023-02-16 17:30:04 +08:00
5fa10a2c09 chore: 版本更新至 5.21.0 2023-02-16 16:47:37 +08:00
51d5ce265a fix:【光环助手】开服日历表-详细开服显示问题 https://jira.shanqu.cc/browse/GHZS-1256 2023-02-16 16:30:46 +08:00
cda4bb860a Merge branch 'fix-GHZS-1273' into 'dev'
fix: 新增[新游开测]功能-前端详情页部分—0215测试 https://jira.shanqu.cc/browse/GHZS-1273

See merge request halo/android/assistant-android!717
2023-02-16 15:37:26 +08:00
6a4c56a9e2 fix: 新增[新游开测]功能-前端详情页部分—0215测试 https://jira.shanqu.cc/browse/GHZS-1273 2023-02-16 15:37:26 +08:00
cd158d380b Merge branch 'hotfix-v5.19.1-731-game_detail_crash' into 'release'
fix: 修复游戏详情更新toolbar时出现的闪退问题

See merge request halo/android/assistant-android!716
2023-02-16 14:33:07 +08:00
3d049bb406 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2023-02-16 14:28:17 +08:00
63ca94509f fix: 修复游戏详情更新toolbar时出现的闪退问题 2023-02-16 14:23:36 +08:00
45a8f9683e Merge branch 'feature-GHZS-1254' into 'legacy-release'
feat: 对接广点通SDK—客户端 https://jira.shanqu.cc/browse/GHZS-1254

See merge request halo/android/assistant-android!711
2023-02-16 11:41:01 +08:00
572cbba819 feat: 对接广点通SDK—客户端 https://jira.shanqu.cc/browse/GHZS-1254 2023-02-16 11:41:00 +08:00
fd01515733 Merge branch 'fix-GHZS-1270' into 'dev'
fix: 新增[新游开测]功能-前端详情页部分—0215UI测试 https://jira.shanqu.cc/browse/GHZS-1270

See merge request halo/android/assistant-android!715
2023-02-16 11:12:36 +08:00
a687c8b149 fix: 新增[新游开测]功能-前端详情页部分—0215UI测试 https://jira.shanqu.cc/browse/GHZS-1270 2023-02-16 10:34:19 +08:00
b395b6f049 chore: 版本更新至 5.19.1 2023-02-16 09:49:52 +08:00
bb6f5e4367 Merge branch 'hotfix-v5.19.0-730-download_log_crash' into 'release'
fix: 修复下载时长为 0 时的闪退问题

See merge request halo/android/assistant-android!714
2023-02-16 09:48:36 +08:00
e9bd2b3b59 fix: 修复下载时长为 0 时的闪退问题 2023-02-16 09:43:31 +08:00
77cb3f92a1 Merge branch 'fix-GHZS-1251' into 'dev'
fix: 新增[图标浮层]功能-0214测试(1) https://jira.shanqu.cc/browse/GHZS-1251

See merge request halo/android/assistant-android!713
2023-02-15 19:30:05 +08:00
5a3db9c78e fix: 新增[图标浮层]功能-0214测试(1) https://jira.shanqu.cc/browse/GHZS-1251 2023-02-15 19:10:00 +08:00
51498b005d Merge branch 'fix-GHZS-1207-2' into 'dev'
fix: 补充消息中心文本高亮 https://jira.shanqu.cc/browse/GHZS-1207

See merge request halo/android/assistant-android!712
2023-02-15 18:43:20 +08:00
ec983f7b2c fix: 补充消息中心文本高亮 https://jira.shanqu.cc/browse/GHZS-1207 2023-02-15 18:38:14 +08:00
745e14a8ce Merge branch 'fix-GHZS-1127' into 'dev'
fix: 修改新游开测列表无法加载更多的问题

See merge request halo/android/assistant-android!710
2023-02-15 18:31:27 +08:00
4939129b21 fix: 修改列表无法加载更多的问题 2023-02-15 14:50:07 +08:00
d85da2b1b5 Merge branch 'feature-GHZS-1127' into 'dev'
feat: 新增[新游开测]功能-前端详情页部分—客户端 https://jira.shanqu.cc/browse/GHZS-1127

See merge request halo/android/assistant-android!708
2023-02-15 11:10:12 +08:00
2c90a909a6 feat: 新增[新游开测]功能-前端详情页部分—客户端 https://jira.shanqu.cc/browse/GHZS-1127 2023-02-15 11:10:11 +08:00
bd86051615 Merge remote-tracking branch 'origin/release' into dev 2023-02-15 10:49:01 +08:00
739526e9fa Merge branch 'fix-GHZS-1247' into 'release'
fix: 【光环助手】多线程下载相关数据埋点补充-0214测试 https://jira.shanqu.cc/browse/GHZS-1247

See merge request halo/android/assistant-android!709
2023-02-15 10:44:20 +08:00
cbabfe72f7 fix: 【光环助手】多线程下载相关数据埋点补充-0214测试 https://jira.shanqu.cc/browse/GHZS-1247 2023-02-15 10:37:11 +08:00
42250edbbc Merge branch 'fix-GHZS-1251' into 'dev'
fix: 新增[图标浮层]功能-0214测试(3) https://jira.shanqu.cc/browse/GHZS-1251

See merge request halo/android/assistant-android!707
2023-02-14 16:10:24 +08:00
252c933649 fix: 新增[图标浮层]功能-0214测试(3) https://jira.shanqu.cc/browse/GHZS-1251 2023-02-14 16:05:20 +08:00
f21368c761 Merge branch 'hotfix-gamedetail_jump_tab_error' into 'release'
fix: 修改游戏详情点击tab跳转错误问题

See merge request halo/android/assistant-android!706
2023-02-14 09:23:42 +08:00
2a020fb269 fix: 修改游戏详情点击tab跳转错误问题 2023-02-13 18:44:54 +08:00
0998109716 Merge remote-tracking branch 'origin/dev' into dev-5.20.0 2023-02-13 17:38:59 +08:00
89b463f40b Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2023-02-13 17:29:50 +08:00
32a6dff6cc feat: 【光环助手】多线程下载相关数据埋点补充 https://jira.shanqu.cc/browse/GHZS-1213 2023-02-13 17:28:28 +08:00
f4018172e3 Merge branch 'feature-GHZS-1213' into 'dev'
【光环助手】多线程下载相关数据埋点补充 https://jira.shanqu.cc/browse/GHZS-1213

See merge request halo/android/assistant-android!705
2023-02-13 17:26:09 +08:00
4745cede61 【光环助手】多线程下载相关数据埋点补充 https://jira.shanqu.cc/browse/GHZS-1213 2023-02-13 17:26:09 +08:00
bf39be9705 Merge branch 'feature-GHZS-1240' into 'dev-5.20.0'
fix: 新增[图标浮层]功能-0213UI测试 https://jira.shanqu.cc/browse/GHZS-1240

See merge request halo/android/assistant-android!704
2023-02-13 15:38:34 +08:00
1b5be46d53 Merge branch 'fix-GHZS-1200' into 'dev'
fix: 修改版块内容列表-发现页下载按钮不更新的问题

See merge request halo/android/assistant-android!703
2023-02-13 15:32:26 +08:00
97b7b6bcaa fix: 修改版块内容列表-发现页下载按钮不更新的问题 2023-02-13 15:30:29 +08:00
20c4ee5c0e fix: 新增[图标浮层]功能-0213UI测试 https://jira.shanqu.cc/browse/GHZS-1240 2023-02-13 14:24:38 +08:00
d76539c46a Merge branch 'fix-vgame_backup_clear_issue' into 'dev'
fix: 修复卸载所有畅玩游戏时没有正确清理数据库文件备份的问题

See merge request halo/android/assistant-android!702
2023-02-10 19:19:46 +08:00
a8a8f6835a fix: 修复卸载所有畅玩游戏时没有正确清理数据库文件备份的问题 2023-02-10 19:14:47 +08:00
656213153d Merge branch 'fix-webview_check_crash' into 'dev'
fix: 修复部分设备上检测 webview 类型时触发的闪退问题

See merge request halo/android/assistant-android!701
2023-02-10 17:53:42 +08:00
4a70dfed06 fix: 修复部分设备上检测 webview 类型时触发的闪退问题 2023-02-10 17:27:47 +08:00
4306f25b5e Merge branch 'fix-vgame_launch_issue' into 'dev'
fix: 保证在主线程启动畅玩游戏

See merge request halo/android/assistant-android!700
2023-02-10 16:43:43 +08:00
608b0d1c3a fix: 保证在主线程启动畅玩游戏 2023-02-10 16:41:15 +08:00
db119c22b3 Merge branch 'feature-GHZS-1001' into 'dev-5.20.0'
fix: 优化普通帖子详情评论区的显示 https://jira.shanqu.cc/browse/GHZS-1001

See merge request halo/android/assistant-android!699
2023-02-10 15:34:37 +08:00
02ba8df424 fix: 优化普通帖子详情评论区的显示 https://jira.shanqu.cc/browse/GHZS-1001 2023-02-10 15:34:37 +08:00
9071675fae Merge branch 'fix-GHZS-1221' into 'dev'
fix: 【游戏工具】原神悬浮窗登录问题 https://jira.shanqu.cc/browse/GHZS-1221

See merge request halo/android/assistant-android!698
2023-02-10 10:06:36 +08:00
21dc906600 fix: 【游戏工具】原神悬浮窗登录问题 https://jira.shanqu.cc/browse/GHZS-1221 2023-02-10 10:02:52 +08:00
677f1d6fb9 Merge branch 'feature-GHZS-1100' into 'dev-5.20.0'
feat: 新增[图标浮层]功能—客户端 https://jira.shanqu.cc/browse/GHZS-1100

See merge request halo/android/assistant-android!693
2023-02-10 09:54:37 +08:00
5bf0bb5042 feat: 新增[图标浮层]功能—客户端 https://jira.shanqu.cc/browse/GHZS-1100 2023-02-10 09:54:37 +08:00
4b90b43d0f Merge branch 'fix-GHZS-1229' into 'dev'
fix: 修复畅玩管理相关问题(1, 2, 4) https://jira.shanqu.cc/browse/GHZS-1229

See merge request halo/android/assistant-android!697
2023-02-10 09:14:05 +08:00
a03016a70c fix: 修复畅玩管理相关问题(1, 2, 4) https://jira.shanqu.cc/browse/GHZS-1229 2023-02-09 18:08:20 +08:00
0957ad65a3 Merge branch 'fix-vgame_database_issue' into 'dev'
fix: 修复畅玩游戏因为安装完成插入数据库异常而导致的显示问题

See merge request halo/android/assistant-android!696
2023-02-09 15:34:23 +08:00
13b004a78d fix: 修复畅玩游戏因为安装完成插入数据库异常而导致的显示问题 2023-02-09 15:28:18 +08:00
8e2fcd08b9 Merge remote-tracking branch 'origin/dev' into dev-5.20.0 2023-02-09 10:33:20 +08:00
6d4c16e1a9 Merge branch 'fix-vspace_installed_status' into 'dev'
fix: 修复畅玩组件没有图标时的检测安装问题

See merge request halo/android/assistant-android!695
2023-02-08 15:30:12 +08:00
efcff725ee fix: 修复畅玩组件没有图标时的检测安装问题 2023-02-08 15:24:05 +08:00
6076ad971f Merge branch 'feature-GHZS-1191' into 'dev'
fix: 【光环助手】模拟器banner图展示不完整 https://jira.shanqu.cc/browse/GHZS-1191

See merge request halo/android/assistant-android!694
2023-02-08 14:59:37 +08:00
44b497a697 fix: 【光环助手】模拟器banner图展示不完整 https://jira.shanqu.cc/browse/GHZS-1191 2023-02-08 14:59:37 +08:00
f7b86ef23c Merge branch 'fix-GHZS-1207' into 'dev'
fix: 修复评价详情回复列表内容高亮可复制文本不生效的问题 https://jira.shanqu.cc/browse/GHZS-1207

See merge request halo/android/assistant-android!692
2023-02-08 14:32:39 +08:00
3972b6fa17 fix: 修复评价详情回复列表内容高亮可复制文本不生效的问题 https://jira.shanqu.cc/browse/GHZS-1207 2023-02-08 14:26:21 +08:00
ead6e13ae5 Merge branch 'feature-GHZS-1187' into 'dev'
fix: 镜像设置相关功能优化—0206测试 https://jira.shanqu.cc/browse/GHZS-1187

See merge request halo/android/assistant-android!691
2023-02-08 13:54:36 +08:00
0588d072bc fix: 镜像设置相关功能优化—0206测试 https://jira.shanqu.cc/browse/GHZS-1187 2023-02-08 12:24:58 +08:00
f39010f2cb Merge branch 'feature-GHZS-1200' into 'dev'
fix: 【光环助手】首页/版块内容列表-发现页 下载问题 https://jira.shanqu.cc/browse/GHZS-1200

See merge request halo/android/assistant-android!690
2023-02-08 11:37:13 +08:00
fdc6907e93 fix: 【光环助手】首页/版块内容列表-发现页 下载问题 https://jira.shanqu.cc/browse/GHZS-1200 2023-02-08 11:28:54 +08:00
b5722e8e06 Merge branch 'feature-GHZS-1103' into 'dev-5.20.0'
fix: 发现页相关功能优化(第二期)—客户端 https://jira.shanqu.cc/browse/GHZS-1103

See merge request halo/android/assistant-android!689
2023-02-08 11:15:15 +08:00
44e331d368 fix: 发现页相关功能优化(第二期)—客户端 https://jira.shanqu.cc/browse/GHZS-1103 2023-02-08 11:12:02 +08:00
63ef4bd9df Merge branch 'fix-vspace_without_icon_error' into 'dev'
fix: 修复畅玩组件没有桌面图标时的检测安装问题

See merge request halo/android/assistant-android!688
2023-02-08 10:38:15 +08:00
eb6f078654 fix: 修复畅玩组件没有图标时的检测安装问题 2023-02-08 10:34:11 +08:00
8d4b8bdd01 Merge branch 'fix-horizontal_subject_click_issue' into 'dev'
fix: 修复横向固定专题跳转游戏详情下载按钮为空的问题

See merge request halo/android/assistant-android!687
2023-02-07 17:50:52 +08:00
ef7b8a7d79 fix: 修复横向固定专题跳转游戏详情下载按钮为空的问题 2023-02-07 17:43:37 +08:00
125640c22d Merge branch 'fix-GHZS-1167' into 'dev'
fix: 修复解压异常导致任务无法被删除的问题 https://jira.shanqu.cc/browse/GHZS-1167

See merge request halo/android/assistant-android!686
2023-02-07 16:57:29 +08:00
f4d7fd8715 fix: 修复解压异常导致任务无法被删除的问题 https://jira.shanqu.cc/browse/GHZS-1167 2023-02-07 16:51:53 +08:00
04cf28fc66 Merge branch 'feature-GHZS-1155' into 'dev'
fix:【光环助手】游戏评分在模拟器无法发布回复问题 https://jira.shanqu.cc/browse/GHZS-1155

See merge request halo/android/assistant-android!685
2023-02-06 17:39:04 +08:00
f2874d6b03 fix:【光环助手】游戏评分在模拟器无法发布回复问题 https://jira.shanqu.cc/browse/GHZS-1155 2023-02-06 17:09:53 +08:00
d21b5492c0 Merge branch 'fix-GHZS-1167' into 'dev'
fix: 修复浏览器安装模式下XAPK无法安装问题 https://jira.shanqu.cc/browse/GHZS-1167

See merge request halo/android/assistant-android!684
2023-02-06 16:00:39 +08:00
9aa21d6649 fix: 修复浏览器安装模式下XAPK无法安装问题 https://jira.shanqu.cc/browse/GHZS-1167 2023-02-06 15:56:05 +08:00
562faceba9 Merge branch 'feature-GHZS-1066' into 'dev-5.20.0'
fix:【光环助手】资讯文章-下载按钮显示问题(0206测试1) https://jira.shanqu.cc/browse/GHZS-1066

See merge request halo/android/assistant-android!683
2023-02-06 14:45:24 +08:00
656204de13 fix:【光环助手】资讯文章-下载按钮显示问题(0206测试1) https://jira.shanqu.cc/browse/GHZS-1066 2023-02-06 14:42:54 +08:00
f6b40a02e7 Merge branch 'feature-GHZS-1157' into 'dev'
fix: 游戏镜像相关数据埋点补充—客户端 https://jira.shanqu.cc/browse/GHZS-1157

See merge request halo/android/assistant-android!682
2023-02-03 14:00:12 +08:00
f1d7ecda57 fix: 游戏镜像相关数据埋点补充—客户端 https://jira.shanqu.cc/browse/GHZS-1157 2023-02-03 13:56:33 +08:00
5c80bdaf51 Merge branch 'fix-wrong_log' into 'dev'
fix: 修复游戏详情 tab 点击上报异常 https://jira.shanqu.cc/browse/GHZS-1164

See merge request halo/android/assistant-android!681
2023-02-03 11:43:14 +08:00
4b70b03c0d fix: 修复游戏详情 tab 点击上报异常 https://jira.shanqu.cc/browse/GHZS-1164 2023-02-03 11:38:28 +08:00
7e6d227bdd Merge branch 'feature-GHZS-1161' into 'dev'
fix: 镜像设置相关功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-1161

See merge request halo/android/assistant-android!680
2023-02-03 11:32:59 +08:00
a241ea4ad3 fix: 镜像设置相关功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-1161 2023-02-03 11:28:17 +08:00
7cb88445af Merge branch 'feature-GHZS-1161' into 'dev'
fix: 镜像设置相关功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-1161

See merge request halo/android/assistant-android!679
2023-02-03 09:58:57 +08:00
c895717393 fix: 镜像设置相关功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-1161 2023-02-03 09:55:43 +08:00
23bd96bbb2 Merge branch 'feature-GHZS-1149' into 'dev'
fix: 【光环助手】自定义栏目-正文说明 显示问题 https://jira.shanqu.cc/browse/GHZS-1149

See merge request halo/android/assistant-android!678
2023-02-03 09:16:46 +08:00
3308f18133 fix: 【光环助手】自定义栏目-正文说明 显示问题 https://jira.shanqu.cc/browse/GHZS-1149 2023-02-02 18:41:02 +08:00
7d1298f306 Merge branch 'feature-GHZS-1147' into 'dev'
fix: 【光环助手】游戏详情-大家都在玩 相关问题(2) https://jira.shanqu.cc/browse/GHZS-1147

See merge request halo/android/assistant-android!677
2023-02-02 16:13:42 +08:00
61d48fe392 fix: 【光环助手】游戏详情-大家都在玩 相关问题(2) https://jira.shanqu.cc/browse/GHZS-1147 2023-02-02 16:10:06 +08:00
02f871f95f Merge branch 'feature-GHZS-1148' into 'dev'
fix:【光环助手】首页/版块内容列表-安利墙显示问题 https://jira.shanqu.cc/browse/GHZS-1148

See merge request halo/android/assistant-android!676
2023-02-02 15:50:19 +08:00
8a0c7c9992 fix:【光环助手】首页/版块内容列表-安利墙显示问题 https://jira.shanqu.cc/browse/GHZS-1148 2023-02-02 15:06:45 +08:00
afdf102f85 Merge branch 'feature-GHZS-1119' into 'dev-5.20.0'
fix: 模拟器图片显示优化—客户端 https://jira.shanqu.cc/browse/GHZS-1119

See merge request halo/android/assistant-android!675
2023-02-01 17:48:58 +08:00
3f48d460fb fix: 模拟器图片显示优化—客户端 https://jira.shanqu.cc/browse/GHZS-1119 2023-02-01 17:43:13 +08:00
43db2becf2 Merge branch 'feature-GHZS-1064' into 'dev-5.20.0'
fix:【光环助手】多版本下载面板-版本说明显示问题 https://jira.shanqu.cc/browse/GHZS-1064

See merge request halo/android/assistant-android!674
2023-02-01 16:54:38 +08:00
e3d4aa66f9 fix:【光环助手】多版本下载面板-版本说明显示问题 https://jira.shanqu.cc/browse/GHZS-1064 2023-02-01 16:46:22 +08:00
a7012fa27f Merge branch 'feature-vpn' into 'dev-5.20.0'
feat: 完成简单的 VPN 网络限制功能 https://jira.shanqu.cc/browse/GHZS-1136

See merge request halo/android/assistant-android!673
2023-02-01 15:58:47 +08:00
540982250a feat: 完成简单的 VPN 网络限制功能 https://jira.shanqu.cc/browse/GHZS-1136?jql=text%20~%20%22vpn%22 2023-02-01 15:38:35 +08:00
3a5cddf250 Merge branch 'feature-GHZS-1048' into 'dev-5.20.0'
fix:【光环助手】内容卡片-游戏开服 相关问题 https://jira.shanqu.cc/browse/GHZS-1048

See merge request halo/android/assistant-android!672
2023-02-01 15:26:25 +08:00
48c5171e92 fix:【光环助手】内容卡片-游戏开服 相关问题 https://jira.shanqu.cc/browse/GHZS-1048 2023-02-01 15:23:10 +08:00
3dcc23509f Merge branch 'feature-GHZS-1051' into 'dev-5.20.0'
fix: 【光环助手】游戏单前端显示问题 https://jira.shanqu.cc/browse/GHZS-1051

See merge request halo/android/assistant-android!671
2023-02-01 14:05:17 +08:00
04af2a54dd fix: 【光环助手】游戏单前端显示问题 https://jira.shanqu.cc/browse/GHZS-1051 2023-02-01 14:00:03 +08:00
ec9e225c1a Merge branch 'feature-GHZS-1049' into 'dev-5.20.0'
fix:【光环助手】游戏下载过程中闪烁问题 https://jira.shanqu.cc/browse/GHZS-1049

See merge request halo/android/assistant-android!670
2023-02-01 11:46:18 +08:00
01c2ff29f1 Merge branch 'feature-GHZS-1066' into 'dev-5.20.0'
fix:【光环助手】资讯文章-下载按钮显示问题 https://jira.shanqu.cc/browse/GHZS-1066

See merge request halo/android/assistant-android!669
2023-02-01 11:28:23 +08:00
9ddc4b1de0 chore: 版本更新到 5.20.0 2023-02-01 11:26:50 +08:00
de5420f01d fix:【光环助手】资讯文章-下载按钮显示问题 https://jira.shanqu.cc/browse/GHZS-1066 2023-02-01 11:14:46 +08:00
4a79a35394 fix:【光环助手】游戏下载过程中闪烁问题 https://jira.shanqu.cc/browse/GHZS-1049 2023-02-01 11:12:29 +08:00
99049af27b chore: 版本更新到 5.17.4 (旧提交好像丢失了?) 2023-01-31 15:02:44 +08:00
d3565f105a Merge branch 'feature-GHZS-1074' into 'release'
feat:【光环助手】快手SDK对接需求—客户端 https://jira.shanqu.cc/browse/GHZS-1074

See merge request halo/android/assistant-android!668
2023-01-31 14:52:43 +08:00
7e004c5bbd feat:【光环助手】快手SDK对接需求—客户端 https://jira.shanqu.cc/browse/GHZS-1074 2023-01-31 14:52:43 +08:00
99c318c571 chore: 版本更新到 5.19.0 2023-01-31 10:24:44 +08:00
e77542abef Merge branch 'feature-GHZS-1020' into 'dev'
fix: 游戏镜像&游戏屏蔽优化汇总—0113补充  https://jira.shanqu.cc/browse/GHZS-1020

See merge request halo/android/assistant-android!667
2023-01-31 09:29:28 +08:00
2a5b189d36 Merge branch 'fix-discover_card_crash' into 'dev'
fix: 修复首页发现页卡片闪退问题

See merge request halo/android/assistant-android!666
2023-01-30 10:52:36 +08:00
8a6ac74b87 fix: 修复首页发现页卡片闪退问题 2023-01-30 10:46:03 +08:00
e8b185cb0f Merge branch 'feature-GHZS-1040' into 'dev'
fix: 游戏广告管理功能(第二期)—0118测试(2) https://jira.shanqu.cc/browse/GHZS-1040

See merge request halo/android/assistant-android!665
2023-01-18 15:01:03 +08:00
e4dc0d9cda fix: 游戏广告管理功能(第二期)—0118测试(2) https://jira.shanqu.cc/browse/GHZS-1040 2023-01-18 14:54:34 +08:00
44bee7bb4b Merge branch 'hotfix-v5.17.4-694-wechat_share_callback' into 'release'
fix: 修复部分机型不回调网页微信分享结果的问题

See merge request halo/android/assistant-android!664
2023-01-18 11:28:50 +08:00
22ff99e6e3 fix: 修复部分机型不回调网页微信分享结果的问题 2023-01-18 11:08:16 +08:00
f70f574e6d fix: 游戏镜像&游戏屏蔽优化汇总—0113补充 https://jira.shanqu.cc/browse/GHZS-1020 2023-01-17 15:14:07 +08:00
b6db8fa99f Merge branch 'feature-GHZS-998' into 'dev'
fix: 游戏镜像&游戏屏蔽优化汇总-0112测试(2(2)) https://jira.shanqu.cc/browse/GHZS-998

See merge request halo/android/assistant-android!663
2023-01-16 16:38:30 +08:00
2e113314ba fix: 游戏镜像&游戏屏蔽优化汇总-0112测试(2(2)) https://jira.shanqu.cc/browse/GHZS-998 2023-01-16 16:33:55 +08:00
d84f208de4 Merge branch 'feature-GHZS-988' into 'dev'
feat: 优化 GameEntity 高频调用方法的性能

See merge request halo/android/assistant-android!662
2023-01-16 10:41:29 +08:00
09ae826e3c feat: 优化 GameEntity 高频调用方法的性能 https://jira.shanqu.cc/browse/GHZS-968 2023-01-15 14:38:19 +08:00
18a04aac52 Merge branch 'fix-home_discover_item_dislocation' into 'dev'
fix: 修复首页发现页Item提交不喜欢错位问题

See merge request halo/android/assistant-android!661
2023-01-13 16:52:19 +08:00
cec418d484 fix: 修复首页发现页Item提交不喜欢错位问题 2023-01-13 16:42:30 +08:00
4dfed562d4 Merge branch 'feature-GHZS-956' into 'dev'
feat: 完善首页列表的子项数据比对代码 https://jira.shanqu.cc/browse/GHZS-956

See merge request halo/android/assistant-android!656
2023-01-13 15:51:36 +08:00
479b243136 feat: 完善首页列表的子项数据比对代码 https://jira.shanqu.cc/browse/GHZS-956 2023-01-13 15:51:36 +08:00
392bdf9715 Merge branch 'feature-GHZS-998' into 'dev'
fix: 游戏镜像&游戏屏蔽优化汇总-0112测试 https://jira.shanqu.cc/browse/GHZS-998

See merge request halo/android/assistant-android!660
2023-01-13 11:47:04 +08:00
39a4dcbe34 fix: 游戏镜像&游戏屏蔽优化汇总-0112测试 https://jira.shanqu.cc/browse/GHZS-998 2023-01-13 11:47:04 +08:00
3104db7c10 Merge branch 'fix_missing_material_button_crash' into 'dev'
fix: 修复 compose 包切换渠道时的闪退问题

See merge request halo/android/assistant-android!659
2023-01-13 10:25:16 +08:00
0f9cff90f8 fix: 修复 compose 包切换渠道时的闪退问题 2023-01-13 10:20:21 +08:00
197e650e81 Merge remote-tracking branch 'origin/release' into dev 2023-01-13 09:53:09 +08:00
f60c907978 Merge branch 'hotfix-vspace_launch_error' into 'release'
修复畅玩游戏安装异常

See merge request halo/android/assistant-android!658
2023-01-12 20:46:00 +08:00
3f21d7d37c 修复畅玩游戏安装异常 2023-01-12 20:46:00 +08:00
e622d6a8ee Merge branch 'hotfix-v5.17.3-693-crashes' into 'release'
fix: 全量捕抓畅玩云存档下载的数据库异常

See merge request halo/android/assistant-android!657
2023-01-12 17:13:42 +08:00
e911588569 fix: 全量捕抓畅玩云存档下载的数据库异常 2023-01-12 17:04:36 +08:00
92d006e018 Merge branch 'feature-GHZS-982' into 'dev'
fix: 处理部分页面深色模式下的显示异常 https://jira.shanqu.cc/browse/GHZS-982

See merge request halo/android/assistant-android!655
2023-01-12 14:15:07 +08:00
a04c9bb7c2 Merge branch 'fix-dark_mode' into 'dev'
处理部分界面切换深色模式出现的异常

See merge request halo/android/assistant-android!652
2023-01-12 14:14:36 +08:00
f0093f3ff5 fix: 处理部分页面深色模式下的显示异常 https://jira.shanqu.cc/browse/GHZS-982 2023-01-12 13:55:32 +08:00
8b1c046475 Merge branch 'hotfix-v5.17.3-693-fix_vgame_update' into 'release'
fix: 修复畅玩游戏更新功能

See merge request halo/android/assistant-android!654
2023-01-12 09:21:06 +08:00
984a1ba517 fix: 修复畅玩游戏更新功能 2023-01-12 09:21:05 +08:00
d5021e139d Merge branch 'fix-data_compare_issue' into 'dev'
fix: 还原部分列表 data class,避免列表比较时的异常

See merge request halo/android/assistant-android!653
2023-01-11 16:59:54 +08:00
d43613b259 fix: 还原部分列表 data class,避免列表比较时的异常 2023-01-11 16:54:14 +08:00
8c2eb3d2be fix: 修复礼包中心右上角管理菜单显示时标题不居中的问题 2023-01-11 11:49:56 +08:00
3e55f2e1a1 fix: 修复礼包中心存号箱tab没有兼容深色模式的问题 2023-01-11 11:48:45 +08:00
2424521d0f fix: 修复部分带Tab界面Tab切换深色模式不变色的问题 2023-01-11 11:48:06 +08:00
e42b060e85 Merge branch 'feature-GHZS-953' into 'dev'
fix: 游戏镜像&游戏屏蔽优化汇总—客户端 https://jira.shanqu.cc/browse/GHZS-953

See merge request halo/android/assistant-android!651
2023-01-11 11:18:28 +08:00
e29a787c73 fix: 游戏镜像&游戏屏蔽优化汇总—客户端 https://jira.shanqu.cc/browse/GHZS-953 2023-01-11 11:18:28 +08:00
362ac1415c Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2023-01-11 11:11:02 +08:00
a5cdc5b432 Merge branch 'feature-GHZS-973' into 'dev'
fix: 【光环助手】内容卡片-镜像游戏显示优化 https://jira.shanqu.cc/browse/GHZS-973

See merge request halo/android/assistant-android!650
2023-01-11 09:23:41 +08:00
1d3ef08bb3 fix: 【光环助手】内容卡片-镜像游戏显示优化 https://jira.shanqu.cc/browse/GHZS-973 2023-01-10 21:38:13 +08:00
a337494d22 chore: 版本更新到 5.17.3 2023-01-10 16:00:58 +08:00
6c5f9f2689 Merge branch 'hotfix-v5.17.2-692-crashes' into 'release'
修复闪退和畅玩连接异常

See merge request halo/android/assistant-android!649
2023-01-10 16:00:12 +08:00
7ad73b84f9 fix: 修复畅玩 contentProvider 写入闪退,修复畅玩服务断连后首次安装失败的问题 2023-01-10 15:53:34 +08:00
ad683b66d7 fix: 修复检查设备 webview 状态时 webview 列表为空时的闪退 2023-01-10 15:51:12 +08:00
fb719577cf chore: 版本更新到 5.17.2 2023-01-09 18:17:16 +08:00
7770f16565 Merge branch 'hotfix-v5.17.1-691-crashes' into 'release'
fix: 修复存储满了的闪退问题,尝试修复畅玩游戏写入数据时的闪退问题,捕抓畅玩时启动安装 activity 的闪退

See merge request halo/android/assistant-android!647
2023-01-09 18:16:37 +08:00
43fdd0d8d3 Merge branch 'revert-fbd61f37' into 'release'
Revert "Merge branch 'hotfix-v5.17.1-691-home_list_crash' into 'release'"

See merge request halo/android/assistant-android!648
2023-01-09 18:09:37 +08:00
0067ef2c40 Revert "Merge branch 'hotfix-v5.17.1-691-home_list_crash' into 'release'"
This reverts merge request !640
2023-01-09 18:08:07 +08:00
03a7f2bd89 fix: 修复存储满了的闪退问题,尝试修复畅玩游戏写入数据时的闪退问题,捕抓畅玩时启动安装 activity 的闪退 2023-01-09 17:57:47 +08:00
07d4865593 Merge branch 'feature-GHZS-954' into 'release'
fix: 部分机型帖子展示空白 https://jira.shanqu.cc/browse/GHZS-954

See merge request halo/android/assistant-android!646
2023-01-09 12:02:32 +08:00
ba49c9aa25 fix: 部分机型帖子展示空白 https://jira.shanqu.cc/browse/GHZS-954 2023-01-09 12:02:32 +08:00
d972023a6a Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt
#	app/src/main/java/com/gh/common/provider/AppProviderImpl.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/rating/edit/RatingEditActivity.kt
#	app/src/main/java/com/halo/assistant/HaloApp.java
#	dependencies.gradle
#	module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt
#	module_login/src/main/java/com/gh/gamecenter/login/user/UserRepository.java
2023-01-09 11:00:20 +08:00
f19a687eee Merge branch 'hotfix-v5.17.1-691-activity_floating_window_display_issue' into 'release'
fix: 修复返回活动悬浮窗在部分页面隐藏并禁用的问题(旧活动需要,但旧活动已下线)

See merge request halo/android/assistant-android!645
2023-01-09 10:27:03 +08:00
3fbec365a0 fix: 修复活动悬浮窗在部分页面隐藏自动禁用的问题(旧活动需要,但旧活动已下线) 2023-01-09 10:20:55 +08:00
53987d29b0 Merge branch 'feature-GHZS-940' into 'dev'
fix: 整理 DialogUtils 的历史弹窗并改为新的弹窗-0106UI测试 https://jira.shanqu.cc/browse/GHZS-940

See merge request halo/android/assistant-android!644
2023-01-09 10:10:15 +08:00
1999663cc8 fix: 整理 DialogUtils 的历史弹窗并改为新的弹窗-0106UI测试 https://jira.shanqu.cc/browse/GHZS-940 2023-01-09 10:03:02 +08:00
d1dba07b6b Merge branch 'fix-GHZS-947' into 'release'
fix: 修复回到活动悬浮窗显示异常

See merge request halo/android/assistant-android!642
2023-01-06 20:39:03 +08:00
a53239afd8 Merge branch 'fix-vspace_install_issue' into 'release'
fix: 修复畅玩游戏安装时,因为没有成功或失败回调结果导致无法再次安装的问题

See merge request halo/android/assistant-android!643
2023-01-06 20:39:01 +08:00
26f2b161bd fix: 修复畅玩游戏安装时,因为没有成功或失败回调结果导致无法再次安装的问题 2023-01-06 20:31:40 +08:00
8b28b8de44 fix: 修复回到活动悬浮窗显示异常 2023-01-06 19:20:39 +08:00
81ab27d02a Merge branch 'hotfix-v5.17.1-691-vector_crash' into 'release'
fix: 修复5.0以下系统矢量图相关的闪退问题

See merge request halo/android/assistant-android!641
2023-01-06 17:07:46 +08:00
544c67c316 fix: 修复5.0以下系统矢量图相关的闪退问题 2023-01-06 17:02:27 +08:00
fbd61f3783 Merge branch 'hotfix-v5.17.1-691-home_list_crash' into 'release'
fix: 修复横向专题和多列横向专题数据变更时因为 DiffUtils 没有正确分发数据变更引起的闪退问题...

See merge request halo/android/assistant-android!640
2023-01-06 15:22:39 +08:00
5f4c0ab2df fix: 修复横向专题和多列横向专题数据变更时因为 DiffUtils 没有正确分发数据变更引起的闪退问题 https://sentry.shanqu.cc/organizations/lightgame/issues/34950/?project=22&query=is%3Aunresolved&statsPeriod=24h 2023-01-06 14:43:07 +08:00
3b731bdbf9 Merge branch 'feature-GHZS-931' into 'dev'
fix: 【光环助手】发现页提交不喜欢错位问题 https://jira.shanqu.cc/browse/GHZS-931

See merge request halo/android/assistant-android!639
2023-01-06 14:26:13 +08:00
589e433676 fix: 【光环助手】发现页提交不喜欢错位问题 https://jira.shanqu.cc/browse/GHZS-931 2023-01-06 14:16:51 +08:00
424aed9630 Merge branch 'feature-GHZS-922' into 'dev'
fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-922

See merge request halo/android/assistant-android!637
2023-01-05 17:56:03 +08:00
b9093ee846 fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-922 2023-01-05 17:56:02 +08:00
ff245ad516 chore: 版本更新到 5.17.1 2023-01-05 15:59:11 +08:00
315523a27f Merge branch 'fix_vspace_wrong_install_status' into 'release'
fix: 修复畅玩游戏卸载再安装时会错误调用安装的问题

See merge request halo/android/assistant-android!638
2023-01-05 15:31:36 +08:00
a3ae5ecb7b fix: 修复畅玩游戏卸载再安装时会错误调用安装的问题 2023-01-05 15:27:35 +08:00
dfc7c918d7 Merge branch 'fix-vgame_backup' into 'release'
修复畅玩游戏备份问题

See merge request halo/android/assistant-android!633
2023-01-05 14:59:54 +08:00
d396deb94b 修复畅玩游戏备份问题 2023-01-05 14:59:54 +08:00
f0866d1a4c Merge branch 'feature-GHZS-853' into 'dev'
feat: 整理 DialogUtils 的历史弹窗并改为新的弹窗 https://jira.shanqu.cc/browse/GHZS-853

See merge request halo/android/assistant-android!636
2023-01-05 11:07:31 +08:00
bb86bf313b feat: 整理 DialogUtils 的历史弹窗并改为新的弹窗 https://jira.shanqu.cc/browse/GHZS-853 2023-01-05 11:00:41 +08:00
52bf1a85c5 Merge branch 'fix-horizontal_list_crash' into 'release'
fix: 尝试修复横向游戏专题数据变动触发的闪退问题

See merge request halo/android/assistant-android!635
2023-01-05 10:52:51 +08:00
685e938de3 Merge branch 'feature-GHZS-917' into 'dev'
build: 更新 sentry 版本 https://jira.shanqu.cc/browse/GHZS-917

See merge request halo/android/assistant-android!634
2023-01-05 10:52:44 +08:00
3c70daf23c build: 更新 sentry 版本 https://jira.shanqu.cc/browse/GHZS-917 2023-01-05 10:52:44 +08:00
762bed1ed5 fix: 尝试修复横向游戏专题数据变动触发的闪退问题 2023-01-05 10:45:55 +08:00
1109f1bc57 Merge branch 'feature-GHZS-923' into 'dev'
fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-923

See merge request halo/android/assistant-android!632
2023-01-05 10:12:27 +08:00
bd918b5896 fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-923 2023-01-05 09:43:26 +08:00
f3e9d55707 Merge branch 'fix-remove_unused_resources' into 'dev'
fix: 移除无用资源

See merge request halo/android/assistant-android!631
2023-01-04 17:35:30 +08:00
cb7f84a461 fix: 移除无用资源 2023-01-04 17:27:32 +08:00
59c6c493ec Merge branch 'feature-GHZS-920' into 'dev'
fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-920

See merge request halo/android/assistant-android!627
2023-01-04 16:49:43 +08:00
7d77ca9b35 Merge branch 'hotfix-rating_draft_not_display' into 'release'
fix: 修复进入编辑评论页有概率没有显示已保存草稿的问题

See merge request halo/android/assistant-android!630
2023-01-04 16:46:36 +08:00
c8329c786b Merge branch 'feature-GHZS-921' into 'dev'
fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-921

See merge request halo/android/assistant-android!629
2023-01-04 16:39:30 +08:00
cd7e3c7777 fix: 修复进入编辑评论页有概率没有显示已保存草稿的问题 2023-01-04 16:37:21 +08:00
44c6c5ad08 Merge branch 'feature-GHZS-885' into 'release'
feat: 云存档Tab标签—客户端 https://jira.shanqu.cc/browse/GHZS-885

See merge request halo/android/assistant-android!628
2023-01-04 16:16:03 +08:00
fca02bcb0b feat: 云存档Tab标签—客户端 https://jira.shanqu.cc/browse/GHZS-885 2023-01-04 16:16:03 +08:00
bf016c6404 fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-921 2023-01-04 16:14:35 +08:00
b395f7c96a fix: 处理 sonar 新变动代码的异味 https://jira.shanqu.cc/browse/GHZS-920 2023-01-04 15:54:52 +08:00
a4d3368567 Merge branch 'feature-update_tea' into 'release'
feat: 【光环助手】头条SDK更新及投放渠道重打包任务—客户端 https://jira.shanqu.cc/browse/GHZS-541

See merge request halo/android/assistant-android!626
2023-01-04 14:42:20 +08:00
210f2240a3 feat: 【光环助手】头条SDK更新及投放渠道重打包任务—客户端 https://jira.shanqu.cc/browse/GHZS-541 2023-01-04 14:42:20 +08:00
a03a829980 Merge branch 'feature-GHZS-916' into 'dev'
fix: 移除无用的数据库相关代码 https://jira.shanqu.cc/browse/GHZS-916

See merge request halo/android/assistant-android!625
2023-01-04 14:29:20 +08:00
9101ed4d47 fix: 移除无用的数据库相关代码 https://jira.shanqu.cc/browse/GHZS-916 2023-01-04 14:25:33 +08:00
47fef0065d Merge remote-tracking branch 'origin/release' into dev 2023-01-04 13:53:24 +08:00
a6a2012e66 Merge branch 'fix-vspace_connect_no_response' into 'release'
fix: 修复畅玩启动无响应的问题

See merge request halo/android/assistant-android!624
2023-01-04 13:49:00 +08:00
d5ef24b1cc fix: 修复畅玩启动无响应的问题 2023-01-04 13:35:52 +08:00
a77d37ea68 Merge branch 'fix-compile' into 'dev'
邮件包启用 compose 实现的设置界面

See merge request halo/android/assistant-android!623
2023-01-04 11:22:56 +08:00
d38a071e4d 邮件包启用 compose 实现的设置界面 2023-01-04 11:22:56 +08:00
7d2f16e2d6 Merge remote-tracking branch 'origin/dev' into dev 2023-01-03 17:53:43 +08:00
0e395bb68f fix: 处理合并冲突 2023-01-03 17:53:18 +08:00
6eaaea046e Merge branch 'dev-fix-compose_setting' into 'dev'
fix:compose设置模块同步设置模块的修改,修复部分机型设置项的描述文字显示不全的问题

See merge request halo/android/assistant-android!622
2023-01-03 17:45:44 +08:00
9075fae76f fix:compose设置模块同步设置模块的修改,修复部分机型设置项的描述文字显示不全的问题 2023-01-03 17:39:13 +08:00
4ecd007f07 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/adapter/ImagePagerAdapter.java
#	app/src/main/java/com/gh/gamecenter/game/rank/RankGameItemUi.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyAdapter.kt
#	app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailFragment.kt
#	app/src/main/java/com/gh/gamecenter/video/detail/VideoAdapter.kt
#	app/src/main/res/layout/game_horizontal_simple_item.xml
#	app/src/main/res/layout/game_test_item.xml
#	app/src/main/res/layout/layout_video_detail_surface.xml
#	vspace-bridge
2023-01-03 17:32:11 +08:00
92b658c304 fix: 更新畅玩服务依赖 2023-01-03 16:29:13 +08:00
8271126bf9 Merge branch 'fix-gamedetail_top_video' into 'release'
fix: 游戏详情是否显示顶部视频取消videoId为空的判断

See merge request halo/android/assistant-android!621
2023-01-03 09:44:15 +08:00
13bc07b0be fix: 游戏详情是否显示顶部视频取消videoId为空的判断 2023-01-03 09:41:10 +08:00
e19fcf5077 Merge branch 'feature-GHZS-877' into 'release'
feat: 视频类型的轮播图加上视频标识—客户端 https://jira.shanqu.cc/browse/GHZS-877

See merge request halo/android/assistant-android!620
2022-12-30 17:17:10 +08:00
dba49b090a feat: 视频类型的轮播图加上视频标识—客户端 https://jira.shanqu.cc/browse/GHZS-877 2022-12-30 17:03:40 +08:00
b964472619 Merge branch 'feature-GHZS-820' into 'release'
fix: 【光环助手】畅玩游戏下载文案问题 https://jira.shanqu.cc/browse/GHZS-820

See merge request halo/android/assistant-android!619
2022-12-30 15:27:47 +08:00
733be9e441 fix: 【光环助手】畅玩游戏下载文案问题 https://jira.shanqu.cc/browse/GHZS-820 2022-12-30 15:27:47 +08:00
c9d4bfadcf Merge branch 'feature-GHZS-857' into 'release'
fix:【畅玩助手】GID体系不一致问题 https://jira.shanqu.cc/browse/GHZS-857

See merge request halo/android/assistant-android!610
2022-12-30 15:22:22 +08:00
cd54c0967c fix:【畅玩助手】GID体系不一致问题 https://jira.shanqu.cc/browse/GHZS-857 2022-12-30 15:22:22 +08:00
d2bf534ca4 Merge branch 'hotfix-v5.17.0-690-game_server_type' into 'release'
fix:修复首页游戏开服标签与游戏名称之间存在空白的问题

See merge request halo/android/assistant-android!618
2022-12-30 14:57:25 +08:00
ff350e268a fix:修复首页游戏开服标签与游戏名称之间存在空白的问题 2022-12-30 14:46:01 +08:00
79cd610e41 Merge branch 'feature-GHZS-844' into 'release'
fix: 【光环助手】前端小编标识展示问题 https://jira.shanqu.cc/browse/GHZS-844

See merge request halo/android/assistant-android!617
2022-12-30 14:26:44 +08:00
4af47a71b7 fix: 【光环助手】前端小编标识展示问题 https://jira.shanqu.cc/browse/GHZS-844 2022-12-30 14:23:34 +08:00
aceb49eaa9 Merge branch 'fix-compile' into 'dev'
fix: 处理编译问题(还原 build src AGP 版本)

See merge request halo/android/assistant-android!616
2022-12-30 11:45:16 +08:00
8af404f3c3 fix: 处理编译问题(还原后处理的 AGP 版本) 2022-12-30 11:37:45 +08:00
d3a7929810 Merge branch 'feature-GHZS-872' into 'dev'
fix:【光环助手】发现页相关测试问题-第2点 https://jira.shanqu.cc/browse/GHZS-872

See merge request halo/android/assistant-android!615
2022-12-30 10:48:51 +08:00
c46401c763 fix:【光环助手】发现页相关测试问题-第2点 https://jira.shanqu.cc/browse/GHZS-872 2022-12-30 10:44:32 +08:00
aa03595a47 Merge branch 'feature-GHZS-848' into 'dev'
fix:细化游戏单 proguard 保留的粒度 https://jira.shanqu.cc/browse/GHZS-848

See merge request halo/android/assistant-android!614
2022-12-30 10:25:29 +08:00
e04de2c9ed fix:细化游戏单 proguard 保留的粒度 https://jira.shanqu.cc/browse/GHZS-848 2022-12-30 10:12:44 +08:00
6297849db2 Merge branch 'feature-module_setting_compose_rebase' into 'dev'
将 feature-module_setting_compose 分支的代码 rebase 到 dev-5.18.0 https://jira.shanqu.cc/browse/GHZS-828

See merge request halo/android/assistant-android!607
2022-12-30 09:46:35 +08:00
2f1f061c87 将 feature-module_setting_compose 分支的代码 rebase 到 dev-5.18.0 https://jira.shanqu.cc/browse/GHZS-828 2022-12-30 09:46:35 +08:00
6acb88be74 Merge branch 'feature-GHZS-854' into 'dev'
feat: 清理 data class 冗余方法 https://jira.shanqu.cc/browse/GHZS-854

See merge request halo/android/assistant-android!613
2022-12-30 09:39:11 +08:00
bff8916a7e Merge branch 'feature-GHZS-870' into 'dev'
fix: 【光环助手】开测表-开测标签显示问题 https://jira.shanqu.cc/browse/GHZS-870

See merge request halo/android/assistant-android!612
2022-12-29 17:07:54 +08:00
a99b4ab224 feat: 清理 data class 冗余方法 https://jira.shanqu.cc/browse/GHZS-854 2022-12-29 17:06:10 +08:00
a43f6c5ce0 fix: 【光环助手】开测表-开测标签显示问题 https://jira.shanqu.cc/browse/GHZS-870 2022-12-29 17:00:23 +08:00
9fed52ca0a Merge branch 'feature-GHZS-858' into 'release'
feat: 游戏单活动:游戏单征集计划vol.2—客户端-埋点文档19 https://jira.shanqu.cc/browse/GHZS-858

See merge request halo/android/assistant-android!611
2022-12-29 15:32:09 +08:00
f3c0e16cff feat: 游戏单活动:游戏单征集计划vol.2—客户端-埋点文档19 https://jira.shanqu.cc/browse/GHZS-858 2022-12-29 15:27:59 +08:00
4bb39d220c Merge branch 'fix-exclude_packages' into 'dev'
fix:  exclude光环没有用到的 material 组件

See merge request halo/android/assistant-android!609
2022-12-29 11:31:39 +08:00
f03be94877 fix: exclude光环没有用到的 material 组件 2022-12-29 11:29:10 +08:00
22909500c3 Merge branch 'feature-GHZS-852' into 'dev'
fix: 尝试 exclude 光环没有用到的 material 组件 https://jira.shanqu.cc/browse/GHZS-852

See merge request halo/android/assistant-android!608
2022-12-29 10:18:36 +08:00
a6a0da45fc fix: 尝试 exclude 光环没有用到的 material 组件 https://jira.shanqu.cc/browse/GHZS-852 2022-12-28 17:49:03 +08:00
a4ba5f25d2 Merge branch 'feature-GHZS-847' into 'dev'
feat: 使用 TimeElapsedHelper 统计活动时间 https://jira.shanqu.cc/browse/GHZS-847

See merge request halo/android/assistant-android!606
2022-12-28 16:16:47 +08:00
198b06c9ce feat: 使用 TimeElapsedHelper 统计活动时间 https://jira.shanqu.cc/browse/GHZS-847 2022-12-28 15:58:53 +08:00
0ee5c106c6 Merge branch 'hotfix-v5.17.0-690-download_button' into 'release'
fix:修复部分专题样式、首页视频、视频贴详情下载按钮显示异常的问题

See merge request halo/android/assistant-android!604
2022-12-28 14:53:17 +08:00
abc52f622c fix:修复部分专题样式、首页视频、视频贴详情下载按钮显示异常的问题 2022-12-28 14:45:36 +08:00
7eed44165c Merge branch 'feature-GHZS-846' into 'dev'
feat: 精简字体库 https://jira.shanqu.cc/browse/GHZS-846

See merge request halo/android/assistant-android!605
2022-12-28 14:37:38 +08:00
b918fa5b9b feat: 精简字体库 https://jira.shanqu.cc/browse/GHZS-846 2022-12-28 14:37:38 +08:00
8ba82698d7 fix:修复部分专题样式、首页视频、视频贴详情下载按钮显示异常的问题 2022-12-28 14:19:39 +08:00
7fd1b2e40a Merge branch 'feature-GHZS-845' into 'dev'
feat: 移除部分活动的相关代码及资源 https://jira.shanqu.cc/browse/GHZS-845

See merge request halo/android/assistant-android!603
2022-12-28 13:58:20 +08:00
bf99b61603 feat: 移除部分活动的相关代码及资源 https://jira.shanqu.cc/browse/GHZS-845 2022-12-28 13:58:20 +08:00
f39bc39821 Merge branch 'feature-GHZS-851' into 'dev'
fix: 移除 GameDetailEntity 已经没用的字段 https://jira.shanqu.cc/browse/GHZS-851

See merge request halo/android/assistant-android!602
2022-12-28 11:36:15 +08:00
3f8e220181 fix: 移除 GameDetailEntity 已经没用的字段 https://jira.shanqu.cc/browse/GHZS-851 2022-12-28 11:36:15 +08:00
e74e700bcf fix:【光环助手】开服表的多版本下载按钮显示问题 https://jira.shanqu.cc/browse/GHZS-717 2022-12-28 11:01:43 +08:00
5d06646786 Merge remote-tracking branch 'origin/dev-5.18.0' into dev-5.18.0 2022-12-28 10:38:20 +08:00
37f1aeef5c Merge branch 'hotfix-remove_useless_data_class' into 'dev-5.18.0'
fix: 移除部分没用的实体类

See merge request halo/android/assistant-android!600
2022-12-28 10:33:42 +08:00
2210ed31fb Merge remote-tracking branch 'origin/dev' into dev-5.18.0
# Conflicts:
#	app/src/main/java/com/gh/common/DefaultUrlHandler.kt
#	vspace-bridge
2022-12-28 10:31:57 +08:00
abb4c40499 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-12-28 10:28:18 +08:00
33a32c707e Merge branch 'feature-GHZS-850' into 'dev-5.18.0'
fix: 细化视频详情 proguard 保留的粒度 https://jira.shanqu.cc/browse/GHZS-850

See merge request halo/android/assistant-android!601
2022-12-28 10:25:39 +08:00
c3bbbe3d17 fix: 细化视频详情 proguard 保留的粒度 https://jira.shanqu.cc/browse/GHZS-850 2022-12-28 10:19:32 +08:00
90540b1475 Merge branch 'feature-GHZS-837' into 'dev-5.18.0'
feat: 整理静态类代码 https://jira.shanqu.cc/browse/GHZS-837

See merge request halo/android/assistant-android!599
2022-12-28 09:24:03 +08:00
2812cdde01 fix: 移除部分没用的实体类 2022-12-27 16:17:51 +08:00
f63d5eb30a feat: 整理静态类代码 https://jira.shanqu.cc/browse/GHZS-837
1. 移除远古时代的光环3.0数据同步代码
2. 清理部分无用的弹窗构建代码
3. 将默认头像修改完全放置到网络数据中 (原来是本地 drawable,但提交固定 url 的形式)
4. 移除部分没有引用的代码
5. 合并重复的日志类
6. 移除已经没有入口的玩过的游戏 activity
7. 整理部分含有无用入参的方法
8. 重命名部分不合规范的命名
2022-12-27 15:20:23 +08:00
a798250357 Merge branch 'feature-GHZS-824' into 'dev-5.18.0'
fix:处理部分页面深色模式显示异常 https://jira.shanqu.cc/browse/GHZS-824

See merge request halo/android/assistant-android!597
2022-12-27 14:13:20 +08:00
2e34102d9a fix:处理部分页面深色模式显示异常 https://jira.shanqu.cc/browse/GHZS-824 2022-12-27 14:13:20 +08:00
743332179b Merge branch 'feature-GHZS-826' into 'dev-5.18.0'
feat: 统一整理日志相关工具类反复出现的字符串 https://jira.shanqu.cc/browse/GHZS-826

See merge request halo/android/assistant-android!598
2022-12-27 11:24:40 +08:00
044270f79b feat: 统一整理日志相关工具类反复出现的字符串 https://jira.shanqu.cc/browse/GHZS-826 2022-12-27 10:52:38 +08:00
5624efe693 Merge branch 'feature-GHZS-750' into 'dev-5.18.0'
feat: 游戏评分相关数据埋点补充—客户端 https://jira.shanqu.cc/browse/GHZS-750

See merge request halo/android/assistant-android!596
2022-12-27 10:34:17 +08:00
6f94c2158a feat: 游戏评分相关数据埋点补充—客户端 https://jira.shanqu.cc/browse/GHZS-750 2022-12-27 10:34:17 +08:00
664b0f7a72 Merge branch 'feature-GHZS-825' into 'dev-5.18.0'
feat: 全量检查并修改 kotlin 部分静态类初始化变量问题 https://jira.shanqu.cc/browse/GHZS-825

See merge request halo/android/assistant-android!595
2022-12-26 14:33:24 +08:00
2a84590f70 feat: 全量检查并修改 kotlin 部分静态类初始化变量问题 https://jira.shanqu.cc/browse/GHZS-825 2022-12-26 14:30:49 +08:00
446acb8176 Merge branch 'feature-GHZS-825' into 'dev-5.18.0'
feat: 全量检查并修改 kotlin 部分静态类初始化变量问题 https://jira.shanqu.cc/browse/GHZS-825

See merge request halo/android/assistant-android!594
2022-12-26 14:19:40 +08:00
dc7db3d09f feat: 全量检查并修改 kotlin 部分静态类初始化变量问题 https://jira.shanqu.cc/browse/GHZS-825 2022-12-26 13:52:12 +08:00
df79970eae chore: 版本更新至 5.16.1 2022-12-26 11:35:38 +08:00
d8775429d1 fix: 修复畅玩连接断开时可能的闪退 2022-12-26 11:32:52 +08:00
e9263b0a22 Merge branch 'feature-GHZS-823' into 'dev-5.18.0'
fix: 社区 1x1 长图缩略图显示优化 https://jira.shanqu.cc/browse/GHZS-823

See merge request halo/android/assistant-android!592
2022-12-26 11:31:57 +08:00
7fd7ac3523 Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingFragment.kt
#	vspace-bridge
2022-12-26 11:29:21 +08:00
1729f3d688 Merge branch 'hotfix-game_download_setting_page_crash' into 'legacy-release'
fix: 修复游戏下载设置页获取文件uri时的闪退问题

See merge request halo/android/assistant-android!593
2022-12-26 10:59:25 +08:00
5c1498a8fd Merge branch 'hotfix-v5.15.3-653-vloading_crash' into 'legacy-release'
fix: 修复进入畅玩加载页面闪退

See merge request halo/android/assistant-android!591
2022-12-26 10:57:42 +08:00
fcc6b10e35 fix: 社区 1x1 长图缩略图显示优化 https://jira.shanqu.cc/browse/GHZS-823 2022-12-26 10:50:41 +08:00
9268181751 Merge branch 'hotfix-v5.15.3-653-forum_article_list_crash' into 'legacy-release'
fix:修复论坛帖子列表页切换深色模式出现空指针闪退的问题

See merge request halo/android/assistant-android!590
2022-12-26 10:46:29 +08:00
2d97319931 fix: 修复进入畅玩加载页面闪退 https://sentry.shanqu.cc/organizations/lightgame/issues/248161/?project=22&query=dist%3A653+NullPointerException&statsPeriod=14d 2022-12-26 10:43:50 +08:00
9930673792 fix:修复论坛帖子列表页切换深色模式出现空指针闪退的问题 2022-12-26 10:40:12 +08:00
d7219431e6 fix: 修复游戏下载设置页获取文件uri时的闪退问题 2022-12-26 10:36:43 +08:00
d9311fcce0 Merge branch 'hotfix-quick_login_crash' into 'legacy-release'
fix: 修复一键登录跳转验证码登录因context为空导致的闪退问题

See merge request halo/android/assistant-android!589
2022-12-26 10:32:02 +08:00
88035b65ce fix: 修复畅玩连接断开时可能的闪退 2022-12-26 10:30:45 +08:00
e63e50f828 fix: 修复一键登录跳转验证码登录因context为空导致的闪退问题 2022-12-26 10:21:55 +08:00
9433e071b9 Merge branch 'fix-modify-dependencies' into 'dev-5.18.0'
处理编译的一些问题

See merge request halo/android/assistant-android!588
2022-12-23 09:22:56 +08:00
c4f1894504 fix: 处理 databinding 编译问题 2022-12-22 18:04:27 +08:00
c7cda3f64f build: 将aar单独放到一个模块里,避免多个地方重复拷贝 2022-12-22 16:17:44 +08:00
3a6dba580b Merge branch 'feature-GHZS-797' into 'dev-5.18.0'
feat: 组件化帮助与反馈功能 https://jira.shanqu.cc/browse/GHZS-797

See merge request halo/android/assistant-android!586
2022-12-22 13:50:18 +08:00
1a653b551e feat: 组件化帮助与反馈功能 https://jira.shanqu.cc/browse/GHZS-797 2022-12-22 13:50:18 +08:00
e080d8ab6d Merge branch 'feature-GHZS-802' into 'dev'
feat:春节活动—集“萌兔福签”,得新年好礼—客户端 https://jira.shanqu.cc/browse/GHZS-802

See merge request halo/android/assistant-android!587
2022-12-22 13:50:02 +08:00
1dacab2000 feat:春节活动—集“萌兔福签”,得新年好礼—客户端 https://jira.shanqu.cc/browse/GHZS-802 2022-12-22 13:50:02 +08:00
eef2ae3dbe Merge branch 'feature-GHZS-796' into 'dev-5.18.0'
feat:优化设置模块 https://jira.shanqu.cc/browse/GHZS-796

See merge request halo/android/assistant-android!585
2022-12-21 15:05:14 +08:00
011f8cc2b7 feat:优化设置模块 https://jira.shanqu.cc/browse/GHZS-796 2022-12-21 15:05:14 +08:00
3eb002ece1 chore: 版本更新至 5.18.0 2022-12-21 14:36:17 +08:00
754750a330 Merge branch 'hotfix-v5.16.0-670-varchive_database_add_game_version' into 'release'
fix: 添加云存档数据库游戏版本字段

See merge request halo/android/assistant-android!584
2022-12-21 12:32:31 +08:00
401f1c176a fix: 添加云存档数据库游戏版本字段 2022-12-21 12:32:31 +08:00
ead95968ec Merge remote-tracking branch 'origin/dev' into dev-5.18.0 2022-12-21 10:28:57 +08:00
b10fac1371 Merge remote-tracking branch 'origin/release' into dev 2022-12-21 10:28:25 +08:00
f750682bff Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	dependencies.gradle
2022-12-21 10:28:02 +08:00
c7094a0476 chore: 版本更新至 5.15.3 2022-12-21 09:56:23 +08:00
c5019a90f7 Merge branch 'feature-GHZS-779' into 'dev-5.18.0'
feat: 畅玩助手问题反馈相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-779

See merge request halo/android/assistant-android!582
2022-12-20 17:59:54 +08:00
e7bc17c29f feat: 畅玩助手问题反馈相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-779 2022-12-20 17:53:38 +08:00
f8cedcf737 Merge branch 'hotfix-5.15.2-652-list_not_display' into 'legacy-release'
fix: 修改选择活动标签弹窗列表不显示问题

See merge request halo/android/assistant-android!581
2022-12-20 17:10:06 +08:00
d1e04a5743 fix: 修改选择活动标签弹窗列表不显示问题 2022-12-20 16:57:31 +08:00
6cf154268a Merge branch 'feature-fix_rejected_task_error' into 'dev-5.18.0'
简单处理线程池不足以运行更多任务的问题 https://jira.shanqu.cc/browse/GHZS-801

See merge request halo/android/assistant-android!580
2022-12-20 16:40:13 +08:00
395bfc744e 简单处理线程池不足以运行更多任务的问题 https://jira.shanqu.cc/browse/GHZS-801 2022-12-20 16:40:13 +08:00
9892e891e2 Merge branch 'dev' into 'dev-5.18.0'
fix: 更新畅玩 module 依赖

See merge request halo/android/assistant-android!579
2022-12-19 11:21:58 +08:00
4659ebe064 Merge branch 'release' into 'dev'
fix: 更新畅玩 module 依赖

See merge request halo/android/assistant-android!578
2022-12-19 11:20:57 +08:00
9eded4d0ce fix: 更新畅玩 module 依赖 2022-12-19 09:46:58 +08:00
9d9d620d98 Merge branch 'feature-GHZS-578' into 'dev-5.18.0'
fix:【光环助手】夜间模式测试问题汇总(3-4) https://jira.shanqu.cc/browse/GHZS-578

See merge request halo/android/assistant-android!577
2022-12-16 16:58:36 +08:00
6f28b640dd Merge branch 'feature-GHZS-766' into 'dev-5.18.0'
feat: 埋点事件补充—客户端 https://jira.shanqu.cc/browse/GHZS-766

See merge request halo/android/assistant-android!575
2022-12-16 16:45:24 +08:00
eaae32a06a Merge branch 'feature-GHZS-798' into 'dev-5.18.0'
fix: 移除热门卡牌专题的相关代码 https://jira.shanqu.cc/browse/GHZS-798

See merge request halo/android/assistant-android!576
2022-12-16 16:37:22 +08:00
c2f32aafff fix:【光环助手】夜间模式测试问题汇总(3-4) https://jira.shanqu.cc/browse/GHZS-578 2022-12-16 15:37:40 +08:00
f9d2c875b8 fix: 移除热门卡牌专题的相关代码 https://jira.shanqu.cc/browse/GHZS-798 2022-12-16 15:19:52 +08:00
72634a877e feat: 埋点事件补充—客户端 https://jira.shanqu.cc/browse/GHZS-766 2022-12-16 14:38:50 +08:00
7c76753815 Merge branch 'feature-GHZS-717' into 'dev-5.18.0'
fix:【光环助手】开服表的多版本下载按钮显示问题 https://jira.shanqu.cc/browse/GHZS-717

See merge request halo/android/assistant-android!573
2022-12-16 13:44:40 +08:00
a36d905e27 Merge branch 'feature-GHZS-800' into 'dev-5.18.0'
fix: 解决多线程调用 DownloadManager.initMap() 造成的问题 https://jira.shanqu.cc/browse/GHZS-800

See merge request halo/android/assistant-android!574
2022-12-16 12:02:35 +08:00
ab7e417b42 fix: 解决多线程调用 DownloadManager.initMap() 造成的问题 https://jira.shanqu.cc/browse/GHZS-800 2022-12-16 11:36:04 +08:00
e93d95dc0d Merge branch 'dev' into 'dev-5.17.0'
fix: 更新畅玩 module 依赖

See merge request halo/android/assistant-android!572
2022-12-15 18:35:16 +08:00
5a7c316a2d fix: 更新畅玩 module 依赖 2022-12-15 18:34:34 +08:00
198eb0d961 fix:【光环助手】开服表的多版本下载按钮显示问题 https://jira.shanqu.cc/browse/GHZS-717 2022-12-15 17:55:41 +08:00
f55448a264 Merge branch 'hotfix-interested_game_type_dialog_ui' into 'dev-5.17.0'
fix: 微调游戏偏好-分类弹窗UI

See merge request halo/android/assistant-android!571
2022-12-15 17:11:23 +08:00
1c20bf9e02 fix: 微调游戏偏好-分类弹窗UI 2022-12-15 17:10:13 +08:00
69cb4865b2 Merge branch 'feature-GHZS-788' into 'dev-5.17.0'
fix: 【光环助手V5.17.0】APP闪退问题 https://jira.shanqu.cc/browse/GHZS-788

See merge request halo/android/assistant-android!570
2022-12-15 17:08:08 +08:00
d5e9e9f092 fix: 【光环助手V5.17.0】APP闪退问题 https://jira.shanqu.cc/browse/GHZS-788 2022-12-15 17:04:50 +08:00
20a60fb2b5 Merge branch 'hotfix-discovery_card_drak_mode' into 'dev-5.17.0'
fix: 首页发现页卡片和游戏偏好页适配深色模式

See merge request halo/android/assistant-android!569
2022-12-15 16:21:01 +08:00
deac181261 fix: 首页发现页卡片和游戏偏好页适配深色模式 2022-12-15 16:17:28 +08:00
5a4eb2ed65 Merge branch 'fix-GHZS-774' into 'dev-5.17.0'
fix: 【V5.17.0】游戏评价活动:光环星推官挑战赛—1214测试-第10点 (为网页下载添加畅玩游戏支持) https://jira.shanqu.cc/browse/GHZS-774

See merge request halo/android/assistant-android!567
2022-12-15 16:17:18 +08:00
634e897511 Merge branch 'dev' into 'dev-5.17.0'
fix: 更新畅玩 module 依赖

See merge request halo/android/assistant-android!568
2022-12-15 16:17:11 +08:00
305c6792f2 fix: 更新畅玩 module 依赖 2022-12-15 16:04:57 +08:00
0ae726d6b1 fix: 【V5.17.0】游戏评价活动:光环星推官挑战赛—1214测试-第10点 (为网页下载添加畅玩游戏支持) https://jira.shanqu.cc/browse/GHZS-774 2022-12-15 16:02:28 +08:00
6be4412ac6 Merge branch 'dev-fix-game_subtitle' into 'dev-5.17.0'
fix:修复首页游戏副标题超长时遮挡游戏图标的问题

See merge request halo/android/assistant-android!566
2022-12-15 15:56:52 +08:00
586e3deb9e fix:修复首页游戏副标题超长时遮挡游戏图标的问题 2022-12-15 15:45:09 +08:00
f02219b83b fix:【V5.17.0】发现页相关功能优化(第一期)—1212测试-第2点(游戏列表过滤已安装游戏) https://jira.shanqu.cc/browse/GHZS-650 2022-12-15 14:11:00 +08:00
1391ab730d Merge branch 'feature-GHZS-763' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—1215UI测试 https://jira.shanqu.cc/browse/GHZS-763

See merge request halo/android/assistant-android!565
2022-12-15 11:46:43 +08:00
9eca2ab660 fix:【V5.17.0】发现页相关功能优化(第一期)—1215UI测试 https://jira.shanqu.cc/browse/GHZS-763 2022-12-15 11:38:08 +08:00
b58daea96f Merge branch 'feature-GHZS-700' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)-1214测试 https://jira.shanqu.cc/browse/GHZS-700

See merge request halo/android/assistant-android!564
2022-12-15 11:29:29 +08:00
f958787f9e fix:【V5.17.0】发现页相关功能优化(第一期)-1214测试 https://jira.shanqu.cc/browse/GHZS-700 2022-12-15 11:13:10 +08:00
5fbeff3158 Merge branch 'feature-GHZS-682' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—1214UI测试 https://jira.shanqu.cc/browse/GHZS-682

See merge request halo/android/assistant-android!563
2022-12-14 15:34:13 +08:00
c03fcc7fde fix:【V5.17.0】发现页相关功能优化(第一期)—1214UI测试 https://jira.shanqu.cc/browse/GHZS-682 2022-12-14 15:27:22 +08:00
ce4c6c1ca3 Merge remote-tracking branch 'origin/dev' into dev-5.17.0 2022-12-14 15:21:45 +08:00
1294a13933 fix: 更新畅玩 submodule 依赖 2022-12-14 15:21:15 +08:00
1b07c28956 Merge branch 'hotfix-get_discovery_card_data_optimize' into 'dev-5.17.0'
fix:处理首页/板块首次今日会多次调用获取发现页数据接口的问题

See merge request halo/android/assistant-android!562
2022-12-14 14:41:13 +08:00
c0b2eb622c fix:处理首页/板块首次今日会多次调用获取发现页数据接口的问题 2022-12-14 14:27:51 +08:00
c4bed719f9 Merge branch 'feature-GHZS-691' into 'dev-5.17.0'
fix: 【V5.17.0】游戏详情-详情tab页面优化-专题游戏单推荐-1213测试-第1点 https://jira.shanqu.cc/browse/GHZS-691

See merge request halo/android/assistant-android!561
2022-12-14 11:56:26 +08:00
d022f03ef8 fix: 【V5.17.0】游戏详情-详情tab页面优化-专题游戏单推荐-1213测试-第1点 https://jira.shanqu.cc/browse/GHZS-691 2022-12-14 11:49:00 +08:00
7ab8f2c4c5 Merge branch 'feature-GHZS-657' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—1213UI测试(修改分类弹窗遮罩) https://jira.shanqu.cc/browse/GHZS-657

See merge request halo/android/assistant-android!560
2022-12-14 11:03:30 +08:00
4f0480c7b4 fix:【V5.17.0】发现页相关功能优化(第一期)—1213UI测试(修改分类弹窗遮罩) https://jira.shanqu.cc/browse/GHZS-657 2022-12-14 10:58:03 +08:00
12818c322c Merge branch 'feature-GHZS-660' into 'dev-5.17.0'
fix: 【V5.17.0】发现页相关功能优化(第一期)—1212测试-第1点 https://jira.shanqu.cc/browse/GHZS-660

See merge request halo/android/assistant-android!559
2022-12-14 09:20:56 +08:00
92f08d1bb8 fix: 【V5.17.0】发现页相关功能优化(第一期)—1212测试-第1点 https://jira.shanqu.cc/browse/GHZS-660 2022-12-13 18:01:52 +08:00
db5fbded43 Merge branch 'feature-GHZS-650' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—1212测试-第2/6点 https://jira.shanqu.cc/browse/GHZS-650

See merge request halo/android/assistant-android!558
2022-12-13 17:53:41 +08:00
e554b1681e fix:【V5.17.0】发现页相关功能优化(第一期)—1212测试-第2/6点 https://jira.shanqu.cc/browse/GHZS-650 2022-12-13 17:47:37 +08:00
8ae846df88 Merge branch 'feature-GHZS-656' into 'dev-5.17.0'
fix: 【V5.17.0】游戏详情-详情tab页面优化-大家都在玩-1212测试-第2点 https://jira.shanqu.cc/browse/GHZS-656

See merge request halo/android/assistant-android!557
2022-12-13 17:09:28 +08:00
10e7047eec fix: 【V5.17.0】游戏详情-详情tab页面优化-大家都在玩-1212测试-第2点 https://jira.shanqu.cc/browse/GHZS-656 2022-12-13 17:04:49 +08:00
32eefa9003 Merge branch 'feature-GHZS-417' into 'dev-5.17.0'
feat: 【V5.17.0】游戏评价活动:光环星推官挑战赛—大数据(补充网页来源) https://jira.shanqu.cc/browse/GHZS-417

See merge request halo/android/assistant-android!556
2022-12-13 16:59:56 +08:00
f95b091c58 feat: 【V5.17.0】游戏评价活动:光环星推官挑战赛—大数据(补充网页来源) https://jira.shanqu.cc/browse/GHZS-417 2022-12-13 16:55:50 +08:00
e810369ee2 Merge branch 'feature-GHZS-657' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—1213UI测试 https://jira.shanqu.cc/browse/GHZS-657

See merge request halo/android/assistant-android!555
2022-12-13 16:51:24 +08:00
b090e7863f fix:【V5.17.0】发现页相关功能优化(第一期)—1213UI测试 https://jira.shanqu.cc/browse/GHZS-657 2022-12-13 16:34:30 +08:00
1fb27ab467 Merge branch 'feature-GHZS-606' into 'dev-5.17.0'
【V5.17.0】发帖图片限制相关优化—1207测试 https://jira.shanqu.cc/browse/GHZS-606

See merge request halo/android/assistant-android!553
2022-12-13 15:42:25 +08:00
772abccae5 【V5.17.0】发帖图片限制相关优化—1207测试 https://jira.shanqu.cc/browse/GHZS-606 2022-12-13 15:42:25 +08:00
b64bb8bcd8 Merge branch 'feature-GHZS-652' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—1212测试-第3/4/5/7点 https://jira.shanqu.cc/browse/GHZS-652

See merge request halo/android/assistant-android!554
2022-12-13 15:31:03 +08:00
699f55313c fix:【V5.17.0】发现页相关功能优化(第一期)—1212测试-第3/4/5/7点 https://jira.shanqu.cc/browse/GHZS-652 2022-12-13 13:46:52 +08:00
32b51e899e Merge branch 'feature-GHZS-446' into 'dev-5.17.0'
增加游戏详情专题游戏单推荐"换一批"功能

See merge request halo/android/assistant-android!552
2022-12-13 09:42:16 +08:00
719caf99cd 增加游戏详情专题游戏单推荐"换一批"功能 2022-12-13 09:42:15 +08:00
ac49180f98 Merge branch 'feature-add_url_scheme' into 'dev-5.17.0'
feat: 添加跳转到用户主页-游戏相关子选项的 urlscheme

See merge request halo/android/assistant-android!551
2022-12-12 18:00:23 +08:00
356acc053e feat: 添加跳转到用户主页-游戏相关子选项的 urlscheme 2022-12-12 17:47:16 +08:00
78366cd647 Merge branch 'feature-GHZS-649' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—1212UI测试 https://jira.shanqu.cc/browse/GHZS-649

See merge request halo/android/assistant-android!550
2022-12-12 17:34:57 +08:00
926e917a1a fix:【V5.17.0】发现页相关功能优化(第一期)—1212UI测试 https://jira.shanqu.cc/browse/GHZS-649 2022-12-12 17:31:03 +08:00
b5eb376055 Merge branch 'dev-fix-game_download_tips_crash' into 'dev'
fix:修复gameDownloadTips为空导致发现页无法显示的问题

See merge request halo/android/assistant-android!549
2022-12-12 14:00:11 +08:00
4a321a6884 fix:修复gameDownloadTips为空导致发现页无法显示的问题 2022-12-12 13:54:24 +08:00
208ee23676 Merge branch 'feature-GHZS-420' into 'dev-5.17.0'
feat:【V5.17.0】发现页相关功能优化(第一期)—客户端 (游戏偏好页增加登录判断) https://jira.shanqu.cc/browse/GHZS-420

See merge request halo/android/assistant-android!548
2022-12-12 13:44:53 +08:00
a3f6464b1a feat:【V5.17.0】发现页相关功能优化(第一期)—客户端 (游戏偏好页增加登录判断) https://jira.shanqu.cc/browse/GHZS-420 2022-12-12 13:39:08 +08:00
8d4fbed5d9 Merge branch 'hotfix-forum_search_rank_icon' into 'dev'
fix:修复论坛搜索页-榜单显示多余缺省图标的问题

See merge request halo/android/assistant-android!547
2022-12-12 12:01:46 +08:00
93a8c24ad3 fix:修复论坛搜索页-榜单显示多余缺省图标的问题 2022-12-12 11:51:38 +08:00
4014572130 Merge branch 'feature-GHZS-432' into 'dev-5.17.0'
feat: 【V5.17.0】游戏详情-详情tab页面优化-数据埋点—客户端 https://jira.shanqu.cc/browse/GHZS-432

See merge request halo/android/assistant-android!546
2022-12-12 10:49:34 +08:00
3bf6a6eaf3 feat: 【V5.17.0】游戏详情-详情tab页面优化-数据埋点—客户端 https://jira.shanqu.cc/browse/GHZS-432 2022-12-12 10:46:07 +08:00
6397b4cfdd Merge branch 'feature-GHZS-420' into 'dev-5.17.0'
fix:【V5.17.0】发现页相关功能优化(第一期)—客户端(1.修改发现卡片类型值;2.微调UI;3.处理因gameDownloadTips为空的报错问...

See merge request halo/android/assistant-android!545
2022-12-09 17:05:02 +08:00
544e9458ee fix:【V5.17.0】发现页相关功能优化(第一期)—客户端(1.修改发现卡片类型值;2.微调UI;3.处理因gameDownloadTips为空的报错问题) https://jira.shanqu.cc/browse/GHZS-420 2022-12-09 17:02:42 +08:00
1b5b19fa76 Merge branch 'feature-GHZS-420' into 'dev-5.17.0'
feat:【V5.17.0】发现页相关功能优化(第一期)—客户端(增加埋点) https://jira.shanqu.cc/browse/GHZS-420

See merge request halo/android/assistant-android!544
2022-12-09 15:53:55 +08:00
00436dd3b9 Merge branch 'feature-GHZS-446' into 'dev-5.17.0'
feat: 【V5.17.0】游戏详情-详情tab页面优化-专题游戏单推荐—客户端 https://jira.shanqu.cc/browse/GHZS-446

See merge request halo/android/assistant-android!543
2022-12-09 15:50:49 +08:00
64b4a6bef0 feat: 【V5.17.0】游戏详情-详情tab页面优化-专题游戏单推荐—客户端 https://jira.shanqu.cc/browse/GHZS-446 2022-12-09 15:37:18 +08:00
b330ccc54d feat:【V5.17.0】发现页相关功能优化(第一期)—客户端(增加埋点) https://jira.shanqu.cc/browse/GHZS-420 2022-12-09 15:23:24 +08:00
7f460ac3df Merge branch 'feature-GHZS-420' into 'dev-5.17.0'
feat:【V5.17.0】发现页相关功能优化(第一期)—客户端 https://jira.shanqu.cc/browse/GHZS-420

See merge request halo/android/assistant-android!542
2022-12-09 11:57:07 +08:00
19fa7436c3 feat:【V5.17.0】发现页相关功能优化(第一期)—客户端 https://jira.shanqu.cc/browse/GHZS-420 2022-12-09 11:54:35 +08:00
9a5e529eeb Merge branch 'dev-5.17.0' into 'feature-GHZS-420'
# Conflicts:
#   app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java
2022-12-09 03:16:53 +00:00
faac45e719 feat:【V5.17.0】发现页相关功能优化(第一期)—客户端 https://jira.shanqu.cc/browse/GHZS-420 2022-12-09 11:09:18 +08:00
17e4624909 Merge branch 'feature-GHZS-603' into 'dev-5.17.0'
fix: 【V5.17.0】游戏详情-详情tab页面优化-游戏单推荐—1207UI测试 https://jira.shanqu.cc/browse/GHZS-603

See merge request halo/android/assistant-android!541
2022-12-09 09:20:47 +08:00
6cf3786799 fix: 【V5.17.0】游戏详情-详情tab页面优化-游戏单推荐—1207UI测试 https://jira.shanqu.cc/browse/GHZS-603 2022-12-09 09:20:46 +08:00
d6e713fd60 Merge branch 'feature-GHZS-390' into 'dev-5.17.0'
feat:【V5.17.0】论坛详情页-问答帖新增排序方式切换—客户端 https://jira.shanqu.cc/browse/GHZS-390

See merge request halo/android/assistant-android!540
2022-12-08 17:28:03 +08:00
830715f44b Merge branch 'feature-issues95_99' into 'dev-5.17.0'
refactor:整理副标题相关代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/95

See merge request halo/android/assistant-android!539
2022-12-08 14:51:14 +08:00
73470771fe refactor:整理副标题相关代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/95 2022-12-08 14:21:59 +08:00
b62ce00f7a fix:全局处理 Color.parseColor() 方法异常 https://git.shanqu.cc/halo/android/assistant-android/-/issues/99 2022-12-08 14:11:02 +08:00
963f7f9ee0 Merge branch 'feature-GHZS-415' into 'dev-5.17.0'
feat: 【V5.17.0】游戏评价活动:光环星推官挑战赛—客户端 https://jira.shanqu.cc/browse/GHZS-415

See merge request halo/android/assistant-android!538
2022-12-08 11:39:43 +08:00
5c606f8eb3 feat: 【V5.17.0】游戏评价活动:光环星推官挑战赛—客户端 https://jira.shanqu.cc/browse/GHZS-415 2022-12-08 11:22:13 +08:00
6fed28da75 Merge branch 'feature-GHZS-604' into 'dev-5.17.0'
fix: 【V5.17.0】游戏详情-详情tab页面优化-相关游戏—1207UI测试 https://jira.shanqu.cc/browse/GHZS-604

See merge request halo/android/assistant-android!537
2022-12-07 17:07:40 +08:00
823060320f fix: 【V5.17.0】游戏详情-详情tab页面优化-相关游戏—1207UI测试 https://jira.shanqu.cc/browse/GHZS-604 2022-12-07 17:07:39 +08:00
d0bf32db06 Merge branch 'feature-GHZS-386' into 'dev-5.17.0'
feat:【V5.17.0】发帖草稿箱相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-386

See merge request halo/android/assistant-android!536
2022-12-07 16:27:18 +08:00
d7fb0c86bb feat:【V5.17.0】发帖草稿箱相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-386 2022-12-07 16:20:39 +08:00
c69ececcb7 Merge branch 'hotfix-dev-cloud_archive_list_page' into 'dev'
fix:修复游戏详情-云存档列表未设置分页问题

See merge request halo/android/assistant-android!535
2022-12-07 15:27:51 +08:00
ec4eeb0219 fix:修复游戏详情-云存档列表未设置分页问题 2022-12-07 15:25:23 +08:00
35aabd0fd3 Merge branch 'dev' into 'dev-5.17.0'
合并累积修复

See merge request halo/android/assistant-android!534
2022-12-07 14:00:39 +08:00
e626eb193f Merge branch 'feature-GHZS-436' into 'dev-5.17.0'
feat: 【V5.17.0】游戏详情-详情tab页面优化-大家都在玩—客户端 https://jira.shanqu.cc/browse/GHZS-436

See merge request halo/android/assistant-android!533
2022-12-07 11:29:18 +08:00
51d42c96d3 feat: 【V5.17.0】游戏详情-详情tab页面优化-大家都在玩—客户端 https://jira.shanqu.cc/browse/GHZS-436 2022-12-07 11:29:18 +08:00
ea32d5a798 Merge branch 'feature-GHZS-308' into 'dev-5.17.0'
feat: 【光环助手V5.17.0】发帖图片限制相关优化 https://jira.shanqu.cc/browse/GHZS-308

See merge request halo/android/assistant-android!532
2022-12-06 12:00:11 +08:00
59a5ea9600 feat: 【光环助手V5.17.0】发帖图片限制相关优化 https://jira.shanqu.cc/browse/GHZS-308 2022-12-06 11:50:46 +08:00
8ff62a9f5e Merge branch 'fix-vgame_wrong_database_backup' into 'dev'
fix: 修复畅玩游戏因为跨数据库版本备份造成的闪退问题

See merge request halo/android/assistant-android!531
2022-12-06 11:02:59 +08:00
203c8db840 fix: 修复畅玩游戏因为跨数据库版本备份造成的闪退问题 2022-12-06 10:48:48 +08:00
90ab76aa48 chore: 版本更新至 5.17.0 2022-12-06 09:55:45 +08:00
f1e3a21191 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/search/SearchGameIndexItemViewHolder.kt
#	dependencies.gradle
2022-12-05 17:02:14 +08:00
cae48cb2b7 Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	dependencies.gradle
2022-12-05 17:00:22 +08:00
b91fa853ca Merge branch 'feature-GHZS-473' into 'dev-5.17.0'
feat:【V5.17.0】副标题客户端使用场景补充—客户端 https://jira.shanqu.cc/browse/GHZS-473

See merge request halo/android/assistant-android!529
2022-12-05 14:22:13 +08:00
0f0900033c feat:【V5.17.0】副标题客户端使用场景补充—客户端 https://jira.shanqu.cc/browse/GHZS-473 2022-12-05 14:16:47 +08:00
4fbc80ca38 Merge branch 'feature-GHZS-372' into 'dev-5.17.0'
feat:【光环助手V5.17.0】游戏列表-游戏卡片显示优化 https://jira.shanqu.cc/browse/GHZS-372

See merge request halo/android/assistant-android!528
2022-12-05 13:53:42 +08:00
7fbe32d2af feat:【光环助手V5.17.0】游戏列表-游戏卡片显示优化 https://jira.shanqu.cc/browse/GHZS-372 2022-12-05 13:53:42 +08:00
988b931170 chore: 版本更新到 5.14.8 2022-12-05 10:57:48 +08:00
50acd6998e Merge branch 'hotfix-v5.14.7-637-crash' into 'legacy-release'
fix: 临时修复跳转内容为空时的闪退...

See merge request halo/android/assistant-android!527
2022-12-05 10:56:15 +08:00
84faf3e0d5 Merge branch 'feature-GHZS-565' into 'dev'
fix:【光环助手V5.16.0】游戏广告管理功能(前端部分)-1202测试 https://jira.shanqu.cc/browse/GHZS-565

See merge request halo/android/assistant-android!526
2022-12-05 10:50:49 +08:00
d84c1f1f25 fix:【光环助手V5.16.0】游戏广告管理功能(前端部分)-1202测试 https://jira.shanqu.cc/browse/GHZS-565 2022-12-05 10:37:49 +08:00
52b6a429bc fix: 临时修复跳转内容为空时的闪退 https://sentry.shanqu.cc/organizations/lightgame/issues/237240/?project=22&query=skip&sort=freq&statsPeriod=14d 2022-12-05 10:28:42 +08:00
6492b41ad1 Merge branch 'feature-issues92' into 'dev'
fix:修复游戏单详情评论列表的滑动卡顿问题 https://git.shanqu.cc/halo/android/assistant-android/-/issues/92

See merge request halo/android/assistant-android!524
2022-12-02 15:37:12 +08:00
3e4faca388 fix:修复游戏单详情评论列表的滑动卡顿问题 https://git.shanqu.cc/halo/android/assistant-android/-/issues/92 2022-12-02 15:37:12 +08:00
15b3f7df2a Merge branch 'feature-GHZS-440' into 'dev-5.17.0'
feat: 【V5.17.0】游戏详情-详情tab页面优化-游戏单推荐—客户端 https://jira.shanqu.cc/browse/GHZS-440

See merge request halo/android/assistant-android!525
2022-12-02 15:34:16 +08:00
937109224c feat: 【V5.17.0】游戏详情-详情tab页面优化-游戏单推荐—客户端 https://jira.shanqu.cc/browse/GHZS-440 2022-12-02 15:30:14 +08:00
cd1609a3ef chore: 版本更新至 5.15.2 2022-12-02 15:18:22 +08:00
4fd9c7b36e Merge branch 'hotfix-v5.15.1-651-game_ratting_error' into 'release'
fix: 修改游戏评论闪退问题

See merge request halo/android/assistant-android!523
2022-12-02 14:29:22 +08:00
2bd8e0f96b fix: 修改游戏评论闪退问题 2022-12-02 14:25:06 +08:00
2d64f19f98 Merge branch 'hotfix-v5.15.1-651-simulator_crash' into 'release'
fix: 修复模拟器安装时的闪退

See merge request halo/android/assistant-android!521
2022-12-02 13:49:44 +08:00
15de55ceae fix: 修复模拟器安装时的闪退 2022-12-02 13:45:42 +08:00
2316bd1e18 Merge branch 'hotfix-v5.15.1-651-search_subject_crash' into 'release'
fix:修复搜索专题显示空白的问题

See merge request halo/android/assistant-android!520
2022-12-02 12:21:04 +08:00
6a4726650c fix:修复搜索专题显示空白的问题 2022-12-02 11:45:10 +08:00
e79e6f8ec8 Merge branch 'feature-GHZS-554' into 'dev'
fix:【光环助手V5.16.0】光环下载进度条优化-1201测试 https://jira.shanqu.cc/browse/GHZS-554

See merge request halo/android/assistant-android!519
2022-12-02 10:43:34 +08:00
894d962836 Merge branch 'feature-GHZS-549' into 'dev'
fix:【光环助手V5.16.0】游戏广告管理功能(前端部分)-1201测试- (2(2)、4) https://jira.shanqu.cc/browse/GHZS-549

See merge request halo/android/assistant-android!518
2022-12-02 10:42:29 +08:00
f48767c4bf fix:【光环助手V5.16.0】光环下载进度条优化-1201测试 https://jira.shanqu.cc/browse/GHZS-554 2022-12-02 10:32:17 +08:00
b5a64d1c36 fix:【光环助手V5.16.0】游戏广告管理功能(前端部分)-1201测试- (2(2)、4) https://jira.shanqu.cc/browse/GHZS-549 2022-12-02 09:55:25 +08:00
fb4936a553 feat:【V5.17.0】论坛详情页-问答帖新增排序方式切换—客户端 https://jira.shanqu.cc/browse/GHZS-390 2022-12-01 16:30:44 +08:00
001d062207 chore: 版本更新至 5.15.1 2022-12-01 16:27:31 +08:00
d4b1b822f4 Merge branch 'legacy-release' into 'release'
合并 5.14.X 闪退修复

See merge request halo/android/assistant-android!517
2022-12-01 16:26:32 +08:00
732765118e Merge branch 'hotfix-v5.14.7-637-crashes' into 'legacy-release'
修复一些线上闪退

See merge request halo/android/assistant-android!516
2022-12-01 16:25:36 +08:00
eeacae1fd2 fix: 修复历史游戏列表因为历史副标题颜色不存在引起的闪退 2022-12-01 16:08:17 +08:00
e982ae9125 fix: 修复双列通用合集专题因为获取到错误的位置造成的闪退 2022-12-01 16:03:20 +08:00
a7ee0c754b fix: 捕抓畅玩因为存储空间不足造成的闪退 2022-12-01 16:01:27 +08:00
b042b3433d Merge branch 'feature-GHZS-534' into 'dev'
fix:【光环助手V5.16.0】光环下载进度条优化-1130测试2 https://jira.shanqu.cc/browse/GHZS-534

See merge request halo/android/assistant-android!515
2022-12-01 15:05:24 +08:00
8ba70f4a7d fix:【光环助手V5.16.0】光环下载进度条优化-1130测试2 https://jira.shanqu.cc/browse/GHZS-534 2022-12-01 14:59:04 +08:00
094a85bfa4 Merge branch 'feature-GHZS-538' into 'release'
fix: 模拟器下载流程问题修改  https://jira.shanqu.cc/browse/GHZS-538

See merge request halo/android/assistant-android!514
2022-12-01 13:52:27 +08:00
54f0fa8dd8 fix: 模拟器下载流程问题修改 https://jira.shanqu.cc/browse/GHZS-538 2022-12-01 13:49:01 +08:00
30f4bcc422 Merge branch 'feature-GHZS-431' into 'dev-5.17.0'
feat: 【V5.17.0】游戏详情-详情tab页面优化-相关游戏—客户端 https://jira.shanqu.cc/browse/GHZS-431

See merge request halo/android/assistant-android!513
2022-12-01 11:44:00 +08:00
39820b2c8a feat: 【V5.17.0】游戏详情-详情tab页面优化-相关游戏—客户端 https://jira.shanqu.cc/browse/GHZS-431 2022-12-01 11:40:20 +08:00
1f331a20fa Merge branch 'feature-GHZS-538' into 'release'
fix: 模拟器下载流程问题  https://jira.shanqu.cc/browse/GHZS-538

See merge request halo/android/assistant-android!512
2022-12-01 11:40:15 +08:00
ad58699d2f fix: 模拟器下载流程问题 https://jira.shanqu.cc/browse/GHZS-538 2022-12-01 11:30:21 +08:00
ecb73f9636 Merge branch 'feature-GHZS-373' into 'dev-5.17.0'
feat:【光环助手V5.17.0】游戏详情-分享面板文案更换 https://jira.shanqu.cc/browse/GHZS-373

See merge request halo/android/assistant-android!511
2022-12-01 10:46:35 +08:00
55e80c00de Merge branch 'fix-GHZS-535' into 'dev'
fix: 云存档第一期-测试问题-2022\11\30-第6点 https://jira.shanqu.cc/browse/GHZS-535

See merge request halo/android/assistant-android!510
2022-12-01 10:34:41 +08:00
172b8cfa4c fix: 云存档第一期-测试问题-2022\11\30-第6点 https://jira.shanqu.cc/browse/GHZS-535 2022-12-01 10:24:40 +08:00
bf6b1f05b0 Merge branch 'feature-GHZS-531' into 'dev'
fix:【V5.16.0】游戏广告管理功能(前端部分)-1130测试(4) https://jira.shanqu.cc/browse/GHZS-531

See merge request halo/android/assistant-android!509
2022-12-01 10:15:14 +08:00
5e69aa2362 feat:【光环助手V5.17.0】游戏详情-分享面板文案更换 https://jira.shanqu.cc/browse/GHZS-373 2022-12-01 10:12:17 +08:00
a28ba2773e fix:【V5.16.0】游戏广告管理功能(前端部分)-1130测试(4) https://jira.shanqu.cc/browse/GHZS-531 2022-12-01 09:45:44 +08:00
a19b2c5dc8 Merge branch 'fix-wrong_backup' into 'dev'
fix: 修复云存档会被自动备份影响到下一次安装使用的问题

See merge request halo/android/assistant-android!508
2022-11-30 21:25:30 +08:00
a70156e272 fix: 修复云存档会被自动备份影响到下一次安装使用的问题 2022-11-30 21:21:47 +08:00
583e8c8eb8 Merge branch 'feature-GHZS-520' into 'dev'
fix:【光环助手V5.16.0】光环下载进度条优化-1130测试(1-3、5) https://jira.shanqu.cc/browse/GHZS-520

See merge request halo/android/assistant-android!505
2022-11-30 19:44:58 +08:00
b08b6bda3b fix:【光环助手V5.16.0】光环下载进度条优化-1130测试(1-3、5) https://jira.shanqu.cc/browse/GHZS-520 2022-11-30 19:44:58 +08:00
ef1d32b330 Merge branch 'feature-GHZS-513' into 'dev'
fix:【V5.16.0】云存档第一期—云存档管理-1130UI测试(4) https://jira.shanqu.cc/browse/GHZS-513

See merge request halo/android/assistant-android!506
2022-11-30 19:43:12 +08:00
98deb6c702 fix:【V5.16.0】云存档第一期—云存档管理-1130UI测试(4) https://jira.shanqu.cc/browse/GHZS-513 2022-11-30 19:43:12 +08:00
1aa23aeeae Merge branch 'fix-GHZS-524' into 'dev'
fix: 云存档第一期-测试问题-2022\11\30-第5点 https://jira.shanqu.cc/browse/GHZS-524

See merge request halo/android/assistant-android!507
2022-11-30 18:54:13 +08:00
dd4f9918c9 fix: 云存档第一期-测试问题-2022\11\30-第5点 https://jira.shanqu.cc/browse/GHZS-524 2022-11-30 18:51:54 +08:00
da1d7b23c3 Merge branch 'fix-GHZS-489' into 'dev'
fix: 云存档第一期-测试问题-2022\11\30-第4点 https://jira.shanqu.cc/browse/GHZS-489

See merge request halo/android/assistant-android!504
2022-11-30 18:29:24 +08:00
8fc324cbc3 fix: 云存档第一期-测试问题-2022\11\30-第4点 https://jira.shanqu.cc/browse/GHZS-489 2022-11-30 18:21:12 +08:00
cd83c0a267 Merge branch 'feature-GHZS-511' into 'dev'
fix:【V5.16.0】云存档第一期—游戏详情-1130UI测试(6) https://jira.shanqu.cc/browse/GHZS-511

See merge request halo/android/assistant-android!503
2022-11-30 18:20:46 +08:00
d61eb01461 fix:【V5.16.0】云存档第一期—游戏详情-1130UI测试(6) https://jira.shanqu.cc/browse/GHZS-511 2022-11-30 18:18:26 +08:00
546d692151 Merge branch 'feature-GHZS-511' into 'dev'
fix:【V5.16.0】云存档第一期—游戏详情-1130UI测试(5) https://jira.shanqu.cc/browse/GHZS-511

See merge request halo/android/assistant-android!502
2022-11-30 17:50:50 +08:00
bc313422e2 fix:【V5.16.0】云存档第一期—游戏详情-1130UI测试(5) https://jira.shanqu.cc/browse/GHZS-511 2022-11-30 17:50:14 +08:00
acc5bd6e8c Merge branch 'hotfix_game_detail_archive_ui' into 'dev'
fix: 游戏详情-云存档tab-用户icon去掉边框

See merge request halo/android/assistant-android!501
2022-11-30 17:09:01 +08:00
15c3aed5ba fix: 游戏详情-云存档tab-用户icon去掉边框 2022-11-30 17:07:42 +08:00
afc8f15048 Merge branch 'fix-GHZS-489' into 'dev'
fix: 云存档第一期-测试问题-2022\11\30-第4点 https://jira.shanqu.cc/browse/GHZS-489

See merge request halo/android/assistant-android!500
2022-11-30 16:48:54 +08:00
de02ea7312 fix: 云存档第一期-测试问题-2022\11\30-第4点 https://jira.shanqu.cc/browse/GHZS-489 2022-11-30 16:44:23 +08:00
420b112576 Merge branch 'feature-GHZS-521' into 'dev'
fix: 云存档第一期-测试问题-2022\11\30-第2点 https://jira.shanqu.cc/browse/GHZS-521

See merge request halo/android/assistant-android!499
2022-11-30 16:38:46 +08:00
f6a67350b4 fix: 云存档第一期-测试问题-2022\11\30-第2点 https://jira.shanqu.cc/browse/GHZS-521 2022-11-30 16:35:45 +08:00
5482322c28 Merge branch 'feature-GHZS-515' into 'dev'
fix: 云存档第一期-测试问题-2022\11\30-第3点 https://jira.shanqu.cc/browse/GHZS-515

See merge request halo/android/assistant-android!498
2022-11-30 16:15:24 +08:00
08236d4ddc fix: 云存档第一期-测试问题-2022\11\30-第3点 https://jira.shanqu.cc/browse/GHZS-515 2022-11-30 16:15:24 +08:00
9558c0b123 Merge branch 'feature-GHZS-511' into 'dev'
fix:【V5.16.0】云存档第一期—游戏详情-1130UI测试 https://jira.shanqu.cc/browse/GHZS-511

See merge request halo/android/assistant-android!497
2022-11-30 15:03:07 +08:00
f68df0fce5 fix:【V5.16.0】云存档第一期—游戏详情-1130UI测试 https://jira.shanqu.cc/browse/GHZS-511 2022-11-30 14:59:50 +08:00
03401e5649 Merge branch 'feature-GHZS-503' into 'dev'
fix:【V5.16.0】游戏活动模板功能(第二期)-1124测试-第2点 https://jira.shanqu.cc/browse/GHZS-503

See merge request halo/android/assistant-android!496
2022-11-30 14:53:36 +08:00
86f6b0c108 fix:【V5.16.0】游戏活动模板功能(第二期)-1124测试-第2点 https://jira.shanqu.cc/browse/GHZS-503 2022-11-30 14:43:00 +08:00
fc9eea7a4e Merge branch 'feature-GHZS-513' into 'dev'
fix:【V5.16.0】云存档第一期—云存档管理-1130UI测试 https://jira.shanqu.cc/browse/GHZS-513

See merge request halo/android/assistant-android!494
2022-11-30 14:29:15 +08:00
bff56dc114 fix:【V5.16.0】云存档第一期—云存档管理-1130UI测试 https://jira.shanqu.cc/browse/GHZS-513 2022-11-30 14:29:15 +08:00
fddf52b0c3 Merge branch 'feature-GHZS-443' into 'dev'
fix:【V5.16.0】游戏广告管理功能(前端部分)-1128测试(3) https://jira.shanqu.cc/browse/GHZS-443

See merge request halo/android/assistant-android!495
2022-11-30 14:28:55 +08:00
5eb804d9d4 fix:【V5.16.0】游戏广告管理功能(前端部分)-1128测试(3) https://jira.shanqu.cc/browse/GHZS-443 2022-11-30 14:28:55 +08:00
d04e2b59e5 Merge branch 'feature_GHZS_93' into 'dev'
fix:修复已安装游戏tab-游戏卡片列表顶部(首个游戏上方)需增加8dp间距  https://jira.shanqu.cc/browse/GHZS-514

See merge request halo/android/assistant-android!493
2022-11-30 14:05:21 +08:00
558f4409af fix:修复已安装游戏tab-游戏卡片列表顶部(首个游戏上方)需增加8dp间距 https://jira.shanqu.cc/browse/GHZS-514 2022-11-30 14:05:21 +08:00
c21040f8f1 Merge branch 'feature-GHZS-488' into 'dev'
fix:【光环助手V5.16.0】游戏礼包优化(第三期)-1129测试-第2点 https://jira.shanqu.cc/browse/GHZS-488

See merge request halo/android/assistant-android!491
2022-11-30 14:00:26 +08:00
2f577c7ef1 Merge branch 'feature-GHZS-92' into 'dev'
feat:【V5.16.0】云存档第一期-云存档管理—客户端(添加使用帮助文章跳转) https://jira.shanqu.cc/browse/GHZS-92

See merge request halo/android/assistant-android!492
2022-11-30 13:51:28 +08:00
56ddf9a83b feat:【V5.16.0】云存档第一期-云存档管理—客户端(添加使用帮助文章跳转) https://jira.shanqu.cc/browse/GHZS-92 2022-11-30 13:51:28 +08:00
50e8071a31 fix:【光环助手V5.16.0】游戏礼包优化(第三期)-1129测试-第2点 https://jira.shanqu.cc/browse/GHZS-488 2022-11-30 13:05:41 +08:00
ca073c128d Merge branch 'fix-GHZS-483' into 'dev'
fix: 畅玩流程优化-测试问题 https://jira.shanqu.cc/browse/GHZS-483

See merge request halo/android/assistant-android!490
2022-11-30 10:45:35 +08:00
6e0dd3831b fix: 畅玩流程优化-测试问题 https://jira.shanqu.cc/browse/GHZS-483 2022-11-30 10:40:55 +08:00
a22e26aec3 Merge branch 'feature-GHZS-478' into 'dev'
fix:【光环助手V5.16.0】光环下载进度条优化-1128测试 https://jira.shanqu.cc/browse/GHZS-478

See merge request halo/android/assistant-android!488
2022-11-30 10:31:42 +08:00
fa33fe3d71 fix:【光环助手V5.16.0】光环下载进度条优化-1128测试 https://jira.shanqu.cc/browse/GHZS-478
fix:【光环助手V5.16.0】光环下载进度条优化-测试问题-2022\\11\\29 https://jira.shanqu.cc/browse/GHZS-484
fix:【光环助手V5.16.0】光环下载进度条优化-1129测试 https://jira.shanqu.cc/browse/GHZS-486
2022-11-30 10:31:42 +08:00
f9e16d1f32 Merge branch 'feature_GHZS_93' into 'dev'
fix:更换游戏存档-推荐游戏接口

See merge request halo/android/assistant-android!489
2022-11-30 09:55:18 +08:00
8584e12a7e fix:更换游戏存档-推荐游戏接口 2022-11-30 09:55:18 +08:00
5ffd28de1b Merge branch 'feature_GHZS_93' into 'dev'
fix:添加筛选云存档的游戏接口

See merge request halo/android/assistant-android!487
2022-11-29 16:22:17 +08:00
fff91052ff fix:添加筛选云存档的游戏接口 2022-11-29 16:22:17 +08:00
0e0812c00e Merge branch 'feature-GHZS-310' into 'dev'
feat:【光环助手V5.16.0】云存档第一期—数据埋点—客户端-1-10 https://jira.shanqu.cc/browse/GHZS-310

See merge request halo/android/assistant-android!485
2022-11-29 10:44:06 +08:00
efe0efa0f8 feat:【光环助手V5.16.0】云存档第一期—数据埋点—客户端-1-10 https://jira.shanqu.cc/browse/GHZS-310 2022-11-28 18:22:52 +08:00
bdb7336d16 Merge remote-tracking branch 'origin/release' into dev 2022-11-28 17:03:28 +08:00
2ee01a0819 Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	app/src/main/java/com/gh/common/history/HistoryDatabase.kt
#	app/src/main/java/com/gh/gamecenter/entity/AmwayCommentEntity.kt
#	app/src/main/java/com/gh/gamecenter/entity/HistoryGameEntity.kt
#	dependencies.gradle
2022-11-28 16:53:02 +08:00
d322c0c500 Merge branch 'hotfix-dev-game_detail_bbs_tab_click' into 'dev'
fix: 游戏详情页-跳转论坛Tab增加是否存在云存档Tab的判断

See merge request halo/android/assistant-android!484
2022-11-28 16:46:03 +08:00
be43470066 fix: 游戏详情页-跳转论坛Tab增加是否存在云存档Tab的判断 2022-11-28 16:41:15 +08:00
ade40c49ef Merge branch 'merge-from_dev_to_feature-GHZS-78' into 'dev'
合并云存档代码至 dev

See merge request halo/android/assistant-android!483
2022-11-28 16:24:27 +08:00
31d23a3a02 Merge remote-tracking branch 'origin/dev' into feature-GHZS-78
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
2022-11-28 15:34:57 +08:00
22e56e838a Merge branch 'feature-GHZS-380' into 'dev'
fix: 【V5.16.0】启动广告图-1125测试结果反馈-第1/4点 https://jira.shanqu.cc/browse/GHZS-380

See merge request halo/android/assistant-android!480
2022-11-28 14:27:29 +08:00
2242de5f83 chore: 版本更新至 5.14.7-637 2022-11-28 14:26:48 +08:00
b684fff4f1 Merge branch 'hotfix-v5.14.6-636-subtitle' into 'legacy-release'
fix: 补充遗漏的副标题(游戏动态页) https://jira.shanqu.cc/browse/GHZS-344

See merge request halo/android/assistant-android!479
2022-11-28 14:22:37 +08:00
001a472b8e fix: 【V5.16.0】启动广告图-1125测试结果反馈-第1/4点 https://jira.shanqu.cc/browse/GHZS-380 2022-11-28 14:17:18 +08:00
0b0f575c41 fix: 补充遗漏的副标题(游戏动态页) https://jira.shanqu.cc/browse/GHZS-344 2022-11-28 14:05:15 +08:00
da25541147 fix:添加我的光环-游戏存档入口 2022-11-28 11:57:18 +08:00
e57ba6ed71 feat:【光环助手V5.16.0】云存档第一期—数据埋点—客户端-11-20 (12、19) https://jira.shanqu.cc/browse/GHZS-314 2022-11-28 11:37:44 +08:00
fad7083a2c Merge branch 'feature-GHZS-344' into 'legacy-release'
feat: 【光环助手】副标题遗漏场景补充 https://jira.shanqu.cc/browse/GHZS-344

See merge request halo/android/assistant-android!477
2022-11-28 11:25:05 +08:00
9254c9ef7d Merge branch 'feature_GHZS_93' into 'feature-GHZS-78'
feat:添加我的光环-游戏存档https://jira.shanqu.cc/browse/GHZS-93

See merge request halo/android/assistant-android!478
2022-11-28 10:41:47 +08:00
d3042b9199 feat:添加我的光环-游戏存档https://jira.shanqu.cc/browse/GHZS-93 2022-11-28 10:41:47 +08:00
0893a34dff feat:【光环助手V5.16.0】云存档第一期—数据埋点—客户端-11-20 (除12、19) https://jira.shanqu.cc/browse/GHZS-314 2022-11-25 16:49:27 +08:00
da22540af3 feat: 【光环助手】副标题遗漏场景补充 https://jira.shanqu.cc/browse/GHZS-344 2022-11-25 16:23:06 +08:00
fffc27e779 fix:【V5.16.0】云存档第一期-云存档管理—客户端(修改编辑存档接口,处理一些细节问题) https://jira.shanqu.cc/browse/GHZS-92 2022-11-25 15:00:58 +08:00
2f246da269 Merge branch 'feature-GHZS-348' into 'dev'
fix:【V5.16.0】游戏搜索-热门榜单功能优化-1124UI测试 https://jira.shanqu.cc/browse/GHZS-348

See merge request halo/android/assistant-android!476
2022-11-25 14:40:04 +08:00
c6137fc3c9 fix:【V5.16.0】游戏搜索-热门榜单功能优化-1124UI测试 https://jira.shanqu.cc/browse/GHZS-348 2022-11-25 14:36:23 +08:00
518eb222b9 fix:处理切换普通/深色模式时LazyListFragment页面变量未初始化导致的闪退问题 2022-11-25 14:26:43 +08:00
8bf7c61690 Merge branch 'fix-gamedetail_tab_error' into 'dev'
fix: 修改游戏详情tab跳转错误问题

See merge request halo/android/assistant-android!475
2022-11-25 14:11:05 +08:00
a28169eeae fix: 修改游戏详情tab跳转错误问题 2022-11-25 14:07:04 +08:00
fb1968b402 fix:处理合并遗漏 2022-11-25 13:56:54 +08:00
f479c789e9 Merge remote-tracking branch 'origin/dev' into feature-GHZS-78
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
#	app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java
2022-11-25 13:40:34 +08:00
67fb1948b4 feat:【V5.16.0】云存档第一期-云存档管理—客户端 https://jira.shanqu.cc/browse/GHZS-92 2022-11-24 17:51:14 +08:00
cd39a497e9 Merge branch 'feature-GHZS-336' into 'dev'
fix:【光环助手V5.16.0】游戏评分相关优化-1124UI测试 https://jira.shanqu.cc/browse/GHZS-336

See merge request halo/android/assistant-android!473
2022-11-24 17:49:13 +08:00
2398795438 fix:【光环助手V5.16.0】游戏评分相关优化-1124UI测试 https://jira.shanqu.cc/browse/GHZS-336 2022-11-24 17:45:50 +08:00
2d41122c1c Merge branch 'feature-GHZS-334' into 'dev'
fix:【光环助手V5.16.0】游戏评分相关优化-1124测试-第1点 https://jira.shanqu.cc/browse/GHZS-334

See merge request halo/android/assistant-android!472
2022-11-24 17:22:13 +08:00
ec576900e8 fix:【光环助手V5.16.0】游戏评分相关优化-1124测试-第1点 https://jira.shanqu.cc/browse/GHZS-334 2022-11-24 17:15:49 +08:00
47549d788b fix:【光环助手V5.16.0】游戏评分相关优化-1124测试-第1点 https://jira.shanqu.cc/browse/GHZS-334 2022-11-24 16:51:48 +08:00
34f1dd057c feat:【V5.16.0】云存档第一期-游戏详情—客户端(创建下载按钮辅助类)https://jira.shanqu.cc/browse/GHZS-80 2022-11-24 15:41:31 +08:00
20e8fa451c Merge branch 'feature-GHZS-282' into 'dev'
fix:【V5.16.0】游戏搜索-热门榜单功能优化-1118UI测试(修复动图设置圆角无效问题) https://jira.shanqu.cc/browse/GHZS-282

See merge request halo/android/assistant-android!471
2022-11-24 15:07:11 +08:00
f92fb6a1c7 fix:【V5.16.0】游戏搜索-热门榜单功能优化-1118UI测试(修复动图设置圆角无效问题) https://jira.shanqu.cc/browse/GHZS-282 2022-11-24 15:07:10 +08:00
0e71b917c5 Merge branch 'feature-GHZS-340' into 'dev'
fix:【光环助手V5.16.0】光环下载进度条优化-1124UI测试 https://jira.shanqu.cc/browse/GHZS-340

See merge request halo/android/assistant-android!470
2022-11-24 15:00:52 +08:00
d48947b256 fix:【光环助手V5.16.0】光环下载进度条优化-1124UI测试 https://jira.shanqu.cc/browse/GHZS-340 2022-11-24 14:46:47 +08:00
7f5605a1a7 Merge branch 'merge-dev_to_dev-5.16.0' into 'dev-5.16.0'
Merge dev to dev 5.16.0

See merge request halo/android/assistant-android!469
2022-11-24 13:43:42 +08:00
f0ed0ae612 fix: 处理合并冲突 2022-11-24 11:15:58 +08:00
2c7997aa57 Merge remote-tracking branch 'origin/dev' into dev-5.16.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/game/GameItemViewHolder.kt
#	app/src/main/java/com/gh/gamecenter/game/vertical/GameVerticalAdapter.kt
#	app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListAdapter.kt
#	app/src/main/java/com/gh/vspace/VDownloadManagerAdapter.kt
#	module_common/src/main/java/com/gh/gamecenter/common/view/DrawableView.kt
2022-11-24 11:06:06 +08:00
0bc638a2f9 Merge branch 'merge-release_to_dev' into 'dev'
Merge release to dev

See merge request halo/android/assistant-android!468
2022-11-24 10:50:10 +08:00
1ae64c35b9 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/game/GameItemViewHolder.kt
#	dependencies.gradle
2022-11-24 10:38:48 +08:00
252566837a chore: 版本更新至 5.14.6 2022-11-24 10:06:24 +08:00
4cfa723a0e feat:【V5.16.0】云存档第一期-游戏详情—客户端(处理下载按钮)https://jira.shanqu.cc/browse/GHZS-80 2022-11-23 18:00:20 +08:00
6c74096302 Merge branch 'fix-wrong-activity_dependency_version' into 'dev-5.16.0'
fix: activity-ktx 回滚到够用的 1.2.3 (依赖版本升太高增加了 100K 压缩后的代码)

See merge request halo/android/assistant-android!467
2022-11-23 17:49:45 +08:00
53075a2eff fix: activity-ktx 回滚到够用的 1.2.3 (依赖版本升太高增加了 100K 压缩后的代码) 2022-11-23 17:48:30 +08:00
94d249312b Merge branch 'hotfix-v5.13.7-617-try_catch_subtitle_crash' into 'release'
fix:捕获游戏详情副标题的异常

See merge request halo/android/assistant-android!466
2022-11-23 17:03:28 +08:00
4855dda839 fix:捕获游戏详情副标题的异常 2022-11-23 17:03:28 +08:00
c5519fb160 Merge branch 'hotfix-v5.14.5-635-subtitle' into 'release'
fix: 修复模拟器上部分副标题不显示的问题,为分类页面和开服表页面添加副标题支持 https://jira.shanqu.cc/browse/GHZS-319

See merge request halo/android/assistant-android!463
2022-11-23 16:26:09 +08:00
5cd9197d0f fix: 修复模拟器上部分副标题不显示的问题,为分类页面和开服表页面添加副标题支持 https://jira.shanqu.cc/browse/GHZS-319 2022-11-23 16:26:09 +08:00
28a97b0441 Merge branch 'feature-issues93' into 'dev-5.16.0'
feat: 移除冗余的 Splitties 依赖

See merge request halo/android/assistant-android!464
2022-11-23 16:03:25 +08:00
d0cd3b4ac2 Merge branch 'feature-GHZS-144' into 'dev-5.16.0'
feat:【V5.16.0】游戏评分相关优化—客户端(草稿功能由本地改为使用接口) https://jira.shanqu.cc/browse/GHZS-144

See merge request halo/android/assistant-android!462
2022-11-23 11:44:21 +08:00
f87e0dfe3c feat:【V5.16.0】游戏评分相关优化—客户端(草稿功能由本地改为使用接口) https://jira.shanqu.cc/browse/GHZS-144 2022-11-23 11:44:21 +08:00
c838f1dc24 feat: 移除冗余的 Splitties 依赖 2022-11-23 11:26:22 +08:00
584512c2ae Merge branch 'merge-release_to_dev' into 'dev'
合并 release 变更至 dev

See merge request halo/android/assistant-android!461
2022-11-23 10:43:24 +08:00
22cfe03a30 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/entity/PrivacyPolicyEntity.kt
#	dependencies.gradle
2022-11-23 10:36:10 +08:00
3b178c0bbe chore: 版本更新至 5.14.5 2022-11-23 10:20:30 +08:00
6270f9fb98 Merge branch 'hotfix-v5.14.4-634-vgame_feedback' into 'release'
fix: 修复畅玩游戏反馈无法正常跳转的问题 https://jira.shanqu.cc/browse/GHZS-309

See merge request halo/android/assistant-android!460
2022-11-23 10:19:40 +08:00
0306caadb5 fix: 修复畅玩游戏反馈无法正常跳转的问题 https://jira.shanqu.cc/browse/GHZS-309 2022-11-23 10:19:40 +08:00
9c1e2f18fd fix: 修复数据升级异常 2022-11-22 17:17:56 +08:00
305ab1d0e2 fix: 统一方法描述 2022-11-22 16:49:38 +08:00
ad208538f6 feat: 提供创建游戏存档结果回调 2022-11-22 16:47:38 +08:00
308cf4b627 feat: 调整存档路径的可见性 2022-11-22 16:38:34 +08:00
4fd4086023 Merge branch 'feature-GHZS-282' into 'dev-5.16.0'
fix:【V5.16.0】游戏搜索-热门榜单功能优化-1118UI测试 https://jira.shanqu.cc/browse/GHZS-282

See merge request halo/android/assistant-android!459
2022-11-22 15:43:11 +08:00
858f213b19 fix:【V5.16.0】游戏搜索-热门榜单功能优化-1118UI测试 https://jira.shanqu.cc/browse/GHZS-282 2022-11-22 15:41:28 +08:00
5efb343599 feat: 提供根据 md5 删除对应存档的方法,调整部分变量命名 2022-11-22 15:10:40 +08:00
842f120de4 feat: 提供根据 md5 获取存档文件的方法 2022-11-22 15:04:14 +08:00
adf7795877 Merge branch 'feature-GHZS-28' into 'dev-5.16.0'
fix:【V5.16.0】游戏广告管理功能(前端部分)—客户端 (安利墙广场改为支持任意位置放置专题) https://jira.shanqu.cc/browse/GHZS-28

See merge request halo/android/assistant-android!458
2022-11-22 14:56:06 +08:00
095e533269 fix:【V5.16.0】游戏广告管理功能(前端部分)—客户端 (安利墙广场改为支持任意位置放置专题) https://jira.shanqu.cc/browse/GHZS-28 2022-11-22 14:48:36 +08:00
364e7d0588 Merge branch 'feature-GHZS-112' into 'dev-5.16.0'
feat:【V5.16.0】违规整合优化(第二期)—客户端 https://jira.shanqu.cc/browse/GHZS-112

See merge request halo/android/assistant-android!457
2022-11-22 14:28:41 +08:00
d3ce4b00ab feat: 提供简单的畅玩下载存档、保存存档、应用存档逻辑 2022-11-22 14:23:07 +08:00
bde4baa0d1 feat:【V5.16.0】违规整合优化(第二期)—客户端 https://jira.shanqu.cc/browse/GHZS-112 2022-11-22 14:12:18 +08:00
1fdb1bd24a Merge branch 'feature-GHZS-144' into 'dev-5.16.0'
feat:【V5.16.0】游戏评分相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-144

See merge request halo/android/assistant-android!455
2022-11-22 10:11:08 +08:00
4cba936bf2 Merge branch 'feature-GHZS-273' into 'dev-5.16.0'
fix: 【V5.16.0】游戏详情-内容卡片优化-1118测试-第1点 https://jira.shanqu.cc/browse/GHZS-273

See merge request halo/android/assistant-android!456
2022-11-22 10:04:42 +08:00
f33b5e1609 fix: 【V5.16.0】游戏详情-内容卡片优化-1118测试-第1点 https://jira.shanqu.cc/browse/GHZS-273 2022-11-22 10:00:15 +08:00
5881f70a9e feat:【V5.16.0】游戏评分相关优化—客户端 https://jira.shanqu.cc/browse/GHZS-144 2022-11-21 17:57:23 +08:00
d56a63236e Merge branch 'dev-5.16.0' into feature-GHZS-78 2022-11-21 17:33:08 +08:00
714da89e9c Merge branch 'fix-startup_button_background' into 'dev-5.16.0'
fix: 修改启动广告图底部按钮背景

See merge request halo/android/assistant-android!454
2022-11-21 16:17:27 +08:00
5781629898 fix: 修改启动广告图底部按钮背景 2022-11-21 16:14:28 +08:00
00e6fc54ce Merge branch 'feature-GHZS-276' into 'dev-5.16.0'
fix: 【V5.16.0】多版本下载面板-求版本优化-1118测试 https://jira.shanqu.cc/browse/GHZS-276

See merge request halo/android/assistant-android!453
2022-11-21 15:48:37 +08:00
cf68f11cc7 fix: 【V5.16.0】多版本下载面板-求版本优化-1118测试 https://jira.shanqu.cc/browse/GHZS-276 2022-11-21 15:46:14 +08:00
50c77dfd11 Merge branch 'feature-GHZS-84' into 'dev-5.16.0'
feat:【V5.16.0】光环下载进度条优化—客户端 https://jira.shanqu.cc/browse/GHZS-84

See merge request halo/android/assistant-android!447
2022-11-21 15:28:01 +08:00
8564bc95e9 feat:【V5.16.0】光环下载进度条优化—客户端 https://jira.shanqu.cc/browse/GHZS-84 2022-11-21 15:28:01 +08:00
6244387c79 Merge branch 'feature-GHZS-285' into 'dev-5.16.0'
fix: 【V5.16.0】游戏开服类标签UI优化-1118测试 https://jira.shanqu.cc/browse/GHZS-285

See merge request halo/android/assistant-android!452
2022-11-21 14:17:38 +08:00
b3cbe02e40 fix: 【V5.16.0】游戏开服类标签UI优化-1118测试 https://jira.shanqu.cc/browse/GHZS-285 2022-11-21 14:16:05 +08:00
68a8933f62 Merge branch 'feature-GHZS-286' into 'dev-5.16.0'
fix: 【V5.16.0】启动广告图—1118UI测试 https://jira.shanqu.cc/browse/GHZS-286

See merge request halo/android/assistant-android!451
2022-11-21 14:03:44 +08:00
63a38f0dc6 fix: 【V5.16.0】启动广告图—1118UI测试 https://jira.shanqu.cc/browse/GHZS-286 2022-11-21 14:01:39 +08:00
ecbdbf57db Merge branch 'feature-GHZS-277' into 'dev-5.16.0'
fix: 【V5.16.0】猜你喜欢-发现页优化—1118UI测试 https://jira.shanqu.cc/browse/GHZS-277

See merge request halo/android/assistant-android!450
2022-11-21 11:55:01 +08:00
ba1a7d874f fix: 【V5.16.0】猜你喜欢-发现页优化—1118UI测试 https://jira.shanqu.cc/browse/GHZS-277 2022-11-21 11:52:17 +08:00
c70f1aa267 Merge branch 'feature-GHZS-138' into 'dev-5.16.0'
fix:【V5.16.0】通用弹窗UI优化—客户端(修复引导弹窗组件适配版本号弹窗问题) https://jira.shanqu.cc/browse/GHZS-138

See merge request halo/android/assistant-android!448
2022-11-21 11:39:38 +08:00
1189619bdd Merge branch 'feature-GHZS-279' into 'dev-5.16.0'
fix: 【V5.16.0】视频分享面板UI优化—1118UI测试 https://jira.shanqu.cc/browse/GHZS-279

See merge request halo/android/assistant-android!449
2022-11-21 11:33:41 +08:00
a7898ff9bd fix: 【V5.16.0】视频分享面板UI优化—1118UI测试 https://jira.shanqu.cc/browse/GHZS-279 2022-11-21 10:55:56 +08:00
9b90f5bcab fix:【V5.16.0】通用弹窗UI优化—客户端(修复引导弹窗组件适配版本号弹窗问题) https://jira.shanqu.cc/browse/GHZS-138 2022-11-21 10:40:34 +08:00
ec4d60b9f3 Merge remote-tracking branch 'origin/dev-5.16.0' into feature-GHZS-78 2022-11-18 16:36:06 +08:00
eac296a6fd fix:修复CloudArchiveFragment页面选择器监听报错问题 2022-11-18 16:32:01 +08:00
99c3f3e735 Merge branch 'feature-GHZS-119' into 'dev-5.16.0'
【V5.16.0】畅玩流程优化—客户端 https://jira.shanqu.cc/browse/GHZS-178

See merge request halo/android/assistant-android!446
2022-11-18 16:00:32 +08:00
67400bb4cc 【V5.16.0】畅玩流程优化—客户端 https://jira.shanqu.cc/browse/GHZS-178 2022-11-18 16:00:31 +08:00
e9f1346035 Merge branch 'feature-GHZS-140' into 'dev-5.16.0'
feat:【V5.16.0】退出登录弹窗UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-140

See merge request halo/android/assistant-android!444
2022-11-18 14:07:33 +08:00
4c40996a95 Merge branch 'feature-GHZS-256' into 'dev-5.16.0'
fix: 【光环助手V5.16.0】首页弹窗数据上报问题 https://jira.shanqu.cc/browse/GHZS-256

See merge request halo/android/assistant-android!445
2022-11-18 13:49:59 +08:00
bdf7c7fcc8 fix: 【光环助手V5.16.0】首页弹窗数据上报问题 https://jira.shanqu.cc/browse/GHZS-256 2022-11-18 13:47:27 +08:00
a51019ea8b feat:【V5.16.0】退出登录弹窗UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-140 2022-11-18 13:38:18 +08:00
319bb3ac2c Merge branch 'feature-GHZS-231' into 'dev-5.16.0'
feat: 【V5.16.0】游戏开服类标签UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-231

See merge request halo/android/assistant-android!443
2022-11-18 12:00:38 +08:00
c675cba035 feat: 【V5.16.0】游戏开服类标签UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-231 2022-11-18 11:45:08 +08:00
7f1a0351a9 Merge branch 'feature-GHZS-138' into 'dev-5.16.0'
feat:【V5.16.0】通用弹窗UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-138

See merge request halo/android/assistant-android!442
2022-11-18 09:57:54 +08:00
e120f22b57 feat:【V5.16.0】通用弹窗UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-138 2022-11-17 18:00:34 +08:00
6d64b26e3d Revert "Merge branch 'fix-remove_duplicated_splitties' into 'dev-5.16.0'"
This reverts merge request !441
2022-11-17 17:11:22 +08:00
7ced550195 Merge branch 'fix-remove_duplicated_splitties' into 'dev-5.16.0'
fix: 移除无用的 splitties 额外依赖(仅使用 DSL 相关对的依赖)

See merge request halo/android/assistant-android!441
2022-11-17 16:09:07 +08:00
ca1b812c30 Merge branch 'feature-issues-90' into 'dev-5.16.0'
refactor: 为 TextView 添加 setDrawable extensions,整理旧代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/90

See merge request halo/android/assistant-android!440
2022-11-17 15:57:30 +08:00
d306fb185c fix: 移除无用的 splitties 额外依赖(仅使用 DSL 相关对的依赖) 2022-11-17 15:25:44 +08:00
4b10019888 Merge branch 'feature-GHZS-136' into 'dev-5.16.0'
feat:【V5.16.0】游戏搜索-搜索榜单的曝光数据修改—客户端 https://jira.shanqu.cc/browse/GHZS-136

See merge request halo/android/assistant-android!439
2022-11-17 12:01:15 +08:00
640dce271c refactor: 为 TextView 添加 setDrawable extensions,整理旧代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/90 2022-11-17 11:55:16 +08:00
b7b4ce8c83 feat:【V5.16.0】游戏搜索-搜索榜单的曝光数据修改—客户端 https://jira.shanqu.cc/browse/GHZS-136 2022-11-17 11:44:53 +08:00
f689ef6228 feat:【V5.16.0】云存档第一期-游戏详情—客户端(剩余下载按钮处理)https://jira.shanqu.cc/browse/GHZS-80 2022-11-16 18:21:59 +08:00
c9911a1a22 Merge branch 'feature-GHZS-135' into 'dev-5.16.0'
feat: 【V5.16.0】猜你喜欢-发现页优化—客户端 https://jira.shanqu.cc/browse/GHZS-135

See merge request halo/android/assistant-android!438
2022-11-16 16:47:13 +08:00
b8fb3327b5 feat: 【V5.16.0】猜你喜欢-发现页优化—客户端 https://jira.shanqu.cc/browse/GHZS-135 2022-11-16 15:02:06 +08:00
259791faf0 feat: 添加简单文件下载的相关类 2022-11-16 10:32:50 +08:00
d20866a045 Merge branch 'feature-GHZS-244' into 'dev-5.16.0'
fix: 【V5.16.0】游戏搜索-搜索榜单的曝光数据不匹配问题 https://jira.shanqu.cc/browse/GHZS-244

See merge request halo/android/assistant-android!437
2022-11-15 16:40:48 +08:00
110de25099 fix: 【V5.16.0】游戏搜索-搜索榜单的曝光数据不匹配问题 https://jira.shanqu.cc/browse/GHZS-244 2022-11-15 16:37:32 +08:00
8e863bb7cc Merge branch 'feature-GHZS-179' into 'dev-5.16.0'
feat: 【V5.16.0】数据埋点补充—客户端 https://jira.shanqu.cc/browse/GHZS-179

See merge request halo/android/assistant-android!436
2022-11-15 15:48:56 +08:00
9cf044ee2e feat: 【V5.16.0】数据埋点补充—客户端 https://jira.shanqu.cc/browse/GHZS-179 2022-11-15 15:28:46 +08:00
04886fb265 Merge branch 'feature-GHZS-142' into 'dev-5.16.0'
feat: 【V5.16.0】视频分享面板UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-142

See merge request halo/android/assistant-android!435
2022-11-15 14:33:15 +08:00
ca26ccbecb feat: 【V5.16.0】视频分享面板UI优化—客户端 https://jira.shanqu.cc/browse/GHZS-142 2022-11-15 14:06:05 +08:00
30268a5cda chore: 版本更新至 5.14.4 2022-11-15 11:13:52 +08:00
5d4f489ddd Merge branch 'release-merge-legacy_release' into 'release'
合并 legacy-release 变更

See merge request halo/android/assistant-android!434
2022-11-15 11:13:03 +08:00
102d285c09 Merge remote-tracking branch 'origin/legacy-release' into release-merge-legacy_release
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt
#	dependencies.gradle
2022-11-15 10:57:41 +08:00
092092fd6f Merge branch 'hotfix-installed_framgent_duplicated_refresh' into 'dev-5.16.0'
fix: 统一安装事件字符串,修复下载管理-已安装列表多余的刷新问题

See merge request halo/android/assistant-android!433
2022-11-14 16:48:11 +08:00
97a54f1000 fix: 统一安装事件字符串,修复下载管理-已安装列表错误的刷新机制 2022-11-14 16:36:11 +08:00
6b0611e05f chore: 版本更新至 5.13.7 2022-11-14 15:29:23 +08:00
d3295f81f6 Merge branch 'feature-GHZS-132' into 'dev-5.16.0'
feat: 【V5.16.0】游戏详情-内容卡片优化—客户端 https://jira.shanqu.cc/browse/GHZS-132

See merge request halo/android/assistant-android!432
2022-11-14 15:27:19 +08:00
384469bcae Merge branch 'feature-GHZS-209' into 'legacy-release'
feat: 还原首次启动时的权限提示弹窗和权限获取 https://jira.shanqu.cc/browse/GHZS-209

See merge request halo/android/assistant-android!431
2022-11-14 15:22:06 +08:00
77a512852b feat: 【V5.16.0】游戏详情-内容卡片优化—客户端 https://jira.shanqu.cc/browse/GHZS-132 2022-11-14 14:46:54 +08:00
0aeb37a5eb feat: 还原首次启动时的权限提示弹窗和权限获取 https://jira.shanqu.cc/browse/GHZS-209 2022-11-14 14:27:10 +08:00
50b5b1d8ac feat: 添加新的下载模块 2022-11-11 17:14:21 +08:00
de08c5dc98 Merge branch 'feature-GHZS-106' into 'dev-5.16.0'
fix: 【光环助手V5.16.0】游戏搜索-历史搜索显示问题 https://jira.shanqu.cc/browse/GHZS-106

See merge request halo/android/assistant-android!430
2022-11-11 14:36:27 +08:00
c2abe5be34 fix: 【光环助手V5.16.0】游戏搜索-历史搜索显示问题 https://jira.shanqu.cc/browse/GHZS-106 2022-11-11 14:21:18 +08:00
1222b4cde4 Merge branch 'feature-GHZS-43' into 'dev-5.16.0'
feat:【V5.16.0】游戏礼包优化(第三期)—客户端 https://jira.shanqu.cc/browse/GHZS-43

See merge request halo/android/assistant-android!429
2022-11-11 11:38:13 +08:00
a3cf98196d feat:【V5.16.0】游戏礼包优化(第三期)—客户端 https://jira.shanqu.cc/browse/GHZS-43 2022-11-11 11:32:31 +08:00
4839ee4aca Merge branch 'feature-GHZS-43' into 'dev-5.16.0'
feat:【V5.16.0】游戏礼包优化(第三期)—客户端 https://jira.shanqu.cc/browse/GHZS-43

See merge request halo/android/assistant-android!428
2022-11-11 11:00:28 +08:00
115dc8ffab feat:【V5.16.0】游戏礼包优化(第三期)—客户端 https://jira.shanqu.cc/browse/GHZS-43 2022-11-10 18:03:51 +08:00
e174c882e6 Merge branch 'feature-GHZS-128' into 'dev-5.16.0'
feat: 【V5.16.0】多版本下载面板-求版本优化—客户端 https://jira.shanqu.cc/browse/GHZS-128

See merge request halo/android/assistant-android!427
2022-11-10 16:17:21 +08:00
546f7fc122 feat: 【V5.16.0】多版本下载面板-求版本优化—客户端 https://jira.shanqu.cc/browse/GHZS-128 2022-11-10 16:00:30 +08:00
900ee8e641 chore:版本更新至 5.13.6 2022-11-10 15:14:16 +08:00
bad1e32fda Merge branch 'feature-GHZS-163' into 'legacy-release'
feat:【光环助手】存储权限授权弹窗埋点补充 https://jira.shanqu.cc/browse/GHZS-163

See merge request halo/android/assistant-android!426
2022-11-10 15:11:40 +08:00
b602960882 feat:【光环助手】存储权限授权弹窗埋点补充 https://jira.shanqu.cc/browse/GHZS-163 2022-11-10 15:05:05 +08:00
6be3798b36 Merge branch 'feature-GHZS-116' into 'dev'
fix:【光环助手V5.15.0同步正式问题】登录闪退 https://jira.shanqu.cc/browse/GHZS-116

See merge request halo/android/assistant-android!424
2022-11-10 12:11:21 +08:00
5cf7ab8159 Merge branch 'dev-fix-vector_crash' into 'dev'
fix: 修复5.0以下系统矢量图的闪退问题

See merge request halo/android/assistant-android!425
2022-11-10 11:00:43 +08:00
1e7c56221a fix: 修复5.0以下系统矢量图的闪退问题 2022-11-10 10:52:09 +08:00
73a473b1c1 Merge branch 'feature-GHZS-16' into 'dev-5.16.0'
feat: 【V5.16.0】启动广告图—客户端 https://jira.shanqu.cc/browse/GHZS-16

See merge request halo/android/assistant-android!420
2022-11-10 10:25:45 +08:00
258ada53af fix: 启动广告图跳转按钮箭头改为用代码设置 2022-11-10 10:21:52 +08:00
128f0e0e82 feat: 【V5.16.0】启动广告图—客户端 https://jira.shanqu.cc/browse/GHZS-16 2022-11-09 18:00:08 +08:00
424efdafcf fix:【光环助手V5.15.0同步正式问题】登录闪退 https://jira.shanqu.cc/browse/GHZS-116 2022-11-09 17:22:59 +08:00
08e90bf923 Merge branch 'dev-5.16.0' into feature-GHZS-16
# Conflicts:
#	app/src/main/java/com/gh/common/constant/Config.java
2022-11-09 16:53:05 +08:00
60c967808d Merge branch 'dev' into 'dev-5.16.0'
合并dev分支的改动

See merge request halo/android/assistant-android!423
2022-11-09 16:43:45 +08:00
44b776a156 Merge branch 'fixes-from-release' into 'dev'
合并 release 分支的改动

See merge request halo/android/assistant-android!422
2022-11-09 16:26:24 +08:00
b17fa55f94 fix: 处理合并冲突 2022-11-09 16:06:23 +08:00
5d1bc4aedd Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/common/constant/Config.java
#	app/src/main/java/com/gh/gamecenter/entity/NewSettingsEntity.kt
#	dependencies.gradle
#	module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt
2022-11-09 15:07:15 +08:00
b5c265e0d6 Merge branch 'feature-module_setting' into 'dev-5.16.0'
refactor: 组件化设置功能 https://git.shanqu.cc/halo/android/assistant-android/-/issues/87

See merge request halo/android/assistant-android!411
2022-11-09 14:35:41 +08:00
5b266c91da refactor: 组件化设置功能 https://git.shanqu.cc/halo/android/assistant-android/-/issues/87 2022-11-09 14:35:41 +08:00
fadd165e68 Merge branch 'hotfix-v5.14.3-633-setting_datas_error' into 'release'
fix: 修改设置接口数据保存错误问题

See merge request halo/android/assistant-android!421
2022-11-09 14:34:50 +08:00
255b6ea141 fix: 修改设置接口数据保存错误问题 2022-11-09 13:46:20 +08:00
7712039804 chore: 版本更新至 5.14.3 2022-11-08 15:15:57 +08:00
fee65172d1 Merge branch 'hotfix-v5.14.2-632-delete_apk_crash' into 'release'
fix: 捕抓清理安装包时的 concurrent 异常

See merge request halo/android/assistant-android!419
2022-11-08 15:13:36 +08:00
89846e04f3 Merge branch 'dev-5.16.0' into feature-GHZS-16 2022-11-08 15:07:00 +08:00
b09f0cde18 fix: 捕抓清理安装包时的 concurrent 异常 2022-11-08 15:04:12 +08:00
0e16aa7dd4 feat: 【V5.16.0】启动广告图—客户端 https://jira.shanqu.cc/browse/GHZS-16 2022-11-08 15:03:10 +08:00
cb355b2490 Merge branch 'hotfix-v5.14.2-632-wrong_dark_mode_setting' into 'release'
fix: 修复错误的深色模式切换开关配置

See merge request halo/android/assistant-android!418
2022-11-08 12:01:27 +08:00
806ceee7e7 Merge branch 'hotfix-v5.14.2-632-super_did_not_called_crash' into 'release'
fix: 修复因为混淆问题导致 onConfigurationChanged 没有调用 super.onConfigurationChanged 而造成的闪退

See merge request halo/android/assistant-android!417
2022-11-08 11:55:35 +08:00
0cc8904852 fix: 修复错误的深色模式切换开关配置 2022-11-08 11:33:33 +08:00
1ffb58feea fix: 修复因为混淆问题导致 onConfigurationChanged 没有调用 super.onConfigurationChanged 而造成的闪退 2022-11-08 11:09:32 +08:00
b0ad6ff8c5 chore: 版本更新至 5.16.0 2022-11-08 10:37:46 +08:00
ccbe6650d1 Merge branch 'feature-GHZS-28' into 'dev-5.16.0'
feat:【V5.16.0】游戏广告管理功能(前端部分)—客户端 https://jira.shanqu.cc/browse/GHZS-28

See merge request halo/android/assistant-android!416
2022-11-08 10:14:18 +08:00
f99b3af9c6 feat:【V5.16.0】游戏广告管理功能(前端部分)—客户端 https://jira.shanqu.cc/browse/GHZS-28 2022-11-08 10:14:18 +08:00
e80c8d76cd Merge branch 'dev-fix-issues2125-gt' into 'dev'
fix:修复模拟器下载流程问题 https://jira.shanqu.cc/browse/GHZS-122

See merge request halo/android/assistant-android!415
2022-11-08 09:26:58 +08:00
f47b0326f4 fix:修复模拟器下载流程问题 https://jira.shanqu.cc/browse/GHZS-122 2022-11-08 09:26:58 +08:00
a5ce8f389c Merge branch 'feature-GHZS-55' into 'dev-5.16.0'
feat:【V5.16.0】游戏搜索-热门榜单功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-55

See merge request halo/android/assistant-android!414
2022-11-08 09:19:55 +08:00
8f5daed7a7 feat:【V5.16.0】游戏搜索-热门榜单功能优化—客户端 https://jira.shanqu.cc/browse/GHZS-55 2022-11-08 09:19:55 +08:00
a1aada02d6 Merge branch 'dev-fix-issues2125-gt' into 'dev'
光环助手V5.15.0同步正式问题】游戏卡片UI问题

See merge request halo/android/assistant-android!413
2022-11-07 16:19:54 +08:00
659469aabc 光环助手V5.15.0同步正式问题】游戏卡片UI问题 2022-11-07 16:19:54 +08:00
9ee743c14f Merge branch 'feature-issues91' into 'dev'
清理冗余无用资源

See merge request halo/android/assistant-android!412
2022-11-03 16:34:17 +08:00
8be8430543 fix: 清理冗余无用资源 #91 2022-11-03 16:32:00 +08:00
de2c0dc0c3 fix: 清理冗余无用资源 https://git.shanqu.cc/halo/android/assistant-android/-/issues/91 2022-11-03 14:03:32 +08:00
e961642cf7 fix: 清理冗余无用资源 https://git.shanqu.cc/halo/android/assistant-android/-/issues/91 2022-11-03 10:51:57 +08:00
fb8bd8b440 Merge branch 'fix-ci-chucker' into 'dev'
ci: 更新含 chucker 的编译脚本

See merge request halo/android/assistant-android!410
2022-11-02 17:29:30 +08:00
ed19677568 ci: 更新含 chucker 的编译脚本 2022-11-02 17:12:48 +08:00
c4cf232d35 fix: 清理冗余无用资源 https://git.shanqu.cc/halo/android/assistant-android/-/issues/91 2022-11-02 16:35:37 +08:00
5fe552ad91 fix:清理无用资源 https://git.shanqu.cc/halo/android/assistant-android/-/issues/91 2022-11-02 16:20:46 +08:00
1db87a4152 Merge branch 'dev-fix-compress_resource' into 'dev'
fix:压缩我的光环背景资源

See merge request halo/android/assistant-android!409
2022-11-02 16:16:33 +08:00
1bd741be9c fix:压缩我的光环背景资源 2022-11-02 15:28:10 +08:00
7570e3e14e Merge branch 'feature-issues89' into 'dev'
refactor: 移除废弃的旧问答相关代码和资源 https://git.shanqu.cc/halo/android/assistant-android/-/issues/89

See merge request halo/android/assistant-android!408
2022-11-02 11:29:04 +08:00
ca009fb1b2 refactor: 移除废弃的旧问答相关代码和资源 https://git.shanqu.cc/halo/android/assistant-android/-/issues/89 2022-11-02 11:29:04 +08:00
872ac7bb85 Merge branch 'feature-issuess81' into 'dev'
feat:数据解析异常以 toast 形式抛出 https://git.shanqu.cc/halo/android/assistant-android/-/issues/81

See merge request halo/android/assistant-android!400
2022-11-02 10:53:42 +08:00
8ce13fd0db feat:数据解析异常以 toast 形式抛出 https://git.shanqu.cc/halo/android/assistant-android/-/issues/81 2022-11-02 10:53:42 +08:00
3ae27ebdb6 chore: 版本更新至 5.14.2 2022-11-01 17:20:30 +08:00
aab422662a Merge branch 'hotfix-v5.14.1-631-onConfigurationChanged' into 'release'
fix: 添加 onConfigurationChanged 日志辅助闪退确定问题

See merge request halo/android/assistant-android!407
2022-11-01 17:19:23 +08:00
bb80862d19 Merge branch 'feature-issues83' into 'dev'
refactor: 整理接口 timestamp 相关的内容 https://git.shanqu.cc/halo/android/assistant-android/-/issues/83

See merge request halo/android/assistant-android!405
2022-11-01 17:09:27 +08:00
02eea04cdc Merge branch 'dev-fix-issues2065' into 'dev'
fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1101测试问题:3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!406
2022-11-01 17:05:21 +08:00
133b3aec96 fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1101测试问题:3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-11-01 17:01:10 +08:00
4b974e3278 refactor: 整理接口 timestamp 相关的内容 https://git.shanqu.cc/halo/android/assistant-android/-/issues/83 2022-11-01 16:33:14 +08:00
8193b9ec9f fix: 添加 onConfigurationChanged 日志辅助闪退确定问题 2022-11-01 16:23:54 +08:00
13929f4dc5 Merge branch 'hotfix-v5.14.1-631-webview_dark_error' into 'release'
fix: 修复web页面开启夜间模式闪退问题

See merge request halo/android/assistant-android!404
2022-11-01 16:18:12 +08:00
0ea0834140 fix: 修复web页面开启夜间模式闪退问题 2022-11-01 16:09:05 +08:00
927e0e2468 Merge branch 'dev-fix-issues2065' into 'dev'
fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031UI测试问题:5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!403
2022-11-01 15:25:23 +08:00
be3d509c9c fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031UI测试问题:5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-11-01 15:20:31 +08:00
40bd4a1adf Merge branch 'dev-fix-issues2065' into 'dev'
fix: 修复猜你喜欢-发现页骨架屏显示异常

See merge request halo/android/assistant-android!402
2022-11-01 11:53:25 +08:00
b6bb3bf794 fix: 修复猜你喜欢-发现页骨架屏显示异常 2022-11-01 11:05:01 +08:00
ef6ef5c584 Merge branch 'dev-fix-issues2065' into 'dev'
fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031UI测试问题3,4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!401
2022-11-01 10:15:24 +08:00
a600a9f0b0 fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031UI测试问题3,4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-11-01 10:12:10 +08:00
31d0ce1302 Merge branch 'feature-issues2065' into 'dev'
fix:【光环助手V5.15.0】新增 猜你喜欢-发现页(1031测试:15(3)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!399
2022-10-31 21:03:38 +08:00
bffa36bc5d fix:【光环助手V5.15.0】新增 猜你喜欢-发现页(1031测试:15(3)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-31 20:49:31 +08:00
716a32a2b5 Merge branch 'feature-issues2065' into 'dev'
fix:【光环助手V5.15.0】新增 猜你喜欢-发现页(1031测试) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!395
2022-10-31 19:56:42 +08:00
70c09648a8 fix: 规范修改 2022-10-31 19:55:44 +08:00
a7cdade878 Merge branch 'dev' into feature-issues2065 2022-10-31 19:38:43 +08:00
b479048a87 fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031测试问题复测:1,2,12) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-31 19:38:05 +08:00
714d975602 Merge branch 'dev_merge_release' into 'dev'
合并 5.14.X 发布分支的问题修复

See merge request halo/android/assistant-android!398
2022-10-31 19:35:51 +08:00
a363090e4e Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/qa/answer/BaseAnswerOrArticleItemViewHolder.kt
#	app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameViewModel.kt
#	dependencies.gradle
2022-10-31 19:24:55 +08:00
f07b37ff01 Merge branch 'fix-user-home-paging' into 'dev'
fix: 修复用户主页的用户历史列表分页问题

See merge request halo/android/assistant-android!396
2022-10-31 19:16:55 +08:00
d0efdccb1d fix: 修复用户主页的用户历史列表分页问题 2022-10-31 19:07:59 +08:00
7efdb5e432 Merge branch 'hotfix-v5.14.1-631-simulator_sync_error' into 'release'
fix: 修复模拟器游戏列表可能出现的服务端为空,本地不为空的问题

See merge request halo/android/assistant-android!393
2022-10-31 18:51:40 +08:00
e5d73e5c73 fix:【光环助手V5.15.0】新增 猜你喜欢-发现页(1031测试:14) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-31 17:23:27 +08:00
e2f5de67a7 Merge branch 'feature-issues2065' into 'dev'
fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031测试:1,2,4,10,12) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!394
2022-10-31 15:57:37 +08:00
c34cacb5d0 fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031测试:1,2,4,10,12) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-31 15:50:22 +08:00
681ba37c4e Merge branch 'hotfix-v5.14.1-631-simulator_sync_error' into 'release'
fix: 修复模拟器游戏列表可能出现的服务端为空,本地不为空的问题

See merge request halo/android/assistant-android!393
2022-10-31 14:23:57 +08:00
d4d71d27ce fix: 修复模拟器游戏列表可能出现的服务端为空,本地不为空的问题 2022-10-31 13:47:10 +08:00
609b2805cc Merge branch 'feature-issues2049' into 'dev'
fix:【光环助手V5.15.0】登录相关优化(埋点事件发生部分变更) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175334

See merge request halo/android/assistant-android!391
2022-10-31 13:37:38 +08:00
987ab1ccc9 Merge branch 'hotfix-v5.14.1-631-clean_apk_crash' into 'release'
修复清理 APK 时因为原图标过大导致的闪退

See merge request halo/android/assistant-android!392
2022-10-31 12:41:56 +08:00
93a77df0dc fix:【光环助手V5.15.0】登录相关优化(埋点事件发生部分变更) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175334 2022-10-31 11:42:01 +08:00
e1c365ffe5 Merge branch 'dev-fix-issues2132-lyr' into 'dev'
fix:【光环助手V5.15.0】前端优化汇总10月第3周(8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2132

See merge request halo/android/assistant-android!389
2022-10-31 11:41:50 +08:00
8863b02c7a fix: 修复安装包清理遇到原始图标过大而造成的闪退问题 2022-10-31 11:41:02 +08:00
89b97d274b Merge branch 'feature-issues2065' into 'dev'
fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031UI测试问题1,2)

See merge request halo/android/assistant-android!390
2022-10-31 11:34:41 +08:00
bbe3f9c741 fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1031UI测试问题1,2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-31 11:28:22 +08:00
e7d0c15a0a fix:【光环助手V5.15.0】前端优化汇总10月第3周(8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2132 2022-10-31 10:38:31 +08:00
ddfb474624 Merge branch 'feature-issues2065' into 'dev'
fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1028测试) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!388
2022-10-31 10:18:02 +08:00
b15b8c1237 fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1028测试) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-31 10:11:58 +08:00
0af8660b14 Merge branch 'feature-issues2065' into 'dev'
fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1028测试:5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!387
2022-10-28 17:53:14 +08:00
4ea2f8d5af fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(1028测试:5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-28 17:49:28 +08:00
66c727c874 Merge branch 'dev-fix-issues2125-gt' into 'dev'
fix:去除模拟器游戏合集TextView的默认内边距

See merge request halo/android/assistant-android!386
2022-10-28 16:53:02 +08:00
619abb9805 fix:去除模拟器游戏合集TextView的默认内边距 2022-10-28 16:53:02 +08:00
a94bb4dcb5 fix: 修复模拟器运行即闪退的问题 2022-10-28 16:22:29 +08:00
195d9343eb chore: 版本更新至 5.14.1 2022-10-28 15:45:09 +08:00
5a847970b2 Merge branch 'dev-fix-issues2125-gt' into 'dev'
fix:修复模拟器下载流程20221027测试反馈  https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2125

See merge request halo/android/assistant-android!385
2022-10-28 15:43:29 +08:00
ccd70b6087 fix:修复模拟器下载流程20221027测试反馈 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2125 2022-10-28 15:43:29 +08:00
bd9fea1551 Merge branch 'dev-fix-issues2114-zyj' into 'dev'
fix: 【光环助手V5.15.0】前端优化汇总10月第1周(1025测试:第2点(2))

See merge request halo/android/assistant-android!384
2022-10-28 15:07:09 +08:00
f8c7bf5f64 Merge branch 'dev' into dev-fix-issues2114-zyj 2022-10-28 15:02:53 +08:00
7b71adc3fa Merge branch 'dev-fix-issues2132-yzw' into 'dev'
fix:【光环助手V5.15.0】前端优化汇总10月第3周(7)(修改分隔线实现方式)

See merge request halo/android/assistant-android!383
2022-10-28 14:56:31 +08:00
1882707e56 fix:【光环助手V5.15.0】前端优化汇总10月第3周(7)(修改分隔线实现方式) 2022-10-28 14:56:31 +08:00
49cafeb8bd fix: 【光环助手V5.15.0】前端优化汇总10月第1周(1025测试:第2点(2)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-28 14:52:31 +08:00
072cf65af4 Merge branch 'fix-emulator_crash' into 'dev'
fix: 修复模拟器运行即闪退的问题

See merge request halo/android/assistant-android!381
2022-10-28 11:41:17 +08:00
2f7277e410 fix: 修复模拟器运行即闪退的问题 2022-10-28 11:11:36 +08:00
f10a88a5a4 Merge branch 'feature-issues2049' into 'dev'
fix:【光环助手V5.15.0】前端优化汇总10月第2周(1024UI测试问题-第6点补充问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175728

See merge request halo/android/assistant-android!380
2022-10-28 11:00:13 +08:00
45b5030ab5 fix:【光环助手V5.15.0】前端优化汇总10月第2周(1024UI测试问题-第6点补充问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175728 2022-10-28 10:59:08 +08:00
fa35d98d5b Merge branch 'feature-issues2049' into 'dev'
fix:【光环助手V5.15.0】前端优化汇总10月第2周(1024UI测试问题-遗留第6点) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2121#note_175635

See merge request halo/android/assistant-android!379
2022-10-28 10:29:51 +08:00
d4e79a7b47 fix:【光环助手V5.15.0】前端优化汇总10月第2周(1024UI测试问题-遗留第6点) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2121#note_175635 2022-10-28 10:28:59 +08:00
d9fb9bcc2f Merge branch 'feature-issues2121' into 'dev'
fix:【光环助手V5.15.0】前端优化汇总10月第2周(发布手机埋点统一添加前缀publish_) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2121#note_175635

See merge request halo/android/assistant-android!377
2022-10-28 09:37:19 +08:00
13f7ca9f7d Merge branch 'dev-fix-issues2114-zyj' into 'dev'
fix: 【光环助手V5.15.0】前端优化汇总10月第1周(1025测试:第2点(1)(2))...

See merge request halo/android/assistant-android!378
2022-10-28 09:17:17 +08:00
cabe3055cb Merge branch 'dev' into dev-fix-issues2114-zyj 2022-10-27 20:46:38 +08:00
64e45521a6 fix: 【光环助手V5.15.0】前端优化汇总10月第1周(1025测试:第2点(1)(2)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-27 20:44:43 +08:00
b6d035f3a9 fix:【光环助手V5.15.0】前端优化汇总10月第2周(发布手机埋点统一添加前缀publish_) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2121#note_175635 2022-10-27 17:55:14 +08:00
313ed74939 Merge branch 'feature-issues2049' into 'dev'
fix:【光环助手V5.15.0】登录相关优化(1027UI测试问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175516

See merge request halo/android/assistant-android!376
2022-10-27 17:49:54 +08:00
c79e5edc7a fix:【光环助手V5.15.0】登录相关优化(1027UI测试问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175516 2022-10-27 17:47:44 +08:00
b4ccdcb8fa Merge branch 'feature-update_chucker' into 'dev'
build: 将 chucker 依赖从 jitpack 搬回自有 nexus

See merge request halo/android/assistant-android!375
2022-10-27 17:45:17 +08:00
1ed50c2626 build: 将 chucker 依赖从 jitpack 搬回自有 nexus 2022-10-27 17:35:22 +08:00
7ad6395bab Merge branch 'feature-issues2065' into 'dev'
feat: 【光环助手V5.15.0】新增 猜你喜欢-发现页 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065

See merge request halo/android/assistant-android!374
2022-10-27 17:04:43 +08:00
28d2a9442c fix: 规范修改 2022-10-27 16:38:15 +08:00
997bfdf93d Merge branch 'hotfix-v5.14.0-630-vector_crash' into 'release'
fix:修复5.0以下系统部分矢量图加载出错导致无法显示的问题

See merge request halo/android/assistant-android!373
2022-10-27 15:34:53 +08:00
8eceb571ca Merge branch 'dev' into feature-issues2065
# Conflicts:
#	app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt
2022-10-27 15:27:02 +08:00
68f8619d09 feat: 【光环助手V5.15.0】新增 猜你喜欢-发现页(数据埋点) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-27 15:06:30 +08:00
de712065f5 Merge branch 'hotfix-v5.14.0-630-soft_keyboard' into 'release'
fix: 修复评论页面发表评论内容跳转登录页面返回时软键盘消失的问题

See merge request halo/android/assistant-android!372
2022-10-27 14:56:33 +08:00
511449c709 fix:修复5.0以下系统部分矢量图加载出错导致无法显示的问题 2022-10-27 14:50:24 +08:00
e79d5d1dfb Merge branch 'feature-issues2125' into 'dev'
feat: 模拟器下载流程调整 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2125

See merge request halo/android/assistant-android!368
2022-10-27 14:40:07 +08:00
da8717693d feat: 模拟器下载流程调整 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2125 2022-10-27 14:40:06 +08:00
03095b682b fix: 修复评论页面发表评论内容跳转登录页面返回时软键盘消失的问题 2022-10-27 14:32:48 +08:00
ea51827ed6 Merge branch 'feature-issues2049' into 'dev'
feat:【光环助手V5.15.0】登录相关优化(20221025需求补充) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175003

See merge request halo/android/assistant-android!371
2022-10-27 11:39:40 +08:00
ff4a78ae93 feat:【光环助手V5.15.0】登录相关优化(20221025需求补充) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_175003 2022-10-27 11:39:40 +08:00
8437bfe1e3 Merge branch 'hotfix-v5.14.0-630-soft_keyboard' into 'release'
fix: 修复评论页面发表评论内容跳转登录页面返回时软键盘消失的问题

See merge request halo/android/assistant-android!369
2022-10-27 11:34:54 +08:00
19ff2a1fb7 Merge branch 'feature-issues2132' into 'dev'
fix:【光环助手V5.15.0】前端优化汇总10月第3周(7) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2132

See merge request halo/android/assistant-android!370
2022-10-27 11:11:22 +08:00
2efd0e8bc9 fix:【光环助手V5.15.0】前端优化汇总10月第3周(7) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2132 2022-10-27 11:11:22 +08:00
a169ce1989 fix: 修复评论页面发表评论内容跳转登录页面返回时软键盘消失的问题 2022-10-27 10:48:14 +08:00
6dca8cf33c !format: 全局格式化代码 2022-10-26 18:16:47 +08:00
c327fcaf99 fix: 【光环助手V5.15.0】新增 猜你喜欢-发现页(UI优化) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-26 17:05:51 +08:00
322774fc78 fix:【光环助手V5.15.0】登录相关优化(1024UI测试问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_174815 2022-10-26 16:59:25 +08:00
8128aa603c fix:【光环助手V5.15.0】前端优化汇总10月第1周(1026UI测试问题 正文第7点) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114#note_175286 2022-10-26 16:36:05 +08:00
b05fb22e42 fix: 【光环助手V5.15.0】前端优化汇总10月第1周(1026UI测试问题第1点(1-3)、第10点(1)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-26 16:00:40 +08:00
2ab9b175e9 fix: 【光环助手V5.15.0】前端优化汇总10月第1周(1026UI测试问题第1点(1-3)、第10点(1)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-26 15:51:39 +08:00
b032f054f9 feat: 【光环助手V5.15.0】新增 猜你喜欢-发现页(完成UI、接口对接) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2065 2022-10-26 12:06:00 +08:00
f37b3a9729 feat:【光环助手V5.15.0】登录相关优化(优化代码) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-26 09:52:10 +08:00
1e9f17bba5 feat: 【光环助手V5.15.0】前端优化汇总10月第1周(11) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-25 17:25:26 +08:00
9690429e95 Merge branch 'hotfix-v5.14.0-630-banned_vote_error' into 'release'
【光环助手V5.15.0】违规整合-正式环境运营验收问题(19) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2129

See merge request halo/android/assistant-android!367
2022-10-25 16:58:08 +08:00
f95365c6ba fix:【光环助手V5.15.0】个人主页新增显示用户ID(1025测试) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2069#note_174911 2022-10-25 16:20:31 +08:00
97022f19f6 Merge remote-tracking branch 'origin/release' into dev 2022-10-25 16:08:15 +08:00
9f60dd7c55 Merge branch 'hotfix-v5.14.0-630-dark_mode_fixes' into 'release'
fix: 修复在原生系统上部分 UI 组件不能响应深色模式状态变更的问题

See merge request halo/android/assistant-android!366
2022-10-25 16:07:29 +08:00
0124fa4d8e fix: 修复在原生系统上部分 UI 组件不能响应深色模式状态变更的问题 2022-10-25 16:06:02 +08:00
b1dff15234 fix: 【光环助手V5.15.0】违规整合-正式环境运营验收问题(19) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2129 2022-10-25 15:45:48 +08:00
e3eef66884 refactor: 移除废弃的旧问答相关代码和资源 https://git.shanqu.cc/halo/android/assistant-android/-/issues/89 2022-10-25 14:48:07 +08:00
56395bc6fa feat:【光环助手V5.15.0】数据后台-新增活动相关数据统计展示 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2053 2022-10-25 14:46:19 +08:00
7f2fd57d43 feat:【光环助手V5.15.0】数据后台-新增活动相关数据统计展示 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2053 2022-10-25 14:40:08 +08:00
fb6d96e79d feat: 下载请求添加 referer https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2134 2022-10-25 11:34:55 +08:00
369edbe04e fit:【光环助手V5.15.0】前端优化汇总10月第2周(4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2121 2022-10-25 11:09:07 +08:00
2a56165424 Merge branch 'hotfix-v5.14.0-630-update' into 'release'
fix: 修复更新弹窗进度失效的问题

See merge request halo/android/assistant-android!365
2022-10-25 10:24:08 +08:00
48b8c46cdf fix: 修复更新弹窗进度失效的问题 2022-10-25 10:22:17 +08:00
6b33a0a2ff feat:【光环助手V5.15.0】前端优化汇总10月第2周(1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2121 2022-10-24 18:33:44 +08:00
b38d90b107 feat:【光环助手V5.15.0】登录相关优化(更换压缩图片) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-24 17:28:58 +08:00
896f43246b feat:【光环助手V5.15.0】登录相关优化(处理一键登录图片资源找不到问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-24 17:06:15 +08:00
b5e3d3a03e Merge branch 'hotfix-v5.14.0-630-dark_mode' into 'release'
fix: 修复正式包暗色模式被禁用的问题

See merge request halo/android/assistant-android!364
2022-10-24 16:29:56 +08:00
65fc3e6304 fix: 修复正式包暗色模式被禁用的问题 2022-10-24 16:19:34 +08:00
3f895d2cc3 feat:【光环助手V5.15.0】登录相关优化(处理点击登录闪退问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_174795 2022-10-24 16:00:53 +08:00
58cebe900e feat:【光环助手V5.15.0】登录相关优化(更新一键登录混淆规则) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-24 15:26:06 +08:00
ecf003bd84 feat:【光环助手V5.15.0】登录相关优化(移除邀请码) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049#note_174795 2022-10-24 15:02:55 +08:00
7c2dae7125 feat:【光环助手V5.15.0】登录相关优化(更换压缩后的图) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-24 11:50:42 +08:00
8451a776dd Revert "ci: 升级 didi booster"
This reverts commit 5e9dc881d5.
2022-10-24 10:45:50 +08:00
2cb91a7917 feat:【光环助手V5.15.0】登录相关优化(处理逻辑问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-23 20:20:52 +08:00
4d9b53420f feat:【光环助手V5.15.0】登录相关优化(处理夜间模式UI) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-23 19:48:17 +08:00
82300e4b4e feat:【光环助手V5.15.0】登录相关优化 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2049 2022-10-21 18:41:15 +08:00
5e9dc881d5 ci: 升级 didi booster 2022-10-21 17:55:52 +08:00
1a1ed4a159 Merge remote-tracking branch 'origin/dev-5.15.0' into dev-5.15.0 2022-10-21 17:40:34 +08:00
b9d6dfc83a !refactor: 删除废弃的论坛选择页面代码 2022-10-21 17:39:50 +08:00
fbc1ccf886 Revert "build: 修改 buildSrc AGP版本为7.2.2"
This reverts commit 28d983dc00.
2022-10-21 17:17:50 +08:00
f33b699723 !refactor: 完全解耦光能模块,默认不添加到依赖中,移除旧版我的光环页面代码,清理无用资源 2022-10-21 16:58:20 +08:00
a970db9ca1 ci: 邮件包恢复使用 AndResguard 2022-10-21 11:02:19 +08:00
28d983dc00 build: 修改 buildSrc AGP版本为7.2.2 2022-10-20 18:19:23 +08:00
24193a6456 fix:清除gid修改 2022-10-20 17:28:10 +08:00
bb264496cc feat:在debug下 设置-》清除缓存处添加一个清除gid 2022-10-20 17:16:54 +08:00
11b75a9c52 Merge branch 'dev' into dev-5.15.0 2022-10-20 16:36:39 +08:00
eebc531707 Merge remote-tracking branch 'origin/release' into dev 2022-10-20 16:34:19 +08:00
5f5dc8e50f Merge branch 'hotfix-v5.13.5-615-activity_finish_error' into 'release'
fix: 修复设置中设置不保留 activity 时,返回单个 activity 会造成整个应用退出的问题

See merge request halo/android/assistant-android!363
2022-10-20 16:33:51 +08:00
017188a409 fix: 修复设置中设置不保留 activity 时,返回单个 activity 会造成整个应用退出的问题 2022-10-20 16:32:35 +08:00
f23ac762e2 fix: 修改板块通用链接标题间距错误问题 2022-10-20 11:38:38 +08:00
829991571e feat:【光环助手V5.15.0】前端优化汇总10月第1周(3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-19 16:52:04 +08:00
af01bd6990 Merge branch 'hotfix-v5.12.8-598-game_detail_subtitle' into 'release'
fix: 修复游戏详情副标题出现的闪退问题

See merge request halo/android/assistant-android!362
2022-10-19 14:58:21 +08:00
1150be4f52 fix: 修复游戏详情副标题出现的闪退问题 2022-10-19 14:41:12 +08:00
c685df4fd7 Merge branch 'hotfix-v5.13.5-615-content_provider_crash' into 'release'
fix: 捕抓实名认证 ContentProvider 闪退并上报至 Sentry

See merge request halo/android/assistant-android!360
2022-10-19 14:08:12 +08:00
f8d372207e fix: 捕抓实名认证 ContentProvider 闪退并上报至 Sentry 2022-10-19 14:07:17 +08:00
83358fab7d Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-10-19 12:01:47 +08:00
6ac1465329 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-10-19 11:58:40 +08:00
596b5603cf chore: 版本更新至 5.13.5 2022-10-18 17:43:15 +08:00
e0cd733d63 fix: 修复畅玩下载的问题 2022-10-18 17:42:03 +08:00
1d53a12082 fix:【光环助手V5.15.0】前端优化汇总10月第2周(2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2121 2022-10-18 13:53:34 +08:00
7f12dc09a0 chore: 版本更新至 5.13.4 2022-10-18 10:50:02 +08:00
7254db3c0e Merge branch 'hotfix-v5.13.3-613-notification_crash' into 'release'
fix: 修复 Android 10 以上设备应用处于后台时点击任务栏无法安装游戏的问题,修复下载完成时通知栏通知更新偶发的闪退问题

See merge request halo/android/assistant-android!359
2022-10-18 10:36:25 +08:00
5de5d07bca fix: 修复 Android 10 以上设备应用处于后台时点击任务栏无法安装游戏的问题,修复下载完成时通知栏通知更新偶发的闪退问题 2022-10-18 09:58:12 +08:00
3442602ff8 Merge branch 'hotfix-v5.13.3-613-web_crash' into 'release'
修改加载web页面闪退问题

See merge request halo/android/assistant-android!358
2022-10-17 18:00:01 +08:00
a57e4caa22 fix: 修改加载web页面闪退问题 2022-10-17 17:55:51 +08:00
05006d91b5 Merge branch 'hotfix-5.13.3-613_home_index_out_of_bounds' into 'release'
修改首页数组越界问题

See merge request halo/android/assistant-android!357
2022-10-17 17:20:44 +08:00
cfd67f3160 fix: 修改首页数组越界问题 2022-10-17 16:54:37 +08:00
a66c6daa82 ci: jenkins 编译脚本不再指定 submodule 分支 2022-10-17 14:22:23 +08:00
73818acb9f Merge branch 'feature-issues86' into 'dev-5.15.0'
新增本地 mock 接口返回数据

See merge request halo/android/assistant-android!353
2022-10-17 13:56:46 +08:00
ebbbc618b9 新增本地 mock 接口返回数据 2022-10-17 13:56:46 +08:00
5a560869d3 feat: 【光环助手V5.15.0】前端优化汇总10月第1周(1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-17 11:25:39 +08:00
81c3381d94 Merge remote-tracking branch 'origin/dev' into dev-5.15.0 2022-10-17 09:41:55 +08:00
f0b7cdda32 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-10-17 09:39:14 +08:00
72c5c844fc Merge remote-tracking branch 'origin/legacy-release' into release 2022-10-14 17:04:19 +08:00
e405be9deb fix: 获取下载目录添加存储权限检测 2022-10-14 17:02:31 +08:00
752f79ad65 fix: 版本更新至 5.13.3 2022-10-14 14:59:26 +08:00
e377a52e74 Merge remote-tracking branch 'origin/legacy-release' into release 2022-10-14 14:54:50 +08:00
91c343a02b Merge branch 'hotfix-v5.12.8-598-update' into 'legacy-release'
fix: 修复因为没有授予存储权限导致应用内更新失效的问题

See merge request halo/android/assistant-android!356
2022-10-14 14:53:18 +08:00
1fbc834597 fix: 修复因为没有授予存储权限导致应用内更新失效的问题 2022-10-14 14:50:51 +08:00
9251ade73c fix: 修复部分 tab 的文字没有跟随深色模式变更的问题 2022-10-13 17:20:25 +08:00
d759ec2d66 Merge branch 'feature-upgrade_dependencies' into dev-5.15.0 2022-10-13 16:25:10 +08:00
22053f5c7f refactor: 【光环助手V5.15.0】详细信息板块相关调整(删除无用条件判断) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2048 2022-10-13 16:18:07 +08:00
ab968673e1 feat: 【光环助手V5.15.0】详细信息板块相关调整 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2048 2022-10-13 16:09:05 +08:00
bec06b63c7 fix: 修复系统切换浅色/深色模式时的闪退问题 2022-10-13 15:06:06 +08:00
8efe5ec460 Merge remote-tracking branch 'origin/dev' into dev-5.15.0 2022-10-13 14:06:23 +08:00
025e72101f fix: 【光环助手V5.15.0】前端优化汇总10月第1周(17,18) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-13 14:01:55 +08:00
bd1887baad Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-10-13 14:01:13 +08:00
082e9b376a Merge remote-tracking branch 'origin/legacy-release' into release 2022-10-13 14:00:23 +08:00
5014eda3f2 Merge branch 'hotfix-v5.12.8-598_block_navigation_not_display' into 'legacy-release'
修复板块导航栏不显示问题

See merge request halo/android/assistant-android!355
2022-10-13 13:46:53 +08:00
1b4852ae0c fix: 修复板块导航栏不显示问题 2022-10-13 12:13:01 +08:00
52a23f5bde Merge branch 'hotfix-v5.13.1-611-check_webview_is_available' into 'release'
修改模拟器不能显示网页的问题

See merge request halo/android/assistant-android!354
2022-10-13 11:48:03 +08:00
baae314d85 fix: 修改模拟器不能显示网页的问题 2022-10-13 11:34:32 +08:00
85372416c0 fix: 【光环助手V5.15.0】前端优化汇总10月第1周(17,18) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-13 10:41:59 +08:00
6d8908fe57 fix: 修复游戏详情页暗色模式切换时的闪退 2022-10-13 09:48:16 +08:00
4d0d9c0b48 fix: 修复切换暗色模式时有机率卡死的问题 2022-10-12 17:58:14 +08:00
a68782203b fix:【光环助手V5.15.0】前端优化汇总10月第1周(7、8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-12 17:47:08 +08:00
2fcfaf2ccd feat: 【光环助手V5.15.0】前端优化汇总10月第1周(10) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-12 16:14:41 +08:00
d58a6df56a Merge branch 'dev-5.15.0' of git.shanqu.cc:halo/android/assistant-android into dev-5.15.0 2022-10-12 15:49:44 +08:00
2f8a783565 feat: 【光环助手V5.15.0】前端优化汇总10月第1周(2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-12 15:49:38 +08:00
9234a2f4ee fix: 修复判断是否使用浏览器安装偶发的闪退 2022-10-12 14:52:42 +08:00
662dd88be7 feat: 【光环助手V5.15.0】前端优化汇总10月第1周(11) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-12 14:28:58 +08:00
ba64292b76 fix: 修复判断是否使用浏览器安装偶发的闪退 2022-10-12 14:09:01 +08:00
6fd43dd61b chore: 版本更新至 5.13.2 2022-10-12 13:52:24 +08:00
4ce7eee8eb feat: 【光环助手V5.15.0】前端优化汇总10月第1周(10) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-12 11:44:02 +08:00
e3c2711b64 Merge remote-tracking branch 'origin/dev' into dev-5.15.0
# Conflicts:
#	dependencies.gradle
2022-10-12 11:34:51 +08:00
e00df4a066 fix: 【光环助手V5.15.0】前端优化汇总10月第1周(16) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-12 11:33:38 +08:00
9764c2ce1a fix: 修复双列卡片专题跳转游戏详情无法下载游戏的问题 2022-10-12 11:14:19 +08:00
f588c2d981 Merge remote-tracking branch 'origin/release' into dev 2022-10-12 11:07:44 +08:00
e5dad8a8ce Merge remote-tracking branch 'origin/legacy-release' into release 2022-10-12 11:01:07 +08:00
3818160a5e Merge branch 'hotfix-v5.12.7-597-double_card_list_gamedetail' into 'legacy-release'
fix: 修复双列专题跳转游戏详情无法下载的问题

See merge request halo/android/assistant-android!352
2022-10-12 10:52:00 +08:00
2367a0bf8a fix: 修复双列专题跳转游戏详情无法下载的问题 2022-10-12 10:51:00 +08:00
b2e728331a fix: 修复设置页面一键修复按钮可能错误显示的问题 2022-10-12 10:04:58 +08:00
7af3233152 chore: 版本更新至 5.15.0 2022-10-11 17:36:28 +08:00
243ad6afb1 fix: 处理合并异常 2022-10-11 17:28:29 +08:00
0c3a063d86 fix: 修复暗色模式启动时的判断异常问题 2022-10-11 17:28:10 +08:00
558aa9a09e fix:【光环助手V5.15.0】前端优化汇总10月第1周(4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-11 16:34:05 +08:00
33c9a2e90b Merge branch 'feature-issues2114' into 'dev-5.15.0'
fix:前端优化汇总10月第1周第五点 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114

See merge request halo/android/assistant-android!351
2022-10-11 16:28:57 +08:00
e618a0d5fd Merge branch 'hotfix-v5.12.7-597-certification' into 'legacy-release'
fix: 修复获取存储权限后 gid 并未同时更新的问题

See merge request halo/android/assistant-android!350
2022-10-11 15:39:28 +08:00
ccc97a93da fix: 修复获取存储权限后 gid 并未同时更新的问题 2022-10-11 15:38:27 +08:00
3e16f59dc5 build: 分拆主 app proguard 配置文件到各子 module 的 proguard 配置文件中 https://git.shanqu.cc/halo/android/assistant-android/-/issues/84 2022-10-11 15:09:04 +08:00
c9993de3ca Merge branch 'hotfix-v5.12.7-597-read_installed_list_permission' into 'legacy-release'
feat: 【光环助手V5.15.0】前端优化汇总10月第1周(14, 15)

See merge request halo/android/assistant-android!349
2022-10-11 14:56:00 +08:00
e3c140e5fd feat: 【光环助手V5.15.0】前端优化汇总10月第1周(14, 15) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114#note_172887 2022-10-11 14:54:32 +08:00
b2f6d111a7 fix:前端优化汇总10月第1周第五点 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-11 11:11:04 +08:00
ea03e7a73f fix: 修复部分 span 文字在深色模式启用时显示异常的问题 2022-10-11 11:06:38 +08:00
c08f268b04 feat: 【光环助手V5.14.0】关于夜间模式的特殊处理 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2106 2022-10-10 17:24:54 +08:00
f6423cb7ff feat:【光环助手V5.15.0】个人主页新增显示用户ID(1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2069 2022-10-10 16:56:16 +08:00
89f00d7412 feat: 【光环助手V5.15.0】前端优化汇总10月第1周(9) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2114 2022-10-10 16:50:33 +08:00
68061d96ed refactor!: 移除 flutter 相关代码 2022-10-10 14:51:05 +08:00
388c11b173 Merge remote-tracking branch 'origin/release' into dev 2022-10-10 11:16:26 +08:00
ced7202d04 Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	module_login/src/main/java/com/gh/gamecenter/login/utils/LoginHelper.kt
2022-10-10 11:11:32 +08:00
07c7d37d3d Merge branch 'hotfix-v5.12.7-597-qq_sdk' into 'legacy-release'
fix: 修复升级 QQ SDK 后无法使用的问题

See merge request halo/android/assistant-android!348
2022-10-10 11:09:02 +08:00
030c10c6cc fix: 修复升级 QQ SDK 后无法使用的问题 2022-10-10 11:06:52 +08:00
16162a6944 build: 升级编译环境 https://git.shanqu.cc/halo/android/assistant-android/-/issues/85 2022-10-10 10:55:20 +08:00
5b9879e8a0 fix: typo 2022-10-10 09:26:48 +08:00
99446c7b74 fix: 处理合并冲突 2022-10-09 17:46:42 +08:00
077b865b81 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java
#	app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt
#	app/src/main/java/com/halo/assistant/HaloApp.java
#	dependencies.gradle
2022-10-09 17:36:11 +08:00
e1a95a241a fix: 处理合并冲突 2022-10-09 17:31:08 +08:00
50e15fa79a Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	app/src/main/java/com/halo/assistant/HaloApp.java
#	module_login/src/main/java/com/gh/gamecenter/login/utils/LoginHelper.kt
2022-10-09 17:20:32 +08:00
933c3c4fce Merge branch 'hotfix-v5.12.7-597-privacy-policy' into 'legacy-release'
处理部分隐私相关问题

See merge request halo/android/assistant-android!347
2022-10-09 16:45:33 +08:00
2a79c9cddd fix: 禁用 WorkManager ,减少非必要权限 2022-10-09 16:43:26 +08:00
7d6fb3e815 fix: 处理 SonarQube 问题 2022-10-09 16:29:48 +08:00
1c95a6b968 fix: 修复初次启动时会多次获取已安装列表的问题 2022-10-09 11:29:55 +08:00
23c7a741cc fix: 处理 gson 序列化问题 2022-10-09 10:05:43 +08:00
46bdc4e4f7 Merge branch 'hotfix-v5.12.7-597-privacy_policy' into 'legacy-release'
处理部分隐私相关问题

See merge request halo/android/assistant-android!346
2022-10-08 17:23:56 +08:00
f41836615d fix: 停用一键登录提前初始化功能 2022-10-08 17:17:04 +08:00
d883b29cde fix: 移除下载前临时创建文件的测试代码 2022-10-08 17:06:03 +08:00
d36055276d fix: 移除普通日志中的 rom 检查上报,移除模拟器检测 2022-10-08 17:04:18 +08:00
e0c1d8169d fix: 更新 gid/sentry 依赖 2022-10-08 17:03:02 +08:00
c18945113c fix: 更新 QQ 登录 SDK 2022-10-08 17:02:13 +08:00
6ec3d21994 fix: 修复资讯中心评论详情页面不兼容深色模式的问题 2022-10-08 14:47:27 +08:00
add6b2bc5e Merge branch 'hotfix-v5.13.1-611-vector_crash' into 'release'
fix: 修复5.0以下系统出现的矢量图闪退问题

See merge request halo/android/assistant-android!345
2022-10-08 14:37:10 +08:00
936c793ddf fix: 修复5.0以下系统出现的矢量图闪退问题 2022-10-08 14:32:48 +08:00
bb08a845fc fix: 修复视频播放设置选择图标错误显示的问题 2022-10-08 14:03:05 +08:00
a36c2085ef Merge branch 'hotfix-5.12.7-597-vector_crash' into 'legacy-release'
fix: 修复5.0以下系统出现的矢量图闪退问题

See merge request halo/android/assistant-android!344
2022-10-08 13:39:30 +08:00
d7e0de88d7 fix: 修复5.0以下系统出现的矢量图闪退问题 2022-10-08 11:59:17 +08:00
931213dc82 Merge branch 'pack-v5.12.X-privacy_policy' into 'legacy-release'
调整用户隐私相关内容

See merge request halo/android/assistant-android!343
2022-10-08 10:44:19 +08:00
11c7959b38 fix: 处理 SonarQube 问题 2022-09-30 16:25:31 +08:00
4989debca5 fix: 修复我的光环活动位轮播垂直滑动时用户信息区域无法伸缩的问题 2022-09-30 16:04:42 +08:00
082a5fbff8 fix:【光环助手V5.14.0】发布内容需手机号验证(UI测试问题 2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2054#note_171946 2022-09-30 10:00:47 +08:00
396bfbf52d fix: 处理 SonarQube 问题 2022-09-29 17:45:01 +08:00
c4ad84d0c6 fix: 处理 SonarQube 问题 2022-09-29 17:29:53 +08:00
b2dc318257 chore: 版本更新至 5.13.1 2022-09-29 17:04:24 +08:00
d28595afdd fix: 处理合并冲突 2022-09-29 17:04:04 +08:00
c2cd7b6f8a Merge remote-tracking branch 'origin/pack-v5.12.X-privacy_policy' into release
# Conflicts:
#	app/src/main/java/com/gh/common/util/DirectUtils.kt
#	app/src/main/java/com/gh/gamecenter/SkipActivity.java
#	app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt
#	dependencies.gradle
#	module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt
#	module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java
2022-09-29 16:55:26 +08:00
da997ad544 fix:【光环助手V5.14.0】前端优化汇总9月第4周(31) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-29 16:16:07 +08:00
f374f105ce fix:【光环助手V5.14.0】前端优化汇总9月第4周(31-32) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-29 16:01:57 +08:00
48459c84e1 fix: 隐私弹窗链接跳转至外部浏览器打开 2022-09-29 15:17:39 +08:00
8f72f80788 fix: 避免隐私政策通过前获取 rom 信息 2022-09-29 14:57:48 +08:00
fef66248ea fix: 处理 SonarQube 问题 2022-09-29 14:21:54 +08:00
d3e499696f fix: 处理 SonarQube 问题 2022-09-29 13:52:55 +08:00
4631d4daeb Merge remote-tracking branch 'origin/dev' into dev 2022-09-29 11:53:12 +08:00
9bdf69e9a6 fix:暂时取消个人主页显示用户ID(需求已改到下个版本) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2069 2022-09-29 11:52:56 +08:00
861b8312e1 Merge remote-tracking branch 'origin/dev' into dev 2022-09-29 11:49:13 +08:00
c4763ea342 fix:修复WebView首次加载重置深色模式的问题 2022-09-29 11:46:50 +08:00
ff0dcfd7e1 fix: 测试包添加 ANR 上报 2022-09-29 11:39:41 +08:00
6c558a1a17 fix: 更新 ci 脚本 2022-09-29 11:27:04 +08:00
e0870b875f Merge remote-tracking branch 'origin/dev-5.14.0' into dev 2022-09-29 11:10:12 +08:00
dae502bf55 Merge remote-tracking branch 'origin/release' into dev 2022-09-29 10:56:55 +08:00
7e26003698 fix:【光环助手V5.14.0】前端优化汇总9月第4周(30) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-29 10:35:41 +08:00
7a5e27cffa fix:【光环助手V5.14.0】游戏评分相关优化(0928测试 2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063#note_172175 2022-09-28 21:47:21 +08:00
0711d72f6d fix:视频tab-视频流-评论面板缺省页修改 2022-09-28 21:45:19 +08:00
07331efffb fix:【光环助手V5.14.0】游戏评分相关优化(0928测试 17) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063#note_171941 2022-09-28 21:19:54 +08:00
585acb9bae fix:【光环助手V5.14.0】前端优化汇总9月第4周(26-27) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-28 21:10:52 +08:00
13e9ba4f48 fix: 移除 android.permission.GET_TASKS 权限 2022-09-28 21:00:03 +08:00
9434d7f9ba fix:通用无内容 页面,隐藏第二行文案 2022-09-28 20:52:40 +08:00
11643b9be0 fix:【光环助手V5.14.0】游戏评分相关优化(0928测试 2、7、18) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063#note_171941 2022-09-28 20:47:18 +08:00
2bec88c130 fix:修改深色模式下负向浅色按钮的背景 2022-09-28 20:28:52 +08:00
ef9fd9d256 fix:【光环助手V5.14.0】前端优化汇总9月第4周(20-29) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-28 19:57:43 +08:00
580e86c148 fix:【光环助手V5.14.0】游戏评分相关优化(0928UI补充 1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063#note_172008 2022-09-28 16:24:46 +08:00
9ff97dde77 fix:【光环助手V5.14.0】前端优化汇总9月第4周(19) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-28 16:20:28 +08:00
207b650c34 fix:【光环助手V5.14.0】我的光环页面改版(0928补充问题1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2062 2022-09-28 16:18:24 +08:00
1ce7cd8ee3 fix:【光环助手V5.14.0】发布内容需手机号验证(UI测试问题 1、0928测试 2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2054#note_171969 2022-09-28 15:38:51 +08:00
b015d76004 fix:【光环助手V5.14.0】前端优化汇总9月第4周(17-18) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-28 15:35:24 +08:00
5f622d894d fix:【光环助手V5.14.0】我的光环页面改版(0927测试3-4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2062 2022-09-28 14:50:32 +08:00
faffbbfa87 chore: 版本更新至 5.12.8 2022-09-28 14:45:39 +08:00
d494957880 feat: 移除启动时的权限弹窗,移除读取手机信息的权限 2022-09-28 14:42:12 +08:00
c37b299ab7 fix:【光环助手V5.14.0】前端优化汇总9月第4周(16) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-28 14:24:39 +08:00
41331d23a0 fix:【光环助手V5.14.0】游戏评分相关优化(0927UI测试) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063#note_171619 2022-09-28 13:57:15 +08:00
5e3a38f52d fix:【光环助手V5.14.0】前端优化汇总9月第4周(11-15) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098 2022-09-28 10:17:20 +08:00
21c8f4cf62 fix:【光环助手V5.14.0】游戏评分相关优化(0926测试 16、18) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063#note_171613 2022-09-27 18:31:29 +08:00
fb08bc59be fix:【光环助手V5.14.0】游戏评分相关优化(0926测试 1、7、8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063#note_171613 2022-09-27 17:32:29 +08:00
680590e6c2 fix:【光环助手V5.14.0】前端优化汇总9月第4周(2-10) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2098
fix:【光环助手V5.14.0】前端优化汇总9月第3周(4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2086
2022-09-27 15:32:04 +08:00
ee169b55c5 fix:【光环助手V5.14.0】前端优化汇总9月第2周 (8-3、8-4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2079 2022-09-27 11:25:30 +08:00
d3caa5d66c fix:【光环助手V5.14.0】我的光环页面改版(0927补充) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2062 2022-09-27 11:13:30 +08:00
c195be5137 fix: 修改更新弹窗内存泄露问题 2022-09-27 10:56:13 +08:00
40ce144fee feat:【光环助手V5.14.0】发布内容需手机号验证 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2054 2022-09-27 10:53:38 +08:00
ba2fd87b21 fix:我的光环-帮助与反馈 按钮颜色修改 2022-09-27 10:50:28 +08:00
0e385e193f fix:论坛搜索结果左间距修改 2022-09-26 15:58:36 +08:00
341eabee27 fix: 修复 Android 10 以上设备应用处于后台时点击任务栏无法安装游戏的问题 2022-09-26 15:56:57 +08:00
091948cdd1 Merge branch 'hotfix-v5.12.7-597-crashes' into 'release'
Hotfix v5.12.7 597 crashes

See merge request halo/android/assistant-android!342
2022-09-26 15:00:46 +08:00
a2d439e207 fix: typo 2022-09-26 15:00:13 +08:00
b2a1ce54a3 fix:【光环助手V5.14.0】我的光环页面改版(0923UI测试问题1、4、7、10) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2062 2022-09-26 14:22:59 +08:00
1d96e1f92d fix: 还原在工作线程处理视频日志 2022-09-26 12:01:16 +08:00
42fd666ba0 Merge branch 'feature-issues2061' into 'dev-5.14.0'
fix:修改接口返回404时使用通用数据异常的缺省页

See merge request halo/android/assistant-android!341
2022-09-26 11:52:27 +08:00
2aeaecfaf3 fix: 修改接口返回404时使用通用数据异常的缺省页 2022-09-26 11:52:26 +08:00
44d039658e feat: 【光环助手V5.15.0】数据后台-内容数据展示优化(新增埋点) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2059 2022-09-26 11:42:26 +08:00
90a8cce831 fix: 提高触发 WorkManager 的阈值,规避因为空间不足导致的各种奇怪闪退 2022-09-26 11:36:56 +08:00
9bf019530d fix: 修复游戏下载完成后将状态改为查看引起的点击闪退 2022-09-26 11:31:42 +08:00
fd933f9d59 fix:【光环助手V5.14.0】我的光环页面改版(0923UI测试问题1-9,0923测试1、2、5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2062 2022-09-26 11:29:43 +08:00
176dc4fe02 fix: 使用工作线程调用日志上报方法,避免部分性能较差设备 ANR 2022-09-26 11:20:43 +08:00
739413f450 fix: 修复首页列表分页刷新时偶发的数组越界问题 2022-09-26 09:53:22 +08:00
1b5a62e018 fix: 修复页面重建后切换深色模式,首页可能会闪退的问题 2022-09-26 09:49:00 +08:00
6bf74b4e03 fix: 整理基类代码,默认开启页面深色模式自动简单适配 2022-09-26 09:46:03 +08:00
537e59759b feat:【光环助手V5.14.0】游戏评分相关优化(修改字段) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063 2022-09-23 16:30:19 +08:00
13f937dc0e fix: 修改游戏详情最新开服数组越界问题 2022-09-23 15:37:03 +08:00
e3f0c2bb11 fix: 修复部分居中警告按钮点击以后死循环调用的问题 2022-09-23 15:11:24 +08:00
2eabc52aa7 fix: 修复深色模式切换时 window 和导航栏颜色没有变更的问题 2022-09-23 14:56:16 +08:00
cf8615c6c3 style: 整理首页推荐列表代码 2022-09-23 14:12:16 +08:00
ab7bcc2b14 Merge remote-tracking branch 'origin/dev-5.14.0' into dev-5.14.0 2022-09-22 17:34:00 +08:00
99b0010784 feat:【光环助手V5.14.0】游戏评分相关优化(前端部分) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2063 2022-09-22 17:33:05 +08:00
4af170d4fa fix: 修复首页列表加载分页时自动滚动的问题 2022-09-22 17:30:31 +08:00
c45d4b5e19 feat:【光环助手V5.14.0】我的光环页面改版 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2062 2022-09-22 15:58:49 +08:00
9fca1f1551 fix: 修复通用合集 1-2 样式在列表复用时出现高度不一致的问题 2022-09-22 15:41:19 +08:00
b8662e24a0 fix: 修复首页安利墙栏目滚动时高度异常抖动的问题 2022-09-22 15:32:57 +08:00
ad1bee4b56 Merge remote-tracking branch 'origin/dev' into dev-5.14.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListFragment.kt
2022-09-22 10:54:36 +08:00
69597a83a4 fix: 处理合并冲突 2022-09-22 10:53:04 +08:00
45a0f6fa1f Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListViewModel.kt
#	dependencies.gradle
2022-09-22 10:46:04 +08:00
18ee571604 perf: 优化首页轮播图区域上下滑动时的性能 2022-09-22 10:44:41 +08:00
d50615633f feat:【光环助手V5.14.0】前端优化汇总9月第3周(2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2086 2022-09-22 09:49:52 +08:00
7e8702363c fix: 修复首页列表分页刷新时偶发的数组越界问题 2022-09-21 16:20:58 +08:00
f02032dd47 fix: 优化双列通用合集专题的性能 2022-09-21 16:20:28 +08:00
f486b3aba9 build: 升级leakcanary版本至2.9.1 2022-09-21 14:22:17 +08:00
9afa8ad61b fix: 修改部分页面背景颜色使其适配深色模式 2022-09-21 11:37:17 +08:00
63f315e294 chore: 版本更新至 5.12.7 2022-09-21 11:33:30 +08:00
9debcdf55b fix:【光环助手V5.14.0】前端优化汇总9月第3周(6) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2086 2022-09-21 11:19:09 +08:00
130cb68b83 Merge branch 'hotfix-v5.12.6-596-simulator_install_error' into 'release'
fix: 修复模拟器下载完成后无法调起安装页面的问题

See merge request halo/android/assistant-android!340
2022-09-21 11:17:21 +08:00
4895bf694b fix: 修复模拟器下载完成后无法调起安装页面的问题 2022-09-21 11:16:33 +08:00
414aaeb5ea fix:【光环助手V5.14.0】前端优化汇总9月第3周(4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2086 2022-09-20 17:44:23 +08:00
b0d1204341 fix: 优化首页双列专题的性能 2022-09-19 17:44:58 +08:00
9d76bcc06e format: 全局更改APP夜间模式相关名称的代码为深色模式 2022-09-19 15:32:26 +08:00
9e79b0d37e Merge branch 'hotfix-v5.12.6-596-vector_crash' into 'release'
fix: 修复5.0以下系统出现的矢量图闪退问题

See merge request halo/android/assistant-android!339
2022-09-19 14:56:50 +08:00
44c1f26f88 fix: 修复5.0以下系统出现的矢量图闪退问题 2022-09-19 14:48:16 +08:00
4be0ea9a96 fix: 修复双列卡片在夜间模式边缘存在锯齿的问题 2022-09-19 10:09:50 +08:00
61d16a9b50 Merge branch 'feature-issues2061' into 'dev-5.14.0'
fix:修改缺省页UI遗漏的id

See merge request halo/android/assistant-android!338
2022-09-19 09:05:37 +08:00
848b41ea76 fix:修改缺省页UI遗漏的id 2022-09-16 17:53:31 +08:00
2bd3990404 fix: 修复部分页面顶部下载按钮红点和数字显示不正确的问题 2022-09-16 16:51:56 +08:00
552da837c1 Merge remote-tracking branch 'origin/dev-5.14.0' into dev-5.14.0 2022-09-16 16:30:54 +08:00
192b1db9c9 fix: 修复首页轮播图不可见时仍然在自动滚动的问题 2022-09-16 16:29:10 +08:00
0d06701e0d chore: 版本更新至 5.12.6 2022-09-16 13:45:25 +08:00
943956c1b7 Merge branch 'hotfix-v5.12.5-595-temp_post_fixed_top' into 'release'
feat: 【光环助手】游戏业务临时需求 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2087

See merge request halo/android/assistant-android!337
2022-09-16 11:50:56 +08:00
5a47e4f87b feat: 【光环助手】游戏业务临时需求 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2087 2022-09-16 11:49:46 +08:00
731cdab9df Merge branch 'hotfix-v5.12.5-595-notification_crash' into 'release'
fix: 捕抓通知栏跳转的闪退

See merge request halo/android/assistant-android!336
2022-09-16 10:17:26 +08:00
f714beadab fix: 捕抓通知栏跳转的闪退 2022-09-16 10:15:59 +08:00
d9d7e713ba fix: 【光环助手V5.14.0】数据后台—搜索词统计 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2057 2022-09-15 17:21:01 +08:00
249b5ac876 perf: 响应系统低内存时的回调 2022-09-15 17:09:50 +08:00
14d961ed07 feat:【光环助手V5.14.0】个人主页新增显示用户ID(完成UI) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2069 2022-09-15 15:12:33 +08:00
3315686440 Merge branch 'feature-isuess2056' into 'dev-5.14.0'
fix:论坛搜索优化  https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2056

See merge request halo/android/assistant-android!334
2022-09-14 17:50:58 +08:00
bea3cdeacb Merge branch 'feature-isuess2055' into 'dev-5.14.0'
fix:修复热门内容标题显示问题

See merge request halo/android/assistant-android!335
2022-09-14 17:50:43 +08:00
1d10028353 fix:【光环助手V5.14.0】前端优化汇总9月第2周
(4-8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2079
2022-09-14 17:47:56 +08:00
ee6f53ac92 fix:代码格式化 2022-09-14 17:45:10 +08:00
cdfda0d175 fix: 【光环助手V5.14.0】数据后台—搜索词统计 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2057 2022-09-14 17:24:13 +08:00
c6dbd167c9 Merge branch 'feature-issues2061' into 'dev-5.14.0'
feat:缺省页UI优化  https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2061

See merge request halo/android/assistant-android!330
2022-09-14 17:12:18 +08:00
b404bb91f9 fix:修复热门内容标题显示问题 2022-09-14 15:34:21 +08:00
a2488fe0c7 Merge branch 'dev-5.14.0' into feature-isuess2056 2022-09-14 14:40:26 +08:00
7602e27ac5 fix:删除无用布局,资源 2022-09-14 14:38:43 +08:00
6d21a5e8ae Merge branch 'feature-isuess2055' into 'dev-5.14.0'
社区搜索优化,新增热门内容

See merge request halo/android/assistant-android!332
2022-09-14 13:48:16 +08:00
77a1ae68ce fix:社区搜索优化,新增热门内容修改 https://git.shanqu.cc/halo/android/assistant-android/-/merge_requests/332 2022-09-14 11:49:01 +08:00
ccbacf6d37 fix:论坛搜索优化 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2056 2022-09-14 11:17:59 +08:00
d32ab37358 Merge branch 'hotfix-v5.12.5-595-crashes' into 'release'
Hotfix v5.12.5 595 crashes

See merge request halo/android/assistant-android!333
2022-09-14 11:16:29 +08:00
2f14607b03 fix: 修复插件跳转内容为空时的闪退 2022-09-14 10:47:52 +08:00
be599a24fd fix: 修复定期上报曝光事件时的闪退问题 2022-09-14 10:47:32 +08:00
c7ab3339f8 fix: 修复畅玩管理页面打开时快速切换 tab 触发的闪退 2022-09-14 10:46:11 +08:00
33c408d7e5 fix:社区搜索优化,新增热门内容补充 2022-09-14 10:37:21 +08:00
774f97261f fix:缺省页UI优化补充 2022-09-13 17:41:08 +08:00
55e7193149 feat:社区搜索优化,新增热门内容 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2055 2022-09-13 15:16:55 +08:00
76dedfbbc8 chore: 版本更新至 5.12.5 2022-09-13 13:47:59 +08:00
bfe6849ad2 Merge branch 'hotfix-v5.12.4-594-vector_crash' into 'release'
fix: 修复5.0以下系统出现的矢量图闪退问题

See merge request halo/android/assistant-android!331
2022-09-13 11:48:15 +08:00
b23e5ea441 fix: 修复5.0以下系统出现的矢量图闪退问题 2022-09-13 11:38:33 +08:00
d17bb2ac83 feat: 【光环助手V5.14.0】数据后台—搜索词统计 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2057 2022-09-13 11:28:01 +08:00
70cc9bbcb6 feat:缺省页UI优化(我的游戏页面补充) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2061 2022-09-13 10:14:53 +08:00
7ed1a37801 fix: 【光环助手V5.14.0】前端优化汇总9月第2周(1,2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2079 2022-09-13 10:07:03 +08:00
c30a2cca6d feat:缺省页UI优化 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2061 2022-09-13 09:55:53 +08:00
2c8dbf2554 Merge branch 'hotfix-v5.12.4-594-more_feedback_jump' into 'release'
feat: 补充新的畅玩反馈跳转

See merge request halo/android/assistant-android!329
2022-09-13 09:38:04 +08:00
6eb37b7e52 feat: 补充新的畅玩反馈跳转 2022-09-09 18:02:09 +08:00
9a55cc297a Merge remote-tracking branch 'origin/dev' into dev-5.14.0 2022-09-09 16:25:32 +08:00
2bbe148971 fix: 处理合并冲突 2022-09-09 16:25:04 +08:00
986d41d0c3 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/common/FixedRateJobHelper.kt
#	app/src/main/java/com/gh/common/databind/BindingAdapters.java
#	app/src/main/java/com/gh/common/util/DetailDownloadUtils.java
#	app/src/main/java/com/gh/common/util/DialogUtils.java
#	app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java
#	app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListViewModel.kt
#	dependencies.gradle
2022-09-09 16:02:17 +08:00
07a72bce77 Merge remote-tracking branch 'origin/dev-5.14.0' into dev-5.14.0 2022-09-09 15:52:20 +08:00
8384464066 perf: 微调横向专题的代码 2022-09-09 15:51:59 +08:00
1e96f3e11b fix: 版本更新至 5.12.4 2022-09-09 11:30:10 +08:00
21f99df976 feat:【光环助手V5.14.0】数据后台—新增社区点击转化统计 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2058 2022-09-08 17:35:27 +08:00
cb087fb5fb Merge branch 'hotfix-v5.12.3-593-vgame_gamedetail_switch' into 'release'
fix: 修复关闭畅玩功能的游戏详情仍然显示畅玩游戏跳转按钮的问题

See merge request halo/android/assistant-android!328
2022-09-08 17:34:34 +08:00
db03b55850 fix: 修复关闭畅玩功能的游戏详情仍然显示畅玩游戏跳转按钮的问题 2022-09-08 17:33:36 +08:00
457f050948 chore: 版本更新为 5.14.0 2022-09-08 16:49:54 +08:00
f4afda913e Merge branch 'hotfix-v5.12.3-593-game_collection_square_skeleton' into 'release'
fix: 修复游戏单广场骨架屏不能沉浸状态栏的问题

See merge request halo/android/assistant-android!327
2022-09-08 09:39:01 +08:00
2300695607 fix: 修复游戏单广场骨架屏不能沉浸状态栏的问题 2022-09-08 09:33:29 +08:00
32c318cc61 Merge branch 'hotfix-v5.12.3-593-install_hint' into 'release'
fix: 修复游戏下载时多次调用显示安装引导方法的问题

See merge request halo/android/assistant-android!326
2022-09-08 09:28:57 +08:00
7fd5a37b4c Merge branch 'feature-issues1933' into 'release'
【光环助手V_5.11.0】国际服游戏下载弹窗优化

See merge request halo/android/assistant-android!325
2022-09-08 09:22:16 +08:00
a805e56a7c Merge branch 'release' into feature-issues1933
# Conflicts:
#	app/src/main/java/com/gh/common/databind/BindingAdapters.java
#	app/src/main/java/com/gh/common/filter/RegionSetting.kt
#	app/src/main/java/com/gh/common/filter/RegionSettingHelper.kt
#	app/src/main/java/com/gh/common/util/DetailDownloadUtils.java
#	app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java
#	dependencies.gradle
2022-09-07 19:11:20 +08:00
7679c750cf fix: 修复游戏下载时多次调用显示安装引导方法的问题 2022-09-07 18:04:00 +08:00
5440a1faf5 Merge branch 'feature-issues2047' into 'release'
feat:【光环助手】国际服游戏合规调整方案(需求变动)...

See merge request halo/android/assistant-android!324
2022-09-07 17:43:20 +08:00
ce840cf33e feat:【光环助手】国际服游戏合规调整方案(需求变动) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2047#note_169012 2022-09-07 17:41:00 +08:00
82fc7d01fc chore: 版本更新至 5.11.4 2022-09-07 17:30:58 +08:00
37a2c5171d fix: 【光环助手V_5.11.0】国际服游戏下载弹窗优化(20220907需求补充) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1933 2022-09-07 17:30:06 +08:00
b72f751dc0 Merge branch 'hotfix-v5.12.3-593-wrong_toast' into 'release'
fix: 修复异常的畅玩 toast 提示

See merge request halo/android/assistant-android!323
2022-09-07 15:48:11 +08:00
fa740bacb3 fix: 修复异常的畅玩 toast 提示 2022-09-07 15:44:27 +08:00
22e92cdaf6 Merge branch 'feature-issues2047' into 'release'
feat:【光环助手】国际服游戏合规调整方案 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2047

See merge request halo/android/assistant-android!322
2022-09-06 17:32:04 +08:00
ac72abe105 feat:【光环助手】国际服游戏合规调整方案 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2047 2022-09-06 17:29:32 +08:00
aaa2c6330e chore: 版本更新至 5.12.3 2022-09-06 17:03:31 +08:00
c338bf4f00 Merge branch 'hotfix-v5.12.2-592-download_crash' into 'release'
fix: 尝试修复启动下载服务异常...

See merge request halo/android/assistant-android!321
2022-09-06 17:02:39 +08:00
aec874b3e0 fix: 尝试修复启动下载服务异常 https://sentry.shanqu.cc/organizations/lightgame/issues/203713/?project=22&query=dist%3A592&sort=freq&statsPeriod=14d 2022-09-06 16:30:17 +08:00
dc3f3240c6 fix: 修复游戏单广场骨架屏不能沉浸状态栏的问题 2022-09-05 14:58:53 +08:00
a3ddf54afc chore: 版本更新至 5.12.2 2022-09-05 10:37:12 +08:00
d840fab316 Merge branch 'hotfix-v5.12.1-591-homepage_crash' into 'release'
fix: 修复首页下载更新页面偶发的多线程操作闪退

See merge request halo/android/assistant-android!320
2022-09-05 10:20:51 +08:00
125701534d fix: 修复首页下载更新页面偶发的多线程操作闪退 2022-09-05 10:19:29 +08:00
be85ba6c47 Merge branch 'hotfix-v5.12.1-591-home_video_crash' into 'release'
修复首页列表数据更新导致播放视频数组越界问题

See merge request halo/android/assistant-android!319
2022-09-05 10:13:29 +08:00
bcba6c4230 fix: 修复首页列表数据更新导致播放视频数组越界问题 2022-09-05 10:10:50 +08:00
453ca0ceea Merge branch 'hotfix-v5.12.1-591-crashes' into 'release'
Hotfix v5.12.1 591 crashes

See merge request halo/android/assistant-android!318
2022-09-02 11:14:40 +08:00
dc4e345ea8 fix: 多线程上报日志导致的闪退 2022-09-02 11:12:58 +08:00
946bd39fb6 fix: 修复首页列表更新数组越界闪退 2022-09-02 10:06:57 +08:00
83610a98f4 Merge branch 'hotfix-v5.12.1-591-download_crash' into 'release'
fix: 尝试修复启动下载服务时的闪退

See merge request halo/android/assistant-android!317
2022-09-01 16:28:18 +08:00
e21d8a5ac5 fix: 尝试修复启动下载服务时的闪退 2022-09-01 16:27:30 +08:00
3b2f5c6749 Merge remote-tracking branch 'origin/dev-5.13.0' into dev 2022-09-01 15:20:36 +08:00
43c840cd94 chore: 版本更新至 5.12.1 2022-09-01 15:19:21 +08:00
9f7b1acef9 Merge branch 'hotfix-v5.12.0-590-crashes' into 'release'
fix v5.12.0 crashes

See merge request halo/android/assistant-android!316
2022-09-01 15:15:11 +08:00
08ac765e9c fix: 修复多线程操作下载数据引起的闪退 2022-09-01 15:12:34 +08:00
15a3624e55 fix: 修复下载完成游戏时多线程操作日志造成的闪退 2022-09-01 15:12:09 +08:00
ce16ad471b fix: 修复安装游戏时获取不到版本的闪退 2022-09-01 15:11:41 +08:00
c20a9e86d0 Merge branch 'hotfix-v5.12.0-590-home_index_out_of_bounds' into 'release'
修改首页可能出现的数组越界问题

See merge request halo/android/assistant-android!315
2022-09-01 15:09:30 +08:00
8e068684e0 fix: 修改首页可能出现的数组越界问题 2022-09-01 14:45:13 +08:00
31d8a442a3 fix: 修复下载实例快照列表为空时的闪退 2022-09-01 13:58:43 +08:00
f534216009 fix:【光环助手V5.13.0】游戏搜索功能优化(第9期)(0831UI测试问题 3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011#note_167425 2022-08-31 20:40:39 +08:00
2a808e3ac9 fix:【光环助手V5.13.0】游戏搜索功能优化(第9期)(0831UI测试问题 3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011#note_167425 2022-08-31 20:07:44 +08:00
42f5cbe9a4 fix:【光环助手V5.13.0】游戏搜索功能优化(第9期)(测试问题 1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011#note_167665 2022-08-31 18:30:05 +08:00
d1e87d552d fix:【光环助手V5.13.0】游戏搜索功能优化(第9期)(0831UI测试问题 3、0831测试 3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011 2022-08-31 15:30:33 +08:00
fa457fa337 fix:【光环助手V5.13.0】游戏搜索功能优化(第9期)(0831UI测试问题) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011#note_167425 2022-08-31 10:17:23 +08:00
5dd0734aad fix: 修复正式包畅玩链接不正确的问题 2022-08-30 18:13:59 +08:00
fa2c86c3f1 fix: 修复畅玩配置加载失败触发的闪退问题 2022-08-30 17:55:35 +08:00
1753224cc4 build: 正式包畅玩开关默认改为开启状态 2022-08-30 17:18:02 +08:00
e3cece6654 fix:【光环助手V5.13.0】游戏搜索功能优化(第9期)(UI优化) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011 2022-08-30 17:11:45 +08:00
f01e79d303 fix: 微调帖子详情页UI 2022-08-30 16:09:11 +08:00
5d89a2c26d fix:【光环助手V5.13.0】游戏搜索功能优化(第9期)(UI优化) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011 2022-08-30 15:57:07 +08:00
2ff948dab1 fix: 缓存畅玩游戏游玩时间和占用空间,修复畅玩游戏 newIntent 时 tab 定位不生效的问题 2022-08-30 15:33:47 +08:00
ebe560bc2b Merge remote-tracking branch 'origin/dev' into dev-5.13.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt
#	app/src/main/res/layout/home_game_item.xml
2022-08-30 14:16:21 +08:00
7dd0bdfd73 Merge remote-tracking branch 'origin/release' into dev 2022-08-30 14:10:14 +08:00
af3797afc7 feature:【光环助手V5.13.0】游戏搜索功能优化(第9期)(前端部分) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2011 2022-08-30 14:02:46 +08:00
0821f00584 fix: 添加畅玩备份完整性校验,避免数据异常 2022-08-30 13:46:09 +08:00
163a1a7f1f fix: 修复回调 onNewIntent 回到畅玩游戏管理列表无法正常刷新的问题 2022-08-29 18:04:23 +08:00
02b9d15134 feat: 添加畅玩广场的跳转 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2000#note_166886 2022-08-29 14:17:54 +08:00
4ab2a23840 feat: 添加畅玩广场的跳转 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2000#note_166886 2022-08-29 10:20:43 +08:00
2f35f07ba0 fix: 修复定时日志上报可能触发的多线程操作闪退 2022-08-26 16:56:47 +08:00
76cfda2df1 fix: 修复曝光事件序列化时可能出现死循环卡死的问题 2022-08-26 16:10:59 +08:00
fc705578b7 Merge branch 'hotfix-v5.11.3-573-game_detail_crash' into 'release'
fix: 修复游戏详情页面的闪退

See merge request halo/android/assistant-android!314
2022-08-25 16:12:39 +08:00
c6c544f699 feat: 邮件包添加最近代码变更弹窗 https://git.shanqu.cc/halo/android/assistant-android/-/issues/79 2022-08-25 15:58:45 +08:00
ec96fc3258 fix: 修复游戏详情页面的闪退 2022-08-25 15:53:02 +08:00
bfa0b7bd11 Merge branch 'hotfix-v5.11.3-573-crashes' into 'release'
fix: 修复游戏详情页面、查看大图页面的闪退

See merge request halo/android/assistant-android!313
2022-08-25 14:41:01 +08:00
26fc068d29 fix: 修复游戏详情页面、查看大图页面的闪退 2022-08-25 14:36:59 +08:00
a035418ff9 fix: 【光环助手V5.13.0】评论 新增 IP属地展示(0825UI测试1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2008 2022-08-25 14:19:14 +08:00
c40b1f5391 fix: 【光环助手V5.13.0】评论 新增 IP属地展示(0825测试反馈1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2008 2022-08-25 11:29:50 +08:00
848d3f27bd feat: 邮件包添加最近代码变更弹窗 https://git.shanqu.cc/halo/android/assistant-android/-/issues/79 2022-08-25 11:08:26 +08:00
676011eef3 Merge branch 'hotfix-v5.11.3-573-forum_detail_crash' into 'release'
fix: 修复论坛详情页点击标题栏页面吸顶时的闪退问题

See merge request halo/android/assistant-android!312
2022-08-25 11:04:14 +08:00
3319fd29de fix: 修复论坛详情页点击标题栏页面吸顶时的闪退问题 2022-08-25 11:03:18 +08:00
d3233c379f fix: 【光环助手V5.13.0】通用链接内容合集优化(0825UI测试问题1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2010 2022-08-25 10:58:25 +08:00
eb7c5d6285 fix:【光环助手V5.13.0】前端优化汇总8月第1周(4 修改评论时间显示规则) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2014#note_166462 2022-08-25 09:57:58 +08:00
b32bb19051 fix: 【光环助手V5.13.0】评论新增IP属地展示(补充问题2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2008 2022-08-25 09:42:43 +08:00
5a7001dd66 fix: 修复部分设备不能获取已安装应用列表的问题 2022-08-24 17:36:12 +08:00
bdeb0c79eb fix: 【光环助手V5.13.0】客户端内部需求(修改错误webview提示UI,通过接口配置链接下载) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2029 2022-08-24 11:12:53 +08:00
bb29702db8 fix:【光环助手V5.13.0】前端优化汇总8月第2周(3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2026 2022-08-24 10:02:20 +08:00
4138f2861c Merge branch 'feature-issues2014-buried-point' into 'dev-5.13.0'
fix:修复点击我的游戏-预约Tab位置是 按钮 时,没有上报事件

See merge request halo/android/assistant-android!311
2022-08-24 09:48:40 +08:00
33050a7c94 fix:修复点击我的游戏-预约Tab位置是 按钮 时,没有上报事件 2022-08-24 09:32:33 +08:00
4fef613390 fix: 【光环助手V5.13.0】评论 新增 IP属地展示(0822测试3,4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2008 2022-08-22 16:44:46 +08:00
15565281a9 fix: 【光环助手V5.13.0】评论 新增 IP属地展示(0822测试反馈1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2008 2022-08-22 15:49:21 +08:00
39d3c4d3c8 fix: 修复未安装畅玩游戏在列表中会找不到的问题 2022-08-19 17:59:52 +08:00
443c8d7eaf fix: 修复备份畅玩游戏异常, 2022-08-19 17:53:52 +08:00
0195af422c fix: 【光环助手V5.13.0】前端优化汇总8月第3周(1、2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2032 2022-08-19 17:31:29 +08:00
7d05d42e14 fix: 【光环助手V5.13.0】前端优化汇总8月第3周(4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2032 2022-08-19 11:11:42 +08:00
322da11319 style: 添加项目相关的 editorConfig 2022-08-19 10:47:01 +08:00
b46da2751b Merge remote-tracking branch 'origin/dev' into dev 2022-08-19 10:45:44 +08:00
4999ba6563 style: 添加项目相关的 editorConfig 2022-08-19 10:45:32 +08:00
5b3aec8e19 fix: 【光环助手V5.13.0】前端优化汇总8月第3周(3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2032 2022-08-19 10:27:15 +08:00
6cc2f3af26 fix: 修复社区-论坛-热门论坛的Item需要点击两次才能跳转的问题 2022-08-18 14:23:23 +08:00
3a4b3326e7 fix: 移除首页最近在玩列表的冗余刷新代码 2022-08-18 11:39:08 +08:00
51c75947c9 fix: 移除首页部分冗余代码 2022-08-18 11:38:32 +08:00
19bb89b6f1 fix: 修复首页列表刷新时偶发的异常闪烁问题 2022-08-18 11:31:10 +08:00
6e2ec70434 fix: 修改首页游戏卡片标题布局样式 2022-08-17 18:43:09 +08:00
793f2f241a fix: 清理畅玩管理冗余代码 2022-08-17 17:59:44 +08:00
72f3d4a379 fix: 修复畅玩游戏管理页面lottie开关动画闪退问题 2022-08-17 17:48:48 +08:00
6b6a7dd81e fix: 修复畅玩游戏管理页面lottie开关动画闪退问题 2022-08-17 17:45:50 +08:00
ffa4257eb4 fix: 重构下载按钮的实现 (修复我的游戏-预约tab列表下载按钮不显示文字的问题) https://git.shanqu.cc/halo/android/assistant-android/-/issues/75 2022-08-17 17:31:57 +08:00
22c06286c2 fix: 修改首页游戏卡片下载按钮不会根据下载状态变更显示样式问题 2022-08-17 16:57:00 +08:00
1d600f370a Merge branch 'feature-issues2014-buried-point' into 'dev-5.13.0'
feat:新增我的光环-我的游戏相关数据埋点

See merge request halo/android/assistant-android!310
2022-08-17 16:35:37 +08:00
ac3788541b feat:新增我的光环-我的游戏相关数据埋点 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2014 2022-08-17 16:09:22 +08:00
015418b56a fix: 处理合并冲突 2022-08-17 16:06:25 +08:00
9c066431b4 Merge remote-tracking branch 'origin/dev' into dev-5.13.0
# Conflicts:
#	app/src/main/java/com/gh/common/util/DetailDownloadUtils.java
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityFragment.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt
2022-08-17 15:57:56 +08:00
3f2b59aecf fix: 【光环助手V5.12.0】同步正式环境后测试问题汇总(5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2021 2022-08-17 15:48:51 +08:00
1c3d78dc17 fix: 移除旧的下载更新页面相关代码 2022-08-17 15:39:12 +08:00
9fc9f0362f refactor: 1.积分模块单独运行时使用新包名; 2.积分模块登录支持不授权登录 2022-08-17 15:12:07 +08:00
ee131da96b Merge branch 'dev-5.13.0' of git.shanqu.cc:halo/android/assistant-android into dev-5.13.0 2022-08-17 11:27:49 +08:00
843a2f8831 fix: 处理合并冲突 2022-08-17 11:27:30 +08:00
cfb48c07ff feat: 【光环助手V5.13.0】评论 新增 IP属地展示 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2008 2022-08-17 11:17:34 +08:00
3952139324 chore: 更新 assistant_flutter 依赖 2022-08-17 11:16:36 +08:00
d9665a8464 fix: 修复应用启动时没有安装畅玩助手也会出发连接尝试的问题 2022-08-17 10:46:36 +08:00
b4d44d6e0a fix: 处理合并冲突 2022-08-17 10:42:39 +08:00
bba8261d97 Merge remote-tracking branch 'origin/dev-5.13.0' into dev-5.13.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailAdapter.kt
#	app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailAdapter.kt
2022-08-17 10:24:17 +08:00
134df71aba Merge branch 'feature-module_login' into dev-5.13.0
# Conflicts:
#	app/src/main/java/com/gh/common/constant/Config.java
#	app/src/main/java/com/gh/common/simulator/SimulatorGameManager.kt
#	app/src/main/java/com/gh/common/util/DirectUtils.kt
#	app/src/main/java/com/gh/common/util/DownloadObserver.kt
#	app/src/main/java/com/gh/common/util/GameActivityDownloadHelper.kt
#	app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java
#	app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListFragment.kt
#	app/src/main/java/com/gh/gamecenter/category/NewCategoryListFragment.kt
#	app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt
#	app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt
#	app/src/main/java/com/gh/gamecenter/fragment/MainWrapperViewModel.kt
#	app/src/main/java/com/gh/gamecenter/game/GameFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionPosterFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditViewModel.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailViewModel.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyViewModel.kt
#	app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt
#	app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt
#	app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt
#	app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewFragment.kt
#	app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListFragment.kt
#	app/src/main/java/com/gh/gamecenter/subject/SubjectListFragment.kt
#	app/src/main/java/com/gh/gamecenter/tag/TagsListFragment.kt
#	app/src/main/java/com/halo/assistant/HaloApp.java
#	module_login/src/main/java/com/gh/gamecenter/login/user/UserManager.java
#	module_login/src/main/java/com/gh/gamecenter/login/utils/LoginHelper.kt
2022-08-17 10:22:47 +08:00
0752813c09 fix: 修复畅玩配置为空时的闪退 2022-08-16 17:33:37 +08:00
28744ce9ce fix: 修复畅玩游戏更新无法在列表显示进度的问题 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2027 2022-08-16 17:07:33 +08:00
1aadf7bd38 fix: 修改判断webview是否可用 2022-08-16 14:28:31 +08:00
4a7e0a8b4d Merge branch 'feature-webview_abi_error' into dev-5.13.0 2022-08-16 14:01:07 +08:00
9780aa532a fix: 【光环助手V5.12.0】同步正式环境后测试问题汇总(5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2021 2022-08-16 10:02:02 +08:00
2920ca4975 fix: 修复申请权限后闪退问题 2022-08-15 16:12:08 +08:00
c20f92f2cc refactor: 组件化积分相关功能(可单独运行积分模块) https://git.shanqu.cc/halo/android/assistant-android/-/issues/73 2022-08-15 15:55:06 +08:00
9c2c4562aa refactor: 组件化积分相关功能(可单独运行积分模块) https://git.shanqu.cc/halo/android/assistant-android/-/issues/73 2022-08-15 15:49:42 +08:00
96d10703c7 style: 删除无用代码 2022-08-15 15:26:23 +08:00
b58baf565c fix: 修复首页游戏大图卡片副标题超长时与下载按钮重叠的问题 2022-08-15 15:15:22 +08:00
1a3f0f87d5 feat: 尝试避免安装错误版本 WebView 的用户闪退 https://git.shanqu.cc/halo/android/assistant-android/-/issues/78 2022-08-15 15:14:17 +08:00
9ce4ff54ba Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/AndroidManifest.xml
2022-08-15 14:02:48 +08:00
a6605e6044 Merge branch 'fix_content_provider' into 'release'
本地实名认证插入数据库改为contentProvider插入,并在Manifest加入queries

See merge request halo/android/assistant-android!306
2022-08-15 14:01:24 +08:00
61f77a6fcc fix:本地实名认证插入数据库改为contentProvider插入,并在Manifest加入queries 2022-08-15 11:32:02 +08:00
d39755efe6 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-08-15 10:45:01 +08:00
ddf7d6f94d Merge branch 'hotfix-v5.11.3-573-crashes' into 'release'
Hotfix v5.11.3 573 crashes

See merge request halo/android/assistant-android!305
2022-08-15 10:42:49 +08:00
17ad25aff3 fix: 修复游戏详情页点击关闭下载的下载按钮会闪退的问题 2022-08-15 10:00:42 +08:00
b169ce66b4 fix: 修复部分设备获取已安装信息时会闪退的问题 2022-08-15 09:56:10 +08:00
c0e34b3edb fix: 修复下载路径为空时调用下载触发的闪退 2022-08-15 09:53:30 +08:00
7936cb2b9f feat: 预检查 Webview 是否安装/安装错误ABI 2022-08-13 16:45:19 +08:00
2bf662ee27 fix: 修复首页游戏大图卡片副标题超长时与下载按钮重叠的问题 2022-08-11 16:00:59 +08:00
a0c1a14987 refactor: 组件化积分相关功能 https://git.shanqu.cc/halo/android/assistant-android/-/issues/73 2022-08-11 14:50:23 +08:00
ab01fac150 feat: 重构下载按钮的实现 https://git.shanqu.cc/halo/android/assistant-android/-/issues/75 2022-08-11 11:17:50 +08:00
2ce35ab8a5 feat: 【光环助手V5.13.0】通用链接内容合集优化 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2010 2022-08-11 10:34:46 +08:00
50db76ce70 chore: 版本更新至 5.11.3 2022-08-11 09:41:37 +08:00
30cb1b8f87 Merge branch 'hotfix-v5.11.2-572-vertical_scroll_issue' into 'release'
fix: 修复横向列表滚动专题更新数据时会自动往左切换的问题

See merge request halo/android/assistant-android!304
2022-08-11 09:40:19 +08:00
470256411d fix: 修复横向列表滚动专题更新数据时会自动往左切换的问题 2022-08-11 09:39:24 +08:00
364f089d75 Merge branch 'feature-issues2016-v5.11.2' into 'release'
隐私弹窗修改 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2016

See merge request halo/android/assistant-android!303
2022-08-10 17:31:52 +08:00
fc0c710172 Merge branch 'hotfix-v5.11.2-572-wrong_image_url' into 'release'
fix: 修复部分图片可能因为 jpegConfig 为空而导致加载失败的问题

See merge request halo/android/assistant-android!302
2022-08-10 11:03:50 +08:00
18314347de fix: 修复部分图片可能因为 jpegConfig 为空而导致加载失败的问题 2022-08-10 11:03:50 +08:00
87b9ff7054 feat: 【光环助手】隐私弹窗修改 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2016 2022-08-10 10:11:34 +08:00
a4c7aa6338 fix: 修复资讯详情闪退问题 2022-08-09 16:42:34 +08:00
8d6628404c fix: 修改专区短链接使用webview打开 2022-08-09 16:26:32 +08:00
e383abf942 Merge branch 'dev-5.13.0-issues74' into 'dev-5.13.0'
fix:曝光上报使用对象池来复用 ExposureEvent

See merge request halo/android/assistant-android!300
2022-08-09 14:43:30 +08:00
d0c9c0f2f5 fix:曝光上报使用对象池来复用 ExposureEvent 2022-08-09 14:43:29 +08:00
f2ebc7796f Merge branch 'hotfix-v5.11.2-572-game_subtitle_crash' into 'release'
fix: 修复游戏副标题闪退问题

See merge request halo/android/assistant-android!301
2022-08-09 11:18:55 +08:00
6e6b107a80 fix: 修复游戏副标题闪退问题 2022-08-09 11:12:05 +08:00
4d29ff8752 feat: 更新微博 SDK (避免初始化获取 MAC 地址) 2022-08-09 11:09:00 +08:00
56226b8620 Merge branch 'hotfix-v5.11.2-572_suggestion_crash' into 'release'
修复意见反馈闪退问题

See merge request halo/android/assistant-android!299
2022-08-09 10:01:38 +08:00
240d3ea304 fix: 修复意见反馈闪退问题 2022-08-09 09:56:01 +08:00
e9ca19fa41 chore: 版本更新至 5.13.0 2022-08-08 17:29:11 +08:00
821d21a2e1 Merge remote-tracking branch 'origin/dev' into dev-5.13.0 2022-08-08 17:27:40 +08:00
9009567226 feat: 更新微博 SDK (避免初始化获取 MAC 地址) 2022-08-08 17:25:25 +08:00
6506012d78 fix:【光环助手V5.13.0】前端优化汇总8月第1周(4、8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2014 2022-08-08 17:11:44 +08:00
cc4b685a28 refactor: 优化下载点击事件的死亡嵌套回调 https://git.shanqu.cc/halo/android/assistant-android/-/issues/77 2022-08-08 16:50:46 +08:00
5d21f4e29f feat: 畅玩游戏发布相关准备 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2000 2022-08-08 15:38:27 +08:00
e84973f0e6 fix: 【光环助手V5.13.0】前端优化汇总8月第1周(2,3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2014 2022-08-08 12:05:33 +08:00
a997f77584 fix:【光环助手V5.13.0】前端优化汇总8月第1周(5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2014 2022-08-08 10:43:54 +08:00
b70fb261d4 Merge branch 'hotfix-v5.11.2-572-skeleton_crash' into 'release'
fix: 修复懒加载列表页更新骨架屏出现闪退的问题

See merge request halo/android/assistant-android!298
2022-08-04 15:09:07 +08:00
cbef1095d6 fix: 修复懒加载列表页更新骨架屏出现闪退的问题 2022-08-04 15:01:15 +08:00
e3f6d64fa9 refactor: 组件化登录功能 https://git.shanqu.cc/halo/android/assistant-android/-/issues/73 2022-08-04 11:28:24 +08:00
6f5f72194a feat: 移除 log 线程,取消本地 log 数据库(由 loghub sdk 实现) 2022-08-03 16:15:16 +08:00
8ff396e05b feat: 调整主 IO 线程池的核心数和最大数 2022-08-03 15:16:00 +08:00
6fa4bf75bf fix: 【光环助手V5.12.0】首页内容列表优化(0802测试5) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1949 2022-08-02 16:25:38 +08:00
9c11f7f70e fix: 处理部分 SonarQube 问题 2022-08-02 16:22:45 +08:00
c8cd753022 feat: Android 8.0 以下设备停用畅玩游戏 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/2000 2022-08-02 16:21:01 +08:00
12d94c7d0a Merge remote-tracking branch 'origin/dev' into dev 2022-08-02 15:05:21 +08:00
d1159c30d1 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-08-02 14:59:01 +08:00
8b241ec569 fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(UI测试问题汇总0802补充3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-08-02 14:46:01 +08:00
07f68f050b fix: 调整部分 sentry 日志 2022-08-02 13:59:40 +08:00
f8c61b5d53 feat: 添加全局畅玩游戏功能开关 2022-08-02 13:45:37 +08:00
791bf000ef Merge branch 'hotfix-v5.11.2-572-image_viewer' into 'release'
fix: 修复帖子评论查看大图进入动画位置异常

See merge request halo/android/assistant-android!297
2022-08-02 11:45:15 +08:00
515a34ecf9 Merge remote-tracking branch 'origin/dev' into dev 2022-08-02 11:13:16 +08:00
3e74b39b45 fix: 修复畅玩游戏安装完成后会取消相同包名游戏下载任务的问题(20220729需求补充:测试反馈) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1955 2022-08-02 11:13:11 +08:00
c3eba42b17 fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(UI测试问题汇总0802补充2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-08-02 10:41:12 +08:00
13ab6f7b38 fix: 修复畅玩游戏下载进度状态同步问题(20220729需求补充:测试反馈) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1955 2022-08-01 17:45:29 +08:00
7ee9913964 fix: 修复帖子评论查看大图进入动画位置异常 2022-08-01 17:27:29 +08:00
96f0c03ff2 chore: 版本更新至 5.11.2 2022-08-01 15:37:12 +08:00
7c3f91c296 Merge branch 'feature-issues1292-v5.11.1' into 'release'
Feature issues1292 简单适配华为无应用列表读取权限的情况

See merge request halo/android/assistant-android!296
2022-08-01 15:31:08 +08:00
cd9d0b5456 Merge remote-tracking branch 'origin/dev' into feature-issues1801-v5.12.0 2022-08-01 15:14:23 +08:00
cb4b83ddb4 fix: 更新 LGLibrary 依赖 2022-08-01 15:10:17 +08:00
449836cbd0 fix: 处理合并冲突 2022-08-01 15:08:56 +08:00
a028639138 fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(UI测试问题汇总1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-08-01 14:58:07 +08:00
c34e5f0a3d Merge remote-tracking branch 'origin/dev' into feature-issues1801-v5.12.0
# Conflicts:
#	app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/entity/NewGameDetailEntity.kt
#	app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt
#	app/src/main/java/com/gh/gamecenter/home/HomeViewModel.kt
#	app/src/main/res/layout/fragment_forum_home.xml
#	libraries/LGLibrary
2022-08-01 14:50:48 +08:00
06f008d577 fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(0727测试4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-08-01 11:49:39 +08:00
08a7491fa7 feat: 修复畅玩游戏和普通游戏同一下载地址回引起错误回调的问题 2022-08-01 11:17:28 +08:00
faa9d50426 fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(0729测试1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-08-01 10:20:45 +08:00
493a444990 fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(0729测试1-2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-07-29 15:51:49 +08:00
596cc4ca15 feat: 移除无安装权限启动弹窗 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1994 2022-07-29 15:34:09 +08:00
a14ea13dd7 fix: 移除无用文件 2022-07-29 11:27:19 +08:00
0cfce764ff Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
#	libraries/LGLibrary
2022-07-29 11:19:32 +08:00
6c0f7f8cb3 fix: 移除无用资源文件 2022-07-29 11:17:13 +08:00
4ce17aa6a3 feat: 移除 x86 架构支持,捕抓 RenderScript 异常 2022-07-29 10:48:14 +08:00
c58db04155 fix: 修复在那无下载的游戏打开详情页闪退的问题 2022-07-28 17:42:04 +08:00
c47ab8fc41 Merge remote-tracking branch 'origin/release' into feature-issues1801 2022-07-28 17:37:04 +08:00
6c88782635 feat: 完成获取应用列表权限相关处理 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1292 2022-07-28 16:55:44 +08:00
1ae905b0b4 fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(0727测试2、8(3)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-07-28 15:11:45 +08:00
d0dc009906 Merge remote-tracking branch 'origin/dev' into dev 2022-07-28 14:39:44 +08:00
99ffde9b67 fix: 【光环助手V5.12.0】首页内容列表优化(0728测试1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1949 2022-07-28 14:31:35 +08:00
3d56da3b6f fix:【光环助手V5.12.0】游戏详情新增“内容卡片”功能(0727测试2-4、8(3)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-07-28 14:31:20 +08:00
dc3ae1d36d fix: 【光环助手V5.12.0】版块内容列表优化(0727测试2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1948 2022-07-28 09:22:31 +08:00
4e9d5357c8 fix:【光环助手V5.12.0】新增 发布内容需实名认证(0727测试2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1982 2022-07-27 16:23:15 +08:00
a1d182a82c fix: 【光环助手V5.12.0】游戏专题功能优化(0727UI测试问题2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1950 2022-07-27 13:59:03 +08:00
6efe9328b1 fix: 【光环助手V5.12.0】版块内容列表优(0727测试1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1948 2022-07-27 11:43:56 +08:00
lyr
e8645cd717 fix:【光环助手V5.12.0】游戏专题功能优化(0727UI测试问题 1)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1950#note_161351 2022-07-27 11:19:27 +08:00
7792574f20 Merge remote-tracking branch 'origin/feature-issues1801' into feature-issues1801 2022-07-26 16:38:44 +08:00
54131d507b fix: 修复普通游戏下载进度更新频率也提高的问题 2022-07-26 16:38:16 +08:00
5609a95382 feat:【光环助手V5.12.0】游戏详情新增“内容卡片”功能 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-07-26 14:05:31 +08:00
3ab3229580 fix:安装完畅玩游戏 新增插入当前是否是测试包依据 2022-07-26 11:06:37 +08:00
8d1f300241 fix:安装完畅玩游戏 新增插入当前接口环境 2022-07-26 10:00:00 +08:00
d00f50bcf8 feat: 【光环助手V5.12.0】违规管理整合 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1946 2022-07-25 15:48:20 +08:00
624fb934e4 Merge branch 'hotfix-v5.11.1-571-vector_crash' into 'release'
fix: 修复5.0以下系统设置矢量图闪退的问题

See merge request halo/android/assistant-android!295
2022-07-22 17:08:04 +08:00
965b6b3f66 fix: 修复5.0以下系统设置矢量图闪退的问题 2022-07-22 16:51:24 +08:00
f98726fa18 feat: 【光环助手V5.12.0】首页内容列表优化 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1949 2022-07-22 16:11:52 +08:00
495070a14e feat: 添加畅玩助手隐私政策跳转地址 2022-07-22 15:14:55 +08:00
e8b00cc87f Merge remote-tracking branch 'origin/release' into feature-issues1801
# Conflicts:
#	app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt
#	libraries/LGLibrary
2022-07-22 14:19:53 +08:00
6823f27ff3 Merge branch 'hotfix-v5.11.1-571-welcomdialog_display_issue' into 'release'
fix: 修复首页弹窗重复弹出的问题

See merge request halo/android/assistant-android!294
2022-07-22 11:54:34 +08:00
c0b561cb78 fix: 修复首页弹窗重复弹出的问题 2022-07-22 11:53:55 +08:00
d02bdf9a8a feat:【光环助手V5.12.0】新增 发布内容需实名认证 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1982 2022-07-22 11:07:20 +08:00
7029c170a4 feat:游戏数据插入畅玩助手ContentProvider URI修改 2022-07-22 11:05:15 +08:00
6afe9b2f3c feat: 将安装好的畅玩游戏数据插入到畅玩助手 2022-07-22 09:32:28 +08:00
54c9850014 Merge branch 'hotfix-v5.11.1-571-home_focus_issue' into 'release'
fix: 修复首页有新内容样式时下拉刷新会获取焦点产生滑动偏移的问题

See merge request halo/android/assistant-android!293
2022-07-21 17:04:46 +08:00
3123045a91 fix: 修复首页有新内容样式时下拉刷新会获取焦点产生滑动偏移的问题 2022-07-21 16:57:37 +08:00
16614ac2d1 feat: 更频繁地备份畅玩数据库 2022-07-21 16:22:42 +08:00
74fda1fc17 feat: ToastUtils 的 toast 默认切换到主线程执行 2022-07-21 16:18:43 +08:00
563d9123c8 fix: 【光环助手V5.12.0】端内兼容适配短链接(0720测试反馈) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1945 2022-07-20 19:44:34 +08:00
lyr
8af97a44c8 feat:【光环助手V5.12.0】搜索管理功能优化(前端部分 1)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1951 2022-07-20 18:07:16 +08:00
75e032b1f9 feat:【光环助手v5.12.0】前端优化汇总7月第3周(7)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1976 2022-07-20 15:12:08 +08:00
lyr
7786a1b2a6 feat:【光环助手v5.12.0】前端优化汇总7月第3周(6)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1976 2022-07-19 16:56:40 +08:00
abd854ac3b fix: 【光环助手V5.12.0】端内兼容适配短链接(0718测试反馈) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1945 2022-07-19 15:03:34 +08:00
lyr
96d60fefd4 fix:【光环助手V5.12.0】社区相关优化-第八期(第2点 长按时间修改为1秒) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1943#note_159827 2022-07-19 13:47:32 +08:00
681c26a6a3 Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-07-19 10:00:04 +08:00
ef72119a48 fix: 提交遗漏的代码 2022-07-19 09:59:49 +08:00
lyr
051371b0d8 feat:【光环助手V5.12.0】游戏专题功能优化(前端部分 1(优化列表Item刷新逻辑)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1950 2022-07-19 09:39:12 +08:00
lyr
2d5420efec feat:【光环助手V5.12.0】游戏专题功能优化(前端部分 1(增加列表Item刷新逻辑)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1950 2022-07-18 18:34:54 +08:00
59cc581645 fix: 【光环助手V5.12.0】端内兼容适配短链接(0718测试反馈) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1945 2022-07-18 17:07:48 +08:00
140012e000 chore: 版本更新至 5.11.1 2022-07-18 16:38:44 +08:00
dd29cd586f Merge remote-tracking branch 'origin/legacy-release' into release
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/SearchActivity.kt
#	app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
#	dependencies.gradle
2022-07-18 16:12:02 +08:00
lyr
cbc65e4ccd fix:【光环助手V5.10.0】畅玩助手数据埋点(20220713测试补充 1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1872#note_159670 2022-07-18 14:41:37 +08:00
lyr
5f337e3905 chore: 更新Loghub SDK至2.6.4 2022-07-18 13:56:34 +08:00
20eb18d3f0 feat: 【光环助手V5.12.0】版块内容列表优化(2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1948 2022-07-18 10:28:59 +08:00
e6191e8c37 feat: 【光环助手V5.12.0】版块内容列表优化(1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1948 2022-07-15 18:09:56 +08:00
lyr
47b0361401 feat:【光环助手V5.12.0】社区相关优化-第八期(3(优化逻辑)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1943 2022-07-15 17:36:04 +08:00
lyr
d4a9f2ab41 feat:【光环助手V5.12.0】游戏专题功能优化(前端部分 1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1950 2022-07-15 14:58:16 +08:00
8088627de3 Merge branch 'hotfix-v5.10.4-554-crash_log_feedback' into 'legacy-release'
fix: 修复反馈的闪退记录有机率不能上报到后台的问题

See merge request halo/android/assistant-android!292
2022-07-15 14:32:50 +08:00
1042ed675f fix: 修复反馈的闪退记录有机率不能上报到后台的问题 2022-07-15 14:31:37 +08:00
cad0233509 Merge branch 'hotfix-v5.10.4-554-crashes' into 'legacy-release'
fix: 修复游戏详情副标题、查看大图页面的闪退问题

See merge request halo/android/assistant-android!291
2022-07-15 11:17:39 +08:00
bbf20c20a2 fix: 修复游戏详情副标题、查看大图页面的闪退问题 2022-07-15 10:42:18 +08:00
5e662ef5fe Merge branch 'hotfix-v5.10.4-554-generic_crashs' into 'legacy-release'
捕抓一些非关键异常

See merge request halo/android/assistant-android!290
2022-07-15 10:41:19 +08:00
01830c7e81 fix: 捕抓插入数据库异常 2022-07-15 10:39:26 +08:00
dd2116a12b fix: 捕抓跳转 QQ 反馈的异常 2022-07-15 10:39:02 +08:00
lyr
89ead6b348 feat:【光环助手V5.12.0】搜索管理功能优化(前端部分 2)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1951 2022-07-15 09:13:03 +08:00
5f014f6f6b feat: 【光环助手V5.12.0】首页加载速度优化(整合接口) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1919 2022-07-14 16:13:07 +08:00
772d5de3d9 Merge branch 'hotfix-v5.10.4-554-libao_crash' into 'legacy-release'
修改礼包搜索闪退问题

See merge request halo/android/assistant-android!289
2022-07-14 10:15:48 +08:00
8f55051748 fix: 修改礼包搜索闪退问题 2022-07-14 10:12:40 +08:00
e8553116b6 fix:【夜间模式】UI测试调整问题汇总(7月第1周)(0706补充15)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-13 17:38:13 +08:00
b16fcb6725 fix: 修复点击下载完成启动悬浮窗无法启动游戏的问题 2022-07-13 17:09:16 +08:00
lyr
e42fb2ab66 fix:【光环助手V5.12.0】游戏专题功能优化(修改专题默认显示下载按钮的值) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1950 2022-07-13 16:45:37 +08:00
32574ba33a fix: 【光环助手V5.12.0】端内兼容适配短链接(0713测试反馈) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1945 2022-07-13 16:40:29 +08:00
lyr
1a734c32a4 feat:【光环助手V5.12.0】游戏专题功能优化(前端部分(大致完成)) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1950 2022-07-13 16:35:36 +08:00
764e6bb6fb fix:【夜间模式】UI测试调整问题汇总(7月第1周)(0706补充15)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-13 15:08:07 +08:00
d695eefbe8 fix: 修复畅玩管理页的页面刷新问题 2022-07-13 14:59:51 +08:00
b0491f48d6 chore: 版本更新至 5.12.0 2022-07-13 14:03:53 +08:00
15885fa6b0 fix:【夜间模式】UI测试调整问题汇总(7月第1周)(0706补充13、15、16)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-13 11:56:21 +08:00
00f90d3617 fix: block focus 避免更新时出现奇怪滚动 2022-07-13 10:10:32 +08:00
47beb3eeb2 fix: 移除冗余刷新 2022-07-12 17:35:24 +08:00
e41b6e4430 feat: 【光环助手V5.12.0】端内兼容适配短链接 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1945 2022-07-12 17:07:10 +08:00
f72095efc1 fix: 修复未安装畅玩更新重复进入时出现错误提示的问题 2022-07-12 16:52:03 +08:00
163ffd9308 Merge branch 'hotfix-v5.11.0-570-game_detail_scroll_top_crash' into 'release'
fix:修复游戏详情页点击标题栏回到顶部时的数组越界问题

See merge request halo/android/assistant-android!288
2022-07-12 15:40:42 +08:00
762c43bd6f fix: 修复重新下载取消任务时会触发异常安装的问题,修复未下载完成的任务也可能触发安装的问题 2022-07-12 15:39:00 +08:00
lyr
0660e132aa fix:修复游戏详情页点击标题栏回到顶部时的数组越界问题 2022-07-12 15:24:09 +08:00
aa0f27c61b ci: suppress SonarQube 问题 2022-07-12 10:59:40 +08:00
adb6691818 曝光统计添加毫秒时间戳字段 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1953 2022-07-12 10:49:20 +08:00
b0f2d3f068 chore: 版本更新至 5.10.4 2022-07-11 14:36:43 +08:00
a25cd0a07f Merge branch 'hotfix-v5.10.3-553-download_red_dot_and_input_keyboard' into 'legacy-release'
fix: 还原 LG Library, 处理首页红点问题, 处理进入搜索页的软键盘唤起问题

See merge request halo/android/assistant-android!287
2022-07-11 14:34:46 +08:00
1fc43ca588 fix: 还原 LG Library, 处理首页红点问题, 处理进入搜索页的软键盘唤起问题 2022-07-11 14:31:45 +08:00
lyr
c1fd2e48db feat:【光环助手V5.12.0】社区相关优化-第八期(1、2、3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1943 2022-07-11 14:24:50 +08:00
3ed5795205 fix:【夜间模式】UI测试调整问题汇总(7月第1周)(0706补充)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-11 10:16:23 +08:00
2be268b2e6 Merge branch 'hotfix-v5.11.0-570-image_viewer' into 'release'
fix: 修复游戏详情查看大图动画位置出现异常的问题

See merge request halo/android/assistant-android!286
2022-07-08 16:48:28 +08:00
8f5aee3a8c fix: 修复游戏详情查看大图动画位置出现异常的问题 2022-07-08 16:45:48 +08:00
f11f391940 Merge remote-tracking branch 'origin/dev' into dev-5.12.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeActivity.kt
2022-07-08 15:14:01 +08:00
ad12b3f9ef build: 补充编译时需要移除的夜间模式资源位置 2022-07-08 14:53:01 +08:00
7bf56cc342 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-07-08 14:05:13 +08:00
176d4dd940 fix: 版本更新至 5.10.3 2022-07-08 13:36:55 +08:00
8756144018 fix:【夜间模式】UI测试调整问题汇总(7月第1周)(第6点遗漏)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-08 11:57:39 +08:00
dfba5cdf99 fix:【夜间模式】UI测试调整问题汇总(7月第1周)(第6点遗漏)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-08 11:57:39 +08:00
3deb83ac8d fix:【夜间模式】UI测试调整问题汇总(7月第1周)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-08 11:57:38 +08:00
e7c4ffdd8a Merge remote-tracking branch 'origin/release' into dev 2022-07-08 11:51:47 +08:00
05747c2ecf Merge branch 'hotfix-v5.10.2-552-provider-crash' into 'release'
fix: contentProvider部分机型闪退

See merge request halo/android/assistant-android!285
2022-07-08 11:50:08 +08:00
3241ff9935 fix: contentProvider部分机型闪退 2022-07-08 11:49:39 +08:00
6e40349f20 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-07-08 11:31:43 +08:00
0675eab81a Merge branch 'hotfix-v5.10.2-552-crashes' into 'release'
fix: 修复游戏详情副标题、查看大图页面的闪退问题

See merge request halo/android/assistant-android!284
2022-07-08 11:30:13 +08:00
8c9b1371dc fix: 修复游戏详情副标题、查看大图页面的闪退问题 2022-07-08 11:24:50 +08:00
e6daee0faf Merge branch 'hotfix-v5.10.2-552-fix_download_hint' into 'release'
fix: 修复首页红点更新异常

See merge request halo/android/assistant-android!283
2022-07-08 11:03:15 +08:00
45d8e5a869 fix: 修复首页红点更新异常 2022-07-08 11:02:30 +08:00
f4d16ff8f9 Merge branch 'cherry-pick-919db31e-2' into 'feature-issues1801'
fix:修复升级Loghub数据库时未添加默认值的错误

See merge request halo/android/assistant-android!282
2022-07-08 09:30:23 +08:00
lyr
28266cd06d fix:修复升级Loghub数据库时未添加默认值的错误
(cherry picked from commit 919db31ec3)
2022-07-08 09:29:39 +08:00
1c0b8b1382 Merge branch 'cherry-pick-919db31e' into 'dev-5.12.0'
fix:修复升级Loghub数据库时未添加默认值的错误

See merge request halo/android/assistant-android!281
2022-07-08 09:29:09 +08:00
lyr
35506c75f5 fix:修复升级Loghub数据库时未添加默认值的错误
(cherry picked from commit 919db31ec3)
2022-07-08 09:28:48 +08:00
lyr
919db31ec3 fix:修复升级Loghub数据库时未添加默认值的错误 2022-07-08 09:28:07 +08:00
f716712f14 Merge branch 'hotfix-v5.10.2-552-disk_full_crash' into 'release'
fix:修复下载添加Worker时因手机可用存储空间不足导致的闪退问题

See merge request halo/android/assistant-android!280
2022-07-07 18:21:59 +08:00
lyr
30a110e83b fix:修复下载添加Worker时因手机可用存储空间不足导致的闪退问题 2022-07-07 18:18:07 +08:00
c62dd66ad7 fix: 修复因混淆后导致的类型转换错误问题 2022-07-07 16:23:38 +08:00
ff876a55ba fix: 全局替换fragment的tag为xx.class.java.name 2022-07-07 16:22:09 +08:00
c084f786f9 Merge remote-tracking branch 'origin/feature-issues1801' into feature-issues1801 2022-07-07 16:18:18 +08:00
5e36bd7955 style: 整理首页最近在玩代码 2022-07-07 16:18:10 +08:00
8b00b1bb2a Merge branch 'hotfix-v5.10.2-552-class_cast_error' into 'release'
修复因混淆后导致的类型转换错误问题

See merge request halo/android/assistant-android!279
2022-07-07 15:32:04 +08:00
923bdc1639 fix: 修复因混淆后导致的类型转换错误问题 2022-07-07 15:18:22 +08:00
lyr
36e99a4a7e fix:【光环助手V5.10.0】畅玩助手数据埋点(埋点字段使用平铺方式上传) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1872#note_157925 2022-07-07 14:27:59 +08:00
e0f5a668ab Merge branch 'cherry-pick-78d5d4b3-2' into 'feature-issues1801'
feat:升级Loghub数据库

See merge request halo/android/assistant-android!278
2022-07-07 14:16:27 +08:00
lyr
6f01610d10 feat:升级Loghub数据库
(cherry picked from commit 78d5d4b39f)
2022-07-07 14:16:00 +08:00
b94c1eedfa Merge branch 'cherry-pick-78d5d4b3' into 'dev-5.12.0'
feat:升级Loghub数据库

See merge request halo/android/assistant-android!277
2022-07-07 14:15:31 +08:00
lyr
2747857db3 feat:升级Loghub数据库
(cherry picked from commit 78d5d4b39f)
2022-07-07 14:14:11 +08:00
0b1991e34d Merge branch 'hotfix-v5.10.2-552-toolbox' into 'release'
fix:修复工具箱页面回到前台时出现空白的最近使用列表的问题

See merge request halo/android/assistant-android!276
2022-07-07 14:13:24 +08:00
lyr
78d5d4b39f feat:升级Loghub数据库 2022-07-07 14:09:20 +08:00
83199b6a4e fix:修复工具箱页面回到前台时出现空白的最近使用列表的问题 2022-07-07 14:07:35 +08:00
0b51155177 fix: 尝试提高下载回调刷新频率 2022-07-07 11:36:49 +08:00
32f583825a fix: 修复畅玩游戏管理在玩页更新不及时的问题 2022-07-07 11:33:51 +08:00
14e2784ab8 fix: 修复畅玩安装异常时无任何反馈的问题 2022-07-07 11:19:22 +08:00
d2b2f5e306 fix: 修复畅玩管理下载页进入时多次刷新的问题 2022-07-07 11:18:57 +08:00
d78de995b2 Merge branch 'cherry-pick-040de6d4-2' into 'feature-issues1801'
feat:增加平铺埋点功能

See merge request halo/android/assistant-android!275
2022-07-07 10:31:16 +08:00
lyr
ad4ca04db3 feat:增加平铺埋点功能
(cherry picked from commit 040de6d458)
2022-07-07 10:30:12 +08:00
36e246fd30 Merge branch 'cherry-pick-040de6d4' into 'dev-5.12.0'
feat:增加平铺埋点功能

See merge request halo/android/assistant-android!274
2022-07-07 10:28:35 +08:00
lyr
59e913c529 feat:增加平铺埋点功能
(cherry picked from commit 040de6d458)
2022-07-07 10:27:36 +08:00
lyr
040de6d458 feat:增加平铺埋点功能 2022-07-07 10:26:29 +08:00
66d0dba9c6 fix: 修复详情页底栏高度异常的问题 2022-07-06 17:45:58 +08:00
877490ce01 fix: 优化畅玩游戏管理的列表数据显示逻辑 2022-07-06 17:45:58 +08:00
cf12312d97 feat: 使用独立的数据库来存已安装的畅玩游戏 2022-07-06 17:45:58 +08:00
1e7edd9e85 fix: 修复首页和专题列表页切换页面频繁闪烁的问题 2022-07-06 17:45:58 +08:00
3bd4427348 fix!: 修复畅玩游戏的更新问题 (修改了通用的下载功能,可能会有其它次生 bug) 2022-07-06 17:45:58 +08:00
18013fe582 fix: 补充处理部分遗漏的下载状态 2022-07-06 17:45:58 +08:00
ebb22d8d13 fix: 修复畅玩工具更新不及时的问题 2022-07-06 17:45:58 +08:00
20161e6ca1 fix: 合并冲突 2022-07-06 17:45:58 +08:00
68d32ae429 fix: 修复更新畅玩游戏有概率出现重复更新的问题 2022-07-06 17:45:58 +08:00
5a377913bb fix: 修复非插件更新会丢失角标的问题 2022-07-06 17:45:58 +08:00
lyr
8e5ceb1e0e feat:【光环助手V5.10.0】畅玩助手数据埋点 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1872 2022-07-06 17:45:58 +08:00
034db094e1 fix: 修复因为获取已安装列表异常造成的任务重下问题 2022-07-06 17:45:58 +08:00
541ebe8a29 fix: 修复进入畅玩游戏管理页面过慢的问题 2022-07-06 17:45:58 +08:00
8114e2a74a fix: 修复首页最近在玩的排序问题 2022-07-06 17:45:58 +08:00
27350c5c70 fix: 修复游戏详情页点击更新与其它位置点击更新效果不一样的问题 2022-07-06 17:45:58 +08:00
2c3a395b50 fix: 修复畅玩空间和畅玩游戏的更新问题
feat: 添加暴力的畅玩游戏备份/恢复逻辑
2022-07-06 17:45:58 +08:00
983bbfc309 fix: 修复下载状态更新不及时的问题 2022-07-06 17:45:57 +08:00
d4a651ce63 fix: 编译异常 2022-07-06 17:45:57 +08:00
c091a47900 fix: 微调 UI 2022-07-06 17:45:57 +08:00
a488608969 fix: 调整游戏详情页按钮文案 2022-07-06 17:45:57 +08:00
e715a46285 fix: 修复部分位置无法触发畅玩游戏丢失重下载的问题 2022-07-06 17:45:57 +08:00
f9a2d56acc fix: 调整畅玩游戏下载完成弹窗高度 2022-07-06 17:45:57 +08:00
dc8280c025 fix: 修复最近在玩区域闪烁的问题 2022-07-06 17:45:57 +08:00
4e53b1fb91 fix: 修复更新判断异常和首页最近在玩的排序问题 2022-07-06 17:45:57 +08:00
0af479e441 fix: 修复误判断造成的重复下载问题 2022-07-06 17:45:57 +08:00
559164ebce fix: 修复部分 UI 问题 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1923#note_154774 2022-07-06 17:45:57 +08:00
9f694085fd fix: 修复部分逻辑问题和 UI 问题 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1923#note_155241 2022-07-06 17:45:57 +08:00
b5c897170b fix: 畅玩服务连接异常问题 2022-07-06 17:45:57 +08:00
72926f5046 fix: 修复部分 UI 问题 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1923#note_155108 2022-07-06 17:45:57 +08:00
ee21dbc643 fix: 修复部分代码问题 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1923#note_154823 2022-07-06 17:45:57 +08:00
0f9b3c94f0 fix: 修复部分 UI 问题 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1923#note_154774 2022-07-06 17:45:57 +08:00
36704af531 feat: UI 细节完善 2022-07-06 17:45:57 +08:00
6ae44c34d1 fix: 修复首页更新不及时的问题 2022-07-06 17:45:57 +08:00
dce756e53f feat: 添加假的畅玩安装页面 2022-07-06 17:45:57 +08:00
c4035d319e feat: 将畅玩存储权限检测移到安装时 2022-07-06 17:45:57 +08:00
f37200f902 feat: 畅玩游戏绕过浏览器下载判断 2022-07-06 17:45:57 +08:00
3dc65fb415 fix: 修复畅玩助手下载进度显示异常 2022-07-06 17:45:57 +08:00
c646251b34 feat: 支持点击通知栏跳转畅玩下载管理页面 2022-07-06 17:45:57 +08:00
eb1def1768 feature: 完成管理页简单的下载按钮样式 2022-07-06 17:45:57 +08:00
27471cbf61 fix: 修复首页最近在玩 item 样式点击后不更新的问题 2022-07-06 17:45:57 +08:00
e59e1c1e65 feat: 对接畅玩反馈接口 2022-07-06 17:45:57 +08:00
1eeec1c89b feat: 实现畅玩游戏更新 2022-07-06 17:45:57 +08:00
90e947b65d fix: 游戏列表 item 样式显示异常 2022-07-06 17:45:57 +08:00
a96fe9144a 切换到 64 位畅玩空间 2022-07-06 17:45:57 +08:00
4d06707fab feat: 完成首页最近在玩简单的排序 2022-07-06 17:45:57 +08:00
ab202abe0a feat: 首页简单对接下载进度 2022-07-06 17:45:57 +08:00
56c1dbb6cb fix: 处理合并冲突 2022-07-06 17:45:57 +08:00
83afd7448f 添加简单首页列表项占位 2022-07-06 17:45:57 +08:00
477ffa0c33 添加简单首页列表项 2022-07-06 17:45:57 +08:00
57668ec97d 合并未接入防沉迷的代码 2022-07-06 17:45:57 +08:00
26b0f33f1c 添加简单的更新控制 2022-07-06 17:45:57 +08:00
8e0dcd74e5 补充启动(畅玩)的判断代码 2022-07-06 17:45:57 +08:00
88842de6c7 完成粗暴的安装启动流程 2022-07-06 17:45:57 +08:00
b0647bf3a9 合并 5.10.0 代码 2022-07-06 17:45:57 +08:00
7837318390 首页添加最近在玩占位代码 2022-07-06 17:45:57 +08:00
c7143a6f89 完成简陋的首页最近畅玩 item UI & 调整原有错误的颜色命名 2022-07-06 17:45:57 +08:00
97219323d3 添加部分简陋的 UI 2022-07-06 17:45:57 +08:00
417633b623 调整部分点击逻辑 2022-07-06 17:45:56 +08:00
2f35e6ac56 rebase to 5.10.0 分支 2022-07-06 17:45:56 +08:00
331e4fc410 对接部分接口 2022-07-06 17:45:56 +08:00
25768d8cae 完成粗糙的畅玩游戏详情 UI 2022-07-06 17:45:56 +08:00
9d00e53b73 添加畅玩管理页 2022-07-06 17:45:56 +08:00
3ef9a38342 添加游戏加载完成提醒浮窗工具类 2022-07-06 17:45:56 +08:00
898f72a218 简单对接空间助手接口 2022-07-06 17:45:56 +08:00
49091b7a72 添加简单的交互工具类 2022-07-06 17:45:09 +08:00
670f840be1 添加简单的 V 空间工具类 2022-07-06 17:45:09 +08:00
92cab5ae6a 添加 VSPACE submodule 2022-07-06 17:45:09 +08:00
614a57580c 添加 vspace submodule 2022-07-06 17:45:09 +08:00
ba763e9d9c fix:【夜间模式】UI测试调整问题汇总(7月第1周)(第6点遗漏)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-06 15:11:39 +08:00
928bb54f27 fix:【夜间模式】UI测试调整问题汇总(7月第1周)(第6点遗漏)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-06 14:54:30 +08:00
db1da76ff6 fix: 【光环助手V5.11.0】同步正式相关问题汇总(0706反馈) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1958 2022-07-06 13:52:30 +08:00
425fcf0554 fix: 修复5.0以下系统夜间模式切换浮窗按钮显示不正常的问题 2022-07-06 11:05:10 +08:00
89c2a58914 fix:【夜间模式】UI测试调整问题汇总(7月第1周)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1957 2022-07-06 09:31:56 +08:00
850b80688a fix:修复矢量图在5.0以下系统造成的闪退 2022-07-06 09:23:19 +08:00
60d5f1244e fix: 【光环助手V5.11.0】同步正式相关问题汇总(3) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1958 2022-07-05 17:22:32 +08:00
lyr
979081dd7b fix:【光环助手V5.11.0】同步正式相关问题汇总(2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1958 2022-07-05 11:49:09 +08:00
9348f324d0 chore: 版本更新至 5.10.2 2022-07-04 15:36:31 +08:00
0b2148b105 perf: 移除无用的速度限制代码 2022-07-04 11:59:55 +08:00
427e219677 Merge remote-tracking branch 'origin/release' into dev 2022-07-01 15:32:28 +08:00
d0abf6c536 fix:修复浏览器安装变量未初始化造成的闪退 2022-07-01 15:27:20 +08:00
efbaa821a1 Merge branch 'hotfix-v5.10.1-551-browser_install_crash' into 'release'
fix:修复浏览器安装变量未初始化造成的闪退

See merge request halo/android/assistant-android!273
2022-07-01 15:26:21 +08:00
72d96dae47 fix:修复浏览器安装变量未初始化造成的闪退 2022-07-01 15:24:14 +08:00
9f53652a00 fix:【夜间模式】UI测试调整问题汇总(6月第1周)(0630测试问题汇总) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1901
【夜间模式】UI测试调整问题汇总(6月第2周)(0630测试问题汇总) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1915
2022-07-01 15:19:23 +08:00
7c8670d82c Merge remote-tracking branch 'origin/release' into dev 2022-07-01 14:13:02 +08:00
lyr
fb26e77c78 fix: 修复社区首页获取顶部背景宽高为0的问题 2022-07-01 14:12:21 +08:00
75e7b6620d feat: 添加实名认证页面跳转 scheme 2022-07-01 12:02:40 +08:00
cfd9e61ad2 fix: 处理合并冲突 2022-07-01 11:58:18 +08:00
7d922f9620 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumFragment.kt
#	app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java
#	dependencies.gradle
2022-07-01 11:34:26 +08:00
05bd26605b Merge branch 'hotfix-v5.10.0-551-browser_install' into 'release'
fix:修复某些机型端口占用导致浏览器安装失败的问题

See merge request halo/android/assistant-android!272
2022-06-30 15:16:10 +08:00
a91af5035d fix:修复某些机型端口占用导致浏览器安装失败的问题 2022-06-30 15:12:43 +08:00
e5de70af66 feat: 【光环助手V_5.11.0】国际服游戏下载弹窗优化 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1933 2022-06-30 11:06:12 +08:00
3f7996f523 处理 SonarQube 问题 2022-06-29 13:49:44 +08:00
78b0c2e1cd fix:【夜间模式】UI测试调整问题汇总(6月第2周)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1915 2022-06-29 11:06:06 +08:00
b0047717bf 处理 SonarQube 问题 2022-06-27 09:39:33 +08:00
4f1a18479e fix:【光环助手V5.11.0】多版本下载面板-求版本优化(UI测试问题汇总1-2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1893 2022-06-24 15:07:38 +08:00
3df078bbd6 fix:【光环助手V5.11.0】前端优化汇总6月第3周(8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1928 2022-06-24 13:57:30 +08:00
d841dc635a fix: 修复外部 url 跳转反馈页闪退问题 2022-06-24 12:01:34 +08:00
ea0633e903 fix:【光环助手V5.11.0】多版本下载面板-求版本优化(0622测试1) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1893 2022-06-23 17:51:50 +08:00
cc34fc3a29 fix: 【光环助手V5.11.0】前端优化汇总6月第3周(9-12) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1928 2022-06-23 10:24:04 +08:00
3144c49764 fix:【光环助手V5.11.0】前端优化汇总6月第3周(8) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1928 2022-06-22 16:20:12 +08:00
lyr
45cc25e873 fix:【光环助手V5.11.0】前端优化汇总6月第3周(7(1))https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1928 2022-06-22 14:46:35 +08:00
0fba6239ce Merge branch 'cherry-pick-eb91e53a' into 'dev'
fix:修复社区-论坛滑动轮播图闪退问题

See merge request halo/android/assistant-android!271
2022-06-22 14:25:26 +08:00
lyr
9eb1bc5f4d fix:修复社区-论坛滑动轮播图闪退问题
(cherry picked from commit eb91e53a7b)
2022-06-22 14:24:34 +08:00
56e5fb6a40 fix:【光环助手V5.11.0】多版本下载面板-求版本优化(上传进度改为显示真实进度) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1893 2022-06-22 11:38:24 +08:00
lyr
4b343e0185 fix:【光环助手V5.11.0】前端优化汇总6月第3周(6) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1928 2022-06-21 16:19:17 +08:00
4bcc0bc961 fix: 修改游戏-评论详情底部的阴影显示异常 2022-06-20 16:41:07 +08:00
lyr
952a56508a fix:【光环助手V5.11.0】前端优化汇总6月第3周(1)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1928 2022-06-20 16:34:48 +08:00
47583a1837 feat: 【光环助手V5.11.0】前端优化汇总6月第3周(4) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1928 2022-06-20 15:37:12 +08:00
09a357c1c2 fix: 修复无法切换测试环境和正式环境的问题 2022-06-20 15:18:01 +08:00
73c5da28d3 fix:【光环助手V5.11.0】多版本下载面板-求版本优化(0617测试2) https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1893 2022-06-20 14:04:57 +08:00
9f7514079a Merge branch 'release' of git.shanqu.cc:halo/android/assistant-android into release 2022-06-17 17:36:50 +08:00
8c1f8dd5ec Merge branch 'hotfix-v5.10.0-550-video_comment_ui' into 'release'
修改视频流评论页面无数据显示问题

See merge request halo/android/assistant-android!269
2022-06-17 17:36:12 +08:00
93ce3fcfc8 修改视频流评论页面无数据显示问题 2022-06-17 17:32:55 +08:00
5e11211b4c chore: 版本更新至 5.10.1 2022-06-17 13:53:45 +08:00
a12199f847 Merge branch 'legacy-release-rebase' into 'release'
合并 5.9.x 代码变更

See merge request halo/android/assistant-android!268
2022-06-16 14:48:45 +08:00
64a70c5ab3 fix: 合并冲突 2022-06-16 14:45:18 +08:00
lyr
27a7474c92 1.V5.9.2UI问题 https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1922;
2.fix:修复社区-论坛滑动轮播图闪退问题
2022-06-16 13:59:54 +08:00
eba6b4b660 fix: 修复 OAID 获取异常造成推广包接口失效问题 2022-06-16 13:59:39 +08:00
1ea147d43d feat: 实名认证功能 https://git.shanqu.cc/pm/halo-plugin-issues/-/issues/221 2022-06-16 13:59:39 +08:00
084169db8f Merge branch 'hotfix-release-forum_banner_crash' into 'release'
fix:修复社区-论坛滑动轮播图闪退问题

See merge request halo/android/assistant-android!267
2022-06-16 10:02:41 +08:00
lyr
eb91e53a7b fix:修复社区-论坛滑动轮播图闪退问题 2022-06-16 10:01:31 +08:00
29b31d64e7 fix:【夜间模式】UI测试调整问题汇总(6月第1周)https://git.shanqu.cc/pm/halo/halo-app-issues/-/issues/1901 2022-06-15 17:59:46 +08:00
d5a2b9f705 refactor: 整理闪屏页代码 2022-06-15 15:57:37 +08:00
b34134d9ed fix: 处理部分引导页代码 warning 2022-06-15 09:58:30 +08:00
8d0719f642 perf: 移除首页无用的 MTA 停留时长统计代码 2022-06-15 09:53:50 +08:00
22a09f2775 Merge branch 'hotfix-v5.10.0-550-oaid_null_pointer' into 'release'
fix: 修复 oaid 获取为空时的接口问题

See merge request halo/android/assistant-android!263
2022-06-14 13:46:43 +08:00
ead2f04bd3 fix: 修复 oaid 获取为空时的接口问题 2022-06-14 13:45:24 +08:00
bed6b9190f Merge branch 'hotfix-v5.10.0-550_crashes' into 'release'
修改sentry上的闪退问题

See merge request halo/android/assistant-android!262
2022-06-14 10:58:11 +08:00
d95519252d fix: 修改sentry上的闪退问题 2022-06-14 10:51:35 +08:00
aa21a8b9af build: 暂时关闭 AndResguard 2022-06-14 10:26:25 +08:00
d099181247 chore: 版本更新至 5.11.0 2022-06-14 10:07:56 +08:00
622accea9a Merge remote-tracking branch 'origin/dev' into dev-5.11.0 2022-06-14 10:00:15 +08:00
00627842a6 fix: 合并冲突 2022-06-14 09:38:38 +08:00
198d3d7159 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionAmwayAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionBannerAdapter.kt
#	dependencies.gradle
2022-06-14 09:22:31 +08:00
lyr
c6352aa901 【光环助手v5.11.0】论坛详情页相关优化(1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1880 2022-06-13 17:03:21 +08:00
lyr
f15abb14e2 【光环助手v5.11.0】论坛详情页相关优化(2、3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1880 2022-06-13 16:23:12 +08:00
e3c2d9509a feat:【光环助手V5.11.0】多版本下载面板-求版本优化(遗漏) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1893 2022-06-13 14:58:54 +08:00
93515bdc17 feat:【光环助手V5.11.0】多版本下载面板-求版本优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1893 2022-06-13 11:11:07 +08:00
56ca7631ad feat:【光环助手V5.11.0】多版本下载面板-求版本优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1893 2022-06-13 10:51:47 +08:00
lyr
bde31622b4 fix:修复消息中心页面重建后变空白了问题 2022-06-13 10:18:42 +08:00
00825e7d8e fix: 修复实名认证页面以 X 结尾的身份证号无法去敏的问题 2022-06-13 09:56:33 +08:00
lyr
fb5bbeada6 【光环助手V5.10.0】同步正式环境后测试问题汇总(15)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1900 2022-06-10 11:27:51 +08:00
lyr
6a8757d152 【光环助手V5.10.0】同步正式环境后测试问题汇总(12)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1900 2022-06-09 18:09:13 +08:00
f9c32c3bb7 fix:【光环助手V5.10.0】同步正式环境后测试问题汇总(第5点)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1900 2022-06-09 16:38:38 +08:00
5ca0e26775 fix:【光环助手V5.10.0】同步正式环境后测试问题汇总(第5点测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1900 2022-06-09 10:49:36 +08:00
b87138bf58 feat: 【光环助手v5.11.0】外链分享旧链接替换 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1902 2022-06-09 10:20:49 +08:00
lyr
89563a17ea 【光环助手V5.10.0】同步正式环境后测试问题汇总(0608测试反馈第8点)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1900#note_152656 2022-06-09 10:05:48 +08:00
lyr
931903490a 【光环助手V5.10.0】同步正式环境后测试问题汇总(6)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1900 2022-06-08 16:20:58 +08:00
lyr
4fc2e2a0f0 【光环助手V5.10.0】同步正式环境后测试问题汇总(6、8) 2022-06-08 11:37:01 +08:00
a0180b78d7 build: 修改升级至 AGP7 以后字节码插桩优化不可用 https://git.shanqu.cc/halo/android/assistant-android/-/issues/71 2022-06-07 15:28:20 +08:00
ddbf2a9fba Merge branch 'feature-agp7' into 'dev-5.11.0'
perf: 更新 AGP 到最新的 7.X

See merge request halo/android/assistant-android!259
2022-06-06 14:43:01 +08:00
84fe77c6ac docs: 把 Commit message 规范添加到 README 2022-06-06 14:34:25 +08:00
74455c40a1 fix: 测试用渠道选择异常 2022-06-06 14:30:34 +08:00
9a106534fb fix: 测试用渠道选择异常 2022-06-06 14:29:42 +08:00
eed764b16e Merge branch 'new-issues-66' into 'dev'
优化渠道获取的相关代码

See merge request halo/android/assistant-android!258
2022-06-06 13:46:31 +08:00
3a652b4d4f 优化渠道获取的相关代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/66 2022-06-06 13:46:31 +08:00
3c18ed9a31 Merge branch 'hotfix-v5.9.1-533-minor_ui_tuned' into 'release'
修复游戏详情页下载区域阴影显示异常

See merge request halo/android/assistant-android!257
2022-06-06 10:31:15 +08:00
f02621d564 修复游戏详情页下载区域阴影显示异常 2022-06-06 10:29:13 +08:00
443f7b29c9 【光环助手V5.10.0】游戏副标题相关需求(20220602UI测试补充) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-06-02 20:54:21 +08:00
b926af3b67 为详情页面添加业务 ID (修复businessId为空造成的闪退) https://git.shanqu.cc/halo/android/assistant-android/-/issues/68 2022-06-02 18:10:30 +08:00
f288688951 【光环助手V5.10.0】游戏副标题相关需求(20220602UI测试补充) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-06-02 18:09:30 +08:00
8b78054a05 更新至 AGP7 2022-06-02 17:04:01 +08:00
90e802c03b 处理 SonarQube 问题 2022-06-02 15:08:11 +08:00
lyr
16c091d77a 处理SonarQube问题 2022-06-02 10:29:08 +08:00
abb76e1d4d 修复点开第三方登录页闪退的问题 2022-06-02 09:35:57 +08:00
lyr
0e8cb56b2b 处理SonarQube问题 2022-06-01 17:37:49 +08:00
db51af9493 修复无网络时启动的闪退问题 2022-06-01 17:20:46 +08:00
650734ee9f 修复测试包无法切换至测试环境的问题 2022-06-01 17:20:15 +08:00
a7cd598bba 【光环助手V5.10.0】游戏副标题相关需求(20220601测试补充) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-06-01 15:51:12 +08:00
5cff7337d6 添加简陋的日夜间模式切换浮窗 2022-06-01 15:22:03 +08:00
d592b1104e 修复 BaseActivity 部分测试代码会出现在正式包的问题 2022-06-01 15:07:39 +08:00
4d1411e5a1 Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-06-01 13:50:04 +08:00
0afefdffb6 将BUILD_TIME、IS_NIGHT_MODE_ON移动到module_common/build.gradle中 2022-06-01 11:56:42 +08:00
fdbdd1bd02 处理SonarQube问题 2022-06-01 11:06:52 +08:00
7bef39e71a 处理SonarQube问题 2022-06-01 10:22:34 +08:00
7e237d963b 【光环助手V5.10.0】游戏副标题相关需求(20220531UI测试 遗漏) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-06-01 10:10:14 +08:00
b7d1a989ce 【光环助手V5.10.0】游戏副标题相关需求(20220531UI测试2、测试反馈补充) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-05-31 21:51:29 +08:00
30a3cb6b35 【光环助手V5.10.0】游戏副标题相关需求(20220531UI测试2、测试反馈补充) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-05-31 21:16:48 +08:00
lyr
924a3e6698 【光环助手v5.10.0】消息中心-新增评论详情页(0531新增优化) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829#note_151082 2022-05-31 19:31:32 +08:00
587237ab51 为详情页面添加业务 ID (修改为onActivityStarted时记录当前activity) https://git.shanqu.cc/halo/android/assistant-android/-/issues/68 2022-05-31 17:46:32 +08:00
79f04baae2 【光环助手V5.10.0】游戏副标题相关需求(20220531UI测试1-2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-05-31 17:38:34 +08:00
lyr
8df30d586b 【光环助手v5.10.0】消息中心-新增评论详情页(同步游戏单类型右上角选项操作逻辑) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829 2022-05-31 17:12:44 +08:00
lyr
db536c7a9b 优化游戏单详情页面网络错误显示 2022-05-31 17:06:49 +08:00
221447d6d2 【光环助手V5.10.0】游戏副标题相关需求(20220531测试反馈1-2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-05-31 16:46:38 +08:00
7995f14050 为详情页面添加业务 ID https://git.shanqu.cc/halo/android/assistant-android/-/issues/68 2022-05-31 16:09:10 +08:00
b340397716 【光环助手V5.10.0】游戏副标题相关需求(修复游戏搜索不显示副标题的问题) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-05-31 15:30:14 +08:00
lyr
83d0f14c6a 【光环助手v5.10.0】消息中心-新增评论详情页(优化右上角选项操作逻辑) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829 2022-05-31 15:09:07 +08:00
lyr
4de770ede8 【光环助手v5.10.0】消息通知相关优化(【光环助手v5.10.0】消息通知相关优化-UI测试问题汇总) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830#note_150071 2022-05-31 12:52:52 +08:00
084ba2208a 修复游戏详情页下载区域阴影显示异常 2022-05-31 11:58:19 +08:00
ae3da941eb 【光环助手v5.10.0】前端优化汇总5月第3周(8) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-31 11:56:26 +08:00
f9bcb1c559 【光环助手V5.10.0】前端优化汇总5月第2周(0527UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1845 2022-05-31 11:44:32 +08:00
lyr
97a37ef4ed 【光环助手v5.10.0】前端优化汇总5月第3周 (19) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858#note_150514 2022-05-31 09:23:43 +08:00
lyr
0706096792 【光环助手v5.10.0】前端优化汇总5月第3周 (UI测试 11.遗留、16) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858#note_150721 2022-05-30 17:49:06 +08:00
005ec81929 【光环助手V5.10.0】游戏副标题相关需求 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-05-30 17:11:01 +08:00
lyr
7671e0b4e1 【光环助手v5.10.0】前端优化汇总5月第3周 (15) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858#note_150514 2022-05-30 15:58:09 +08:00
lyr
7daee24e10 【光环助手v5.10.0】前端优化汇总5月第3周 (UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858#note_150514 2022-05-30 15:40:08 +08:00
1bd2b462c3 Merge branches 'dev' and 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-05-30 14:32:48 +08:00
8fb2b1c829 版本更新至 5.9.1 2022-05-30 11:53:00 +08:00
1ce24661ad 【光环助手V5.10.0】游戏单活动:游戏单征集计划vol.1(首页视频广告添加上报入口)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1779 2022-05-30 11:51:40 +08:00
lyr
33fa255fd4 【光环助手v5.10.0】消息中心-新增评论详情页(0525测试反馈 1 / 0526测试反馈 2 / 0527测试反馈 6) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829 2022-05-30 11:45:50 +08:00
lyr
64371f3b9a 【光环助手v5.10.0】消息中心-新增评论详情页(0524测试反馈 1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829#note_149715 2022-05-30 09:46:42 +08:00
lyr
8e00b1c67e 【光环助手v5.10.0】前端优化汇总5月第3周 (10-18 除15点) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-27 18:43:30 +08:00
0b56e19da6 【光环助手V5.10.0】游戏副标题相关需求 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1839 2022-05-27 18:34:14 +08:00
0ea7edb60e 【光环助手V5.10.0】前端优化汇总5月第2周(0527UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1845 2022-05-27 18:31:22 +08:00
84b876394d Merge branch 'hotfix-v5.9.0-532-crashes' into 'release'
修复首页游戏单轮播引发的一些闪退

See merge request halo/android/assistant-android!256
2022-05-27 18:27:22 +08:00
3fb031c329 修复首页游戏单轮播引发的一些闪退 2022-05-27 18:25:22 +08:00
f3f51c5344 revert commit 375b1e4b 2022-05-27 18:18:46 +08:00
e4267336b8 Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-05-27 18:13:41 +08:00
4885abbb32 修改首页有多个论坛tab导致跳转错误 2022-05-27 18:13:36 +08:00
e46afac397 Merge branch 'hotfix-v5.9.0-532-crashes' into 'release'
修复首页游戏单安利墙引发的一些闪退

See merge request halo/android/assistant-android!255
2022-05-27 17:46:49 +08:00
fdf2c80667 修复首页游戏单安利墙引发的一些闪退 2022-05-27 17:34:01 +08:00
f994b03d06 【光环助手V5.10.0】游戏单活动:游戏单征集计划vol.1(0527测试2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1779 2022-05-27 17:16:18 +08:00
fd59e3b838 处理合并冲突 2022-05-27 16:23:23 +08:00
c7d5dbb59c Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-05-27 16:08:57 +08:00
120e98a81f Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	app/src/main/java/com/gh/common/util/NewLogUtils.kt
2022-05-27 10:27:14 +08:00
8964ce704c 【光环助手V5.10.0】游戏单活动:游戏单征集计划vol.1(0526测试1、3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1779 2022-05-26 16:59:57 +08:00
lyr
15f2fe8e63 【光环助手v5.10.0】消息通知相关优化(埋点部分) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830 2022-05-26 16:57:30 +08:00
lyr
3500da75fa 删除多余代码 2022-05-26 15:55:02 +08:00
lyr
26f45d343b 【光环助手v5.10.0】消息中心-赞同/邀请消息通知样式优化(完善展示) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1831#note_149932 2022-05-26 15:15:45 +08:00
lyr
1582f449bd 【光环助手v5.10.0】消息中心-新增评论详情页(完善右上角选项) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829 2022-05-26 15:13:05 +08:00
a195ea9889 【光环助手V5.10.0】游戏单活动:游戏单征集计划vol.1(增加js获取入口方法)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1779 2022-05-26 12:00:11 +08:00
0712dfc3be Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-05-26 11:19:19 +08:00
56946a1212 【光环助手V5.10.0】数据埋点需求(0526测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1835 2022-05-26 11:09:13 +08:00
d9fcdbb7c4 Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-05-25 18:14:00 +08:00
lyr
521e8fead8 【光环助手v5.10.0】消息中心-新增评论详情页(0524测试反馈 7、8) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829#note_149715 2022-05-25 18:10:23 +08:00
a8fa9e50cc 【光环助手V5.10.0】数据埋点需求(0524测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1835 2022-05-25 16:21:26 +08:00
lyr
b7d3eb308b 【光环助手v5.10.0】消息通知相关优化(区分普通帖/视频贴的评论回复和评论回复的回复) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830#note_149103 2022-05-25 10:41:54 +08:00
lyr
2c712da2b9 【光环助手v5.10.0】消息通知相关优化(区分普通帖/视频贴的评论回复和评论回复的回复) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830#note_149103 2022-05-25 10:40:03 +08:00
lyr
dfffaf0f15 【光环助手v5.10.0】消息中心-赞同/邀请消息通知样式优化(邀请部分) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1831 2022-05-25 10:29:06 +08:00
054061a4f7 【光环助手V5.10.0】游戏库功能优化(0524测试2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1834 2022-05-25 09:08:33 +08:00
lyr
ed28614abb 【光环助手v5.10.0】消息通知相关优化(修改评论消息的父评论的图片展示和点赞消息的图片展示) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830 2022-05-24 19:07:38 +08:00
lyr
30f2cfd32d 【光环助手v5.10.0】消息中心-赞同/邀请消息通知样式优化(点赞部分) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1831 2022-05-24 18:13:33 +08:00
d12a1037a2 版本更新至 5.9.0-532 2022-05-24 17:51:10 +08:00
1ded43174a Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-05-24 17:49:33 +08:00
e21769eea8 修改游戏库tab显示问题 2022-05-24 15:13:36 +08:00
lyr
1c4ca0e1bc 【光环助手v5.10.0】消息通知相关优化(评论列表仅首次进入时接口增加"top_comment_id"参数) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830 2022-05-24 14:14:07 +08:00
lyr
dbd3530019 【光环助手v5.10.0】评论回复相关优化(一)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1847 2022-05-24 10:53:18 +08:00
38d1646fc0 处理部分 SonarQube 问题 2022-05-24 10:22:09 +08:00
lyr
4a9a955841 【光环助手v5.10.0】个人主页-回答跳转优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1827 2022-05-23 18:56:51 +08:00
71d5207ecd Merge branch 'cherry-pick-7a86e44b' into 'dev'
【光环助手v5.10.0】消息通知相关优化(除埋点外完成) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830

See merge request halo/android/assistant-android!254
2022-05-23 16:56:09 +08:00
lyr
d45538d1f9 【光环助手v5.10.0】消息通知相关优化(除埋点外完成) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830
(cherry picked from commit 7a86e44be127f91c42e02a6bd4adf2b0b04af22a)
2022-05-23 16:46:14 +08:00
44e5b218e3 模块/组件化前期改造 https://git.shanqu.cc/halo/android/assistant-android/-/issues/64 2022-05-23 16:07:46 +08:00
0e0689a90e Merge remote-tracking branch 'origin/dev-5.10.0' into dev 2022-05-23 11:42:27 +08:00
670d0100c8 Merge remote-tracking branch 'origin/dev' into dev 2022-05-23 11:38:34 +08:00
cf2de0449e 处理部分 SonarQube 问题 2022-05-23 11:38:29 +08:00
ec9797e932 模块/组件化前期改造 https://git.shanqu.cc/halo/android/assistant-android/-/issues/64 2022-05-23 11:33:38 +08:00
04f2312e03 处理 SonarQube 问题 2022-05-23 11:32:33 +08:00
e57d15d650 Merge remote-tracking branch 'origin/dev-5.10.0' into dev
# Conflicts:
#	app/src/main/java/com/gh/common/view/RichEditor.java
#	app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerViewModel.kt
2022-05-23 10:47:18 +08:00
c99b5d9940 【光环助手V5.10.0】前端优化汇总5月第2周(2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1845 2022-05-23 10:35:22 +08:00
056400d4d1 Merge branch 'dev' into 'release'
累积变更

See merge request halo/android/assistant-android!253
2022-05-21 16:02:02 +08:00
26cbdeaf2d Merge branch 'feature-issues1865' into 'release'
【合规相关】单机游戏内实名校验功能(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1865

See merge request halo/android/assistant-android!252
2022-05-21 15:58:45 +08:00
6a5f7f8284 【合规相关】单机游戏内实名校验功能(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1865 2022-05-21 15:57:23 +08:00
lyr
7f68763047 【光环助手v5.10.0】消息通知相关优化(处理评论字段冲突) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830 2022-05-20 19:00:15 +08:00
lyr
6a1503d8c9 【光环助手v5.10.0】消息通知相关优化(大致完成) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830 2022-05-20 18:50:55 +08:00
c05dfebf1b 模块/组件化前期改造(解耦ToolBarActivity) https://git.shanqu.cc/halo/android/assistant-android/-/issues/64 2022-05-20 17:00:50 +08:00
6401711f7e 修复无法切换测试环境和正式环境的问题 2022-05-20 16:56:04 +08:00
f272e486f8 【光环助手v5.10.0】前端优化汇总5月第3周(9) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-20 11:40:29 +08:00
lyr
b815a17747 1.【光环助手v5.10.0】消息通知相关优化(完成UI和部分跳转) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1830
2.【光环助手v5.10.0】消息中心-新增评论详情页(大致完成) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1829
2022-05-19 18:49:50 +08:00
dec1deada9 【光环助手V5.10.0】数据埋点需求 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1835 2022-05-19 18:27:47 +08:00
aa580c27cc 【光环助手V5.10.0】游戏单活动:游戏单征集计划vol.1(增加跳转创建游戏单加入重复游戏的判断)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1779 2022-05-19 18:10:00 +08:00
375b1e4b4a 【光环助手V5.10.0】更新通用模块的跳转链接类型 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1838 2022-05-19 16:37:03 +08:00
f9ebb5342c 【光环助手V5.10.0】数据埋点需求 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1835 2022-05-19 16:07:26 +08:00
7b0514c055 处理 SonarQube 问题 2022-05-19 15:18:00 +08:00
909e7f33a8 Merge branch 'hotfix-v5.9.0-531-night_mode_switch' into 'release'
关闭遗漏的夜间模式切换代码

See merge request halo/android/assistant-android!251
2022-05-19 11:54:24 +08:00
677511b119 关闭遗漏的夜间模式切换代码 2022-05-19 11:52:57 +08:00
26a2605cd7 Merge branch 'hotfix-v5.9.0-530-crash' into 'release'
修复首页未初始化时切换日夜间模式导致的闪退

See merge request halo/android/assistant-android!250
2022-05-19 11:21:20 +08:00
b02f650a34 修复首页未初始化时切换日夜间模式导致的闪退 2022-05-19 11:19:25 +08:00
b661337133 【光环助手V5.10.0】游戏单活动:游戏单征集计划vol.1(实现跳转创建游戏单页面自动添加活动标签、加入对应游戏)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1779 2022-05-18 17:53:19 +08:00
d73e246538 修复组件化导致的一些问题 2022-05-18 16:44:56 +08:00
e1d82e7fbd 版本更新至 5.9.0-531 2022-05-18 16:21:44 +08:00
4263f53315 【光环助手v5.10.0】前端优化汇总5月第3周(6) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-18 15:14:17 +08:00
f235959372 Merge branch 'hotfix-v5.9.0-530-fragment_resume_crash' into 'release'
修复特殊场景下 fragment 恢复页面时的闪退

See merge request halo/android/assistant-android!249
2022-05-18 15:13:09 +08:00
7bc6655b99 修复特殊场景下 fragment 恢复页面时的闪退 2022-05-18 15:12:24 +08:00
7ecc227df5 修复从其他页面返回首页搜索栏变成深色的问题 2022-05-18 11:49:25 +08:00
3046d33f91 Merge branch 'hotfix-v5.9.0-530-crash' into 'release'
修复游戏单安利墙轮播发生的闪退问题,修复从其他页面返回首页搜索栏变成深色的问题

See merge request halo/android/assistant-android!248
2022-05-18 11:45:28 +08:00
a32829fd0d 【光环助手v5.10.0】前端优化汇总5月第3周(6) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-18 11:45:25 +08:00
4819bf3ddf 修复从其他页面返回首页搜索栏变成深色的问题 2022-05-18 11:15:12 +08:00
c2e02d356d 修复游戏单安利墙轮播发生的闪退问题 2022-05-18 11:09:23 +08:00
94cc44c277 Merge branch 'dev-5.10.0' of git.shanqu.cc:halo/android/assistant-android into dev-5.10.0 2022-05-17 17:34:28 +08:00
116702f7f0 模块/组件化前期改造 https://git.shanqu.cc/halo/android/assistant-android/-/issues/64 2022-05-17 17:34:21 +08:00
dafaeef184 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/MainActivity.java
#	app/src/main/java/com/halo/assistant/fragment/SettingsFragment.kt
#	dependencies.gradle
2022-05-17 17:10:54 +08:00
a9917c9201 Merge branch 'hotfix-v5.8.1-512-game_list_outofbounds_crash' into 'release'
修复游戏库横向滑动专题数量为空时会闪退的问题

See merge request halo/android/assistant-android!247
2022-05-17 14:44:24 +08:00
c0b61822c0 修复游戏库横向滑动专题数量为空时会闪退的问题 2022-05-17 14:29:15 +08:00
cb54a0e780 添加简单的日夜间模式切换测试按钮 2022-05-17 11:41:12 +08:00
0d44d4e54a 补充启动页的简单的夜间模式适配 2022-05-17 11:40:30 +08:00
3db6d1288d 调整移除夜间模式的脚本 2022-05-17 10:25:31 +08:00
a16a16cbdf 【光环助手V5.10.0】视频模板活动问题汇总(4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1852 2022-05-16 16:57:26 +08:00
1bb240c964 日夜间模式的切换(修复首页排行榜tab、新分类2.0tab日夜间模式切换没有变色的问题) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-16 16:38:21 +08:00
a1be8352f0 【光环助手V5.10.0】游戏库功能优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1834 2022-05-16 15:09:03 +08:00
lyr
5ef4f1d14c 【光环助手v5.10.0】前端优化汇总5月第3周(2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-16 14:35:51 +08:00
lyr
6330e004ba 日夜间模式的切换(光能中心页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-16 11:33:34 +08:00
44bed82f08 【光环助手v5.10.0】前端优化汇总5月第3周(4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-16 10:23:54 +08:00
0decb62237 【光环助手v5.10.0】前端优化汇总5月第3周(5) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-16 09:36:55 +08:00
e9b170503b 日夜间模式的切换(修复分类、新分类、新分类2.0部分列表Item在日夜模式切换时未刷新颜色问题) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-14 22:17:27 +08:00
lyr
ccd6a866dc 日夜间模式的切换(开服表页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-13 19:07:06 +08:00
1ae37710ca 【光环助手5.10.0】论坛主页热度值展示优化(5.13测试反馈) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1856 2022-05-13 18:14:14 +08:00
202c546922 删除部分无用代码 2022-05-13 16:22:50 +08:00
d2f5d35403 删除部分无用代码 2022-05-13 15:51:29 +08:00
44c2219753 模块/组件化前期改造 https://git.shanqu.cc/halo/android/assistant-android/-/issues/64 2022-05-13 15:34:22 +08:00
cdedea5002 【光环助手v5.10.0】前端优化汇总5月第3周(1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-13 14:39:42 +08:00
88c4ebe5a0 Merge branch 'hotfix-v5.8.1-512-databinding' into 'release'
修复移除databinding引发的问题

See merge request halo/android/assistant-android!246
2022-05-13 14:38:26 +08:00
c627bfb994 删除部分无用代码 2022-05-13 14:13:16 +08:00
10cbcdd768 【光环助手v5.10.0】前端优化汇总5月第3周(1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1858 2022-05-13 14:12:51 +08:00
5e7b0dd169 【光环助手5.10.0】论坛主页热度值展示优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1856 2022-05-13 10:09:17 +08:00
lyr
8ae7ef421c 日夜间模式的切换(我的游戏页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-12 16:56:09 +08:00
96b92d9212 删除无用代码 2022-05-12 16:19:17 +08:00
e6f9beeace Merge branch 'feature-modular' into 'dev-5.10.0'
处理编译问题

See merge request halo/android/assistant-android!245
2022-05-12 15:52:27 +08:00
f4f4807ce8 处理编译问题 2022-05-12 15:38:22 +08:00
f1d52fdc80 Merge branch 'dev-5.10.0' into feature-modular
# Conflicts:
#	app/src/main/java/com/gh/common/util/QuickLoginHelper.kt
#	app/src/main/java/com/gh/common/view/ConfigFilterView.kt
#	app/src/main/java/com/gh/gamecenter/AboutActivity.java
#	app/src/main/java/com/gh/gamecenter/CollectionActivity.java
#	app/src/main/java/com/gh/gamecenter/ConcernInfoActivity.java
#	app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java
#	app/src/main/java/com/gh/gamecenter/HelpAndFeedbackActivity.kt
#	app/src/main/java/com/gh/gamecenter/InfoActivity.java
#	app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java
#	app/src/main/java/com/gh/gamecenter/MessageActivity.java
#	app/src/main/java/com/gh/gamecenter/MessageInviteActivity.java
#	app/src/main/java/com/gh/gamecenter/MessageKeFuActivity.java
#	app/src/main/java/com/gh/gamecenter/MessageVoteActivity.java
#	app/src/main/java/com/gh/gamecenter/QaActivity.kt
#	app/src/main/java/com/gh/gamecenter/SettingActivity.kt
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
#	app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
#	app/src/main/java/com/gh/gamecenter/WebActivity.kt
#	app/src/main/java/com/gh/gamecenter/catalog/CatalogActivity.kt
#	app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListActivity.kt
#	app/src/main/java/com/gh/gamecenter/catalog/NewCatalogListFragment.kt
#	app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogSubjectAdapter.kt
#	app/src/main/java/com/gh/gamecenter/catalog/SubCatalogAdapter.kt
#	app/src/main/java/com/gh/gamecenter/catalog/SubCatalogFragment.kt
#	app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryActivity.kt
#	app/src/main/java/com/gh/gamecenter/category/CategoryListActivity.kt
#	app/src/main/java/com/gh/gamecenter/category/NewCategoryHorizontalAdapter.kt
#	app/src/main/java/com/gh/gamecenter/category2/CategoryDirectoryAdapter.kt
#	app/src/main/java/com/gh/gamecenter/category2/CategoryV2Activity.kt
#	app/src/main/java/com/gh/gamecenter/forum/detail/ForumArticleAskListAdapter.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeFragment.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleListAdapter.kt
#	app/src/main/java/com/gh/gamecenter/forum/list/ForumListActivity.kt
#	app/src/main/java/com/gh/gamecenter/forum/moderator/ApplyModeratorActivity.kt
#	app/src/main/java/com/gh/gamecenter/forum/moderator/ModeratorListActivity.kt
#	app/src/main/java/com/gh/gamecenter/fragment/MainWrapperViewModel.kt
#	app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt
#	app/src/main/java/com/gh/gamecenter/game/commoncollection/detail/CommonCollectionDetailActivity.kt
#	app/src/main/java/com/gh/gamecenter/game/upload/GameSubmissionActivity.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddSearchGameFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/choose/AddUserPlayedGameFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/choose/ChooseGamesFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/mine/MyGameCollectionFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionCoverTypeDialog.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/ChooseGameCollectionDefaultCoverDialog.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/tag/GameCollectionTagAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/tag/GameCollectionTagSelectFragment.kt
#	app/src/main/java/com/gh/gamecenter/help/HelpContainerFragment.kt
#	app/src/main/java/com/gh/gamecenter/help/HelpQaAdapter.kt
#	app/src/main/java/com/gh/gamecenter/help/HelpQaCategoryFragment.kt
#	app/src/main/java/com/gh/gamecenter/help/QaFeedbackDialogFragment.kt
#	app/src/main/java/com/gh/gamecenter/history/HistoryActivity.kt
#	app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java
#	app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java
#	app/src/main/java/com/gh/gamecenter/personal/DeliveryInfoActivity.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/PersonalItemViewHolder.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/background/BackgroundPreviewActivity.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/background/PersonalityBackgroundFragment.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/border/AvatarBorderActivity.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/fans/FansActivity.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/followers/FollowersActivity.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryAdapter.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/home/game/UserGameFragment.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/rating/RatingActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/answer/detail/SimpleAnswerDetailActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/article/detail/comment/ArticleDetailCommentFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/article/draft/ArticleDraftActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt
#	app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/editor/GameActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/editor/InsertGameCollectionWrapperActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/editor/InsertVideoWrapperActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/editor/LocalMediaActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/myqa/MyAskActivity.java
#	app/src/main/java/com/gh/gamecenter/qa/questions/draft/QuestionDraftActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/questions/invite/QuestionsInviteActivity.java
#	app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt
#	app/src/main/java/com/gh/gamecenter/security/BindPhoneActivity.kt
#	app/src/main/java/com/gh/gamecenter/security/BindPhoneFragment.kt
#	app/src/main/java/com/gh/gamecenter/security/SecurityActivity.kt
#	app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingActivity.kt
#	app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt
#	app/src/main/java/com/gh/gamecenter/setting/VideoSettingActivity.kt
#	app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt
#	app/src/main/java/com/gh/gamecenter/subject/SubjectActivity.kt
#	app/src/main/java/com/gh/gamecenter/tag/TagsActivity.kt
#	app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockActivity.kt
#	app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt
#	app/src/main/java/com/gh/gamecenter/video/VideoItemViewHolder.kt
#	app/src/main/java/com/gh/gamecenter/video/data/VideoDataFragment.kt
#	app/src/main/java/com/gh/gamecenter/video/game/GameVideoFragment.kt
#	app/src/main/java/com/gh/gamecenter/video/label/VideoLabelAdapter.kt
#	app/src/main/res/layout/activity_background_clip.xml
#	app/src/main/res/layout/community_answer_item.xml
#	app/src/main/res/layout/user_history_item.xml
#	app/src/main/res/values-night/colors.xml
#	app/src/main/res/values/colors.xml
#	app/src/main/res/values/strings.xml
#	module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseDialogFragment.java
#	module_common/src/main/java/com/gh/gamecenter/common/utils/NightModeUtils.kt
#	module_core/src/main/java/com/gh/gamecenter/core/AppExecutor.kt
2022-05-12 11:10:46 +08:00
lyr
1002e4b808 日夜间模式的切换(模拟器游戏页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-11 18:18:55 +08:00
2d651572d0 日夜间模式的切换(修复首页tab日夜间模式切换变色异常) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-11 17:55:52 +08:00
lyr
5af3894ae3 日夜间模式的切换(模拟器游戏页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-11 17:42:09 +08:00
lyr
2d5a363215 日夜间模式的切换(账号与安全页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-11 16:20:27 +08:00
7afbfb30a2 【光环助手V5.10.0】视频模板活动问题汇总(2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1852 2022-05-11 15:47:35 +08:00
lyr
a15dd256f0 日夜间模式的切换(浏览记录页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-11 15:13:09 +08:00
090a567887 版本更新至 5.8.1 2022-05-11 15:09:05 +08:00
e55faee9fe Merge branch 'hotfix-v5.8.0-511-setting_crash' into 'release'
修复快速进出设置界面可能的闪退问题

See merge request halo/android/assistant-android!244
2022-05-11 15:07:29 +08:00
362e34be8a 修复快速进出设置界面可能的闪退问题 2022-05-11 15:06:08 +08:00
9d4c6f660a 内联 getter 方法,移除重复初始化赋值 2022-05-11 14:34:23 +08:00
bf1e5586b0 Merge branch 'hotfix-v5.8.0-511-xapk_unzip_permission_on_android_s' into 'release'
修复 XAPK 在 Android 12 授权后无法解压的问题

See merge request halo/android/assistant-android!243
2022-05-11 14:28:47 +08:00
bad10158bd 修复 XAPK 在 Android 12 授权后无法解压的问题 2022-05-11 14:21:47 +08:00
lyr
21fa841e3a 日夜间模式的切换(帮助与反馈页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-11 11:48:49 +08:00
5cc58e2182 Merge branch 'hotfix-v5.8.0-511_webpage_portrait' into 'release'
修改打开网页会变为横屏问题

See merge request halo/android/assistant-android!242
2022-05-11 11:47:30 +08:00
lyr
fb4e38e50f 日夜间模式的切换(账号与安全页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-11 11:46:36 +08:00
fd836137a5 修改打开网页会变为横屏问题 2022-05-11 11:05:18 +08:00
lyr
9628af4168 日夜间模式的切换(账号与安全页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-10 16:01:11 +08:00
e59b4b42cf 游戏评论页日夜间模式 2022-05-10 14:34:46 +08:00
64ae5d02fb 日夜间模式的切换(视频、我的收藏部分) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-10 10:47:15 +08:00
lyr
029a12c481 日夜间模式的切换(旧分类页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-10 10:31:40 +08:00
3fc4d9276d 日夜间模式更新状态栏底色替换为Extensions方法 2022-05-09 18:31:35 +08:00
531e11748d Merge remote-tracking branch 'origin/dev' into dev-5.10.0 2022-05-09 17:50:49 +08:00
b122e460cc 补充夜间模式开关控制 2022-05-09 17:50:26 +08:00
8f99db1841 Merge remote-tracking branch 'origin/dev-5.10.0' into dev-5.10.0 2022-05-09 17:42:45 +08:00
7bd779b8e3 日夜间模式的切换(社区帖子部分) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-09 17:31:02 +08:00
e5cffac98a Merge remote-tracking branch 'origin/dev' into dev-5.10.0 2022-05-09 17:08:30 +08:00
3b29fcbef7 处理顶部 toolbar 图标存在毛刺的问题 2022-05-09 17:01:30 +08:00
9f60a2ba86 调整编译脚本 2022-05-09 16:49:35 +08:00
8df7b3d9ee 编译脚本添加关闭夜间模式入口 2022-05-09 16:40:57 +08:00
e2040f9a2d 添加夜间模式功能全局控制开关 2022-05-09 16:36:36 +08:00
lyr
8a8184a4a9 日夜间模式的切换(新分类2.0页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-09 15:36:37 +08:00
lyr
373cec9ff2 日夜间模式的切换(新分类2.0页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-09 15:19:42 +08:00
2938e843f0 版本升级为 5.10.0 2022-05-09 14:15:17 +08:00
eaba77b3a7 【光环助手V5.10.0】前端优化汇总5月第2周(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1845 2022-05-09 11:57:36 +08:00
e39cd494b5 日夜间模式的切换(用户中心部分) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-09 11:49:38 +08:00
f70b721441 版本更新至 5.8.0-511 2022-05-09 10:20:20 +08:00
lyr
877acf54f4 日夜间模式的切换(新分类页面-优化) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-07 18:31:45 +08:00
a31d7a06f7 修复ToolbarActivity空指针闪退 2022-05-07 18:26:56 +08:00
f52937830b 新增Extensions方法 2022-05-07 18:25:00 +08:00
b5202cc931 日夜间模式的切换(资讯页面、工具箱、设置页面 补充) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-07 17:14:47 +08:00
dd2bfbc53f 日夜间模式的切换(游戏板块部分) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-07 16:48:01 +08:00
d2f3cdadf6 修改游戏详情图片重复刷新问题 2022-05-07 16:04:32 +08:00
73a88f9099 Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-05-07 15:45:50 +08:00
a86c957872 日夜间模式的切换(社区论坛部分) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-07 15:45:45 +08:00
lyr
45588a2580 日夜间模式的切换(新分类页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-07 15:39:03 +08:00
3b55269319 Merge remote-tracking branch 'origin/release' into dev 2022-05-07 15:18:17 +08:00
01966a87ec 移除废弃的广点通部分代码 2022-05-07 15:18:05 +08:00
b4a8e5c68d 日夜间模式的切换(游戏单部分) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-07 14:17:18 +08:00
aeb7842299 正式包移除夜间模式功能 2022-05-07 09:55:42 +08:00
lyr
e0bcf947bf 【光环助手V5.9.0】新社区7期-论坛详情页优化(增加标签字体颜色字段)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1789#note_146539 2022-05-06 20:53:09 +08:00
30bf685962 日夜间模式的切换(专题页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-06 20:48:17 +08:00
1e6fa023dc Merge branch 'dev' of git.shanqu.cc:halo/android/assistant-android into dev 2022-05-06 20:42:44 +08:00
b5920fc409 【光环助手V5.9.0】新社区7期-新增视频模板活动优化(后台)(22020506测试反馈1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1796 2022-05-06 20:42:35 +08:00
16ceb7115e Merge remote-tracking branch 'origin/dev' into dev 2022-05-06 18:29:57 +08:00
279ed66270 处理 SonarQube 问题 2022-05-06 18:28:56 +08:00
lyr
9bfa8a33c8 【光环助手V5.9.0】后台优化汇总4月第3周(16)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1802#note_146500 2022-05-06 18:24:57 +08:00
99bd4da08a 处理合并异常 2022-05-06 18:00:13 +08:00
4824814981 Merge remote-tracking branch 'origin/dev-5.9.0' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt
#	app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxItemAdapter.kt
2022-05-06 17:50:41 +08:00
10237d2fde 日夜间模式的切换(搜索页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65
日夜间模式的切换(搜索页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65
2022-05-06 17:30:50 +08:00
c1b236080e Merge remote-tracking branch 'origin/dev-5.9.0' into dev-5.9.0 2022-05-06 15:18:04 +08:00
83d16a16b8 日夜间模式的切换(搜索页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-05-06 15:08:58 +08:00
52ccffb97a 添加简单的日夜间模式 View 颜色切换辅助方法 2022-05-06 15:08:45 +08:00
lyr
9ed9e22df4 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(0427UI测试问题汇总 2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-05-06 11:30:55 +08:00
5aa29782cc Merge branch 'hotfix-v5.8.0-510-image_blurry' into 'release'
修改社区信息流横向长图显示模糊问题

See merge request halo/android/assistant-android!241
2022-05-05 18:20:57 +08:00
lyr
82fcde1245 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(0505UI测试问题汇总)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794#note_146206 2022-05-05 16:08:41 +08:00
lyr
eab945acfc 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(0427UI测试问题汇总 遗留2、7)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-05-05 15:25:24 +08:00
8ed57cbfb8 修改社区信息流横向长图显示模糊问题 2022-05-05 14:11:22 +08:00
lyr
d3ed6d750b 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(微调活动主页UI) 2022-05-05 10:59:51 +08:00
963e8da89c Merge branch 'dev-5.9.0' into feature-modular
# Conflicts:
#	app/src/main/java/com/gh/base/BaseActivity_TabLayout.java
#	app/src/main/java/com/gh/common/dialog/PrivacyDialogFragment.kt
#	app/src/main/java/com/gh/common/dialog/WelcomeDialog.kt
#	app/src/main/java/com/gh/common/util/EntranceUtils.java
#	app/src/main/java/com/gh/common/view/FlexLinearLayout.kt
#	app/src/main/java/com/gh/common/view/WelcomeDialog.kt
#	app/src/main/java/com/gh/gamecenter/AboutActivity.java
#	app/src/main/java/com/gh/gamecenter/DownloadManagerActivity.java
#	app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java
#	app/src/main/java/com/gh/gamecenter/MessageActivity.java
#	app/src/main/java/com/gh/gamecenter/SettingActivity.kt
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
#	app/src/main/java/com/gh/gamecenter/SuggestionActivity.java
#	app/src/main/java/com/gh/gamecenter/catalog/BannerAdapter.kt
#	app/src/main/java/com/gh/gamecenter/catalog/SpecialCatalogFragment.kt
#	app/src/main/java/com/gh/gamecenter/category2/CategoryV2Fragment.kt
#	app/src/main/java/com/gh/gamecenter/category2/CategoryV2ListFragment.kt
#	app/src/main/java/com/gh/gamecenter/download/UpdatableGameFragment.kt
#	app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java
#	app/src/main/java/com/gh/gamecenter/fragment/WelcomeDialogFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/history/HistoryApkListFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingFragment.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt
#	app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt
#	app/src/main/java/com/gh/gamecenter/home/HomeRecommendItemViewHolder.kt
#	app/src/main/java/com/gh/gamecenter/info/ConcernFragment.java
#	app/src/main/java/com/gh/gamecenter/info/StrategyDialogAdapter.java
#	app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java
#	app/src/main/java/com/gh/gamecenter/libao/Libao2Fragment.java
#	app/src/main/java/com/gh/gamecenter/libao/Libao2FragmentAdapter.java
#	app/src/main/java/com/gh/gamecenter/libao/Libao3Fragment.java
#	app/src/main/java/com/gh/gamecenter/libao/Libao3FragmentAdapter.java
#	app/src/main/java/com/gh/gamecenter/libao/LibaoFragment.java
#	app/src/main/java/com/gh/gamecenter/libao/LibaoHistoryAdapter.java
#	app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt
#	app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt
#	app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java
#	app/src/main/java/com/gh/gamecenter/personal/NewPersonalFunctionGroupAdapter.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/home/UserHistoryViewModel.kt
#	app/src/main/java/com/gh/gamecenter/setting/GameDownloadSettingFragment.kt
#	app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt
#	app/src/main/java/com/gh/gamecenter/suggest/SuggestSelectGameAdapter.java
#	app/src/main/java/com/gh/gamecenter/tag/TagsActivity.kt
#	app/src/main/java/com/gh/gamecenter/teenagermode/PasswordSettingFragment.kt
#	app/src/main/java/com/gh/gamecenter/teenagermode/TeenagerModeFragment.kt
#	app/src/main/java/com/gh/gamecenter/toolbox/ToolBoxBlockAdapter.kt
#	app/src/main/res/layout/fragment_forum.xml
#	app/src/main/res/values-night/colors.xml
#	app/src/main/res/values-night/styles.xml
#	app/src/main/res/values/colors.xml
#	app/src/main/res/values/styles.xml
#	module_common/src/main/java/com/gh/gamecenter/common/base/fragment/BaseFragment_TabLayout.java
#	module_core/src/main/java/com/gh/gamecenter/core/utils/DisplayUtils.java
2022-05-05 10:24:37 +08:00
lyr
bb4878eab4 【光环助手V5.9.0】新社区7期-论坛主页优化(0427UI测试 遗留问题)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792 2022-05-05 10:11:37 +08:00
lyr
53d8444c85 Merge remote-tracking branch 'origin/dev-5.9.0' into dev-5.9.0 2022-04-29 18:30:24 +08:00
lyr
7db009a3cd 【光环助手V5.9.0】新社区7期-论坛详情页优化(0427UI测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1789 2022-04-29 18:30:20 +08:00
4932fc2d7b 日夜间模式的切换 https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-04-29 18:24:17 +08:00
ca55ac02b7 日夜间模式的切换(礼包页面) https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-04-29 16:27:14 +08:00
lyr
c535ffb2e0 【光环助手V5.9.0】新社区7期-论坛主页优化 (0427UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792 2022-04-29 11:27:39 +08:00
9c6eb22d9d 【光环助手V5.9.0】游戏单新增[活动标签]功能(0429测试1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-29 10:35:13 +08:00
lyr
9ec6ec0281 【光环助手V5.9.0】新社区7期-论坛主页优化 (0427测试反馈 3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792 2022-04-28 17:10:05 +08:00
lyr
327441e62b 【光环助手V5.9.0】新社区7期-论坛主页优化(0427测试反馈 3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792 2022-04-28 17:04:27 +08:00
lyr
ae3f07a3ee 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化 (活动Tab图片使用svg实现) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-04-28 16:49:43 +08:00
f967e1f283 日夜间模式的切换 https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-04-28 16:17:29 +08:00
ba1308c568 修复创建游戏单使用草稿时无法选择活动标签的问题 2022-04-28 15:13:13 +08:00
3144e3b007 升级 gid 依赖 2022-04-28 14:50:14 +08:00
ec1c5713ad 【光环助手V5.9.0】新社区7期-内容(帖子、视频帖、提问帖)详情页优化(0428UI测试1,2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1795 2022-04-28 14:30:34 +08:00
15adc93340 Merge remote-tracking branch 'origin/dev-5.9.0' into dev-5.9.0 2022-04-28 09:53:05 +08:00
c9b27f6ebe 【光环助手V5.9.0】游戏实名认证提示及其他相关优化(0427UI测试2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1785 2022-04-28 09:52:49 +08:00
cff7f7d2e2 修改社区帖子评论作者标签显示错误 2022-04-28 09:52:28 +08:00
cb5d0c4840 修改游戏评论详情点赞图片大小 2022-04-27 18:43:32 +08:00
dea6abe399 修改游戏评论页评论、点赞图标大小 2022-04-27 18:35:07 +08:00
lyr
20c792d4fa 【光环助手V5.9.0】新社区7期-论坛主页优化(0427测试反馈 1、2) 2022-04-27 18:27:03 +08:00
lyr
b8cbd5a0fb Merge remote-tracking branch 'origin/dev-5.9.0' into dev-5.9.0 2022-04-27 18:07:40 +08:00
lyr
0a34f23e62 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化 (0427UI测试问题汇总) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-04-27 18:07:17 +08:00
7413b4e4ac 【光环助手V5.9.0】游戏实名认证提示及其他相关优化(0427UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1785 2022-04-27 18:04:52 +08:00
d2025c32c9 【光环助手V5.9.0】新社区7期-内容(帖子、视频帖、提问帖)详情页优化(0427UI测试2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1795 2022-04-27 17:10:21 +08:00
5c5dd35409 Merge branch 'dev-5.9.0' of git.shanqu.cc:halo/android/assistant-android into dev-5.9.0 2022-04-27 16:45:54 +08:00
b509e9046e 游戏详情日夜间模式切换 https://git.shanqu.cc/halo/android/assistant-android/-/issues/65 2022-04-27 16:45:48 +08:00
lyr
46e99434c9 【光环助手V5.9.0】新社区7期-论坛详情页优化(0427UI测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1789 2022-04-27 16:11:36 +08:00
b6ff94aed3 光环助手V5.9.0】新社区7期-内容(帖子、视频帖、提问帖)详情页优化(0427UI测试1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1795 2022-04-27 14:21:19 +08:00
25e0bd19bc 【光环助手V5.9.0】游戏实名认证提示及其他相关优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1785 2022-04-27 11:39:24 +08:00
lyr
fe5b398fad 【光环助手V5.9.0】新社区7期-论坛主页优化(0426UI测试问题汇总)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792 2022-04-27 11:30:39 +08:00
lyr
417ed1401e 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(0426UI测试问题汇总)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-04-27 10:38:14 +08:00
48698f06cd 【光环助手V5.9.0】游戏实名认证提示及其他相关优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1785 2022-04-26 18:37:16 +08:00
b70a7eaf8b 【光环助手V5.9.0】游戏库新增[导航栏]功能(20220426UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1783 2022-04-26 17:01:27 +08:00
lyr
ad86d7bbcc 【光环助手V5.9.0】前端优化汇总4月第5周(2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1820 2022-04-26 15:56:53 +08:00
lyr
a2eb550099 【光环助手V5.9.0】游戏库新增[导航栏]功能(0426测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1783 2022-04-26 15:37:59 +08:00
lyr
e736855a4a 【光环助手V5.9.0】游戏库新增[导航栏]功能(数据埋点第4点-40425测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1783#note_145069 2022-04-26 11:48:53 +08:00
0b49f531ac 【光环助手V5.9.0】游戏单新增[轮播图]功能(0426补充)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1781 2022-04-26 10:08:59 +08:00
lyr
c36f4d9abf 【光环助手V5.9.0】新社区7期-论坛主页优化(优化顶部轮播图)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792 2022-04-25 18:01:08 +08:00
lyr
db72b0a5c9 【光环助手V5.9.0】游戏库新增[导航栏]功能(数据埋点 4)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1783 2022-04-25 17:11:30 +08:00
lyr
b19d21fc39 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(二(1))https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-04-25 15:37:53 +08:00
lyr
2d172d70ad 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(一(2))https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-04-25 14:24:57 +08:00
7f419a2ce7 Merge branch 'dev-5.9.0' into feature-modular
# Conflicts:
#	app/src/main/java/com/gh/common/util/EntranceUtils.java
#	app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/article/detail/ArticleDetailFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/questions/newdetail/NewQuestionDetailFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectAdapter.java
#	app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectFragment.java
#	app/src/main/java/com/gh/gamecenter/qa/subject/AskSubjectViewHolder.java
#	app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt
2022-04-25 11:53:45 +08:00
cc434771c0 修复游戏单只有单个轮播图仍然自动轮播的问题 2022-04-25 10:03:58 +08:00
f5a9502261 【光环助手V5.9.0】游戏单新增[活动标签]功能(0424UI测试内容1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-24 18:07:31 +08:00
c48d970b0a 【光环助手V5.9.0】游戏单新增[轮播图]功能(0422测试2、0424UI测试内容1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1781 2022-04-24 17:49:08 +08:00
9a53c7a84e 【光环助手V5.9.0】游戏单新增[活动标签]功能(0424UI测试内容1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-24 17:46:38 +08:00
ce17ae2d2b 【光环助手V5.9.0】新社区7期-内容(帖子、视频帖、提问帖)详情页优化(0424UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1795 2022-04-24 17:22:38 +08:00
lyr
d97f65e9b3 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(一(1))https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-04-24 16:31:34 +08:00
33af47b01b Merge branch 'dev-5.9.0' into feature-modular
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeFragment.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumActivityFragment.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumArticleAskItemViewHolder.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumFragment.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumRecordsAdapter.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/ForumViewModel.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/HorizontalForumsAdapter.kt
#	app/src/main/java/com/gh/gamecenter/game/GameFragmentAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditViewModel.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/square/GameCollectionSquareFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/answer/CommunityAnswerItemViewHolder.kt
#	app/src/main/java/com/gh/gamecenter/qa/article/MyArticleAdapter.kt
#	app/src/main/res/layout/community_answer_item.xml
#	app/src/main/res/layout/fragment_game_collection_square.xml
#	app/src/main/res/values-night/colors.xml
#	app/src/main/res/values/attrs.xml
#	app/src/main/res/values/colors.xml
2022-04-24 15:35:57 +08:00
9f1f3a2d66 【光环助手V5.9.0】新社区7期-内容(帖子、视频帖、提问帖)详情页优化(1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1795 2022-04-24 14:24:08 +08:00
4c9609ba52 【光环助手V5.9.0】游戏单新增[活动标签]功能(0422测试1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-24 11:58:11 +08:00
270203266f 修复工具箱页面空指针闪退 2022-04-24 11:46:54 +08:00
lyr
edc326ff3c 【光环助手V5.9.0】新社区7期-论坛主页优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792 2022-04-24 10:34:45 +08:00
0856b8a2ab 添加 ANR 上报到 BETA 渠道 2022-04-24 10:16:37 +08:00
8f95517dd7 尝试处理更新管理页面的并发操作问题 2022-04-24 10:13:56 +08:00
c828f3f479 尝试处理游戏搜索页和下载管理页的ANR问题 2022-04-24 10:13:08 +08:00
b90d026a74 尝试修复工作任务过多无法被执行的问题 2022-04-23 16:21:41 +08:00
lyr
819beb779c 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(一(2)) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794 2022-04-22 09:53:59 +08:00
de31dcaf0b 【光环助手V5.9.0】游戏单新增[轮播图]功能 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1781 2022-04-21 16:29:23 +08:00
587c217b7c 修改游戏库导航栏小红点显示逻辑问题 2022-04-21 10:08:09 +08:00
b03e86f903 上传遗漏文件 2022-04-20 23:18:15 +08:00
ea80942937 【光环助手V5.9.0】新社区7期-推荐信息页&个人主页&活动主页优化(一(2)(大部分)、三) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1794
【光环助手V5.9.0】新社区7期-论坛主页优化(UI部分(因后端未出接口)) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1792
2022-04-20 23:13:40 +08:00
06153cbf58 【光环助手V5.9.0】游戏库新增[导航栏]功能(曝光数据埋点) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1783 2022-04-20 17:08:11 +08:00
0b94f777a2 【光环助手V5.9.0】游戏库新增[导航栏]功能 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1783 2022-04-20 11:00:36 +08:00
3d6917cd5d Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/mygame/PlayedGameAdapter.kt
#	dependencies.gradle
2022-04-19 09:24:00 +08:00
e4300ab315 更新 sentry cli token 2022-04-19 09:22:18 +08:00
ed80533198 【光环助手V5.9.0】游戏单新增[活动标签]功能(修复数据库迁移闪退) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-18 15:24:34 +08:00
4b5c741ff9 【光环助手V5.9.0】游戏单新增[活动标签]功能(修复编辑游戏单丢失活动标签的问题) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-18 12:02:23 +08:00
a93b49eb76 版本更新至 5.7.4 2022-04-18 11:48:07 +08:00
9fb25b80ea Merge branch 'hotfix-v5.7.3-494_crashes' into 'release'
处理一些闪退

See merge request halo/android/assistant-android!240
2022-04-18 11:06:01 +08:00
5c64deb874 修复游戏动态查看大图数组越界的问题 2022-04-18 10:48:37 +08:00
33cb09e201 请求登录dialog增加context有效性判断 2022-04-18 10:48:05 +08:00
032a9750e2 Merge branch 'hotfix-v5.7.3-494_crash' into 'release'
修改更新targetSdk为28以后透明activity配上portait在 8.0 设备上会闪退的问题

See merge request halo/android/assistant-android!238
2022-04-18 10:38:02 +08:00
ff6fcd038e Merge branch 'hotfix-v5.7.3-494_get_packagename_error' into 'release'
捕抓调用系统 API 获取包名的异常

See merge request halo/android/assistant-android!239
2022-04-18 10:37:21 +08:00
cc3908b416 捕抓调用系统 API 获取包名的异常 2022-04-18 10:35:02 +08:00
50a7527e7c 修改更新targetSdk为28以后透明activity配上portait在 8.0 设备上会闪退的问题 2022-04-18 10:34:22 +08:00
75e085b80a Merge branch 'hotfix-v5.7.3-494-played_game_wrong_status' into 'release'
修复玩过的游戏错误显示已卸载状态的问题

See merge request halo/android/assistant-android!237
2022-04-18 10:15:41 +08:00
39eecf0920 修复玩过的游戏错误显示已卸载状态的问题 2022-04-18 10:14:49 +08:00
7a89ef3e74 处理一些合并后导包错误问题 2022-04-18 10:06:38 +08:00
10b696f78d Merge branch 'dev-5.9.0' into feature-modular
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/forum/detail/ForumTopLinkAdapter.kt
#	app/src/main/java/com/gh/gamecenter/gamecollection/publish/GameCollectionEditActivity.kt
#	app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentAdapter.kt
#	app/src/main/java/com/gh/gamecenter/qa/comment/base/BaseCommentFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/video/detail/comment/VideoCommentFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/video/publish/VideoPublishActivity.kt
#	app/src/main/res/values-night/colors.xml
#	app/src/main/res/values/colors.xml
2022-04-18 09:53:20 +08:00
0e9f267117 版本更新至 5.9.0 2022-04-18 09:35:26 +08:00
02bb977cc0 【光环助手V5.9.0】游戏单新增[活动标签]功能(修改活动标签说明字段) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-15 15:48:07 +08:00
c4a89b9302 【光环助手V5.9.0】游戏单新增[活动标签]功能 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-15 14:44:33 +08:00
cde9401b36 修复游戏动态查看大图数组越界的问题 2022-04-14 20:25:11 +08:00
edcb4a949e 【光环助手V5.9.0】新社区7期-新增视频模板活动优化(后台)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1796 2022-04-14 14:57:38 +08:00
4e0516e43f 版本更新至 5.7.3-494 2022-04-13 17:17:55 +08:00
d702cafc4f Merge branch 'hotfix-v5.7.2-uninstall' into 'release'
修复8.0以上设备无法插件化的问题

See merge request halo/android/assistant-android!236
2022-04-13 17:16:31 +08:00
6cd9076dff 修复8.0以上设备无法插件化的问题 2022-04-13 17:15:26 +08:00
a5c113e527 Merge remote-tracking branch 'origin/dev-5.9.0' into dev-5.9.0 2022-04-13 16:50:22 +08:00
048bdbc367 【光环助手V5.9.0】游戏单新增[活动标签]功能(UI部分) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1780 2022-04-13 16:49:14 +08:00
1e287f56e2 【光环助手V5.9.0】新社区7期-论坛详情页优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1789 2022-04-13 14:57:57 +08:00
2aacab80a6 【光环助手V5.9.0】新社区7期-内容(帖子、视频帖、提问帖)详情页优化(2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1795 2022-04-13 10:15:20 +08:00
f9d7255556 版本更新至 5.7.2-493 2022-04-12 09:50:18 +08:00
2b2cf1ca8f Merge branch 'hotfix-v5.7.1-492-fix_nullpointer_crash' into 'release'
处理空指针异常

See merge request halo/android/assistant-android!235
2022-04-12 09:48:59 +08:00
c651a97bbb 处理空指针异常 2022-04-12 09:40:53 +08:00
b54f1d125e Merge branch 'hotfix-v5.7.1-492_crash' into 'release'
修改sentry上的闪退问题

See merge request halo/android/assistant-android!232
2022-04-11 14:43:16 +08:00
ead711446d 1.修改更新targetSdk为28以后透明activity配上portait在 8.0 设备上会闪退的问题 2.修改帮助与反馈页面重建闪退问题 2022-04-11 14:43:15 +08:00
b19f0ac69c Merge branch 'hotfix-v5.7.1-492-crashes' into 'release'
修改sentry上的闪退问题

See merge request halo/android/assistant-android!234
2022-04-11 14:24:17 +08:00
25a325f7f7 Merge branch 'hotfix-v5.7.1-492-crashes' into 'dev'
修复sentry上的闪退问题

See merge request halo/android/assistant-android!233
2022-04-11 14:20:44 +08:00
8be52f7bdd 修复dialog中的lottie在非主线程执行的问题 2022-04-11 14:17:15 +08:00
3cb1cd3ba6 修复dialog中的lottie在非主线程执行的问题 2022-04-11 13:50:20 +08:00
b68a9a43de 修复青少年模式快速双击导致的闪退 2022-04-11 11:33:41 +08:00
0f80f5bc03 Merge branch 'hotfix-v5.7.1-472-out_of_bounds_crash' into 'release'
修复游戏库数组越界闪退问题

See merge request halo/android/assistant-android!231
2022-04-11 11:15:56 +08:00
647ef1d8d3 修复游戏库数组越界闪退问题 2022-04-11 11:14:18 +08:00
e9ac9aab7f 模块/组件化前期改造 https://git.shanqu.cc/halo/android/assistant-android/-/issues/64 2022-04-09 19:48:45 +08:00
6c6a7f0677 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-04-07 09:59:52 +08:00
56dc30845a Merge branch 'hotfix-v5.7.1-492-wechat_redirect' into 'release'
修复微信内跳转无法跳转到论坛详情页的问题

See merge request halo/android/assistant-android!230
2022-04-07 09:58:46 +08:00
da14711bbc 修复微信内跳转无法跳转到论坛详情页的问题 2022-04-07 09:57:50 +08:00
33fe057a5f 版本更新至 5.7.1-492 2022-04-07 09:18:20 +08:00
a052f981c5 Merge branch 'feature-night_mode_test' into dev-5.9.0 2022-04-06 18:14:55 +08:00
5042bddec7 1.修改LoopThread名字 2.修改定时器回调到子线程 2022-04-06 17:45:52 +08:00
0803e61828 复用 Gson 对象 2022-04-06 16:21:18 +08:00
119f304e2f 尝试处理 ConnectivityManager 造成的内存泄漏问题 2022-04-06 11:35:36 +08:00
3db6f93b73 Merge branch 'release' into dev 2022-04-06 11:22:51 +08:00
3f74d8efc9 Merge branch 'hotfix-v5.7.1-491-wechat_crash' into 'release'
修复在 Android 8.0 系统上的微信登录闪退问题 https://git.shanqu.cc/halo/android/assistant-android/-/issues/56

See merge request halo/android/assistant-android!229
2022-04-06 11:21:55 +08:00
15aabc4db7 修复在 Android 8.0 系统上的微信登录闪退问题 https://git.shanqu.cc/halo/android/assistant-android/-/issues/56 2022-04-06 11:19:35 +08:00
3ed3a8d47a 版本更新至 5.7.1 2022-04-06 10:30:02 +08:00
3719f5e1cd Merge remote-tracking branch 'origin/release' into dev 2022-04-06 10:25:26 +08:00
957fca8960 Merge branch 'hotfix-v5.7.0-490-fix_wechat_redirect' into 'release'
修复微信内网页无法跳转光环首页的问题

See merge request halo/android/assistant-android!228
2022-04-06 10:23:06 +08:00
0066d2eb7b 修复微信内网页无法跳转光环首页的问题 2022-04-06 10:21:53 +08:00
cbae38b41d 修改加载图片重复调用AsyncImageLoader问题 2022-04-06 09:48:12 +08:00
021886c3cb 实现游戏单广场、安利墙、我的光环夜间模式切换颜色 2022-04-02 18:01:42 +08:00
6d62dd7fd1 删除多余代码 2022-04-02 17:35:07 +08:00
20d28525cf 处理加载图片时由于width获取为0导致图片占用内存过大的问题 2022-04-02 17:30:47 +08:00
a406127cda 统一纯白、纯黑色值 2022-04-02 15:31:13 +08:00
lyr
3301b30ec2 优化WebFragment是否成功加载的判断逻辑(补充) 2022-04-01 15:43:50 +08:00
f761715ebd 实现夜间模式切换首页tab和搜索栏颜色
实现游戏库夜间模式切换颜色
2022-04-01 15:28:30 +08:00
lyr
1f0216662a 优化WebFragment是否成功加载的判断逻辑 2022-04-01 15:03:32 +08:00
f483f1effc 清理无用 dokit 配置 2022-04-01 11:31:24 +08:00
cf5b0bcd41 添加 dokit 初始化脚本 2022-04-01 10:55:45 +08:00
4e51830c58 Update README.md 2022-04-01 09:23:51 +08:00
lyr
830a45e6d2 WebFragment网页销毁时移除JS Api 2022-03-31 21:58:27 +08:00
lyr
24c32b7a4b 【光环助手V5.8.0】游戏活动模板功能(前端部分)(优化游戏活动下载辅助类) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-31 21:56:22 +08:00
lyr
7e30f1702d Merge remote-tracking branch 'origin/dev' into dev 2022-03-31 20:57:21 +08:00
lyr
68ae4bf1b2 【光环助手V5.8.0】游戏活动模板功能(前端部分)(提供上报曝光方法) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-31 20:57:15 +08:00
0b757f24d1 缩小 Picasso 的内存 Lru size 2022-03-31 20:54:14 +08:00
lyr
99d0525c0a 【光环助手V5.8.0】游戏活动模板功能(前端部分)(0330测试 4)(增加防止web页面水平方向滑动冲突的JS Api) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-31 18:14:24 +08:00
4f3ec7aa18 处理 AppManager 的内存泄漏问题 2022-03-31 17:47:32 +08:00
bd228459fa 修复游戏详情页游戏图标的重复加载问题 2022-03-31 17:16:40 +08:00
c9227c20a2 修复列表游戏图标可能会加载不符合显示大小图片的问题 2022-03-31 17:15:31 +08:00
lyr
5270bc3ed7 【光环助手V5.8.0】游戏活动模板功能(前端部分)(0330测试 6(3)(4)) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-31 14:48:53 +08:00
e1de3dc873 缩减线程池核心规模 2022-03-31 11:37:43 +08:00
9303f534d9 修改夜间模式配色 2022-03-31 11:06:07 +08:00
629a694279 【光环助手V5.8.0】客户端内部需求 (0328测试 1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1746 2022-03-31 10:15:48 +08:00
0ef0ed7c50 Merge branch 'dev' into feature-night_mode_test 2022-03-30 11:36:34 +08:00
lyr
48d335ad67 【光环助手V5.8.0】游戏活动模板功能(前端部分)(0328测试 9) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-29 14:23:48 +08:00
231434caeb 新增设计师用包编译脚本 2022-03-29 10:22:10 +08:00
220fd340ce Merge branch 'dev' into feature-night_mode_test 2022-03-29 10:17:30 +08:00
5badb44e3e 处理编译问题 2022-03-29 09:43:11 +08:00
82d405c14c 【光环助手V5.8.0】前端优化汇总3月第2周(0328测试结果反馈4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-28 20:32:57 +08:00
2157dcd51a Merge remote-tracking branch 'origin/dev' into dev 2022-03-28 18:38:00 +08:00
872d9d89c5 jenkins 包默认关闭 dokit 2022-03-28 18:37:52 +08:00
lyr
dae4543a82 【光环助手V5.8.0】游戏活动模板功能(前端部分)(0328测试 8) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-28 18:37:10 +08:00
60204d9ab2 测试包集成 dokit 2022-03-28 18:30:57 +08:00
0c86965260 测试包集成 dokit 2022-03-28 18:25:37 +08:00
d0ad110d9e Merge branch 'dev' into feature-night_mode_test
# Conflicts:
#	app/src/main/res/layout/questions_history_detail.xml
2022-03-28 17:40:17 +08:00
5cd88cdb7f 【光环助手V5.8.0】客户端内部需求(0328UI测试问题1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1746 2022-03-28 17:25:08 +08:00
60acd1bac4 【光环助手V5.8.0】前端优化汇总3月第2周(0328第4点UI测试问题1,2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-28 17:10:01 +08:00
lyr
990efacb89 【光环助手V5.8.0】前端优化汇总3月第2周(UI测试问题 2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755#note_140469 2022-03-28 14:27:49 +08:00
7076a6acaa 【光环助手V5.8.0】前端优化汇总3月第3周(4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1763 2022-03-28 10:44:14 +08:00
acc4d6d8ab 【光环助手V5.8.0】前端优化汇总3月第2周(第6点UI测试问题1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-28 10:22:29 +08:00
lyr
0a3ae4379d 【光环助手V5.8.0】游戏活动模板功能(前端部分)(优化下载) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-24 18:21:27 +08:00
lyr
8197f161c0 【光环助手V5.8.0】游戏活动模板功能(前端部分)(修复多版本游戏无法下载问题) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-24 17:10:47 +08:00
lyr
0cd5f0d640 【光环助手V5.8.0】游戏活动模板功能(前端部分)(修改判断是否完成任务的JS调用方法) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-24 11:21:41 +08:00
lyr
790093b585 处理 SonarQube 问题 2022-03-23 18:07:00 +08:00
46093c065d Merge branch 'hotfix-v5.7.0-490-category_crash' into 'release'
修复新分类页切换分类Tab可能导致的闪退问题

See merge request halo/android/assistant-android!227
2022-03-23 17:45:11 +08:00
lyr
9cc1a0dd4e 修复新分类页切换分类Tab可能导致的闪退问题 2022-03-23 17:41:23 +08:00
72a5d2881a 处理 SonarQube 问题 2022-03-23 17:31:59 +08:00
7eabb1098c 处理 SonarQube 问题 2022-03-23 17:08:36 +08:00
7a295a5d05 处理 SonarQube 问题 2022-03-23 16:36:25 +08:00
da26247d30 Merge branch 'dev-5.8.0' into dev 2022-03-23 16:02:50 +08:00
c797779598 修改帖子详情评论框弹起不能自动获取焦点问题 2022-03-23 14:49:44 +08:00
f66bf2398c 修复dialog宽度显示异常 2022-03-22 14:43:30 +08:00
lyr
010ce39e20 【光环助手V5.8.0】游戏活动模板功能(前端部分)(修改接口) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-22 14:36:38 +08:00
lyr
9320059a76 【光环助手V5.8.0】游戏活动模板功能(前端部分)(优化判断是否完成任务的JS调用方法) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-21 19:11:43 +08:00
lyr
3003a310a0 【光环助手V5.8.0】游戏活动模板功能(前端部分)(优化游戏活动页下载按钮的JS调用方法、提供判断是否完成任务的JS调用方法) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-21 18:48:15 +08:00
91af5e6fe6 【光环助手V5.8.0】后台优化汇总3月第2周 (4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1754 2022-03-21 11:36:51 +08:00
lyr
d02dfbdaf7 【光环助手V5.8.0】游戏活动模板功能(前端部分)(提供游戏活动页下载按钮的JS调用方法) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1741 2022-03-18 18:31:46 +08:00
c3e06cc1ff 【光环助手V5.8.0】前端优化汇总3月第3周(3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1763 2022-03-18 17:07:47 +08:00
3e86e368d8 游戏单广场选择标签后修改为不显示骨架图 2022-03-18 16:40:22 +08:00
df231d1530 【光环助手V5.8.0】游戏单功能优化 1(1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1739 2022-03-18 16:34:51 +08:00
006f71def7 Merge remote-tracking branch 'origin/feature-night_mode_test' into feature-night_mode_test 2022-03-17 17:16:24 +08:00
047dc9a7ae 调研日/夜间模式切换的实现 https://git.shanqu.cc/halo/android/assistant-android/-/issues/60 2022-03-17 17:13:16 +08:00
lyr
05abf00994 【光环助手V5.8.0】实名认证优化第五期(客户端 1、4)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1750 2022-03-17 11:59:39 +08:00
c8278f6364 修改帖子详情评论框弹起不能自动获取焦点问题 2022-03-17 11:37:11 +08:00
8cd951c669 Merge branch 'dev' into dev-5.8.0 2022-03-17 11:33:49 +08:00
c43700e4d6 【光环助手V5.8.0】前端优化汇总3月第3周(2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1763 2022-03-17 11:11:11 +08:00
fa2174319e 优化版块页刷新按钮的显示逻辑 2022-03-17 10:48:22 +08:00
lyr
4d6a71c8be 升级Loghub配置方法 2022-03-17 10:35:35 +08:00
lyr
c866f16157 修复进入新分类2.0页-精选Tab数据为空的问题 2022-03-17 10:25:46 +08:00
b99e579ccd 调整社区推荐页列表标题和正文的文本内边距 2022-03-15 16:37:30 +08:00
01eb074df1 优化底部导航栏显示
添加注释
2022-03-14 17:27:36 +08:00
f6473b0e5e Merge branch 'dev-5.8.0' into feature-night_mode_test 2022-03-14 17:11:51 +08:00
e244797e7d 调研日/夜间模式切换的实现 https://git.shanqu.cc/halo/android/assistant-android/-/issues/60 2022-03-14 17:00:28 +08:00
f267908122 Merge branch 'dev' into dev-5.8.0 2022-03-14 16:22:32 +08:00
6128e364e6 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-03-14 16:20:46 +08:00
32a4fda9bc 完全移除 DataBinding(修复首页排行榜显示问题)https://git.shanqu.cc/halo/android/assistant-android/-/issues/59 2022-03-14 15:42:53 +08:00
792ce39792 Merge branch 'hotfix-v5.6.3-474-fix_gamedetail_invisible_on_some_old_devices' into 'release'
修复部分设备游戏详情页显示为空白的问题

See merge request halo/android/assistant-android!226
2022-03-14 14:47:47 +08:00
94b80b3f8b 修复部分设备游戏详情页显示为空白的问题 2022-03-14 14:43:54 +08:00
0e49985edf Merge branch 'hotfix-v5.6.3-474-crashes' into 'release'
修复查看大图、青少年模式页面闪退

See merge request halo/android/assistant-android!225
2022-03-14 11:39:55 +08:00
164f508cbc 修复查看大图、青少年模式页面闪退 2022-03-14 11:35:21 +08:00
cdfda4d963 修改我的游戏分割线显示问题 2022-03-11 16:42:54 +08:00
c3b850972f 【光环助手V5.8.0】前端优化汇总3月第2周(0311测试结果反馈4,10) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-11 16:28:26 +08:00
89f8aebefe Merge branch 'dev-5.8.0' into feature-night_mode_test
# Conflicts:
#	app/src/main/res/layout/activity_ask_column_detail.xml
#	app/src/main/res/layout/activity_background_clip.xml
#	app/src/main/res/layout/activity_kaifu_patch.xml
#	app/src/main/res/layout/activity_rating_edit.xml
#	app/src/main/res/layout/activity_video_game.xml
#	app/src/main/res/layout/activity_video_uplaod.xml
#	app/src/main/res/layout/ask_search_question_item.xml
#	app/src/main/res/layout/catalog_header_item.xml
#	app/src/main/res/layout/catalog_image_item.xml
#	app/src/main/res/layout/commodity_item.xml
#	app/src/main/res/layout/common_collection_detail_one_item.xml
#	app/src/main/res/layout/common_collection_detail_two_item.xml
#	app/src/main/res/layout/common_collection_image_text_item.xml
#	app/src/main/res/layout/common_collection_item.xml
#	app/src/main/res/layout/community_follow_item.xml
#	app/src/main/res/layout/community_select_opened_item.xml
#	app/src/main/res/layout/daily_task_item.xml
#	app/src/main/res/layout/dialog_download_link.xml
#	app/src/main/res/layout/dialog_upload_schedule.xml
#	app/src/main/res/layout/download_dialog_installed_item.xml
#	app/src/main/res/layout/download_dialog_item.xml
#	app/src/main/res/layout/followers_or_fans_item.xml
#	app/src/main/res/layout/forum_search_content_list.xml
#	app/src/main/res/layout/fragment_answer_detail.xml
#	app/src/main/res/layout/fragment_answer_edit.xml
#	app/src/main/res/layout/fragment_background_preview.xml
#	app/src/main/res/layout/fragment_forum_detail.xml
#	app/src/main/res/layout/fragment_forum_video_detail.xml
#	app/src/main/res/layout/fragment_game_collection_poster.xml
#	app/src/main/res/layout/fragment_main_home.xml
#	app/src/main/res/layout/fragment_search_default.xml
#	app/src/main/res/layout/game_collection_detail_image_item.xml
#	app/src/main/res/layout/game_collection_item.xml
#	app/src/main/res/layout/game_head_item.xml
#	app/src/main/res/layout/game_image_item.xml
#	app/src/main/res/layout/game_image_slide_item.xml
#	app/src/main/res/layout/game_viewpager_item.xml
#	app/src/main/res/layout/home_amway_item.xml
#	app/src/main/res/layout/home_game_item.xml
#	app/src/main/res/layout/home_recommend_item.xml
#	app/src/main/res/layout/home_slide_list_item.xml
#	app/src/main/res/layout/item_article_detail_comment.xml
#	app/src/main/res/layout/item_forum_video.xml
#	app/src/main/res/layout/item_game_libao.xml
#	app/src/main/res/layout/item_my_game_collection.xml
#	app/src/main/res/layout/local_video_item.xml
#	app/src/main/res/layout/novice_task_item.xml
#	app/src/main/res/layout/rating_comment_item.xml
#	app/src/main/res/layout/rating_reply_item.xml
#	app/src/main/res/layout/set_wait_dialog.xml
#	app/src/main/res/layout/stairs_comment_item.xml
2022-03-11 11:41:46 +08:00
52eca3b1ab 调研日/夜间模式切换的实现 https://git.shanqu.cc/halo/android/assistant-android/-/issues/60 2022-03-11 11:18:26 +08:00
0e26943d25 【光环助手V5.8.0】前端优化汇总3月第2周(10) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-10 17:32:08 +08:00
8286b0137f 版本更新至 5.6.3 2022-03-10 17:22:06 +08:00
lyr
0a8bef8ac3 【光环助手V5.8.0】前端优化汇总3月第2周(3、6(游戏单详情骨架图))https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-10 17:13:53 +08:00
a8fa4cf872 修改设置页面异步获取缓存大小 2022-03-10 12:08:49 +08:00
775f454e38 【光环助手V5.8.0】前端优化汇总3月第2周 6(游戏单、游戏单广场) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755
【光环助手V5.8.0】游戏单功能优化(UI部分)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1739
2022-03-10 11:19:36 +08:00
b7de326a21 【光环助手V5.8.0】前端优化汇总3月第2周(4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-10 09:53:06 +08:00
5b0d2e8294 缩减线程池等待队列大小 2022-03-09 15:16:29 +08:00
ec34de4675 Merge branch 'feature-optimise_filter_api' into 'dev-5.8.0'
调整启动时获取已收录游戏及游戏更新/插件化的逻辑 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1746

See merge request halo/android/assistant-android!224
2022-03-09 15:11:25 +08:00
0f6aa5ca9f 调整启动时获取已收录游戏及游戏更新/插件化的逻辑 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1746 2022-03-09 15:09:36 +08:00
lyr
b0cdd1029e 【光环助手V5.8.0】客户端内部需求 3(修改首页部分点击游戏item使用游戏id进入游戏详情)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1746 2022-03-08 16:41:52 +08:00
e554e9ca5f 修改游戏单详情游戏推荐理由不显示问题 2022-03-08 13:25:32 +08:00
ff879454c1 【光环助手V5.8.0】新社区3期-社区数据后台-内容数据(补充share_result埋点携带信息) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1420 2022-03-08 13:03:06 +08:00
7d3baaa501 【光环助手V5.8.0】前端优化汇总3月第2周(5,7) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-08 11:28:53 +08:00
5a57a58f0a Merge branch 'feature_remove_duplicated_files' into dev-5.8.0 2022-03-08 09:57:07 +08:00
e01bfb4676 移除完全相同的冗余资源文件 https://git.shanqu.cc/halo/android/assistant-android/-/issues/62 2022-03-08 09:53:48 +08:00
3617004de2 Merge branch 'hotfix-v5.6.2-473_simulator_not_install' into 'release'
修改第二次下载相同的游戏不能自动触发安装操作问题

See merge request halo/android/assistant-android!223
2022-03-07 18:34:28 +08:00
de8234868a 【光环助手V5.8.0】前端优化汇总3月第2周(8) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1755 2022-03-07 18:31:34 +08:00
3d31d9a435 修改第二次下载相同的游戏不能自动触发安装操作问题 2022-03-07 18:23:21 +08:00
9220f13c9e 移除完全相同的冗余资源文件 https://git.shanqu.cc/halo/android/assistant-android/-/issues/62 2022-03-07 17:42:03 +08:00
10a3ed7f15 Merge branch 'feature-remove_databinding' into dev-5.8.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/gamedetail/fuli/GameNewsAdapter.kt
2022-03-07 11:13:08 +08:00
680ec6e285 移除搜索默认页冗余的数据库查询 2022-03-07 10:38:27 +08:00
d99fbe5292 确定 WorkManager 调用,移除日志上报 2022-03-07 10:35:31 +08:00
554eb671b2 新增开服页面还原为DataBinding 2022-03-04 14:57:48 +08:00
9f2e46d876 完全移除 DataBinding https://git.shanqu.cc/halo/android/assistant-android/-/issues/59 2022-03-04 11:09:13 +08:00
d2efb8391c 完全移除 DataBinding https://git.shanqu.cc/halo/android/assistant-android/-/issues/59 2022-03-04 10:39:23 +08:00
ac04cc4525 修改版本说明弹窗闪退问题 2022-03-03 18:52:32 +08:00
03855609c1 完全移除 DataBinding https://git.shanqu.cc/halo/android/assistant-android/-/issues/59 2022-03-03 18:03:08 +08:00
2408af31d9 Update .gitmodules 2022-03-03 10:13:12 +08:00
fc2dcbd4b0 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	dependencies.gradle
2022-03-02 18:13:06 +08:00
3012bf6a46 版本更新至 5.8.0 2022-03-02 17:31:07 +08:00
e07529846c 完全移除 DataBinding https://git.shanqu.cc/halo/android/assistant-android/-/issues/59 2022-03-02 17:12:38 +08:00
8805763b1d 版本更新至 5.6.2-473 2022-03-02 11:11:32 +08:00
5fa578c9ed Merge branch 'hotfix-v5.6.2-472-feedback_placeholder' into 'release'
修复反馈页面默认输入内容异常的问题

See merge request halo/android/assistant-android!222
2022-03-02 11:10:18 +08:00
5056dddf26 修复反馈页面默认输入内容异常的问题 2022-03-02 11:08:31 +08:00
lyr
010c41c3c9 修复从帖子详情页点赞评论后返回论坛详情页会闪退的问题 2022-03-02 11:06:36 +08:00
lyr
d7a81d2268 完全移除 Kotlin synthetics for views https://git.shanqu.cc/halo/android/assistant-android/-/issues/58 2022-03-02 10:32:19 +08:00
afa8c776b9 修复部分游戏进入游戏详情旧专区闪退的问题 2022-03-01 15:17:39 +08:00
60cfee7ce3 修改多行输入框提示文字颜色 2022-02-28 18:24:16 +08:00
e418f5d3ea 处理 SonarQube 问题 2022-02-28 18:07:34 +08:00
80f30b82b6 【光环助手V5.7.0】光环助手UI组件库(第3期)(UI测试问题汇总补充1-2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1698 2022-02-28 17:55:17 +08:00
1308737382 【光环助手V5.7.0】光环助手UI组件库(第3期)(UI测试问题汇总1-3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1698 2022-02-28 16:24:53 +08:00
c1b1b2a6ce 【光环助手V5.7.0】光环助手UI组件库(第3期)(UI测试问题汇总1-3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1698 2022-02-28 16:19:48 +08:00
3dd2b5df49 移除 Manifest 无用的 Activity 声明 2022-02-25 15:01:46 +08:00
lyr
34ac01cde8 处理 SonarQube 问题 2022-02-25 14:19:40 +08:00
lyr
c09efbfa78 【光环助手V5.7.0】游戏单功能优化(前端部分)(0224UI测试问题补充 遗留) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696#note_136637 2022-02-24 18:04:53 +08:00
lyr
054f6200f3 【光环助手V5.7.0】游戏单功能优化(前端部分)(0224UI测试问题补充 1修正) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696#note_136637 2022-02-24 17:57:41 +08:00
dabe88b703 【光环助手V5.7.0】自定义栏目优化(第二期)(0224UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1694#note_136524 2022-02-24 17:45:35 +08:00
35dee07537 【光环助手V5.7.0】游戏单功能优化(前端部分)(0224测试:1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-24 15:37:27 +08:00
67e44d378c 【光环助手V5.7.0】自定义栏目优化(第二期)(0224UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1694#note_136524 2022-02-24 14:53:31 +08:00
lyr
09d9fc446e 【光环助手V5.7.0】游戏单功能优化(前端部分)(0224UI测试问题补充 1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696#note_136491 2022-02-24 11:08:48 +08:00
1971e3bb81 修复 GameIconView 的显示问题 2022-02-24 09:43:39 +08:00
b560cdfa6e 修复登录中dialog不显示loading动画的问题
优化大图渐出动画
2022-02-23 18:17:28 +08:00
0bfdedfae8 处理 SonarQube 问题 2022-02-23 16:40:44 +08:00
5cd424a680 【光环助手V5.7.0】自定义栏目优化(第二期)(0222UI测试问题 & 0223测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1694#note_136262 2022-02-23 16:29:41 +08:00
lyr
012103e706 【光环助手V5.7.0】游戏单功能优化(前端部分)(UI测试问题汇总 3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696#note_136359 2022-02-23 16:04:17 +08:00
2ad067b80d 【光环助手V5.7.0】游戏单功能优化(前端部分)(UI测试问题汇总1,2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-23 14:36:45 +08:00
lyr
2f551db4c7 【光环助手V5.7.0】游戏单功能优化(前端部分)(0223测试 3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696#note_136356 2022-02-23 14:21:21 +08:00
343aa77c86 【光环助手V5.7.0】游戏单功能优化(前端部分)(0223测试:1,2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-23 12:05:12 +08:00
b7bbf8688f Merge branch 'flutter-dev' into 'dev'
更新Flutter Fresco插件(支持gif、webp)

See merge request halo/android/assistant-android!218
2022-02-23 10:25:19 +08:00
67a98023c6 更新Flutter Fresco插件(支持gif、webp) 2022-02-23 10:14:11 +08:00
f0c6486855 修改查看对话页面评论输入框UI错乱问题 2022-02-23 09:36:48 +08:00
201884643f 移除 butterknife 2022-02-22 18:34:47 +08:00
410ad346e6 【光环助手V5.7.0】新社区6期-活动管理优化(后台)(0222 验收问题5) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1608 2022-02-22 18:01:24 +08:00
782bb3a825 调整选择默认封面页面UI 2022-02-22 15:59:30 +08:00
e77b21719c 【光环助手V5.7.0】游戏单功能优化(前端部分)(9) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-22 15:43:00 +08:00
fffdd596d2 【光环助手V5.7.0】后台优化汇总2月第3周(9(2)) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1726 2022-02-22 15:03:31 +08:00
6e2b6cc397 移除 kotterknife 2022-02-22 14:47:54 +08:00
97ac478c8d 处理 SonarQube 问题 2022-02-22 14:44:46 +08:00
1b655f27d1 Merge branch 'release' into dev 2022-02-22 14:20:09 +08:00
32549fc16f 处理 flutter 编译脚本依赖冲突问题 2022-02-22 12:20:07 +08:00
55d83d12bb Merge remote-tracking branch 'origin/dev' into dev 2022-02-22 11:36:20 +08:00
fd1e7f7f4c 处理SonarQube问题 2022-02-22 11:36:11 +08:00
lyr
0fc5a16f80 【光环助手V5.7.0】前端优化汇总2月第3周(6)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1728 2022-02-22 11:32:14 +08:00
4992845195 处理SonarQube问题 2022-02-22 11:25:24 +08:00
e9db55bcb6 修改sonarQube问题 2022-02-22 11:15:11 +08:00
11056df05e 【光环助手V5.7.0】自定义栏目优化(第二期)(0222测试 1~4, 6) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1694 2022-02-22 11:04:57 +08:00
lyr
ffd04b6f60 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码(补充2)https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-22 10:33:48 +08:00
abdbe601b4 修改游戏单选择默认封面弹窗点击换一批卡片位置闪烁问题 2022-02-22 10:17:23 +08:00
bca7e2e4cf Merge remote-tracking branch 'origin/release' into dev 2022-02-22 09:37:54 +08:00
fcdd78d668 Merge branch 'dev-5.7.0' into dev 2022-02-22 09:33:12 +08:00
c210c3b286 【光环助手V5.7.0】游戏单功能优化(前端部分)(5) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-21 15:43:10 +08:00
cca1f76b85 Merge branch 'feature-issues1694' into 'dev-5.7.0'
完成【光环助手V5.7.0】自定义栏目优化(第二期) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1694

See merge request halo/android/assistant-android!214
2022-02-21 15:27:06 +08:00
f667ef562e 完成【光环助手V5.7.0】自定义栏目优化(第二期) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1694
完成【光环助手V5.7.0】自定义栏目优化(第二期)(UI 逻辑部分) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1694
2022-02-21 15:25:57 +08:00
3565214e38 【光环助手V5.7.0】前端优化汇总2月第3周(9) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1728 2022-02-21 14:55:13 +08:00
8f11ad7d6c Merge remote-tracking branch 'origin/dev-5.7.0' into dev-5.7.0 2022-02-21 10:23:16 +08:00
4612f7452f 【光环助手V5.7.0】前端优化汇总2月第3周(8) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1728 2022-02-21 10:22:52 +08:00
lyr
2850789b29 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码(补充1)https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-21 10:09:24 +08:00
bf3dbb623d 修改首页重建后点击返回键闪退问题 2022-02-18 20:49:12 +08:00
018959aa03 【光环助手V5.7.0】前端优化汇总2月第3周(7,10,12) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1728 2022-02-18 16:41:10 +08:00
f921ff6f4d 【光环助手V5.7.0】新社区6期-活动管理优化(后台)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1608 2022-02-18 14:35:03 +08:00
8a0809498a 移除无用 import 2022-02-18 11:31:19 +08:00
447e3f4421 Merge branch 'dev-5.7.0' of git.ghzs.com:halo/android/assistant-android into dev-5.7.0 2022-02-17 17:06:07 +08:00
e2172a6fe4 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码(补充1) https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-17 17:06:01 +08:00
lyr
ee1eafe5a1 【光环助手V5.7.0】前端优化汇总2月第3周(1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1728 2022-02-16 17:26:08 +08:00
lyr
79e95a8146 【光环助手V5.7.0】游戏单功能优化(前端部分)(4 提交遗漏文件) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-16 16:51:20 +08:00
lyr
3d05bad997 【光环助手V5.7.0】游戏单功能优化(前端部分)(4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-16 16:50:27 +08:00
09011ac18b 整理跳转工具箱代码 2022-02-16 14:59:23 +08:00
42a958a9cc Merge branch 'dev' into 'dev-5.7.0'
合并调整

See merge request halo/android/assistant-android!210
2022-02-16 10:08:37 +08:00
2922878163 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码(补充2) https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-15 17:04:59 +08:00
4608891a88 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码(补充1) https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-15 16:13:51 +08:00
c1c63d82af 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码(补充1) https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-15 11:50:54 +08:00
b78eb5a268 Merge branch 'dev-5.7.0' of git.ghzs.com:halo/android/assistant-android into dev-5.7.0 2022-02-15 10:55:20 +08:00
f9361ab134 【光环助手V5.7.0】新社区6期-帖子发布页优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1692 2022-02-15 10:55:14 +08:00
efb6a07a13 【光环助手V5.7.0】光环助手UI组件库(第3期)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1698 2022-02-14 14:55:06 +08:00
6b0bacc018 整理游戏详情详情 tab 代码 2022-02-14 10:56:42 +08:00
9f2f0734ff 移除游戏详情详情 tab 使用的 databinding 代码 2022-02-11 15:04:13 +08:00
lyr
5d54fbde39 修复 WorkManager 失效的问题 https://git.shanqu.cc/halo/android/assistant-android/-/issues/57 2022-02-11 14:40:53 +08:00
93bfbe9c36 修复游戏单CardView在模拟器上不显示的问题 2022-02-11 10:58:49 +08:00
5e9e5c1892 【光环助手V5.7.0】游戏单功能优化(前端部分)(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696 2022-02-11 10:04:55 +08:00
ee3c431ef6 【光环助手V5.7.0】游戏单功能优化(前端部分)(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1696#note_134703 2022-02-10 17:58:54 +08:00
d4baa0b4d8 整理游戏详情详情 tab 代码 2022-02-10 15:31:13 +08:00
70b411a946 Merge branch 'feature-upgrade_targetSdk_28' into 'dev-5.7.0'
将 TargetSdk 升级到 28

See merge request halo/android/assistant-android!204
2022-02-10 11:38:27 +08:00
0e3189404e 将 TargetSdk 升级到 28 https://git.shanqu.cc/halo/android/assistant-android/-/issues/56 2022-02-10 09:28:15 +08:00
d95b2eccaf Merge remote-tracking branch 'origin/dev' into dev-5.7.0 2022-02-09 16:55:32 +08:00
4f4097a7a9 版本更新至 5.7.0 2022-02-08 10:50:38 +08:00
098639042b Merge branch 'feature-refactor_view_binding' into 'dev-5.7.0'
使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics

See merge request halo/android/assistant-android!201
2022-02-08 10:49:18 +08:00
lyr
3a9bc99f07 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-08 10:30:17 +08:00
37e1a18349 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-08 10:30:17 +08:00
3aa387a72a 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-08 10:29:19 +08:00
52cfa3def9 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-08 10:26:31 +08:00
506b3effdc 使用 ViewBinding 替换 ButterKnife/DataBinding/KotterKnife/Synthetics View 获取代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/55 2022-02-08 10:26:31 +08:00
4959 changed files with 169459 additions and 169490 deletions

555
.editorconfig Normal file
View File

@ -0,0 +1,555 @@
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = false
max_line_length = 120
tab_width = 4
ij_continuation_indent_size = 8
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = false
ij_smart_tabs = false
ij_visual_guides = none
ij_wrap_on_typing = false
[*.java]
ij_java_align_consecutive_assignments = false
ij_java_align_consecutive_variable_declarations = false
ij_java_align_group_field_declarations = false
ij_java_align_multiline_annotation_parameters = false
ij_java_align_multiline_array_initializer_expression = false
ij_java_align_multiline_assignment = false
ij_java_align_multiline_binary_operation = false
ij_java_align_multiline_chained_methods = false
ij_java_align_multiline_extends_list = false
ij_java_align_multiline_for = true
ij_java_align_multiline_method_parentheses = false
ij_java_align_multiline_parameters = true
ij_java_align_multiline_parameters_in_calls = false
ij_java_align_multiline_parenthesized_expression = false
ij_java_align_multiline_records = true
ij_java_align_multiline_resources = true
ij_java_align_multiline_ternary_operation = false
ij_java_align_multiline_text_blocks = false
ij_java_align_multiline_throws_list = false
ij_java_align_subsequent_simple_methods = false
ij_java_align_throws_keyword = false
ij_java_align_types_in_multi_catch = true
ij_java_annotation_parameter_wrap = off
ij_java_array_initializer_new_line_after_left_brace = false
ij_java_array_initializer_right_brace_on_new_line = false
ij_java_array_initializer_wrap = off
ij_java_assert_statement_colon_on_next_line = false
ij_java_assert_statement_wrap = off
ij_java_assignment_wrap = off
ij_java_binary_operation_sign_on_next_line = false
ij_java_binary_operation_wrap = off
ij_java_blank_lines_after_anonymous_class_header = 0
ij_java_blank_lines_after_class_header = 0
ij_java_blank_lines_after_imports = 1
ij_java_blank_lines_after_package = 1
ij_java_blank_lines_around_class = 1
ij_java_blank_lines_around_field = 0
ij_java_blank_lines_around_field_in_interface = 0
ij_java_blank_lines_around_initializer = 1
ij_java_blank_lines_around_method = 1
ij_java_blank_lines_around_method_in_interface = 1
ij_java_blank_lines_before_class_end = 0
ij_java_blank_lines_before_imports = 1
ij_java_blank_lines_before_method_body = 0
ij_java_blank_lines_before_package = 0
ij_java_block_brace_style = end_of_line
ij_java_block_comment_add_space = false
ij_java_block_comment_at_first_column = true
ij_java_builder_methods = none
ij_java_call_parameters_new_line_after_left_paren = false
ij_java_call_parameters_right_paren_on_new_line = false
ij_java_call_parameters_wrap = off
ij_java_case_statement_on_separate_line = true
ij_java_catch_on_new_line = false
ij_java_class_annotation_wrap = split_into_lines
ij_java_class_brace_style = end_of_line
ij_java_class_count_to_use_import_on_demand = 99
ij_java_class_names_in_javadoc = 1
ij_java_do_not_indent_top_level_class_members = false
ij_java_do_not_wrap_after_single_annotation = false
ij_java_do_not_wrap_after_single_annotation_in_parameter = false
ij_java_do_while_brace_force = never
ij_java_doc_add_blank_line_after_description = true
ij_java_doc_add_blank_line_after_param_comments = false
ij_java_doc_add_blank_line_after_return = false
ij_java_doc_add_p_tag_on_empty_lines = true
ij_java_doc_align_exception_comments = true
ij_java_doc_align_param_comments = true
ij_java_doc_do_not_wrap_if_one_line = false
ij_java_doc_enable_formatting = true
ij_java_doc_enable_leading_asterisks = true
ij_java_doc_indent_on_continuation = false
ij_java_doc_keep_empty_lines = true
ij_java_doc_keep_empty_parameter_tag = true
ij_java_doc_keep_empty_return_tag = true
ij_java_doc_keep_empty_throws_tag = true
ij_java_doc_keep_invalid_tags = true
ij_java_doc_param_description_on_new_line = false
ij_java_doc_preserve_line_breaks = false
ij_java_doc_use_throws_not_exception_tag = true
ij_java_else_on_new_line = false
ij_java_enum_constants_wrap = off
ij_java_extends_keyword_wrap = off
ij_java_extends_list_wrap = off
ij_java_field_annotation_wrap = split_into_lines
ij_java_finally_on_new_line = false
ij_java_for_brace_force = never
ij_java_for_statement_new_line_after_left_paren = false
ij_java_for_statement_right_paren_on_new_line = false
ij_java_for_statement_wrap = off
ij_java_generate_final_locals = false
ij_java_generate_final_parameters = false
ij_java_if_brace_force = never
ij_java_imports_layout = $android.**,$androidx.**,$com.**,$junit.**,$net.**,$org.**,$java.**,$javax.**,$*,|,android.**,|,androidx.**,|,com.**,|,junit.**,|,net.**,|,org.**,|,java.**,|,javax.**,|,*,|
ij_java_indent_case_from_switch = true
ij_java_insert_inner_class_imports = false
ij_java_insert_override_annotation = true
ij_java_keep_blank_lines_before_right_brace = 2
ij_java_keep_blank_lines_between_package_declaration_and_header = 2
ij_java_keep_blank_lines_in_code = 2
ij_java_keep_blank_lines_in_declarations = 2
ij_java_keep_builder_methods_indents = false
ij_java_keep_control_statement_in_one_line = true
ij_java_keep_first_column_comment = true
ij_java_keep_indents_on_empty_lines = false
ij_java_keep_line_breaks = true
ij_java_keep_multiple_expressions_in_one_line = false
ij_java_keep_simple_blocks_in_one_line = false
ij_java_keep_simple_classes_in_one_line = false
ij_java_keep_simple_lambdas_in_one_line = false
ij_java_keep_simple_methods_in_one_line = false
ij_java_label_indent_absolute = false
ij_java_label_indent_size = 0
ij_java_lambda_brace_style = end_of_line
ij_java_layout_static_imports_separately = true
ij_java_line_comment_add_space = false
ij_java_line_comment_add_space_on_reformat = false
ij_java_line_comment_at_first_column = true
ij_java_method_annotation_wrap = split_into_lines
ij_java_method_brace_style = end_of_line
ij_java_method_call_chain_wrap = off
ij_java_method_parameters_new_line_after_left_paren = false
ij_java_method_parameters_right_paren_on_new_line = false
ij_java_method_parameters_wrap = off
ij_java_modifier_list_wrap = false
ij_java_multi_catch_types_wrap = normal
ij_java_names_count_to_use_import_on_demand = 99
ij_java_new_line_after_lparen_in_annotation = false
ij_java_new_line_after_lparen_in_record_header = false
ij_java_parameter_annotation_wrap = off
ij_java_parentheses_expression_new_line_after_left_paren = false
ij_java_parentheses_expression_right_paren_on_new_line = false
ij_java_place_assignment_sign_on_next_line = false
ij_java_prefer_longer_names = true
ij_java_prefer_parameters_wrap = false
ij_java_record_components_wrap = normal
ij_java_repeat_synchronized = true
ij_java_replace_instanceof_and_cast = false
ij_java_replace_null_check = true
ij_java_replace_sum_lambda_with_method_ref = true
ij_java_resource_list_new_line_after_left_paren = false
ij_java_resource_list_right_paren_on_new_line = false
ij_java_resource_list_wrap = off
ij_java_rparen_on_new_line_in_annotation = false
ij_java_rparen_on_new_line_in_record_header = false
ij_java_space_after_closing_angle_bracket_in_type_argument = false
ij_java_space_after_colon = true
ij_java_space_after_comma = true
ij_java_space_after_comma_in_type_arguments = true
ij_java_space_after_for_semicolon = true
ij_java_space_after_quest = true
ij_java_space_after_type_cast = true
ij_java_space_before_annotation_array_initializer_left_brace = false
ij_java_space_before_annotation_parameter_list = false
ij_java_space_before_array_initializer_left_brace = false
ij_java_space_before_catch_keyword = true
ij_java_space_before_catch_left_brace = true
ij_java_space_before_catch_parentheses = true
ij_java_space_before_class_left_brace = true
ij_java_space_before_colon = true
ij_java_space_before_colon_in_foreach = true
ij_java_space_before_comma = false
ij_java_space_before_do_left_brace = true
ij_java_space_before_else_keyword = true
ij_java_space_before_else_left_brace = true
ij_java_space_before_finally_keyword = true
ij_java_space_before_finally_left_brace = true
ij_java_space_before_for_left_brace = true
ij_java_space_before_for_parentheses = true
ij_java_space_before_for_semicolon = false
ij_java_space_before_if_left_brace = true
ij_java_space_before_if_parentheses = true
ij_java_space_before_method_call_parentheses = false
ij_java_space_before_method_left_brace = true
ij_java_space_before_method_parentheses = false
ij_java_space_before_opening_angle_bracket_in_type_parameter = false
ij_java_space_before_quest = true
ij_java_space_before_switch_left_brace = true
ij_java_space_before_switch_parentheses = true
ij_java_space_before_synchronized_left_brace = true
ij_java_space_before_synchronized_parentheses = true
ij_java_space_before_try_left_brace = true
ij_java_space_before_try_parentheses = true
ij_java_space_before_type_parameter_list = false
ij_java_space_before_while_keyword = true
ij_java_space_before_while_left_brace = true
ij_java_space_before_while_parentheses = true
ij_java_space_inside_one_line_enum_braces = false
ij_java_space_within_empty_array_initializer_braces = false
ij_java_space_within_empty_method_call_parentheses = false
ij_java_space_within_empty_method_parentheses = false
ij_java_spaces_around_additive_operators = true
ij_java_spaces_around_annotation_eq = true
ij_java_spaces_around_assignment_operators = true
ij_java_spaces_around_bitwise_operators = true
ij_java_spaces_around_equality_operators = true
ij_java_spaces_around_lambda_arrow = true
ij_java_spaces_around_logical_operators = true
ij_java_spaces_around_method_ref_dbl_colon = false
ij_java_spaces_around_multiplicative_operators = true
ij_java_spaces_around_relational_operators = true
ij_java_spaces_around_shift_operators = true
ij_java_spaces_around_type_bounds_in_type_parameters = true
ij_java_spaces_around_unary_operator = false
ij_java_spaces_within_angle_brackets = false
ij_java_spaces_within_annotation_parentheses = false
ij_java_spaces_within_array_initializer_braces = false
ij_java_spaces_within_braces = false
ij_java_spaces_within_brackets = false
ij_java_spaces_within_cast_parentheses = false
ij_java_spaces_within_catch_parentheses = false
ij_java_spaces_within_for_parentheses = false
ij_java_spaces_within_if_parentheses = false
ij_java_spaces_within_method_call_parentheses = false
ij_java_spaces_within_method_parentheses = false
ij_java_spaces_within_parentheses = false
ij_java_spaces_within_record_header = false
ij_java_spaces_within_switch_parentheses = false
ij_java_spaces_within_synchronized_parentheses = false
ij_java_spaces_within_try_parentheses = false
ij_java_spaces_within_while_parentheses = false
ij_java_special_else_if_treatment = true
ij_java_subclass_name_suffix = Impl
ij_java_ternary_operation_signs_on_next_line = false
ij_java_ternary_operation_wrap = off
ij_java_test_name_suffix = Test
ij_java_throws_keyword_wrap = off
ij_java_throws_list_wrap = off
ij_java_use_external_annotations = false
ij_java_use_fq_class_names = false
ij_java_use_relative_indents = false
ij_java_use_single_class_imports = true
ij_java_variable_annotation_wrap = off
ij_java_visibility = public
ij_java_while_brace_force = never
ij_java_while_on_new_line = false
ij_java_wrap_comments = false
ij_java_wrap_first_method_in_call_chain = false
ij_java_wrap_long_lines = false
[.editorconfig]
ij_editorconfig_align_group_field_declarations = false
ij_editorconfig_space_after_colon = false
ij_editorconfig_space_after_comma = true
ij_editorconfig_space_before_colon = false
ij_editorconfig_space_before_comma = false
ij_editorconfig_spaces_around_assignment_operators = true
[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}]
ij_continuation_indent_size = 4
ij_xml_align_attributes = false
ij_xml_align_text = false
ij_xml_attribute_wrap = normal
ij_xml_block_comment_add_space = false
ij_xml_block_comment_at_first_column = true
ij_xml_keep_blank_lines = 2
ij_xml_keep_indents_on_empty_lines = false
ij_xml_keep_line_breaks = false
ij_xml_keep_line_breaks_in_text = true
ij_xml_keep_whitespaces = false
ij_xml_keep_whitespaces_around_cdata = preserve
ij_xml_keep_whitespaces_inside_cdata = false
ij_xml_line_comment_at_first_column = true
ij_xml_space_after_tag_name = false
ij_xml_space_around_equals_in_attribute = false
ij_xml_space_inside_empty_tag = true
ij_xml_text_wrap = normal
ij_xml_use_custom_settings = true
[{*.gant,*.groovy,*.gy}]
ij_groovy_align_group_field_declarations = false
ij_groovy_align_multiline_array_initializer_expression = false
ij_groovy_align_multiline_assignment = false
ij_groovy_align_multiline_binary_operation = false
ij_groovy_align_multiline_chained_methods = false
ij_groovy_align_multiline_extends_list = false
ij_groovy_align_multiline_for = true
ij_groovy_align_multiline_list_or_map = true
ij_groovy_align_multiline_method_parentheses = false
ij_groovy_align_multiline_parameters = true
ij_groovy_align_multiline_parameters_in_calls = false
ij_groovy_align_multiline_resources = true
ij_groovy_align_multiline_ternary_operation = false
ij_groovy_align_multiline_throws_list = false
ij_groovy_align_named_args_in_map = true
ij_groovy_align_throws_keyword = false
ij_groovy_array_initializer_new_line_after_left_brace = false
ij_groovy_array_initializer_right_brace_on_new_line = false
ij_groovy_array_initializer_wrap = off
ij_groovy_assert_statement_wrap = off
ij_groovy_assignment_wrap = off
ij_groovy_binary_operation_wrap = off
ij_groovy_blank_lines_after_class_header = 0
ij_groovy_blank_lines_after_imports = 1
ij_groovy_blank_lines_after_package = 1
ij_groovy_blank_lines_around_class = 1
ij_groovy_blank_lines_around_field = 0
ij_groovy_blank_lines_around_field_in_interface = 0
ij_groovy_blank_lines_around_method = 1
ij_groovy_blank_lines_around_method_in_interface = 1
ij_groovy_blank_lines_before_imports = 1
ij_groovy_blank_lines_before_method_body = 0
ij_groovy_blank_lines_before_package = 0
ij_groovy_block_brace_style = end_of_line
ij_groovy_block_comment_add_space = false
ij_groovy_block_comment_at_first_column = true
ij_groovy_call_parameters_new_line_after_left_paren = false
ij_groovy_call_parameters_right_paren_on_new_line = false
ij_groovy_call_parameters_wrap = off
ij_groovy_catch_on_new_line = false
ij_groovy_class_annotation_wrap = split_into_lines
ij_groovy_class_brace_style = end_of_line
ij_groovy_class_count_to_use_import_on_demand = 5
ij_groovy_do_while_brace_force = never
ij_groovy_else_on_new_line = false
ij_groovy_enable_groovydoc_formatting = true
ij_groovy_enum_constants_wrap = off
ij_groovy_extends_keyword_wrap = off
ij_groovy_extends_list_wrap = off
ij_groovy_field_annotation_wrap = split_into_lines
ij_groovy_finally_on_new_line = false
ij_groovy_for_brace_force = never
ij_groovy_for_statement_new_line_after_left_paren = false
ij_groovy_for_statement_right_paren_on_new_line = false
ij_groovy_for_statement_wrap = off
ij_groovy_if_brace_force = never
ij_groovy_import_annotation_wrap = 2
ij_groovy_imports_layout = *,|,javax.**,java.**,|,$*
ij_groovy_indent_case_from_switch = true
ij_groovy_indent_label_blocks = true
ij_groovy_insert_inner_class_imports = false
ij_groovy_keep_blank_lines_before_right_brace = 2
ij_groovy_keep_blank_lines_in_code = 2
ij_groovy_keep_blank_lines_in_declarations = 2
ij_groovy_keep_control_statement_in_one_line = true
ij_groovy_keep_first_column_comment = true
ij_groovy_keep_indents_on_empty_lines = false
ij_groovy_keep_line_breaks = true
ij_groovy_keep_multiple_expressions_in_one_line = false
ij_groovy_keep_simple_blocks_in_one_line = false
ij_groovy_keep_simple_classes_in_one_line = true
ij_groovy_keep_simple_lambdas_in_one_line = true
ij_groovy_keep_simple_methods_in_one_line = true
ij_groovy_label_indent_absolute = false
ij_groovy_label_indent_size = 0
ij_groovy_lambda_brace_style = end_of_line
ij_groovy_layout_static_imports_separately = true
ij_groovy_line_comment_add_space = false
ij_groovy_line_comment_add_space_on_reformat = false
ij_groovy_line_comment_at_first_column = true
ij_groovy_method_annotation_wrap = split_into_lines
ij_groovy_method_brace_style = end_of_line
ij_groovy_method_call_chain_wrap = off
ij_groovy_method_parameters_new_line_after_left_paren = false
ij_groovy_method_parameters_right_paren_on_new_line = false
ij_groovy_method_parameters_wrap = off
ij_groovy_modifier_list_wrap = false
ij_groovy_names_count_to_use_import_on_demand = 3
ij_groovy_packages_to_use_import_on_demand = java.awt.*,javax.swing.*
ij_groovy_parameter_annotation_wrap = off
ij_groovy_parentheses_expression_new_line_after_left_paren = false
ij_groovy_parentheses_expression_right_paren_on_new_line = false
ij_groovy_prefer_parameters_wrap = false
ij_groovy_resource_list_new_line_after_left_paren = false
ij_groovy_resource_list_right_paren_on_new_line = false
ij_groovy_resource_list_wrap = off
ij_groovy_space_after_assert_separator = true
ij_groovy_space_after_colon = true
ij_groovy_space_after_comma = true
ij_groovy_space_after_comma_in_type_arguments = true
ij_groovy_space_after_for_semicolon = true
ij_groovy_space_after_quest = true
ij_groovy_space_after_type_cast = true
ij_groovy_space_before_annotation_parameter_list = false
ij_groovy_space_before_array_initializer_left_brace = false
ij_groovy_space_before_assert_separator = false
ij_groovy_space_before_catch_keyword = true
ij_groovy_space_before_catch_left_brace = true
ij_groovy_space_before_catch_parentheses = true
ij_groovy_space_before_class_left_brace = true
ij_groovy_space_before_closure_left_brace = true
ij_groovy_space_before_colon = true
ij_groovy_space_before_comma = false
ij_groovy_space_before_do_left_brace = true
ij_groovy_space_before_else_keyword = true
ij_groovy_space_before_else_left_brace = true
ij_groovy_space_before_finally_keyword = true
ij_groovy_space_before_finally_left_brace = true
ij_groovy_space_before_for_left_brace = true
ij_groovy_space_before_for_parentheses = true
ij_groovy_space_before_for_semicolon = false
ij_groovy_space_before_if_left_brace = true
ij_groovy_space_before_if_parentheses = true
ij_groovy_space_before_method_call_parentheses = false
ij_groovy_space_before_method_left_brace = true
ij_groovy_space_before_method_parentheses = false
ij_groovy_space_before_quest = true
ij_groovy_space_before_record_parentheses = false
ij_groovy_space_before_switch_left_brace = true
ij_groovy_space_before_switch_parentheses = true
ij_groovy_space_before_synchronized_left_brace = true
ij_groovy_space_before_synchronized_parentheses = true
ij_groovy_space_before_try_left_brace = true
ij_groovy_space_before_try_parentheses = true
ij_groovy_space_before_while_keyword = true
ij_groovy_space_before_while_left_brace = true
ij_groovy_space_before_while_parentheses = true
ij_groovy_space_in_named_argument = true
ij_groovy_space_in_named_argument_before_colon = false
ij_groovy_space_within_empty_array_initializer_braces = false
ij_groovy_space_within_empty_method_call_parentheses = false
ij_groovy_spaces_around_additive_operators = true
ij_groovy_spaces_around_assignment_operators = true
ij_groovy_spaces_around_bitwise_operators = true
ij_groovy_spaces_around_equality_operators = true
ij_groovy_spaces_around_lambda_arrow = true
ij_groovy_spaces_around_logical_operators = true
ij_groovy_spaces_around_multiplicative_operators = true
ij_groovy_spaces_around_regex_operators = true
ij_groovy_spaces_around_relational_operators = true
ij_groovy_spaces_around_shift_operators = true
ij_groovy_spaces_within_annotation_parentheses = false
ij_groovy_spaces_within_array_initializer_braces = false
ij_groovy_spaces_within_braces = true
ij_groovy_spaces_within_brackets = false
ij_groovy_spaces_within_cast_parentheses = false
ij_groovy_spaces_within_catch_parentheses = false
ij_groovy_spaces_within_for_parentheses = false
ij_groovy_spaces_within_gstring_injection_braces = false
ij_groovy_spaces_within_if_parentheses = false
ij_groovy_spaces_within_list_or_map = false
ij_groovy_spaces_within_method_call_parentheses = false
ij_groovy_spaces_within_method_parentheses = false
ij_groovy_spaces_within_parentheses = false
ij_groovy_spaces_within_switch_parentheses = false
ij_groovy_spaces_within_synchronized_parentheses = false
ij_groovy_spaces_within_try_parentheses = false
ij_groovy_spaces_within_tuple_expression = false
ij_groovy_spaces_within_while_parentheses = false
ij_groovy_special_else_if_treatment = true
ij_groovy_ternary_operation_wrap = off
ij_groovy_throws_keyword_wrap = off
ij_groovy_throws_list_wrap = off
ij_groovy_use_flying_geese_braces = false
ij_groovy_use_fq_class_names = false
ij_groovy_use_fq_class_names_in_javadoc = true
ij_groovy_use_relative_indents = false
ij_groovy_use_single_class_imports = true
ij_groovy_variable_annotation_wrap = off
ij_groovy_while_brace_force = never
ij_groovy_while_on_new_line = false
ij_groovy_wrap_chain_calls_after_dot = false
ij_groovy_wrap_long_lines = false
[{*.kt,*.kts,*.main.kts}]
ij_kotlin_align_in_columns_case_branch = false
ij_kotlin_align_multiline_binary_operation = false
ij_kotlin_align_multiline_extends_list = false
ij_kotlin_align_multiline_method_parentheses = false
ij_kotlin_align_multiline_parameters = true
ij_kotlin_align_multiline_parameters_in_calls = false
ij_kotlin_allow_trailing_comma = false
ij_kotlin_allow_trailing_comma_on_call_site = false
ij_kotlin_assignment_wrap = normal
ij_kotlin_blank_lines_after_class_header = 0
ij_kotlin_blank_lines_around_block_when_branches = 0
ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1
ij_kotlin_block_comment_add_space = false
ij_kotlin_block_comment_at_first_column = true
ij_kotlin_call_parameters_new_line_after_left_paren = true
ij_kotlin_call_parameters_right_paren_on_new_line = true
ij_kotlin_call_parameters_wrap = on_every_item
ij_kotlin_catch_on_new_line = false
ij_kotlin_class_annotation_wrap = split_into_lines
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
ij_kotlin_continuation_indent_for_chained_calls = false
ij_kotlin_continuation_indent_for_expression_bodies = false
ij_kotlin_continuation_indent_in_argument_lists = false
ij_kotlin_continuation_indent_in_elvis = false
ij_kotlin_continuation_indent_in_if_conditions = false
ij_kotlin_continuation_indent_in_parameter_lists = false
ij_kotlin_continuation_indent_in_supertype_lists = false
ij_kotlin_else_on_new_line = false
ij_kotlin_enum_constants_wrap = off
ij_kotlin_extends_list_wrap = normal
ij_kotlin_field_annotation_wrap = split_into_lines
ij_kotlin_finally_on_new_line = false
ij_kotlin_if_rparen_on_new_line = true
ij_kotlin_import_nested_classes = false
ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
ij_kotlin_keep_blank_lines_before_right_brace = 2
ij_kotlin_keep_blank_lines_in_code = 2
ij_kotlin_keep_blank_lines_in_declarations = 2
ij_kotlin_keep_first_column_comment = true
ij_kotlin_keep_indents_on_empty_lines = false
ij_kotlin_keep_line_breaks = true
ij_kotlin_lbrace_on_next_line = false
ij_kotlin_line_comment_add_space = false
ij_kotlin_line_comment_add_space_on_reformat = false
ij_kotlin_line_comment_at_first_column = true
ij_kotlin_method_annotation_wrap = split_into_lines
ij_kotlin_method_call_chain_wrap = normal
ij_kotlin_method_parameters_new_line_after_left_paren = true
ij_kotlin_method_parameters_right_paren_on_new_line = true
ij_kotlin_method_parameters_wrap = on_every_item
ij_kotlin_name_count_to_use_star_import = 5
ij_kotlin_name_count_to_use_star_import_for_members = 3
ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.**
ij_kotlin_parameter_annotation_wrap = off
ij_kotlin_space_after_comma = true
ij_kotlin_space_after_extend_colon = true
ij_kotlin_space_after_type_colon = true
ij_kotlin_space_before_catch_parentheses = true
ij_kotlin_space_before_comma = false
ij_kotlin_space_before_extend_colon = true
ij_kotlin_space_before_for_parentheses = true
ij_kotlin_space_before_if_parentheses = true
ij_kotlin_space_before_lambda_arrow = true
ij_kotlin_space_before_type_colon = false
ij_kotlin_space_before_when_parentheses = true
ij_kotlin_space_before_while_parentheses = true
ij_kotlin_spaces_around_additive_operators = true
ij_kotlin_spaces_around_assignment_operators = true
ij_kotlin_spaces_around_equality_operators = true
ij_kotlin_spaces_around_function_type_arrow = true
ij_kotlin_spaces_around_logical_operators = true
ij_kotlin_spaces_around_multiplicative_operators = true
ij_kotlin_spaces_around_range = false
ij_kotlin_spaces_around_relational_operators = true
ij_kotlin_spaces_around_unary_operator = false
ij_kotlin_spaces_around_when_arrow = true
ij_kotlin_use_custom_formatting_for_modifiers = true
ij_kotlin_variable_annotation_wrap = off
ij_kotlin_while_on_new_line = false
ij_kotlin_wrap_elvis_expressions = 1
ij_kotlin_wrap_expression_body_functions = 1
ij_kotlin_wrap_first_method_in_call_chain = false

View File

@ -1,12 +1,57 @@
stages:
- analysis
- sendmail
- android-build && analysis
- docker-build && sendmail
- deploy-trigger
## 代码检查
android_build:
tags:
- offline-test
stage: android-build && analysis
image: hub.shanqu.cc/devops/ci-android:jdk11
variables:
KUBERNETES_CPU_LIMIT: "16"
GIT_SUBMODULE_STRATEGY: recursive
Apk_Path: "app/build/outputs/apk/**/release/*.apk"
script:
- export GRADLE_USER_HOME=./.gradle
- chmod +x ./gradlew
- ./scripts/meta_build.sh --config_id 6400549c21c2c94ead074500 --sdk_platform toutiao --sdk_version 5.3.0 --channel BD-GHZS-ZP-KY --activate_reporting_ratio 60 --first_lanuch_jump e1wibGlua190eXBlXCI6XCJcIixcImxpbmtfaWRcIjpcIlwiLFwibGlua190ZXh0XCI6XCJcIixcImhvbWVfaW5kZXhcIjpcIlwiLFwiYm90dG9tX2luZGV4XCI6XCJcIn0= --unix_timestamp 1677657618 --output ./release/com.gh.gamecenter_5.17.4_694_BD-GHZS-ZP-KY_toutiao_5.3.0_1677657618.apk
- rm -rf ./.gradle/caches/build-cache-1
cache:
paths:
- .gradle
artifacts:
paths:
- Dockerfile
expire_in: 15 mins
only:
- feature-meta_build
# 构建推送docker镜像
docker-build:
tags:
- offline-test
stage: docker-build && sendmail
image: hub.shanqu.cc/library/docker:latest
variables:
GIT_STRATEGY: none
script:
- projectPath=`echo $CI_PROJECT_PATH | sed 's#/#-#g'`
- docker build -t registry.cn-shenzhen.aliyuncs.com/ghzs/$projectPath:latest .
- docker push registry.cn-shenzhen.aliyuncs.com/ghzs/$projectPath:latest
- docker run -e PROJECTKEY=$projectPath -e EMAIL=$GITLAB_USER_EMAIL -e BRANCH=$CI_COMMIT_REF_NAME --name send-email --rm hub.shanqu.cc/platform/send-sonar-report:latest
cache:
paths:
- .gradle
policy: pull
only:
- feature-meta_build
# 代码检查
sonarqube_analysis:
tags:
- offline-test
stage: analysis
stage: android-build && analysis
image: sonarsource/sonar-scanner-cli:latest
dependencies: [] #禁止传递来的artifact
script:
@ -27,18 +72,12 @@ sonarqube_analysis:
-Dsonar.gitlab.merge_request_discussion=true
-Dsonar.java.binaries=. # 如果不使用Maven或Gradle进行分析则必须手动提供测试二进制文件
only:
- dev
## 发送简易检测结果报告
send_sonar_report:
tags:
- offline-test
stage: sendmail
image: hub.shanqu.cc/library/docker:latest
dependencies: [] #禁止传递来的artifact
script:
- group=`echo $CI_PROJECT_PATH | sed 's#/#-#g'`
- docker login -u "${HARBOR_REGISTRY_USERNAME}" -p "${HARBOR_REGISTRY_PASSWORD}" "${HARBOR_REGISTRY}"
- docker run -e PROJECTKEY=$group -e EMAIL=$GITLAB_USER_EMAIL --name send-email --rm hub.shanqu.cc/platform/send-sonar-report:latest
only:
- dev
- feature-meta_build
## 触发多项目构建
trigger_job:
stage: deploy-trigger
trigger:
project: devops/automation/build-eci
branch: dev

14
.gitmodules vendored
View File

@ -1,7 +1,13 @@
[submodule "libraries/LGLibrary"]
path = libraries/LGLibrary
url = git@git.ghzs.com:android/common-library.git
url = ../../../android/common-library.git
branch = master
[submodule "assistant_flutter"]
path = assistant_flutter
url = git@git.ghzs.com:halo/android/flutter-module.git
[submodule "vspace-bridge"]
path = vspace-bridge
url = ../../../cwzs/android/vspace-bridge.git
[submodule "module_common/src/debug/assets/assistant-android-mock"]
path = module_common/src/debug/assets/assistant-android-mock
url = ../../../halo/android/assistant-android-mock.git
[submodule "ndownload"]
path = ndownload
url = ../../../android/ndownload.git

15
Dockerfile Normal file
View File

@ -0,0 +1,15 @@
FROM openjdk:11-jdk
WORKDIR /project
SHELL ["/bin/bash", "-c"]
#配置SDK环境变量
ENV ANDROID_SDK_ROOT /usr/lib/sdk
ENV ANDROID_HOME /usr/lib/sdk
ENV PATH $ANDROID_SDK_ROOT:$PATH
ENV PATH=$PATH:${ANDROID_HOME}/cmdline-tools/cmdline-tools/bin/
ENV GRADLE_USER_HOME /project/.gradle
RUN source ~/.bashrc
RUN sed -i "s@http://\(deb\|security\).debian.org@https://mirrors.aliyun.com@g" /etc/apt/sources.list \
&& apt-get --quiet update --yes \
&& apt-get --quiet install --yes lib32stdc++6 lib32z1 libncurses5 util-linux bash tzdata librdkafka-dev pkgconf \
&& rm -rf /var/lib/apt/lists/*
COPY .gradle /project/.gradle

View File

@ -12,12 +12,13 @@
2. 尽量使 View 在被销毁之后仍能恢复状态,处理方式可参考 [保存界面状态](https://developer.android.com/topic/libraries/architecture/saving-states)
3. 尽量参考原有文件结构及命名规范,即以 大模块 - 小模块 的形式生成包关系
4. 遵循最小改动原则,在提交代码前务必先检查变动的代码,尽量以可控的变动规模来构成一个 commit ,以便日后追踪问题
5. 代码规范可参考 [AOSP Java 风格](https://source.android.com/setup/contribute/code-style)
6. 尽量使用 Kotlin 来写新文件
7. 尽量不要使用 DataBinding因为回影响编译性能
8. Commit 前请确保不带入非项目必须文件,可手动修改 [.gitignore](https://stackoverflow.com/questions/8527597/how-do-i-ignore-files-in-a-directory-in-git) 文件忽略
9. 新页面请勿使用 ButterKnife 来进行 View 获取和绑定,请使用 ViewBinding
10. No AsyncTask!
5. Commit message 提交规范可参考 [Conventional Commits](https://www.conventionalcommits.org/zh-hans/v1.0.0/)
6. 代码规范可参考 [AOSP Java 风格](https://source.android.com/setup/contribute/code-style)
7. 尽量使用 Kotlin 来写新文件
8. 不要使用 DataBinding
9. Commit 前请确保不带入非项目必须文件,可手动修改 [.gitignore](https://stackoverflow.com/questions/8527597/how-do-i-ignore-files-in-a-directory-in-git) 文件忽略
10. 优先使用 ViewBinding 获取 View 对象
11. No AsyncTask!
### 公用部分
@ -25,7 +26,7 @@
### 首次拉取项目代码
`git clone -b dev git@git.ghzs.com:halo/android/assistant-android.git --recursive`
`git clone -b dev git@git.shanqu.cc:halo/android/assistant-android.git --recursive`
### git 版本管理
@ -45,8 +46,8 @@
### 第三方appkey等配置
* 修改`gradle.properties`文件将各种key填入其中实现统一管理
* 通过gradle文件内的resValue/buildConfigField/manifestPlaceHolder方式实现编译期间修改具体情况请参考``./build.gradle````./app/build.gradle``配置
* 修改 `gradle.properties` 文件将各种key填入其中实现统一管理
* 通过 gradle 文件内的 resValue/buildConfigField/manifestPlaceHolder 方式实现编译期间修改,具体情况请参考 ``./build.gradle````./app/build.gradle`` 配置
### 混淆配置
@ -55,11 +56,8 @@
### APK打包配置
* 本项目使用了 [VasDolly](https://github.com/Tencent/VasDolly) 作为渠道包实现方案
* 打包命令,具体参数请见相应文件:
> 打内部测试包:`./scripts/test_build.sh`
> 正式发布包:`./scripts/build_with_simple_backup.sh`
> 邮件测试包:`./scripts/jenkins_build.sh`
### TODO

View File

@ -1,7 +1,7 @@
// This comment exists for a reason, do not delete
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' // kotlin
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-parcelize'
apply plugin: 'kotlin-kapt'
apply plugin: 'AndResGuard'
@ -9,13 +9,12 @@ import groovy.xml.XmlUtil
android {
androidExtensions {
experimental = true
}
String CONFIG_ID = ""
String FIRST_LAUNCH = ""
buildFeatures {
viewBinding = true
dataBinding = true
viewBinding true
dataBinding true
}
compileOptions {
@ -47,21 +46,14 @@ android {
}
defaultConfig {
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
javaCompileOptions {
annotationProcessorOptions {
arguments = [eventBusIndex: 'com.gh.EventBusIndex']
}
}
ndk {
// 如果不添加 `arm64` 调用系统的 PackageManager 的方法读取安装包信息的时候会出现 native 层闪退,草
// 加了 `arm64` 以后部分 5.0 的设备会报用错 so 的问题,
// couldn't find DSO to load: libimagepipeline.so caused by: dlopen failed: "/data/data/com.gh.gamecenter/lib-main/libimagepipeline.so" is 64-bit instead of 32-bit result: 0
// 以 OPPO R7PLUS 为例,明明设备是骁龙 615ARMv8-64 bit 的设备却不支持 arm64 的 abi限制了只使用 java 后还是报错,只有 5.05.1 设备无法复现 : (
// 惊了
abiFilters "armeabi-v7a", "arm64-v8a", "x86"
// x86 本来是为了模拟器用户使用 RenderScript 用的,但是其实用到 RenderScript 的人本来就不多 (一天不到 100),用模拟器的人就更少了
// 加了 x86 反而会导致用户没法使用微博登录,因为微博没有提供 x86 的 SO ...
// 还会增大 APK 体积,所以还是去掉吧。数据可见 https://sentry.shanqu.cc/organizations/lightgame/issues/144232/?project=22
abiFilters "armeabi-v7a", "arm64-v8a"
}
renderscriptTargetApi 18
@ -78,22 +70,20 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt', 'proguard-fresco.txt'
/**
* All third-party appid/appkey
*/
// 推广用的配置 id
buildConfigField "String", "CONFIG_ID", "\"${CONFIG_ID}\""
// 首次启动的跳转配置
buildConfigField "String", "FIRST_LAUNCH", "\"${FIRST_LAUNCH}\""
// All third-party appid/appkey
buildConfigField "String", "API_HOST", "\"${API_HOST}\""
buildConfigField "String", "NEW_API_HOST", "\"${NEW_API_HOST}\""
buildConfigField "String", "VAPI_HOST", "\"${VAPI_HOST}\""
buildConfigField "String", "WECHAT_APPID", "\"${WECHAT_APPID}\""
buildConfigField "String", "WECHAT_SECRET", "\"${WECHAT_SECRET}\""
buildConfigField "String", "TENCENT_APPID", "\"${TENCENT_APPID}\""
buildConfigField "String", "WEIBO_APPKEY", "\"${WEIBO_APPKEY}\""
buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\""
buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\""
/**
* Build Time 供区分 jenkins 打包时间用
*/
buildConfigField "long", "BUILD_TIME", "0"
}
// gradle 2.2以上默认同时启用v1和v2优先用于Android N
@ -108,6 +98,12 @@ android {
}
}
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.name)
}
}
buildTypes {
debug {
debuggable true
@ -138,7 +134,7 @@ android {
variantFilter { variant ->
def names = variant.flavors*.name
def isDebugType = variant.buildType.name == "debug"
if ((names.contains("tea") || name.contains("gdt")) && isDebugType) {
if ((names.contains("tea") || name.contains("kuaishou") || name.contains("gdt")) && isDebugType) {
setIgnore(true)
}
}
@ -147,14 +143,17 @@ android {
sourceSets {
publish {
java.srcDirs = ['src/main/java']
java.srcDirs = ['src/main/java', "src/default/java"]
}
internal {
java.srcDirs = ['src/main/java']
java.srcDirs = ['src/main/java', "src/default/java"]
}
tea {
java.srcDirs = ['src/main/java', 'src/tea/java']
}
kuaishou {
java.srcDirs = ['src/main/java', 'src/kuaishou/java']
}
gdt {
java.srcDirs = ['src/main/java', 'src/gdt/java']
}
@ -168,14 +167,20 @@ android {
buildConfigField "String", "DEV_API_HOST", "\"${DEV_API_HOST}\""
buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_DEV_API_HOST}\""
buildConfigField "String", "DEV_VAPI_HOST", "\"${DEV_VAPI_HOST}\""
buildConfigField "String", "QUICK_LOGIN_APPID", "\"${DEV_QUICK_LOGIN_APPID}\""
buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${DEV_QUICK_LOGIN_APPKEY}\""
}
// publish release host˛
// publish release host
publish {
dimension "env"
buildConfigField "String", "DEV_API_HOST", "\"${API_HOST}\""
buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_API_HOST}\""
buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\""
buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\""
buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\""
}
tea {
@ -183,22 +188,33 @@ android {
buildConfigField "String", "DEV_API_HOST", "\"${API_HOST}\""
buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_API_HOST}\""
buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\""
buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\""
buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\""
manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase())
}
kuaishou {
dimension "env"
buildConfigField "String", "DEV_API_HOST", "\"${API_HOST}\""
buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_API_HOST}\""
buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\""
buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\""
buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\""
}
gdt {
dimension "env"
buildConfigField "String", "DEV_API_HOST", "\"${API_HOST}\""
buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_API_HOST}\""
buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\""
buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\""
buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\""
}
}
lintOptions {
// For flutter release build, see https://github.com/flutter/flutter/issues/58247
checkReleaseBuilds false
}
}
repositories {
@ -210,88 +226,45 @@ repositories {
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
gdtImplementation fileTree(include: ['*.jar', '*.aar'], dir: 'src/gdt/libs')
teaImplementation fileTree(include: ['*.jar', '*.aar'], dir: 'src/tea/libs')
kuaishouImplementation fileTree(include: ['*.jar', '*.aar'], dir: 'src/kuaishou/libs')
gdtImplementation fileTree(include: ['*.jar', '*.aar'], dir: 'src/gdt/libs')
testImplementation 'junit:junit:4.12'
debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakcanary}"
debugImplementation "com.squareup.okhttp3:logging-interceptor:${okHttp}"
debugImplementation "com.squareup.leakcanary:leakcanary-android-process:${leakcanary}"
// debugImplementation "com.gu.android:toolargetool:${toolargetool}" // 需要使用调试时才启用
debugImplementation "com.github.nichbar:WhatTheStack:${whatTheStack}"
// debugImplementation "io.github.didi.dokit:dokitx:${dokit}"
implementation "androidx.core:core-ktx:${core}"
implementation "androidx.fragment:fragment-ktx:${fragment}"
implementation "androidx.multidex:multidex:${multiDex}"
implementation "androidx.appcompat:appcompat:${appCompat}"
implementation "androidx.cardview:cardview:${cardView}"
implementation "androidx.annotation:annotation:${annotation}"
implementation "androidx.constraintlayout:constraintlayout:${constraintLayout}"
implementation "androidx.recyclerview:recyclerview:${recyclerView}"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifeCycle"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifeCycle"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifeCycle"
implementation "androidx.room:room-runtime:${room}"
implementation "androidx.room:room-rxjava2:${room}"
implementation "androidx.core:core-ktx:${ktx}"
implementation "androidx.viewpager2:viewpager2:${viewpager2}"
implementation "androidx.webkit:webkit:${webkit}"
kapt "androidx.room:room-compiler:${room}"
implementation "androidx.fragment:fragment-ktx:${fragment}"
implementation "com.google.android.material:material:${material}"
implementation "androidx.annotation:annotation:${annotation}"
implementation "androidx.viewpager2:viewpager2:${viewpager2}"
kapt "androidx.room:room-compiler:${room}"
implementation "com.kyleduo.switchbutton:library:${switchButton}"
implementation "com.facebook.fresco:fresco:${fresco}"
implementation "com.facebook.fresco:animated-gif-lite:${fresco}"
implementation "com.facebook.fresco:animated-drawable:${fresco}"
implementation "com.facebook.fresco:animated-webp:${fresco}"
implementation "com.facebook.fresco:webpsupport:${fresco}"
implementation "com.squareup.okhttp3:okhttp:${okHttp}"
implementation "com.leon.channel:helper:${apkChannelPackage}"
implementation "com.squareup.retrofit2:retrofit:${retrofit}"
implementation "com.squareup.retrofit2:converter-gson:${retrofit}" // include gson 2.7
implementation "com.squareup.retrofit2:adapter-rxjava2:${retrofit}"
implementation "com.j256.ormlite:ormlite-android:${ormlite}"
implementation "com.j256.ormlite:ormlite-core:${ormlite}"
implementation "com.jakewharton:butterknife:${butterKnife}"
kapt "com.jakewharton:butterknife-compiler:${butterKnife}"
implementation "org.jetbrains.kotlin:kotlin-stdlib:${kotlin_version}"
implementation "org.greenrobot:eventbus:${eventbus}"
kapt "org.greenrobot:eventbus-annotation-processor:${eventbusApt}"
implementation "io.reactivex.rxjava2:rxjava:${rxJava2}"
implementation "io.reactivex.rxjava2:rxandroid:${rxAndroid2}"
implementation "com.jakewharton.rxbinding2:rxbinding:${rxBinding2}"
implementation "com.google.zxing:core:${zxing}"
implementation "com.google.zxing:android-core:${zxing}"
implementation "com.daimajia.swipelayout:library:${swipeLayout}"
implementation "com.google.android:flexbox:${flexbox}"
implementation "pub.devrel:easypermissions:${easypermissions}"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "com.contrarywind:Android-PickerView:${pickerView}"
implementation "com.scwang.smartrefresh:SmartRefreshLayout:${smartRefreshLayout}"
implementation "net.cachapa.expandablelayout:expandablelayout:${expandableLayout}"
// 用于比较 versionName 是大于小于或等于
implementation "com.g00fy2:versioncompare:${versioncompare}"
implementation "top.zibin:Luban:${luban}"
implementation "com.squareup.picasso:picasso:${picasso}"
// for video streaming
implementation("com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:$gsyVideo", {
exclude module: "gsyvideoplayer-androidvideocache"
@ -299,59 +272,58 @@ dependencies {
})
implementation "com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-exo_player2:$gsyVideo"
implementation "android.arch.work:work-runtime:${workManager}"
// implementation "androidx.work:work-runtime:${workManager}"
implementation "com.llew.huawei:verifier:${verifier}"
implementation "com.github.tbruyelle:rxpermissions:${rxPermissions}"
implementation "com.lg:skeleton:${skeleton}"
implementation "com.tencent.mm.opensdk:wechat-sdk-android-without-mta:${mta}"
implementation "com.github.nichbar:AndroidRomChecker:${romChecker}"
debugImplementation "com.github.nichbar.chucker:library:${chucker}"
releaseImplementation "com.github.nichbar.chucker:library-no-op:${chucker}"
teaImplementation "com.bytedance.applog:RangersAppLog-Lite-cn:${bytedanceApplog}"
implementation "com.aliyun.dpa:oss-android-sdk:${oss}"
implementation "com.airbnb.android:lottie:${lottie}"
implementation "net.lingala.zip4j:zip4j:${zip4j}"
implementation "io.sentry:sentry-android:4.3.0"
implementation("com.github.piasy:BigImageViewer:${bigImageViewer}", {
exclude group: 'com.squareup.okhttp3'
exclude group: 'androidx.swiperefreshlayout'
exclude group: 'com.github.bumptech.glide'
exclude group: 'com.facebook.fresco'
})
implementation "com.github.PhilJay:MPAndroidChart:${chart}"
implementation "com.lahm.library:easy-protector-release:${easyProtector}"
implementation "com.github.hsiafan:apk-parser:${apkParser}"
implementation "org.nanohttpd:nanohttpd:${nanohttpd}"
implementation "com.aliyun.openservices:aliyun-log-android-sdk:${aliyunLog}"
implementation "com.lg:easyfloat:${easyFloat}"
implementation "io.github.florent37:shapeofview:${shapeOfView}"
implementation "io.github.sinaweibosdk:core:${weiboSDK}"
implementation "com.lg:apksig:${apksig}"
implementation "com.lg:gid:${gid}"
implementation "com.louiscad.splitties:splitties-fun-pack-android-base-with-views-dsl:${splitties}"
compileOnly "com.github.axen1314.lancet:lancet-base:${lancet_version}"
kapt "com.alibaba:arouter-compiler:$arouterVersion"
compileOnly "com.github.axen1314.lancet:lancet-base:$lancet_version"
implementation project(':ndownload')
implementation project(':vspace-bridge:vspace')
implementation project(':libraries:LGLibrary')
implementation project(':libraries:QQShare')
implementation project(':libraries:Matisse')
implementation (project(':module_common')) {
exclude group: 'androidx.swiperefreshlayout'
}
implementation(project(':module_login')) {
exclude group: 'androidx.swiperefreshlayout'
}
implementation(project(':module_setting')) {
exclude group: 'androidx.swiperefreshlayout'
}
// implementation(project(':module_setting_compose')) {
// exclude group: 'androidx.swiperefreshlayout'
// }
implementation(project(':module_core_feature')) {
exclude group: 'androidx.swiperefreshlayout'
}
implementation(project(':module_feedback')) {
exclude group: 'androidx.swiperefreshlayout'
}
implementation(project(':module_sensors_data')) {
exclude group: 'androidx.swiperefreshlayout'
}
implementation(project(':module_vpn'))
implementation(project(':module_pkg'))
// 默认不接入光能模块,提高编译速度
// debugImplementation(project(':module_energy')) {
// exclude group: 'androidx.swiperefreshlayout'
// }
}
File propFile = file('sign.properties')
if (propFile.exists()) {
@ -442,36 +414,14 @@ andResGuard {
"R.drawable.bg_notification_reserve_game_style_2",
"R.drawable.bg_notification_video_style_1",
"R.drawable.bg_notification_video_style_2",
"R.drawable.ic_search_no_1",
"R.drawable.ic_search_no_2",
"R.drawable.ic_search_no_3",
"R.drawable.ic_search_no_4",
"R.drawable.ic_search_no_5",
"R.drawable.ic_search_no_6",
"R.drawable.ic_search_no_7",
"R.drawable.ic_search_no_8",
"R.drawable.ic_search_no_9",
"R.drawable.ic_search_no_10",
"R.drawable.ic_search_no_11",
"R.drawable.ic_search_no_12",
"R.drawable.ic_search_no_13",
"R.drawable.ic_search_no_14",
"R.drawable.ic_search_no_15",
"R.drawable.ic_search_no_16",
"R.drawable.ic_search_no_17",
"R.drawable.ic_search_no_18",
"R.drawable.ic_search_no_19",
"R.drawable.ic_search_no_20",
"R.drawable.ic_recommend_activity",
"R.drawable.ic_recommend_discount",
"R.drawable.ic_recommend_function",
"R.drawable.ic_recommend_gift",
"R.drawable.ic_recommend_role",
"R.drawable.login_btn_bg",
"R.drawable.ic_quick_login_check",
"R.drawable.ic_quick_login_uncheck",
"R.anim.anim_auth_in",
"R.anim.anim_auth_out",
"R.drawable.download_button_normal_style",
"R.drawable.ic_selector_selected",
"R.drawable.ic_selector_default",
"R.id.download_speed",
"R.id.download_percentage",
"R.id.comment",
@ -482,6 +432,9 @@ andResGuard {
"R.id.bottomShareTv",
"R.id.recommendStarPref",
"R.id.recommendStar",
"R.id.iv_vmode_badge",
"R.id.tv_vmode",
"R.id.iv_vmode",
"R.drawable.help_search_delete",
"R.drawable.suggest_type_normal",
"R.drawable.suggest_type_crash",
@ -490,7 +443,6 @@ andResGuard {
"R.drawable.suggest_type_function_suggest",
"R.drawable.suggest_type_article_collect",
"R.drawable.suggest_type_copyright",
"R.drawable.help_result_empty",
"R.drawable.news_comment_detail_read",
"R.drawable.news_comment_detail_comment",
"R.drawable.news_comment_detail_share",
@ -521,7 +473,7 @@ andResGuard {
"*.gif",
]
sevenzip {
artifact = 'com.tencent.mm:SevenZip:1.2.20'
artifact = 'io.github.leon406:SevenZip:1.2.22.5'
}
}

View File

@ -1,271 +0,0 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in C:\Android\sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
#--------- remove logs start ----------------
-assumenosideeffects class com.lightgame.config.CommonDebug {
private static String getLogTag(...);
private static String getMethodName();
public static void logMethodName(...);
public static void logParams(...);
public static void logFields(...);
public static void logMethodWithParams(...);
}
#-assumenosideeffects class com.lightgame.config.CommonDebug {*;}
#-dontoptimize
#--------- remove logs end ----------------
-keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod
-dontwarn InnerClasses
# OrmLite uses reflection
-keep class com.j256.**
-keepclassmembers class com.j256.** { *; }
-keep enum com.j256.**
-keepclassmembers enum com.j256.** { *; }
-keep interface com.j256.**
-keepclassmembers interface com.j256.** { *; }
-dontwarn com.j256.**
#okhttp3
-dontwarn com.squareup.okhttp3.**
-dontwarn okio.**
-keep class com.squareup.okhttp3.** { *;}
# stetho
-keep class com.facebook.stetho.** { *; }
-dontwarn com.facebook.stetho.**
# Retrofit 2.2
# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions
# Retrofit 2.X
## https://square.github.io/retrofit/ ##
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-keepclasseswithmembers class * {
@retrofit2.http.* <methods>;
}
# rxjava
-keep class rx.schedulers.Schedulers {
public static <methods>;
}
-keep class rx.schedulers.ImmediateScheduler {
public <methods>;
}
-keep class rx.schedulers.TestScheduler {
public <methods>;
}
-keep class rx.schedulers.Schedulers {
public static ** test();
}
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
long producerNode;
long consumerNode;
}
-dontwarn rx.internal.util.**
## AutoScrollViewPager
-keep class cn.trinea.android.** { *; }
-keepclassmembers class cn.trinea.android.** { *; }
-dontwarn cn.trinea.android.**
## butterknife
# Retain generated class which implement Unbinder.
#-keep public class * implements butterknife.Unbinder { public <init>(**, android.view.View); }
#
## Prevent obfuscation of types which use ButterKnife annotations since the simple name
## is used to reflectively look up the generated ViewBinding.
#-keep class butterknife.*
#-keepclasseswithmembernames class * { @butterknife.* <methods>; }
#-keepclasseswithmembernames class * { @butterknife.* <fields>; }
-dontwarn butterknife.internal.**
-keep class **$$ViewInjector { *; }
-keepnames class * { @butterknife.InjectView *;}
-dontwarn butterknife.Views$InjectViewProcessor
-dontwarn com.gc.materialdesign.views.**
# eventbus
-keepattributes *Annotation*
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
# weiboSdk
-keep class com.sina.weibo.sdk.** { *; }
-dontwarn android.webkit.WebView
-dontwarn android.webkit.WebViewClient
# app models
-keep class com.gh.common.view.** {*;}
-keep class com.gh.gamecenter.db.info.** {*;}
-keep class com.gh.gamecenter.entity.** {*;}
-keep class com.gh.gamecenter.qa.entity.** {*;}
-keep class com.gh.gamecenter.retrofit.** {*;}
-keep class com.gh.gamecenter.eventbus.** {*;}
-keep class com.gh.gamecenter.video.detail.** {*;}
-keep class * extends rx.Subscriber
#---------------------------------webview------------------------------------
-keepclassmembers class * extends android.webkit.WebViewClient {
public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
public boolean *(android.webkit.WebView, java.lang.String);
}
-keepclassmembers class * extends android.webkit.WebViewClient {
public void *(android.webkit.WebView, java.lang.String);
}
#----------------------------------------------------------------------------
##---------------Begin: proguard configuration for Gson ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Prevent proguard from stripping interface information from TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
-keepclassmembers enum * { *; }
##---------------End: proguard configuration for Gson ----------
# ------ bugly ---------
-dontwarn com.tencent.bugly.**
-keep public class com.tencent.bugly.**{*;}
# easypermission
-keepclassmembers class * {
@pub.devrel.easypermissions.AfterPermissionGranted <methods>;
}
# 重命名文件为SourceFile再配合mapping符号表可以拿到真实的类名
-renamesourcefileattribute SourceFile
# 保留源文件行号
-keepattributes SourceFile,LineNumberTable
-ignorewarnings
-keep @androidx.annotation.Keep class *
-keepclassmembers class ** {
@androidx.annotation.Keep *;
}
-keep class com.gh.loghub.** { *; }
### greenDAO 3
-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties
-keep class org.greenrobot.greendao.** { *; }
# If you do not use SQLCipher:
-dontwarn org.greenrobot.greendao.database.**
# If you do not use RxJava:
-dontwarn rx.**
-dontwarn org.greenrobot.greendao.rx.**
-dontwarn org.greenrobot.greendao.**
### fastJson
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.** { *; }
-keepattributes Signature
-keepattributes Annotation
### 广点通
-dontwarn com.qq.gdt.action.**
-keep class com.qq.gdt.action.** {*;}
### AndroidX
-keep class androidx.core.app.CoreComponentFactory { *; }
#阿里云上传
-keep class com.alibaba.sdk.android.oss.** { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**
#视频相关
-keep class com.shuyu.gsyvideoplayer.video.** { *; }
-dontwarn com.shuyu.gsyvideoplayer.video.**
-keep class com.shuyu.gsyvideoplayer.video.base.** { *; }
-dontwarn com.shuyu.gsyvideoplayer.video.base.**
-keep class com.shuyu.gsyvideoplayer.utils.** { *; }
-dontwarn com.shuyu.gsyvideoplayer.utils.**
-keep class tv.danmaku.ijk.** { *; }
-dontwarn tv.danmaku.ijk.**
-keep public class * extends android.view.View{
*** get*();
void set*(***);
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
#穿山甲
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.* {*;}
-keep class com.gyf.immersionbar.* {*;}
-dontwarn com.gyf.immersionbar.**
-keep class com.taobao.securityjni.**{*;}
-keep class com.taobao.wireless.security.**{*;}
-keep class com.ut.secbody.**{*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep class com.alibaba.sdk.android.**{*;}
-keep class com.ut.**{*;}
-keep class com.ta.**{*;}
-keep class com.gh.gamecenter.GdtHelper { *; }
-keep class com.gh.gamecenter.TeaHelper { *; }

View File

@ -1,26 +1,6 @@
#--------- remove logs start ----------------
-assumenosideeffects class com.lightgame.config.CommonDebug {
private static String getLogTag(...);
private static String getMethodName();
public static void logMethodName(...);
public static void logParams(...);
public static void logFields(...);
public static void logMethodWithParams(...);
}
-assumenosideeffects class com.lightgame.utils.Utils {
public static void log(...);
}
#--------- remove logs end ----------------
#--------- remove useless mtahelper class --------
-assumenosideeffects class com.gh.common.util.MtaHelper {
public static void onEvent(...);
public static void onEventWithTime(...);
public static void onEventWithBasicDeviceInfo(...);
}
#--------- remove useless mta class end ----
# inline getter method
-allowaccessmodification
# TODO Dicard sourceFile in final release build but remain in internal build.
-renamesourcefileattribute SourceFile
@ -36,79 +16,35 @@
-keepclassmembers interface com.j256.* { *; }
-dontwarn com.j256.**
### AutoScrollViewPager
-keep class cn.trinea.android.* { *; }
-keepclassmembers class cn.trinea.android.* { *; }
-dontwarn cn.trinea.android.**
### Butterknife
-keep public class * implements butterknife.Unbinder { public <init>(**, android.view.View); }
-keep class butterknife.*
-keepclasseswithmembernames class * { @butterknife.* <methods>; }
-keepclasseswithmembernames class * { @butterknife.* <fields>; }
### eventbus
-keepclassmembers class * {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
### Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
### weiboSdk
-keep class com.sina.weibo.sdk.** { *; }
-dontwarn android.webkit.WebView
-dontwarn android.webkit.WebViewClient
### wechatSdk
### TODO 这里用 com.tencent.*{*;} 不起效?但其它地方可以?
-keep class com.tencent.**{*;}
### app models
-keep class com.gh.common.view.* {*;}
-keep class com.gh.gamecenter.db.info.* {*;}
-keep class com.gh.gamecenter.entity.* {*;}
-keep class com.gh.gamecenter.qa.entity.* {*;}
-keep class com.gh.gamecenter.entity.** {<fields>;}
-keep class com.gh.gamecenter.qa.entity.** {<fields>;}
-keep class com.gh.gamecenter.BR
-keep class com.gh.gamecenter.retrofit.* {*;}
-keep class com.gh.gamecenter.eventbus.* {*;}
-keep class com.gh.gamecenter.video.detail.* {*;}
-keep class com.gh.gamecenter.home.gamecollection.* {*;}
-keep class com.gh.gamecenter.home.gamecollection.GameCollectionStackLayout {*;}
-keep class com.gh.gamecenter.home.gamecollection.GameCollectionStackAnimation {*;}
###
-keepclassmembers class * extends android.webkit.WebViewClient {
public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap);
public boolean *(android.webkit.WebView, java.lang.String);
}
-keepclassmembers class * extends android.webkit.WebViewClient {
public void *(android.webkit.WebView, java.lang.String);
# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
### easypermission
-keepclassmembers class * {
@pub.devrel.easypermissions.AfterPermissionGranted <methods>;
}
# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer
# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
# TODO What's this ?
-ignorewarnings
### Keep Annotation
-keep @androidx.annotation.Keep class *
-keepclassmembers class * {
@androidx.annotation.Keep *;
}
### 广点通
-dontwarn com.qq.gdt.action.**
-keep class com.qq.gdt.action.* {*;}
### 阿里云上传
-keep class com.alibaba.sdk.android.oss.* { *; }
-dontwarn okio.**
-dontwarn org.apache.commons.codec.binary.**
### 视频相关
-keep class com.shuyu.gsyvideoplayer.video.* { *; }
-dontwarn com.shuyu.gsyvideoplayer.video.**
@ -118,7 +54,7 @@
-dontwarn com.shuyu.gsyvideoplayer.utils.**
-keep class tv.danmaku.ijk.* { *; }
-dontwarn tv.danmaku.ijk.**
-keep public class * extends android.view.View{
-keep public class * extends android.view.View {
*** get*();
void set*(***);
public <init>(android.content.Context);
@ -126,40 +62,21 @@
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keep class com.alibaba.sdk.android.*{*;}
-keep class com.ut.*{*;}
-keep class com.ta.*{*;}
### GDT & TEA
-keep class com.gh.gamecenter.GdtHelper { *; }
### TEA
-keep class com.gh.gamecenter.TeaHelper { *; }
### 阿里云日志
-keep class com.aliyun.sls.android.producer.* { *; }
-keep interface com.aliyun.sls.android.producer.* { *; }
### 中国移动一键登录
-dontwarn com.cmic.sso.sdk.**
-keep class com.cmic.sso.sdk.* { *; }
### EasyFloat
-keep class com.lzf.easyfloat.* {*;}
### 避免 WebChromeClient 被混淆
-keepclassmembers class * extends android.webkit.WebChromeClient{
public void openFileChooser(...);
}
### emoji4j
-keep class emoji4j.* {*;}
# Flutter模块
-keep class com.gh.common.util.DirectUtils {
public static void directToQa(...);
public static void directToQaCollection(...);
public static void directToGift(...);
public static void directToConcernInfo(...);
public static void directToFeedback(...);
public static void directToSuggestion(...);
### dokit
-keep class com.didichuxing.** {*;}
### 广点通SDK
-dontwarn com.qq.gdt.action.**
-keep class com.qq.gdt.action.** {*;}
-keep public class com.tencent.turingfd.sdk.**
-keepclasseswithmembers class * {
native <methods>;
}

View File

@ -1,32 +0,0 @@
package com.gh.gamecenter;
import android.app.Application;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
/**
* @author CsHeng
* @Date 03/09/2017
* @Time 4:34 PM
*/
public class Injection {
public static boolean appInit(Application application) {
// 监控Bundle大小,预防溢出(需要调试的时候再开启吧!)
// TooLargeTool.startLogging(application);
return true;
}
public static OkHttpClient.Builder provideRetrofitBuilder() {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
builder.addNetworkInterceptor(interceptor);
return builder;
}
}

View File

@ -0,0 +1,36 @@
package com.gh.gamecenter.provider
import android.app.Activity
import android.app.Application
import android.text.TextUtils
import com.gh.gamecenter.common.constant.Config
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.utils.PackageFlavorHelper
import com.gh.gamecenter.core.provider.IFlavorProvider
import com.gh.gamecenter.core.utils.SPUtils
import com.leon.channel.helper.ChannelReaderUtil
class FlavorProviderImp : IFlavorProvider {
override fun getChannelStr(application: Application): String {
var channel = ChannelReaderUtil.getChannel(application)
if (channel == null || TextUtils.isEmpty(channel.trim())) {
channel = if (PackageFlavorHelper.IS_TEST_FLAVOR) {
Config.DEFAULT_CHANNEL
} else {
Config.DEFAULT_CHANNEL_FOR_RELEASE
}
}
if (PackageFlavorHelper.IS_TEST_FLAVOR) {
channel = SPUtils.getString(Constants.SP_TEST_FLAVOR_CHANNEL, channel)
}
return channel
}
override fun init(application: Application, activity: Activity) {
// do nothing
}
override fun logEvent(content: String) {
// do nothing
}
}

View File

@ -1,77 +1,37 @@
package com.gh.gamecenter
import android.app.Application
import android.text.TextUtils
import android.util.Log
import com.gh.common.util.ToastUtils
import com.lightgame.utils.Utils
import com.qq.gdt.action.ActionParam
import com.qq.gdt.action.ActionType
import com.qq.gdt.action.GDTAction
import org.json.JSONObject
/**
* 广点通辅助类 [https://gitlab.ghzhushou.com/pm/halo-app-issues/issues/403]
*
* 更换帐号 [https://gitlab.ghzs.com/pm/yunying/issues/893]
*/
object GdtHelper {
private const val USER_ACTION_SET_ID = "1201041887"
private const val APP_SECRET_ID = "c29cc5c48cf540c43b4b97363bb09216"
const val NETWORK_TYPE = "NETWORK_TYPE"
const val PAGE_TYPE = "PAGE_TYPE"
const val CONTENT_TYPE = "CONTENT_TYPE"
const val CONTENT_ID = "CONTENT_ID"
const val KEYWORD = "KEYWORD"
const val GAME_ID = "GAME_ID"
const val SCORE = "SCORE"
const val PLATFORM = "PLATFORM"
private const val KS_USER_ACTION_SET_ID = "1201032128"
private const val KS_APP_SECRET_ID = "9bdbbb81d4e0bd333a2a581f9ee36986"
@JvmStatic
fun init(application: Application, channel: String) {
if (shouldUseGdtHelper()) {
if (channel == "GH_728") {
GDTAction.init(application, "1111012969", "9d3d9da5b0948a317c03d08f14d445dc")
} else if (channel == "GH_729") {
GDTAction.init(application, "1111013063", "f53dabf458a356b101d99fc4069eb7f1")
} else if (channel == "GH_765") {
GDTAction.init(application, "1111327925", "588d503f0990f98f9b2394fbb795c570")
} else {
GDTAction.init(application, "1110680399", "f5ddaafbf520d7d7385499232a408d0a")
}
if (channel == "KS_GDT_GHZS_MC01") {
GDTAction.init(application, KS_USER_ACTION_SET_ID, KS_APP_SECRET_ID, channel)
} else {
GDTAction.init(application, USER_ACTION_SET_ID, APP_SECRET_ID, channel)
}
Utils.log("init GdtHelper")
}
// fun logAction(type: String) {
// if (shouldUseGdtHelper()) {
// GDTAction.logAction(type)
// Utils.log("GDT", type)
// }
// }
@JvmStatic
fun logAction(type: String, vararg kv: String?) {
try {
val actionParam = JSONObject()
for (i in kv.indices) {
if (i % 2 != 0) {
val key = kv[i - 1]
val value = kv[i]
if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) {
actionParam.put(key, value)
}
}
}
Utils.log("GDT", "$type + [${kv.joinToString(" , ")}]")
GDTAction.logAction(type, actionParam)
} catch (e: Exception) {
e.printStackTrace()
fun logAction(type: String) {
when (type) {
"EVENT_ACTIVE" -> GDTAction.logAction(ActionType.START_APP)
"active_register" -> GDTAction.logAction(ActionType.REGISTER)
"EVENT_NEXTDAY_STAY" -> GDTAction.logAction(ActionType.START_APP, JSONObject().apply {
put(ActionParam.Key.LENGTH_OF_STAY, 1)
})
}
}
// TODO 确认开启的渠道条件
private fun shouldUseGdtHelper(): Boolean {
return true
//
// val channel = HaloApp.getInstance().channel
// return !(TextUtils.isEmpty(channel) || channel.contains("GDT".toLowerCase(Locale.CHINA)))
}
}

View File

@ -0,0 +1,48 @@
package com.gh.gamecenter.provider
import android.app.Activity
import android.app.Application
import android.text.TextUtils
import com.gh.gamecenter.GdtHelper
import com.gh.gamecenter.core.provider.IFlavorProvider
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.core.utils.TimeUtils
import com.halo.assistant.HaloApp
import com.leon.channel.helper.ChannelReaderUtil
class FlavorProviderImp : IFlavorProvider {
override fun init(application: Application, activity: Activity) {
GdtHelper.init(application, getChannelStr(application))
if (HaloApp.getInstance().isBrandNewInstall) {
logEvent("EVENT_ACTIVE")
SPUtils.setLong("TIME_OF_BRAND_NEW_INSTALL", System.currentTimeMillis() / 1000)
} else {
val shouldSendRetentionLogEvent =
SPUtils.getBoolean("SHOULD_SEND_RETENTION_EVENT", true)
val installTimeNotToday =
!TimeUtils.isToday(SPUtils.getLong("TIME_OF_BRAND_NEW_INSTALL", System.currentTimeMillis() / 1000))
if (shouldSendRetentionLogEvent && installTimeNotToday) {
logEvent("EVENT_NEXTDAY_STAY")
SPUtils.setBoolean("SHOULD_SEND_RETENTION_EVENT", false)
}
}
}
override fun getChannelStr(application: Application): String {
var channel = ChannelReaderUtil.getChannel(application)
if (channel == null || TextUtils.isEmpty(channel.trim())) {
channel = GDT_DEFAULT_CHANNEL
}
return channel
}
override fun logEvent(content: String) {
GdtHelper.logAction(content)
}
companion object {
private const val GDT_DEFAULT_CHANNEL = "GDT_GHZS_01"
}
}

Binary file not shown.

View File

@ -0,0 +1,30 @@
package com.gh.gamecenter
import android.content.Context
import com.kwai.monitor.log.TurboAgent
import com.kwai.monitor.log.TurboConfig
object KuaishouHelper {
private const val APP_ID = "80655"
private const val APP_NAME = "guanghuanzhushou_1"
@JvmStatic
fun init(context: Context, channel: String) {
TurboAgent.init(
TurboConfig.TurboConfigBuilder.create(context)
.setAppId(APP_ID)
.setAppName(APP_NAME)
.setAppChannel(channel)
.build()
)
}
@JvmStatic
fun onEvent(type: String) {
when (type) {
"EVENT_ACTIVE" -> TurboAgent.onAppActive()
"active_register" -> TurboAgent.onRegister()
"EVENT_NEXTDAY_STAY" -> TurboAgent.onNextDayStay()
}
}
}

View File

@ -0,0 +1,48 @@
package com.gh.gamecenter.provider
import android.app.Activity
import android.app.Application
import android.text.TextUtils
import com.gh.gamecenter.KuaishouHelper
import com.gh.gamecenter.core.provider.IFlavorProvider
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.core.utils.TimeUtils
import com.halo.assistant.HaloApp
import com.leon.channel.helper.ChannelReaderUtil
class FlavorProviderImp : IFlavorProvider {
override fun init(application: Application, activity: Activity) {
KuaishouHelper.init(application, getChannelStr(application))
if (HaloApp.getInstance().isBrandNewInstall) {
logEvent("EVENT_ACTIVE")
SPUtils.setLong("TIME_OF_BRAND_NEW_INSTALL", System.currentTimeMillis() / 1000)
} else {
val shouldSendRetentionLogEvent =
SPUtils.getBoolean("SHOULD_SEND_RETENTION_EVENT", true)
val installTimeNotToday =
!TimeUtils.isToday(SPUtils.getLong("TIME_OF_BRAND_NEW_INSTALL", System.currentTimeMillis() / 1000))
if (shouldSendRetentionLogEvent && installTimeNotToday) {
logEvent("EVENT_NEXTDAY_STAY")
SPUtils.setBoolean("SHOULD_SEND_RETENTION_EVENT", false)
}
}
}
override fun getChannelStr(application: Application): String {
var channel = ChannelReaderUtil.getChannel(application)
if (channel == null || TextUtils.isEmpty(channel.trim())) {
channel = KUAISHOU_CHANNEL
}
return channel
}
override fun logEvent(content: String) {
KuaishouHelper.onEvent(content)
}
companion object {
private const val KUAISHOU_CHANNEL = "KS-GHZS-01"
}
}

Binary file not shown.

View File

@ -3,6 +3,14 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.gh.gamecenter">
<queries>
<package android:name="com.gh.gamecenter" />
</queries>
<queries>
<package android:name="com.lg.vspace" />
</queries>
<!-- 允许应用程序访问网络连接 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 允许应用程序写入外部存储如SD卡上写文件 -->
@ -13,10 +21,6 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 允许应用程序获取网络信息状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 允许应用程序读取电话状态 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 允许应用程序获取当前或最近运行的应用 -->
<uses-permission android:name="android.permission.GET_TASKS" />
<!-- 允许访问振动设备 -->
<uses-permission android:name="android.permission.VIBRATE" />
<!-- 允许应用程序改变Wi-Fi连接状态 -->
@ -25,6 +29,11 @@
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- 允许应用程序快捷方式 -->
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<!-- 应用安装相关 -->
<uses-permission android:name="com.android.permission.GET_INSTALLED_APPS" />
<!-- 前台服务权限-->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
@ -32,6 +41,8 @@
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<!-- 如果有视频相关的广告且使用textureView播放请务必添加否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
@ -45,13 +56,41 @@
com.google.android.exoplayer2,
tv.danmaku.ijk.media.exo2,
pl.droidsonroids.gif,
com.lzf.easyfloat" />
com.lzf.easyfloat,
com.airbnb.lottie.compose,
androidx.compose.ui.platform,
androidx.compose.material.icons,
androidx.activity.compose,
androidx.compose.ui.tooling,
androidx.compose.ui.tooling.data,
androidx.compose.material.ripple,
androidx.compose.foundation,
androidx.compose.animation,
androidx.compose.foundation.layout,
androidx.compose.ui.text,
androidx.compose.ui.graphics,
androidx.compose.ui.unit,
androidx.compose.ui.util,
androidx.compose.ui.geometry,
androidx.compose.runtime.saveable,
androidx.compose.animation.core,
androidx.constraintlayout.compose,
androidx.compose.ui.test.manifest,
androidx.compose.ui.tooling.preview"/>
<!-- 去掉 SDK 一些流氓权限 -->
<uses-permission
android:name="android.permission.READ_CONTACTS"
tools:node="remove" />
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
tools:node="remove" />
<uses-permission
android:name="android.permission.GET_TASKS"
tools:node="remove" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
@ -66,7 +105,6 @@
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:largeHeap="true"
android:networkSecurityConfig="@xml/network_security_config"
android:resizeableActivity="true"
android:theme="@style/AppCompatTheme.APP"
tools:replace="android:name,android:allowBackup"
@ -81,6 +119,8 @@
android:name="io.sentry.breadcrumbs.system-events"
android:value="false" />
<service android:name = "com.gh.ndownload.NDownloadService" />
<activity
android:name="com.gh.gamecenter.SplashScreenActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
@ -135,10 +175,6 @@
android:name="com.gh.gamecenter.NewsDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.SettingActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.ConcernActivity"
android:screenOrientation="portrait" />
@ -206,18 +242,6 @@
android:name="com.gh.gamecenter.SelectUserIconActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.AboutActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.security.SecurityActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.security.BindPhoneActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.CommentDetailActivity"
android:screenOrientation="portrait"
@ -232,19 +256,11 @@
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.SuggestionActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.VoteActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden|adjustResize" />
<activity
android:name="com.gh.gamecenter.ToolBoxActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" />
<activity
android:name="com.gh.gamecenter.WeiBoShareActivity"
android:screenOrientation="portrait"
@ -258,11 +274,6 @@
android:name=".category.CategoryListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.LoginActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" />
<activity
android:name="com.gh.gamecenter.UserInfoActivity"
android:screenOrientation="portrait" />
@ -284,22 +295,10 @@
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" />
<activity
android:name="com.gh.gamecenter.qa.search.AskSearchActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.questions.detail.QuestionsDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.answer.fold.AnswerFoldActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.answer.edit.AnswerEditActivity"
android:screenOrientation="portrait" />
@ -316,14 +315,6 @@
android:name="com.gh.gamecenter.MessageKeFuActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.select.CommunitiesSelectActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.subject.CommunitySubjectActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.MessageInviteActivity"
android:screenOrientation="portrait" />
@ -340,10 +331,6 @@
android:name="com.gh.gamecenter.qa.myqa.MyAskActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.column.order.AskTabOrderActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.questions.edit.QuestionEditActivity"
android:screenOrientation="portrait" />
@ -365,14 +352,6 @@
android:name="com.gh.gamecenter.amway.AmwayActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.column.detail.AskColumnDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.NetworkDiagnosisActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.personalhome.fans.FansActivity"
android:screenOrientation="portrait" />
@ -401,10 +380,6 @@
android:name="com.gh.gamecenter.qa.article.detail.ArticleDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.article.detail.comment.ArticleDetailCommentActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.draft.CommunityDraftWrapperActivity"
android:screenOrientation="portrait" />
@ -414,14 +389,6 @@
android:screenOrientation="portrait"
android:windowSoftInputMode="stateVisible" />
<activity
android:name="com.gh.gamecenter.qa.questions.edit.manager.HistoryDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.questions.edit.manager.HistoryActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.editor.InsertAnswerWrapperActivity"
android:screenOrientation="portrait" />
@ -455,10 +422,6 @@
android:name="com.gh.gamecenter.tag.TagsActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.article.SimpleArticleListActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.video.videomanager.VideoManagerActivity"
android:screenOrientation="portrait" />
@ -476,10 +439,6 @@
android:name="com.gh.gamecenter.qa.editor.LocalMediaActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.mygame.PlayedGameActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.servers.GameServersActivity"
android:screenOrientation="portrait" />
@ -496,24 +455,13 @@
android:name="com.halo.assistant.fragment.user.UserPortraitCropImageActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.HelpAndFeedbackActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" />
<activity
android:name="com.gh.gamecenter.help.HelpDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.comment.CommentActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.Transparent"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name=".qa.dialog.ChooseForumActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.Transparent"
android:windowSoftInputMode="adjustNothing" />
@ -530,10 +478,6 @@
android:name="com.gh.gamecenter.gamedetail.fuli.kaifu.ServersCalendarActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.QaActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.answer.draft.AnswerDraftActivity"
android:screenOrientation="portrait" />
@ -552,10 +496,6 @@
android:name=".video.poster.PosterClipActivity"
android:screenOrientation="portrait" />
<activity
android:name=".forum.select.ForumSelectActivity"
android:screenOrientation="portrait" />
<activity
android:name=".forum.detail.ForumDetailActivity"
android:screenOrientation="portrait" />
@ -609,19 +549,6 @@
android:name=".forum.search.ForumOrUserSearchActivity"
android:screenOrientation="portrait" />
<activity
android:name=".energy.EnergyCenterActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name=".energy.EnergyHouseActivity"
android:screenOrientation="portrait" />
<activity
android:name=".personal.NewPersonalActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.questions.draft.QuestionDraftActivity"
android:screenOrientation="portrait" />
@ -646,14 +573,6 @@
android:name=".qa.video.publish.VideoPublishActivity"
android:screenOrientation="portrait" />
<activity
android:name=".setting.GameDownloadSettingActivity"
android:screenOrientation="portrait" />
<activity
android:name=".setting.VideoSettingActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.video.detail.ForumVideoDetailActivity"
android:screenOrientation="portrait" />
@ -668,7 +587,6 @@
<activity
android:name=".qa.editor.FullScreenVideoActivity"
android:screenOrientation="landscape"
android:theme="@style/AppFullScreenTheme" />
<activity
@ -691,14 +609,6 @@
android:name=".gamecollection.detail.GameCollectionPosterActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.cmic.sso.sdk.activity.LoginAuthActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Dialog" />
<activity
android:name=".home.skip.PackageSkipActivity"
android:screenOrientation="portrait" />
@ -764,17 +674,64 @@
android:name=".qa.editor.InsertGameCollectionWrapperActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.editor.InsertVideoWrapperActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.toolbox.ToolBoxBlockActivity"
android:screenOrientation="portrait" />
<activity
android:name="${applicationId}.wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
android:name="com.gh.vspace.VDownloadManagerActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.vspace.VSpaceLoadingActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.subject.CommunitySubjectActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.comment.NewCommentDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.mypost.MyPostActivity"
android:screenOrientation="portrait" />
<activity
android:name=".VerifyPhoneActivity"
android:screenOrientation="portrait" />
<activity
android:name=".BbsCertificationActivity"
android:screenOrientation="portrait" />
<activity
android:name=".discovery.DiscoveryActivity"
android:screenOrientation="portrait" />
<activity
android:name=".cloudarchive.CloudArchiveManagerActivity"
android:screenOrientation="portrait" />
<activity
android:name=".savegame.GameArchiveListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".discovery.interestedgame.InterestedGameActivity"
android:screenOrientation="portrait" />
<activity
android:name=".servers.gametest2.GameServerTestV2Activity"
android:screenOrientation="portrait" />
<!-- <activity-->
<!-- android:name="${applicationId}.douyinapi.DouYinEntryActivity"-->
@ -793,9 +750,42 @@
</provider>
<provider
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="remove" />
android:name="com.gh.gamecenter.provider.GhContentProvider"
android:authorities="${applicationId}.provider"
android:enabled="true"
android:exported="true" />
<provider
android:name="com.gh.vspace.VFileProvider"
android:authorities="${applicationId}.virtual_file_provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<service
android:name=".aidl.CommunicationService"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="com.gh.gamecenter.aidl.CommunicationService"/>
</intent-filter>
</service>
<!-- <provider-->
<!-- android:name="androidx.startup.InitializationProvider"-->
<!-- android:authorities="${applicationId}.androidx-startup"-->
<!-- android:exported="false"-->
<!-- tools:node="merge">-->
<!-- &lt;!&ndash; If you are using androidx.startup to initialize other components &ndash;&gt;-->
<!-- <meta-data-->
<!-- android:name="androidx.work.WorkManagerInitializer"-->
<!-- android:value="androidx.startup"-->
<!-- tools:node="remove" />-->
<!-- </provider>-->
<receiver
android:name="com.gh.gamecenter.receiver.DownloadReceiver"
@ -820,48 +810,6 @@
</intent-filter>
</receiver>
<!-- <receiver android:name="com.gh.gamecenter.receiver.UmengMessageReceiver">-->
<!-- <intent-filter>-->
<!-- <action android:name="com.gh.gamecenter.UMENG" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- &lt;!&ndash;魅族push应用定义消息receiver声明 &ndash;&gt;-->
<!-- <receiver android:name="com.gh.gamecenter.receiver.UmengMeizuPushReceiver">-->
<!-- <intent-filter>-->
<!-- &lt;!&ndash; 接收push消息 &ndash;&gt;-->
<!-- <action android:name="com.meizu.flyme.push.intent.MESSAGE" />-->
<!-- &lt;!&ndash; 接收register消息 &ndash;&gt;-->
<!-- <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />-->
<!-- &lt;!&ndash; 接收unregister消息&ndash;&gt;-->
<!-- <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />-->
<!-- &lt;!&ndash; 兼容低版本Flyme3推送服务配置 &ndash;&gt;-->
<!-- <action android:name="com.meizu.c2dm.intent.REGISTRATION" />-->
<!-- <action android:name="com.meizu.c2dm.intent.RECEIVE" />-->
<!-- <category android:name="${applicationId}" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- <receiver-->
<!-- android:name="com.gh.common.im.ImReceiver"-->
<!-- android:enabled="true">-->
<!-- <intent-filter android:priority="2147483647">-->
<!-- <action android:name="com.gh.im" />-->
<!-- <action android:name="action_finish" />-->
<!-- </intent-filter>-->
<!-- </receiver>-->
<!-- <meta-data-->
<!-- android:name="com.huawei.hms.client.appid"-->
<!-- android:value="@string/huawei_push_appid" />-->
<!-- <service-->
<!-- android:name="com.gh.base.GHUmengNotificationService"-->
<!-- android:permission="android.permission.BIND_JOB_SERVICE" />-->
<!--<service android:name = "com.gh.gamecenter.statistics.AppStaticService" />-->
<!-- 梦工厂配置 开始 -->
<!--<meta-data
android:name="MGC_APPID"

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"v":"5.9.1","fr":60,"ip":0,"op":100,"w":64,"h":64,"nm":"多版本下载提示_dark","ddd":0,"assets":[{"id":"comp_0","nm":"arrow 合成_dark","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.333],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":76,"s":[100]},{"t":100,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.333,"y":1},"o":{"x":0.364,"y":0},"t":0,"s":[28,-12,0],"to":[0,6.382,0],"ti":[0,-0.284,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":24,"s":[28,28,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.667,"y":0},"t":76,"s":[28,28,0],"to":[0,6.667,0],"ti":[0,-6.667,0]},{"t":100,"s":[28,68,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,2],[0,-2]],"c":false},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2,0],[0,2]],"c":false},"ix":2},"nm":"路径 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2,0],[0,2]],"c":false},"ix":2},"nm":"路径 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.333,0.333],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":0,"s":[80,120]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":24,"s":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":76,"s":[100,100]},{"t":100,"s":[80,120]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"组 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.156862750649,0.533333361149,0.878431379795,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[400,400],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"Vector 97","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"arrow 合成_dark","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[32,32,0],"ix":2,"l":2},"a":{"a":0,"k":[28,28,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":56,"h":56,"ip":0,"op":100,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"base","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[32,32,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.156862750649,0.533333361149,0.878431379795,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.137254908681,0.137254908681,0.137254908681,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"filling","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[400,400],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"Ellipse 44","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"bm":0}],"markers":[]}

View File

@ -0,0 +1 @@
{"v":"5.9.1","fr":60,"ip":0,"op":100,"w":64,"h":64,"nm":"多版本下载提示_light","ddd":0,"assets":[{"id":"comp_0","nm":"arrow 合成_light","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.333],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":24,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.667],"y":[0]},"t":76,"s":[100]},{"t":100,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.333,"y":1},"o":{"x":0.364,"y":0},"t":0,"s":[28,-12,0],"to":[0,6.382,0],"ti":[0,-0.284,0]},{"i":{"x":0.667,"y":0.667},"o":{"x":0.333,"y":0.333},"t":24,"s":[28,28,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.667,"y":0},"t":76,"s":[28,28,0],"to":[0,6.667,0],"ti":[0,-6.667,0]},{"t":100,"s":[28,68,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,2],[0,-2]],"c":false},"ix":2},"nm":"路径 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-2,0],[0,2]],"c":false},"ix":2},"nm":"路径 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2,0],[0,2]],"c":false},"ix":2},"nm":"路径 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.333,0.333],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":0,"s":[80,120]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":24,"s":[100,100]},{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.667,0.667],"y":[0,0]},"t":76,"s":[100,100]},{"t":100,"s":[80,120]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"组 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.141176477075,0.588235318661,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[400,400],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"Vector 97","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"arrow 合成_light","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[32,32,0],"ix":2,"l":2},"a":{"a":0,"k":[28,28,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":56,"h":56,"ip":0,"op":100,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"base","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[32,32,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"椭圆路径 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.141176477075,0.588235318661,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"filling","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[400,400],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"变换"}],"nm":"Ellipse 44","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100,"st":0,"bm":0}],"markers":[]}

File diff suppressed because it is too large Load Diff

View File

@ -280,12 +280,8 @@ RE.replaceAllDfImage = function(imgRuleFlag, gifRuleFlag) {
i--;
} else {
if(img.src.indexOf(".gif") > 0) {
if(gifRuleFlag.indexOf(",default") > 0) {
img.style.cssText = "max-width: 100%; display:block; margin:8px auto; height: auto;"
img.src = img.src.split("?")[0] + gifRuleFlag
}
img.src = img.src.split("?")[0] + gifRuleFlag
} else {
img.style.cssText = "max-width: 100%; display:block; margin:8px auto; height: auto;"
img.src = img.src.split("?")[0] + imgRuleFlag
}
}
@ -301,7 +297,7 @@ RE.hideShowBigPic = function() {
var img = imgs[i];
var imageClassName = img.className;
if (imageClassName == "image-link" || img.className == "poster") continue;
if(img.src.indexOf(",thumbnail") > 0 && img.src.indexOf(".gif") == -1) {
if (img.src.indexOf(".gif") == -1) {
j++;
}
}
@ -327,7 +323,6 @@ RE.replaceDfImageByUrl = function(imgUrl, imgRuleFlag, gifRuleFlag) {
var imageClassName = img.className;
if (imageClassName == "image-link" || img.className == "poster") continue;
if (img.src.indexOf(imgUrl) != -1) {
img.style.cssText = "max-width: 100%; display:block; margin:8px auto; height: auto;"
if(img.src.indexOf(".gif") > 0) {
img.src = img.src.split("?")[0] + gifRuleFlag
} else {

View File

@ -1,134 +0,0 @@
package com.gh.base;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Looper;
import android.preference.PreferenceManager;
import android.util.Log;
import com.gh.common.constant.Config;
import com.gh.common.util.DataCollectionUtils;
import com.gh.common.util.DataUtils;
import com.gh.gamecenter.SplashScreenActivity;
import com.lightgame.config.CommonDebug;
import com.lightgame.download.FileUtils;
import com.lightgame.utils.AppManager;
import com.lightgame.utils.Utils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.Thread.UncaughtExceptionHandler;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeoutException;
import io.sentry.Sentry;
public class AppUncaughtHandler implements UncaughtExceptionHandler {
private Context mContext;
public AppUncaughtHandler(Context context) {
// 获取系统默认的UncaughtException处理器
mContext = context;
}
@Override
public void uncaughtException(Thread t, Throwable e) {
if (("FinalizerWatchdogDaemon").equals(t.getName())
&& e instanceof TimeoutException) {
// ignore timeoutException
// detail can be found in this didi tech blog post https://mp.weixin.qq.com/s?__biz=MzU1ODEzNjI2NA==&mid=2247487185&idx=2&sn=cf2d9e10053f625bde0f61d246f14870&source=41#wechat_redirect
} else {
new Thread(() -> {
Looper.prepare();
Utils.toast(mContext.getApplicationContext(), "\"光环助手\"发生错误");
Looper.loop();
});
saveLocalLog(mContext, e);
restart(mContext);
Sentry.captureException(e);
}
}
public static void restart(final Context context) {
// S450 这机器会无限重启循环 : (
if ("S450".equals(Build.MODEL)) return;
// 防止重复奔溃导致助手一直重启20秒内不做处理
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
long curTime = System.currentTimeMillis();
long time = sp.getLong("last_restart_time", 0);
if (curTime - time > 20 * 1000) {
sp.edit().putLong("last_restart_time", curTime).apply();
Intent intent = new Intent(context, SplashScreenActivity.class);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
// 退出程序并重启
AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, curTime + 3000, restartIntent); // 1秒钟后重启应用
}
//error restart
// System.exit(2);
AppManager.getInstance().finishAllActivity();
}
// 保存log到本地
public static void saveLocalLog(Context context, Throwable ex) {
String errorMsg = Log.getStackTraceString(ex);
Config.setExceptionMsg(errorMsg);
// 保存到本地
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.getDefault());
File file = new File(FileUtils.getLogPath(context.getApplicationContext(),
format.format(new Date()) + "_gh_assist" + ".log"));
FileWriter writer = null;
try {
file.createNewFile();
writer = new FileWriter(file);
writer.write(errorMsg);
writer.flush();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 下次应用启动再上报
*
* @param context
* @param throwable
*/
public static void reportException(Context context, Throwable throwable) {
CommonDebug.logMethodWithParams(context, "ERRMSG", throwable);
// 上传错误数据
try {
DataCollectionUtils.uploadError(context, Log.getStackTraceString(throwable));
} catch (Exception e) {
}
DataUtils.onError(context, throwable);
}
}

View File

@ -1,454 +0,0 @@
package com.gh.base;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Parcel;
import android.os.TransactionTooLargeException;
import android.text.TextUtils;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Lifecycle;
import com.gh.base.fragment.BaseFragment;
import com.gh.common.constant.Constants;
import com.gh.common.tracker.IBusiness;
import com.gh.common.util.DialogHelper;
import com.gh.common.util.DialogUtils;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.EntranceUtils;
import com.gh.common.util.EnvHelper;
import com.gh.common.util.PackageFlavorHelper;
import com.gh.common.util.ExtensionsKt;
import com.gh.common.util.MtaHelper;
import com.gh.common.util.NetworkUtils;
import com.gh.common.util.PackageInstaller;
import com.gh.common.util.QuickLoginHelper;
import com.gh.common.util.RunningUtils;
import com.gh.common.util.SPUtils;
import com.gh.common.util.ShareUtils;
import com.gh.common.util.StringUtils;
import com.gh.download.DownloadManager;
import com.gh.gamecenter.BuildConfig;
import com.gh.gamecenter.LoginActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.SplashScreenActivity;
import com.gh.gamecenter.eventbus.EBShowDialog;
import com.lightgame.BaseAppCompatActivity;
import com.lightgame.download.DownloadEntity;
import com.lightgame.download.FileUtils;
import com.lightgame.utils.Utils;
import com.tencent.tauth.Tencent;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.json.JSONObject;
import java.lang.ref.WeakReference;
import java.util.List;
import butterknife.ButterKnife;
import kotlin.Pair;
import pub.devrel.easypermissions.EasyPermissions;
import static com.gh.common.util.EntranceUtils.KEY_ENTRANCE;
/**
* 只提供基础的服务(EventBus/ButterKnife/Share/GlobalDialog/Permissions)
* <p>
* 需要工具栏的页面请继承{@link ToolBarActivity}
*/
public abstract class BaseActivity extends BaseAppCompatActivity implements EasyPermissions.PermissionCallbacks, IBusiness {
// global dialog key
public final static String DOWNLOAD_HIJACK = "hijack";
public final static String LOGIN_EXCEPTION = "loginException";
public final static String PLUGGABLE = "plugin";
public final static String SIGNATURE_CONFLICT = "signature_conflict";
public final static int ID_ROOT_INDICATOR = 999;
public final int MAX_BUNDLE_SIZE = 300;
@NonNull
protected String mEntrance;
private boolean mIsExistLogoutDialog;
public long startPageTime = 0;
protected final Handler mBaseHandler = new BaseHandler(this);
protected static class BaseHandler extends Handler {
private final WeakReference<BaseActivity> mActivityWeakReference;
BaseHandler(BaseActivity activity) {
mActivityWeakReference = new WeakReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
BaseActivity activity = mActivityWeakReference.get();
if (activity != null) activity.handleMessage(msg);
}
}
protected void handleMessage(Message msg) {
}
//接收QQ或者QQ空间分享回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ExtensionsKt.tryCatchInRelease(() -> {
if (requestCode == com.tencent.connect.common.Constants.REQUEST_QQ_SHARE
|| requestCode == com.tencent.connect.common.Constants.REQUEST_QZONE_SHARE) {
Tencent.onActivityResultData(requestCode, resultCode, data, ShareUtils.getInstance(this).QqShareListener);
}
return null;
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (useEventBus()) EventBus.getDefault().register(this);
if (useButterKnife()) ButterKnife.bind(this);
mEntrance = getIntent().getStringExtra(KEY_ENTRANCE);
if (TextUtils.isEmpty(mEntrance)) {
mEntrance = Constants.ENTRANCE_UNKNOWN;
}
if (BuildConfig.DEBUG) {
Utils.log("ACTIVITY_ENTRANCE -> " + mEntrance);
}
disableAutofill();
if (savedInstanceState != null) {
String xapkUnzipActivity = SPUtils.getString(Constants.SP_XAPK_UNZIP_ACTIVITY);
String xapkUrl = SPUtils.getString(Constants.SP_XAPK_URL);
Utils.log("页面重建了--" + xapkUnzipActivity + "--" + xapkUrl);
if (this.getClass().isAssignableFrom(SplashScreenActivity.class)) {
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, "");
SPUtils.setString(Constants.SP_XAPK_URL, "");
return;
}
if (this.getClass().getName().equals(xapkUnzipActivity) && !TextUtils.isEmpty(xapkUrl)) {
DownloadEntity downloadEntity = DownloadManager.getInstance().getDownloadEntityByUrl(xapkUrl);
if (downloadEntity != null) {
PackageInstaller.install(this, downloadEntity, false);
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, "");
SPUtils.setString(Constants.SP_XAPK_URL, "");
}
}
}
}
@Override
protected void onResume() {
super.onResume();
startPageTime = System.currentTimeMillis();
}
@SuppressWarnings("ConstantConditions")
@Override
public void setContentView(View view) {
if (!(this instanceof SplashScreenActivity) && PackageFlavorHelper.IS_TEST_FLAVOR) {
view = getRootViewWithEnvIndicator(view);
}
super.setContentView(view);
}
@Override
protected void onDestroy() {
if (useEventBus()) EventBus.getDefault().unregister(this);
mBaseHandler.removeCallbacksAndMessages(null);
super.onDestroy();
}
public void toast(String msg) {
Utils.toast(this, msg);
}
public void toast(int msg) {
toast(getString(msg));
}
public void showShare(String url,
String icon,
String shareTitle,
String shareSummary,
ShareUtils.ShareEntrance shareEntrance, String id) {
ShareUtils.getInstance(this).showShareWindows(this,
getWindow().getDecorView(),
url,
icon,
shareTitle,
shareSummary,
shareEntrance, id);
if (shareEntrance == ShareUtils.ShareEntrance.game || shareEntrance == ShareUtils.ShareEntrance.plugin) {
MtaHelper.onEvent("内容分享", "内容分享", shareTitle + shareSummary);
} else {
MtaHelper.onEvent("内容分享", "内容分享", shareTitle);
}
}
/**
* 关闭 editText 自动填充帐号 (我们也用不上),开启的时候有小概率出发 TimeoutException
*/
private void disableAutofill() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
getWindow().getDecorView().setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
}
}
private View getRootViewWithEnvIndicator(View view) {
RelativeLayout screenRootView = new RelativeLayout(this);
screenRootView.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
LinearLayout ll = new LinearLayout(this);
TextView tv = new TextView(this);
String envText = "正式环境";
tv.setBackground(ContextCompat.getDrawable(this, R.color.theme));
if (EnvHelper.isDevEnv()) {
envText = "测试环境";
tv.setBackground(ContextCompat.getDrawable(this, R.color.theme_red));
}
tv.setText(envText);
tv.setGravity(Gravity.CENTER);
tv.setTextColor(Color.WHITE);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13);
tv.measure(0, 0);
tv.setAlpha(0.15F);
tv.setId(ID_ROOT_INDICATOR);
int height = tv.getMeasuredHeight();
int width = tv.getMeasuredWidth();
tv.setPadding(DisplayUtils.dip2px(20), 0, DisplayUtils.dip2px(20), 0);
ll.setTranslationX(DisplayUtils.dip2px(20));
ll.setRotation(45);
ll.addView(tv);
ll.setPadding(0, (width - height) / 2, 0, (width - height) / 2);
if (BuildConfig.DEBUG) {
tv.setOnLongClickListener(v -> {
EntranceUtils.saveShortcut(this.getClass().getName(), getIntent().getExtras());
return true;
});
}
screenRootView.addView(view);
screenRootView.addView(ll);
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) ll.getLayoutParams();
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
view.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
return screenRootView;
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(final EBShowDialog showDialog) {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)
&& this.getClass().getName().equals(RunningUtils.getTopActivity(this))) {
if (DOWNLOAD_HIJACK.equals(showDialog.getType())) {
DialogUtils.showQqSessionDialog(this);// 建议用户联系客服
} else if (PLUGGABLE.equals(showDialog.getType())) {
DialogHelper.showPluginDialog(this, () -> {
if (FileUtils.isEmptyFile(showDialog.getPath())) {
toast(R.string.install_failure_hint);
} else {
PackageInstaller.uninstall(BaseActivity.this, showDialog.getPath());
}
return null;
});
} else if (SIGNATURE_CONFLICT.equals(showDialog.getType())) {
DialogHelper.showSignatureConflictDialog(this, () -> {
PackageInstaller.uninstall(BaseActivity.this, showDialog.getPath());
return null;
});
} else if (LOGIN_EXCEPTION.equals(showDialog.getType())) {
if (mIsExistLogoutDialog) return;
mIsExistLogoutDialog = true;
try {
JSONObject object = new JSONObject(showDialog.getPath());
JSONObject device = object.getJSONObject("device");
String model = device.getString("model");
DialogHelper.showCenterDialog(this, "你的账号已在另外一台设备登录"
, StringUtils.buildString("", model, "")
, "知道了", "重新登录"
, () -> {}
, () -> {
if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(BaseActivity.this)) {
QuickLoginHelper.startLogin(BaseActivity.this, "你的账号已在另外一台设备登录多设备-重新登录");
} else {
startActivity(LoginActivity.getIntent(BaseActivity.this,
"你的账号已在另外一台设备登录多设备-重新登录"));
}
}
);
mBaseHandler.postDelayed(() -> mIsExistLogoutDialog = false, 5000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
@Override
protected void onPause() {
super.onPause();
if (isFinishing()) {
onFinish();
for (Fragment fragment : getSupportFragmentManager().getFragments()) {
if (fragment.isAdded() && fragment instanceof BaseFragment) {
((BaseFragment) fragment).onParentActivityFinish();
}
}
}
}
/**
* 此回调可用于确认当前 activity 已经执行了 finish() 方法并处于 isFinishing 状态
*/
protected void onFinish() {
}
@Override
public void onRequestPermissionsResult(int requestCode,
@NonNull String[] permissions,
@NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
}
@Override
public void onPermissionsGranted(int requestCode, List<String> perms) {
}
protected void setStatusBarColor(int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(color);
}
}
/**
* 提供当前 activity 的中文名 (不重载的话为类名)
*/
public String getActivityNameInChinese() {
return getClass().getSimpleName();
}
/**
* @param entrance 上一个页面的链式入口名称
* @param path 当前页面名称
* @return 完整的链式入口名称
*/
public static String mergeEntranceAndPath(String entrance, String path) {
if (TextUtils.isEmpty(entrance) && TextUtils.isEmpty(path)) return "";
if (TextUtils.isEmpty(entrance) && !TextUtils.isEmpty(path)) {
return StringUtils.buildString("(", path, ")");
}
if (!TextUtils.isEmpty(entrance) && TextUtils.isEmpty(path)) {
return entrance;
}
return StringUtils.buildString(entrance, "+(", path, ")");
}
protected boolean useEventBus() {
return true;
}
protected boolean useButterKnife() {
return true;
}
@Override
public Resources getResources() {
Resources resources = super.getResources();
if (resources.getConfiguration().fontScale != 1.0f) {
Configuration configuration = resources.getConfiguration();
configuration.fontScale = 1.0f;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
return resources;
}
/**
* ActivityThread每次调用onSaveInstanceState时outState大小都会累加最终会导致{@link TransactionTooLargeException}异常
* 解决方案判断每次获取到的outState大小当达到300k时手动clear掉
*/
@Override
protected void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
if (preventRecreateFragmentByFragmentManager()) {
outState = discardFragmentFromSaveInstanceState(outState);
}
long bundleSize = getBundleSize(outState);
if (bundleSize > MAX_BUNDLE_SIZE * 1024) {
outState.clear();
}
}
/**
* 是否停用 Activity 重建时 FragmentManager 根据 saveState 自动重建保存的 Fragment 的功能
*/
protected boolean preventRecreateFragmentByFragmentManager() {
return false;
}
private Bundle discardFragmentFromSaveInstanceState(Bundle outState) {
if (outState != null) {
outState.remove("android:support:fragments");
}
return outState;
}
private long getBundleSize(Bundle bundle) {
long dataSize;
Parcel obtain = Parcel.obtain();
try {
obtain.writeBundle(bundle);
dataSize = obtain.dataSize();
} finally {
obtain.recycle();
}
return dataSize;
}
@Override
public Pair<String, String> getBusinessId() {
return null;
}
}

View File

@ -6,6 +6,7 @@ import android.app.Activity
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.text.TextUtils
import android.view.View
@ -14,20 +15,21 @@ import android.widget.CheckBox
import android.widget.FrameLayout
import android.widget.TextView
import androidx.lifecycle.Observer
import butterknife.OnClick
import com.gh.common.AppExecutor
import com.gh.common.runOnIoThread
import com.gh.common.util.*
import com.gh.common.util.DialogUtils
import com.gh.common.util.NewLogUtils
import com.gh.common.view.RichEditor
import com.gh.gamecenter.CropImageActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.entity.GamesCollectionEntity
import com.gh.gamecenter.entity.LocalVideoEntity
import com.gh.gamecenter.entity.VideoEntity
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.utils.*
import com.gh.gamecenter.core.AppExecutor
import com.gh.gamecenter.core.runOnIoThread
import com.gh.gamecenter.core.utils.*
import com.gh.gamecenter.entity.*
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.qa.editor.*
import com.gh.gamecenter.qa.entity.AnswerEntity
import com.gh.gamecenter.qa.entity.ArticleEntity
import com.gh.gamecenter.feature.entity.AnswerEntity
import com.gh.gamecenter.feature.entity.ArticleEntity
import com.gh.gamecenter.qa.entity.EditorInsertEntity
import com.gh.gamecenter.video.poster.PosterEditActivity
import com.gh.gamecenter.video.upload.UploadManager
@ -37,38 +39,38 @@ import com.lightgame.utils.Util_System_Keyboard
import com.lightgame.utils.Utils
import com.lightgame.view.CheckableImageView
import io.reactivex.disposables.Disposable
import kotterknife.bindView
import org.json.JSONArray
import org.json.JSONObject
import java.io.File
// TODO: 移动到module_bbs模块
abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarActivity(),
KeyboardHeightObserver, UploadVideoListener {
val mRichEditor by bindView<RichEditor>(R.id.rich_editor)
lateinit var mRichEditor: RichEditor
private val mEditorTextNumTv by bindView<TextView>(R.id.editorTextNumTv)
private val mEditorFont by bindView<CheckableImageView>(R.id.editor_font)
private val mEditorLink by bindView<CheckableImageView>(R.id.editor_link)
private lateinit var mEditorTextNumTv: TextView
private lateinit var mEditorFont: CheckableImageView
private lateinit var mEditorLink: CheckableImageView
private val mEditorFontBold by bindView<CheckableImageView>(R.id.editor_font_bold)
private val mEditorFontItalic by bindView<CheckableImageView>(R.id.editor_font_italic)
private val mEditorFontStrikeThrough by bindView<CheckableImageView>(R.id.editor_font_strikethrough)
private val mEditorFontUnderline by bindView<CheckableImageView>(R.id.editor_font_underline)
private val mEditorParagraphH1 by bindView<CheckableImageView>(R.id.editor_paragraph_h1)
private val mEditorParagraphH2 by bindView<CheckableImageView>(R.id.editor_paragraph_h2)
private val mEditorParagraphH3 by bindView<CheckableImageView>(R.id.editor_paragraph_h3)
private val mEditorParagraphH4 by bindView<CheckableImageView>(R.id.editor_paragraph_h4)
private val mEditorParagraphQuote by bindView<CheckableImageView>(R.id.editor_paragraph_quote)
private val mEditorFontContainer by bindView<View>(R.id.editor_font_container)
private val mEditorParagraphContainer by bindView<View>(R.id.editor_paragraph_container)
private val mEditorLinkContainer by bindView<View>(R.id.editor_link_container)
private val mEditorInsertDetailContainer by bindView<View>(R.id.editor_insert_detail_container)
private val mTagsContainer by bindView<FrameLayout>(R.id.tagsContainer)
private val mUploadVideoGuideContainer by bindView<View>(R.id.uploadVideoGuideContainer)
protected val mOriginalCb by bindView<CheckBox>(R.id.originalCb)
private val mOriginalTipsContainer by bindView<View>(R.id.originalTipsContainer)
private val mOriginalTipsClose by bindView<TextView>(R.id.originalTipsClose)
private lateinit var mEditorFontBold: CheckableImageView
private lateinit var mEditorFontItalic: CheckableImageView
private lateinit var mEditorFontStrikeThrough: CheckableImageView
private lateinit var mEditorFontUnderline: CheckableImageView
private lateinit var mEditorParagraphH1: CheckableImageView
private lateinit var mEditorParagraphH2: CheckableImageView
private lateinit var mEditorParagraphH3: CheckableImageView
private lateinit var mEditorParagraphH4: CheckableImageView
private lateinit var mEditorParagraphQuote: CheckableImageView
private lateinit var mEditorFontContainer: View
private lateinit var mEditorParagraphContainer: View
private lateinit var mEditorLinkContainer: View
private lateinit var mEditorInsertDetailContainer: View
private lateinit var mTagsContainer: FrameLayout
private lateinit var mUploadVideoGuideContainer: View
protected lateinit var mOriginalCb: CheckBox
private lateinit var mOriginalTipsContainer: View
private lateinit var mOriginalTipsClose: TextView
private var mCurrentParagraphStyle = ""
private var mIsExtendedKeyboardShow = false
@ -113,7 +115,8 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
}
}
INSERT_GAME_COLLECTION_CODE -> {
val gameCollectionEntity = data?.getParcelableExtra<GamesCollectionEntity>(GamesCollectionEntity::class.java.simpleName)
val gameCollectionEntity =
data?.getParcelableExtra<GamesCollectionEntity>(GamesCollectionEntity::class.java.simpleName)
if (gameCollectionEntity != null) {
mRichEditor.focusEditor()
insertData = EditorInsertEntity.transform(gameCollectionEntity)
@ -123,7 +126,7 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
REQUEST_CODE_IMAGE -> {
if (data != null) mViewModel.uploadPic(data)
}
INSERT_VIDEO_CODE -> {
INSERT_MEDIA_VIDEO_CODE -> {
val localVideoList =
data?.getParcelableArrayListExtra<LocalVideoEntity>(LocalVideoEntity::class.java.name)
?: arrayListOf()
@ -138,6 +141,14 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
mViewModel.uploadPoster(imagePath)
}
}
INSERT_VIDEO_CODE -> {
val videoEntity = data?.getParcelableExtra<MyVideoEntity>(MyVideoEntity::class.java.simpleName)
if (videoEntity != null) {
mRichEditor.focusEditor()
insertData = EditorInsertEntity.transform(videoEntity)
mRichEditor.insertCustomStyleLink(insertData)
}
}
}
closeExtendedKeyboard()
AppExecutor.uiExecutor.executeWithDelay(Runnable {
@ -170,13 +181,43 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
}
private fun findView() {
mRichEditor = findViewById(R.id.rich_editor)
mEditorTextNumTv = findViewById(R.id.editorTextNumTv)
mEditorFont = findViewById(R.id.editor_font)
mEditorLink = findViewById(R.id.editor_link)
mEditorFontBold = findViewById(R.id.editor_font_bold)
mEditorFontItalic = findViewById(R.id.editor_font_italic)
mEditorFontStrikeThrough = findViewById(R.id.editor_font_strikethrough)
mEditorFontUnderline = findViewById(R.id.editor_font_underline)
mEditorParagraphH1 = findViewById(R.id.editor_paragraph_h1)
mEditorParagraphH2 = findViewById(R.id.editor_paragraph_h2)
mEditorParagraphH3 = findViewById(R.id.editor_paragraph_h3)
mEditorParagraphH4 = findViewById(R.id.editor_paragraph_h4)
mEditorParagraphQuote = findViewById(R.id.editor_paragraph_quote)
mEditorFontContainer = findViewById(R.id.editor_font_container)
mEditorParagraphContainer = findViewById(R.id.editor_paragraph_container)
mEditorLinkContainer = findViewById(R.id.editor_link_container)
mEditorInsertDetailContainer = findViewById(R.id.editor_insert_detail_container)
mTagsContainer = findViewById(R.id.tagsContainer)
mUploadVideoGuideContainer = findViewById(R.id.uploadVideoGuideContainer)
mOriginalCb = findViewById(R.id.originalCb)
mOriginalTipsContainer = findViewById(R.id.originalTipsContainer)
mOriginalTipsClose = findViewById(R.id.originalTipsClose)
}
@SuppressLint("AddJavascriptInterface", "ClickableViewAccessibility")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
findView()
onRichClick()
mViewModel = provideViewModel()
mViewModel.setUploadVideoListener(this)
mKeyboardHeightProvider = KeyboardHeightProvider(this)
mRichEditor.post { mKeyboardHeightProvider?.start() }
mRichEditor.enableForceDark(DarkModeUtils.isDarkModeOn(this))
mRichEditor.setEditorBackgroundColor(R.color.background_white.toColor(this))
mRichEditor.setEditorFontColor(if (mIsDarkModeOn) Color.parseColor("#C2C2C2") else Color.parseColor("#4A4A4A"))
// 防止个别手机在Js里无法获取粘贴内容
mRichEditor.addJavascriptInterface(OnPasteListener(), "onPasteListener")
mRichEditor.addJavascriptInterface(OnCursorChangeListener(), "OnCursorChangeListener")
@ -247,161 +288,156 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
mEditorFont.isEnabled = isEnabled
}
@OnClick(
R.id.editor_image, R.id.editor_font, R.id.editor_link, R.id.editor_font_underline,
R.id.editor_font_bold, R.id.editor_font_italic, R.id.editor_font_strikethrough,
R.id.editor_paragraph_h1, R.id.editor_paragraph_h2, R.id.editor_paragraph_h3,
R.id.editor_paragraph_h4, R.id.editor_font_container, R.id.editor_paragraph_container,
R.id.editor_paragraph_quote, R.id.editor_link_answer, R.id.editor_link_article,
R.id.editor_link_game, R.id.editor_link_video, R.id.uploadVideoGuideClose,
R.id.originalTipsClose, R.id.editor_link_game_collection
)
fun onRichClick(view: View) {
when (view.id) {
R.id.editor_font -> {
controlEditorFontContainer()
private fun onRichClick() {
mEditorFont.setOnClickListener {
controlEditorFontContainer()
}
mEditorLink.setOnClickListener {
controlEditorLinkContainer()
}
mEditorFontBold.setOnClickListener {
mEditorFontBold.isChecked = !mEditorFontBold.isChecked
mRichEditor.setBold()
if (mEditorFontBold.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-加粗")
}
R.id.editor_link -> {
controlEditorLinkContainer()
}
mEditorFontItalic.setOnClickListener {
mEditorFontItalic.isChecked = !mEditorFontItalic.isChecked
mRichEditor.setItalic()
if (mEditorFontItalic.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-斜体")
}
R.id.editor_font_bold -> {
mEditorFontBold.isChecked = !mEditorFontBold.isChecked
mRichEditor.setBold()
if (mEditorFontBold.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-加粗")
}
}
R.id.editor_font_italic -> {
mEditorFontItalic.isChecked = !mEditorFontItalic.isChecked
mRichEditor.setItalic()
if (mEditorFontItalic.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-斜体")
}
}
R.id.editor_font_strikethrough -> {
mEditorFontStrikeThrough.isChecked = !mEditorFontStrikeThrough.isChecked
mRichEditor.setStrikeThrough()
}
mEditorFontStrikeThrough.setOnClickListener {
mEditorFontStrikeThrough.isChecked = !mEditorFontStrikeThrough.isChecked
mRichEditor.setStrikeThrough()
if (mEditorFontStrikeThrough.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-删除线")
}
if (mEditorFontStrikeThrough.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-删除线")
}
R.id.editor_font_underline -> {
mEditorFontUnderline.isChecked = !mEditorFontUnderline.isChecked
mRichEditor.setUnderline()
}
mEditorFontUnderline.setOnClickListener {
mEditorFontUnderline.isChecked = !mEditorFontUnderline.isChecked
mRichEditor.setUnderline()
if (mEditorFontUnderline.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-下滑线")
}
if (mEditorFontUnderline.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-下滑线")
}
R.id.editor_paragraph_h1 -> {
if (mEditorParagraphH1.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-1级标题")
mRichEditor.setHeading(1)
}
mEditorParagraphH1.isChecked = !mEditorParagraphH1.isChecked
}
mEditorParagraphH1.setOnClickListener {
if (mEditorParagraphH1.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-1级标题")
mRichEditor.setHeading(1)
}
R.id.editor_paragraph_h2 -> {
if (mEditorParagraphH2.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-2级标题")
mRichEditor.setHeading(2)
}
mEditorParagraphH2.isChecked = !mEditorParagraphH2.isChecked
mEditorParagraphH1.isChecked = !mEditorParagraphH1.isChecked
}
mEditorParagraphH2.setOnClickListener {
if (mEditorParagraphH2.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-2级标题")
mRichEditor.setHeading(2)
}
R.id.editor_paragraph_h3 -> {
if (mEditorParagraphH3.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-3级标题")
mRichEditor.setHeading(3)
}
mEditorParagraphH3.isChecked = !mEditorParagraphH3.isChecked
mEditorParagraphH2.isChecked = !mEditorParagraphH2.isChecked
}
mEditorParagraphH3.setOnClickListener {
if (mEditorParagraphH3.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-3级标题")
mRichEditor.setHeading(3)
}
R.id.editor_paragraph_h4 -> {
if (mEditorParagraphH4.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-4级标题")
mRichEditor.setHeading(4)
}
mEditorParagraphH4.isChecked = !mEditorParagraphH4.isChecked
mEditorParagraphH3.isChecked = !mEditorParagraphH3.isChecked
}
mEditorParagraphH4.setOnClickListener {
if (mEditorParagraphH4.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-4级标题")
mRichEditor.setHeading(4)
}
R.id.editor_paragraph_quote -> {
if (mEditorParagraphQuote.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-引用")
mRichEditor.setBlockquote()
}
mEditorParagraphQuote.isChecked = !mEditorParagraphQuote.isChecked
mEditorParagraphH4.isChecked = !mEditorParagraphH4.isChecked
}
mEditorParagraphQuote.setOnClickListener {
if (mEditorParagraphQuote.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-引用")
mRichEditor.setBlockquote()
}
R.id.editor_link_answer -> {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-回答")
startActivityForResult(
InsertAnswerWrapperActivity.getIntent(this),
INSERT_ANSWER_CODE
mEditorParagraphQuote.isChecked = !mEditorParagraphQuote.isChecked
}
findViewById<View>(R.id.editor_link_answer).setOnClickListener {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-回答")
startActivityForResult(
InsertAnswerWrapperActivity.getIntent(this),
INSERT_ANSWER_CODE
)
}
findViewById<View>(R.id.editor_link_article).setOnClickListener {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-文章")
startActivityForResult(
InsertArticleWrapperActivity.getIntent(this),
INSERT_ARTICLE_CODE
)
}
findViewById<View>(R.id.editor_link_game).setOnClickListener {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-游戏")
startActivityForResult(
GameActivity.getIntent(this, GameActivity.INSERT_GAME_TITLE),
INSERT_GAME_CODE
)
}
findViewById<View>(R.id.editor_link_video).setOnClickListener {
startActivityForResult(
InsertVideoWrapperActivity.getIntent(this),
INSERT_VIDEO_CODE
)
}
findViewById<View>(R.id.editor_link_game_collection).setOnClickListener {
startActivityForResult(
InsertGameCollectionWrapperActivity.getIntent(this),
INSERT_GAME_COLLECTION_CODE
)
}
findViewById<View>(R.id.editor_video).setOnClickListener {
chooseVideo()
}
findViewById<View>(R.id.editor_image).setOnClickListener {
if (!mAgreePostPic && !NetworkUtils.isWifiOr4GOr3GConnected(this)) {
mAgreePostPic = true
DialogHelper.showDialog(
this,
"警告",
"当前使用移动网络,上传图片会消耗手机流量",
"我知道了", "", { chooseImage() },
extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true)
)
return@setOnClickListener
}
R.id.editor_link_article -> {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-文章")
startActivityForResult(
InsertArticleWrapperActivity.getIntent(this),
INSERT_ARTICLE_CODE
)
chooseImage()
NewLogUtils.logChooseMedia(
"view_media",
if (mtaEventName() == "提问帖") "提问帖" else "帖子",
"图片"
)
}
findViewById<View>(R.id.uploadVideoGuideClose).setOnClickListener {
hideUploadVideoGuide()
if (mGuideDisposable != null && !mGuideDisposable!!.isDisposed) {
mGuideDisposable!!.dispose()
mGuideDisposable = null
}
R.id.editor_link_game -> {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-游戏")
startActivityForResult(
GameActivity.getIntent(this, GameActivity.INSERT_GAME_TITLE),
INSERT_GAME_CODE
)
}
R.id.editor_link_game_collection -> {
startActivityForResult(
InsertGameCollectionWrapperActivity.getIntent(this),
INSERT_GAME_COLLECTION_CODE
)
}
R.id.editor_link_video -> {
chooseVideo()
}
R.id.editor_image -> {
if (!mAgreePostPic && !NetworkUtils.isWifiOr4GOr3GConnected(this)) {
mAgreePostPic = true
DialogHelper.showDialog(
this,
"警告",
"当前使用移动网络,上传图片会消耗手机流量",
"我知道了", "", { chooseImage() },
extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true)
)
return
}
chooseImage()
NewLogUtils.logChooseMedia(
"view_media",
if (mtaEventName() == "提问帖") "提问帖" else "帖子",
"图片"
)
}
R.id.uploadVideoGuideClose -> {
hideUploadVideoGuide()
if (mGuideDisposable != null && !mGuideDisposable!!.isDisposed) {
mGuideDisposable!!.dispose()
mGuideDisposable = null
}
}
R.id.originalTipsClose -> {
val animator = ObjectAnimator.ofFloat(mOriginalTipsContainer, "alpha", 1f, 0f).setDuration(200)
animator.doOnEnd {
mOriginalTipsContainer.visibility = View.GONE
}
animator.start()
}
findViewById<View>(R.id.originalTipsClose).setOnClickListener {
val animator = ObjectAnimator.ofFloat(mOriginalTipsContainer, "alpha", 1f, 0f).setDuration(200)
animator.doOnEnd {
mOriginalTipsContainer.visibility = View.GONE
}
animator.start()
}
}
@ -423,7 +459,7 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
LocalMediaActivity.ChooseType.VIDEO,
maxChooseCount,
if (mtaEventName() == "提问帖") "发提问帖" else "发帖子"
), INSERT_VIDEO_CODE
), INSERT_MEDIA_VIDEO_CODE
)
NewLogUtils.logChooseMedia(
"view_media",
@ -441,14 +477,14 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
private fun chooseImage() {
MtaHelper.onEvent(mtaEventName(), "插入图片", "插入图片")
val imageCount = mViewModel.quoteCountEntity.imageCount
if (imageCount >= MAX_MEDIA_COUNT) {
if (imageCount >= MAX_IMAGE_COUNT) {
toast(R.string.answer_edit_max_img_hint)
return
}
try {
PermissionHelper.checkStoragePermissionBeforeAction(this, object : EmptyCallback {
override fun onCallback() {
val maxChooseCount = if (imageCount + 10 <= MAX_MEDIA_COUNT) 10 else MAX_MEDIA_COUNT - imageCount
val maxChooseCount = if (imageCount + 10 <= MAX_IMAGE_COUNT) 10 else MAX_IMAGE_COUNT - imageCount
val intent = LocalMediaActivity.getIntent(
this@BaseRichEditorActivity,
LocalMediaActivity.ChooseType.IMAGE,
@ -712,6 +748,16 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
abstract fun provideViewModel(): VM
abstract fun getVideoGuideKey(): String
override fun isAutoResetViewBackgroundEnabled(): Boolean = true
override fun onDarkModeChanged() {
super.onDarkModeChanged()
updateStatusBarColor(R.color.background_white, R.color.background_white)
mRichEditor.enableForceDark(DarkModeUtils.isDarkModeOn(this))
mRichEditor.setEditorBackgroundColor(R.color.background_white.toColor(this))
mRichEditor.setEditorFontColor(if (mIsDarkModeOn) Color.parseColor("#C2C2C2") else Color.parseColor("#4A4A4A"))
}
companion object {
const val ELEMENT_NAME_BOLD = " b "
const val ELEMENT_NAME_ITALIC = " i "
@ -727,11 +773,13 @@ abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarAct
const val INSERT_ARTICLE_CODE = 412
const val INSERT_GAME_CODE = 413
const val INSERT_GAME_COLLECTION_CODE = 414
const val INSERT_VIDEO_CODE = 415
const val MAX_INPUT_TEXT_NUM = 10000
const val MAX_MEDIA_COUNT = 20
const val MAX_IMAGE_COUNT = 35
const val REQUEST_CODE_IMAGE = 120
const val INSERT_VIDEO_CODE = 121
const val INSERT_MEDIA_VIDEO_CODE = 121
const val REQUEST_CODE_IMAGE_CROP = 122
}
}

View File

@ -9,15 +9,18 @@ import android.text.TextUtils
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MediatorLiveData
import androidx.lifecycle.MutableLiveData
import com.gh.base.fragment.WaitingDialogFragment
import com.gh.common.runOnUiThread
import com.gh.common.util.*
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.ErrorEntity
import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment
import com.gh.gamecenter.common.retrofit.Response
import com.gh.gamecenter.common.utils.*
import com.gh.gamecenter.core.runOnUiThread
import com.gh.gamecenter.core.utils.MD5Utils
import com.gh.gamecenter.core.utils.ToastUtils
import com.gh.gamecenter.common.entity.ErrorEntity
import com.gh.gamecenter.entity.ForumDetailEntity
import com.gh.gamecenter.entity.LocalVideoEntity
import com.gh.gamecenter.entity.QuoteCountEntity
import com.gh.gamecenter.qa.BbsType
import com.gh.gamecenter.retrofit.Response
import com.gh.gamecenter.retrofit.RetrofitManager
import com.gh.gamecenter.retrofit.service.ApiService
import com.gh.gamecenter.video.upload.OnUploadListener
@ -31,19 +34,13 @@ import okhttp3.ResponseBody
import retrofit2.HttpException
import java.io.File
import java.io.FileOutputStream
import java.util.*
import kotlin.collections.HashMap
import kotlin.collections.LinkedHashMap
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.collections.find
import kotlin.collections.forEach
import kotlin.collections.set
// TODO: 移动到module_bbs模块
abstract class BaseRichEditorViewModel(application: Application) : AndroidViewModel(application) {
val mApi: ApiService = RetrofitManager.getInstance().api
val mNewApi: ApiService = RetrofitManager.getInstance().newApi
val processDialog = MediatorLiveData<WaitingDialogFragment.WaitingDialogData>()
val uploadingImage = ArrayList<LinkedHashMap<String, String>>()
val chooseImagesUpload = MutableLiveData<LinkedHashMap<String, String>>()
val chooseImagesUploadSuccess = MutableLiveData<LinkedHashMap<String, String>>()
var uploadImageSubscription: Disposable? = null
@ -60,6 +57,7 @@ abstract class BaseRichEditorViewModel(application: Application) : AndroidViewMo
var id = ""//视频标记
var videoId = ""//更改封面视频id
val quoteCountEntity = QuoteCountEntity()//数据上报用
val sectionListLiveData = MutableLiveData<List<ForumDetailEntity.Section>>()
fun setUploadVideoListener(uploadVideoListener: UploadVideoListener) {
this.mUploadVideoListener = uploadVideoListener
@ -68,7 +66,10 @@ abstract class BaseRichEditorViewModel(application: Application) : AndroidViewMo
//检查图片是否符合规则并上传图片
fun uploadPic(data: Intent) {
val uris = Matisse.obtainResult(data)
val pictureList = ArrayList<String>()
val rawImgUrlList = ArrayList<String>() // 需要上传图片的原始地址列表
val uploadingImgList = ArrayList<String>() // 正在上传图片的地址列表(已压缩处理)
val compressedImgUrlList = ArrayList<String>() // 压缩处理后图片的地址列表
for (uri in uris) {
val picturePath = PathUtils.getPath(getApplication(), uri)
if (picturePath != null) {
@ -82,12 +83,12 @@ abstract class BaseRichEditorViewModel(application: Application) : AndroidViewMo
continue
}
Utils.log("picturePath = $picturePath")
pictureList.add(picturePath)
rawImgUrlList.add(picturePath)
} else {
Utils.log("picturePath is null")
}
}
if (pictureList.size == 0) return
if (rawImgUrlList.size == 0) return
val imageType = when (getRichType()) {
RichType.ARTICLE -> UploadImageUtils.UploadType.community_article
RichType.QUESTION -> UploadImageUtils.UploadType.question
@ -95,7 +96,7 @@ abstract class BaseRichEditorViewModel(application: Application) : AndroidViewMo
}
uploadImageSubscription = UploadImageUtils.compressAndUploadImageList(
imageType,
pictureList,
rawImgUrlList,
false,
object : UploadImageUtils.OnUploadImageListListener {
override fun onProgress(total: Long, progress: Long) {}
@ -105,91 +106,113 @@ abstract class BaseRichEditorViewModel(application: Application) : AndroidViewMo
imageUrls.forEach {
chooseImageMd5Map[MD5Utils.getUrlMD5(it)] = ""
}
uploadingImage.add(chooseImageMd5Map)
uploadingImgList.addAll(imageUrls)
compressedImgUrlList.addAll(imageUrls)
chooseImagesUpload.postValue(chooseImageMd5Map)
}
override fun onSingleSuccess(imageUrl: Map<String, String>) {
val map = LinkedHashMap<String, String>()
for (key in imageUrl.keys) {
map[MD5Utils.getUrlMD5(key)] = FILE_HOST + key.decodeURI()
mapImages[TextUtils.htmlEncode(key).decodeURI()] = imageUrl[key] ?: ""
override fun onSingleSuccess(imageUrlMap: Map<String, String>) {
imageUrlMap.forEach {
if (uploadingImgList.contains(it.key)) {
uploadingImgList.remove(it.key)
}
}
chooseImagesUploadSuccess.postValue(map)
val map = LinkedHashMap<String, String>()
for (key in imageUrlMap.keys) {
map[MD5Utils.getUrlMD5(key)] = FILE_HOST + key.decodeURI()
mapImages[TextUtils.htmlEncode(key).decodeURI()] = imageUrlMap[key] ?: ""
}
chooseImagesUploadSuccess.value = map
}
override fun onSuccess(
imageUrl: LinkedHashMap<String, String>,
errorMap: Map<String, Exception>
) {
val uploadMap = uploadingImage.find {
it.containsKey(
MD5Utils.getUrlMD5(
imageUrl.entries.iterator().next().key
)
)
}
uploadMap?.let {
uploadingImage.remove(uploadMap)
}
val errorSize = pictureList.size - imageUrl.size
if (errorSize > 0) {
val map = LinkedHashMap<String, String>()
for (key in errorMap.keys) {
map[MD5Utils.getUrlMD5(key)] = ""
override fun onSuccess(imageUrlMap: LinkedHashMap<String, String>, errorMap: Map<String, Exception>) {
imageUrlMap.forEach {
if (uploadingImgList.contains(it.key)) {
uploadingImgList.remove(it.key)
}
//value为空会删除PlaceholderImage
chooseImagesUploadSuccess.postValue(map)
}
for (error in errorMap.values) {
if (error is HttpException && error.code() == 403) {
Utils.toast(getApplication(), errorSize.toString() + "张违规图片上传失败")
return
var errorSize = compressedImgUrlList.size - imageUrlMap.size
if (errorSize > 0 || uploadingImgList.isNotEmpty()) {
val errorImageMap = LinkedHashMap<String, String>()
for (key in errorMap.keys) {
errorImageMap[MD5Utils.getUrlMD5(key)] = ""
}
for (rawImgUrl in compressedImgUrlList) {
if (!imageUrlMap.containsKey(rawImgUrl)) {
errorImageMap[MD5Utils.getUrlMD5(rawImgUrl)] = ""
}
}
Utils.toast(getApplication(), errorSize.toString() + "张图片上传失败")
errorSize = if (errorMap.isEmpty()) {
errorImageMap.size
} else {
errorMap.size + errorImageMap.size
}
// value为空会删除PlaceholderImage
chooseImagesUploadSuccess.value = errorImageMap
if (handleUploadError(errorSize, errorMap)) return
if (errorSize > 0) {
ToastUtils.showToast(errorSize.toString() + "张图片上传失败")
}
}
}
override fun onError(errorMap: Map<String, Exception>) {
val errorSize = errorMap.size
if (errorSize > 0) {
val errorSize = uploadingImgList.size
if (uploadingImgList.size > 0) {
val map = LinkedHashMap<String, String>()
for (key in errorMap.keys) {
for (key in uploadingImgList) {
map[MD5Utils.getUrlMD5(key)] = ""
}
//value为空会删除PlaceholderImage
chooseImagesUploadSuccess.postValue(map)
// value为空会删除PlaceholderImage
chooseImagesUploadSuccess.value = map
}
for (error in errorMap.values) {
if (error is HttpException && error.code() == 403) {
val e = error.response()?.errorBody()?.string()?.toObject<ErrorEntity>()
if (e != null && e.code == 403017) {
Utils.toast(
getApplication(),
errorSize.toString() + "张图片的宽或高超过限制,请裁剪后上传"
)
} else {
Utils.toast(getApplication(), errorSize.toString() + "张违规图片上传失败")
}
return
}
}
if (handleUploadError(errorSize, errorMap)) return
if (errorSize == 0) return
if (errorSize == 1) {
Utils.toast(getApplication(), "图片上传失败")
ToastUtils.showToast("图片上传失败")
} else {
Utils.toast(getApplication(), errorSize.toString() + "张图片上传失败")
ToastUtils.showToast(errorSize.toString() + "张图片上传失败")
}
}
})
}
/**
* 处理上传错误 (包括超时 cancel 的异常)
* @return 如果 toast 过了就返回 true
*/
private fun handleUploadError(
errorSize: Int,
errorMap: Map<String, Exception>
): Boolean {
for (error in errorMap.values) {
if (error is HttpException && error.code() == 403) {
val e = error.response()?.errorBody()?.string()?.toObject<ErrorEntity>()
if (e != null && e.code == 403017) {
ToastUtils.showToast(errorSize.toString() + "张图片的宽或高超过限制,请裁剪后上传")
} else {
ToastUtils.showToast(errorSize.toString() + "张违规图片上传失败")
}
return true
}
}
return false
}
fun uploadPoster(picturePath: String) {
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("封面上传中...", true))
uploadImageSubscription =
UploadImageUtils.compressAndUploadImage(UploadImageUtils.UploadType.poster,
UploadImageUtils.compressAndUploadImage(
UploadImageUtils.UploadType.poster,
picturePath,
false,
object : UploadImageUtils.OnUploadImageListener {
@ -308,7 +331,8 @@ abstract class BaseRichEditorViewModel(application: Application) : AndroidViewMo
return
}
uploadImageSubscription =
UploadImageUtils.compressAndUploadImage(UploadImageUtils.UploadType.poster,
UploadImageUtils.compressAndUploadImage(
UploadImageUtils.UploadType.poster,
localVideoPoster,
false,
object : UploadImageUtils.OnUploadImageListener {
@ -387,6 +411,18 @@ abstract class BaseRichEditorViewModel(application: Application) : AndroidViewMo
return true
}
fun getForumSections(bbsId: String) {
mNewApi.getForumSections(bbsId)
.compose(observableToMain())
.subscribe(object : Response<List<ForumDetailEntity.Section>>() {
override fun onResponse(response: List<ForumDetailEntity.Section>?) {
response?.run {
sectionListLiveData.postValue(this)
}
}
})
}
private fun getVideoType(): String {
return when (type) {
BbsType.GAME_BBS.value -> {

View File

@ -0,0 +1,86 @@
package com.gh.base
import android.view.Gravity
import androidx.appcompat.app.AppCompatActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.common.utils.DarkModeUtils
import com.gh.gamecenter.common.utils.DialogHelper
import com.gh.gamecenter.common.utils.PackageFlavorHelper
import com.gh.gamecenter.common.utils.dip2px
import com.lzf.easyfloat.EasyFloat
import com.lzf.easyfloat.enums.ShowPattern
import com.lzf.easyfloat.enums.SidePattern
object DarkModeSwitchHelper {
fun showDarkModeSwitchFloatingView(activity: AppCompatActivity) {
if (PackageFlavorHelper.IS_TEST_FLAVOR) {
EasyFloat.with(activity)
.setLayout(R.layout.layout_day_mode_night_mode_switch)
.setTag("night_mode_switch_floating_view")
.setAnimator(null)
.setGravity(Gravity.TOP.xor(Gravity.END), 0, 114F.dip2px())
.setSidePattern(SidePattern.RESULT_SIDE)
.setDragEnable(true)
.setShowPattern(ShowPattern.CURRENT_ACTIVITY)
.registerCallback {
createResult { _, _, view ->
view?.setOnClickListener {
showDarkModeSwitchDialog(activity)
}
}
}
.show()
}
}
fun dismissDarkModeSwitchFloatingView() {
if (PackageFlavorHelper.IS_TEST_FLAVOR) {
EasyFloat.dismiss("night_mode_switch_floating_view")
}
}
private fun showDarkModeSwitchDialog(activity: AppCompatActivity) {
if (PackageFlavorHelper.IS_TEST_FLAVOR) {
//切换深色模式
var mode = "普通模式"
var positive = "跟随系统模式"
var negative = "深色模式"
if (DarkModeUtils.isFollowSystemDarkModeFromSp()) {
mode = "跟随系统模式"
positive = "普通模式"
negative = "深色模式"
} else if (DarkModeUtils.isAppDarkModeEnabledFromSp()) {
mode = "深色模式"
positive = "跟随系统模式"
negative = "普通模式"
}
DialogHelper.showDialog(
context = activity,
title = "选择模式",
content = "当前为 $mode",
confirmText = positive,
cancelText = negative,
confirmClickCallback = {
if (DarkModeUtils.isFollowSystemDarkModeFromSp()) {
DarkModeUtils.updateAppDarkModeStatusToSp(false)
DarkModeUtils.updateFollowSystemDarkModeToSp(false)
} else {
DarkModeUtils.updateFollowSystemDarkModeToSp(true)
}
DarkModeUtils.initDarkMode()
},
cancelClickCallback = {
if (DarkModeUtils.isFollowSystemDarkModeFromSp()) {
DarkModeUtils.updateAppDarkModeStatusToSp(true)
} else {
DarkModeUtils.updateAppDarkModeStatusToSp(!DarkModeUtils.isAppDarkModeEnabledFromSp())
}
DarkModeUtils.updateFollowSystemDarkModeToSp(false)
DarkModeUtils.initDarkMode()
},
extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true)
)
}
}
}

View File

@ -0,0 +1,112 @@
package com.gh.base
import android.os.Bundle
import android.text.TextUtils
import android.view.MenuItem
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import com.gh.download.DownloadManager
import com.gh.gamecenter.DownloadManagerActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.activity.ToolBarActivity
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.utils.viewModelProvider
import com.gh.gamecenter.core.utils.DisplayUtils
import com.gh.gamecenter.core.utils.SPUtils.getBoolean
import com.gh.gamecenter.entity.GameUpdateEntity
import com.gh.gamecenter.eventbus.EBDownloadStatus
import com.gh.gamecenter.packagehelper.PackageViewModel
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
// TODO:移动到module_download模块中
abstract class DownloadToolbarActivity : ToolBarActivity() {
private var mDownloadCountHint: TextView? = null
private var mPackageViewModel: PackageViewModel? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu()) {
mPackageViewModel = viewModelProvider(PackageViewModel.Factory())
mPackageViewModel?.filterSameUpdateLiveData?.observe(this) { updateList: List<GameUpdateEntity> ->
updateDownloadCountHint(updateList)
}
}
}
override fun setToolbarMenu(res: Int) {
// 青少年模式下要隐藏下载按钮
if (getBoolean(Constants.SP_TEENAGER_MODE) && res == R.menu.menu_download) return
super.setToolbarMenu(res)
}
override fun inflateMenu(res: Int) {
super.inflateMenu(res)
if (showDownloadMenu()) {
createDownloadMenu(res)
}
}
private fun createDownloadMenu(res: Int) {
if (res != R.menu.menu_download) {
menuInflater.inflate(R.menu.menu_download, mActionMenuView.menu)
}
if (mPackageViewModel != null) {
updateDownloadCountHint(mPackageViewModel?.filterSameUpdateLiveData?.value)
}
val downloadMenuView = mActionMenuView.menu.findItem(R.id.menu_download).actionView
mDownloadCountHint = downloadMenuView?.findViewById(R.id.menu_download_count_hint)
}
override fun onMenuItemClick(item: MenuItem?): Boolean {
if (item!!.itemId == R.id.menu_download) {
// MtaHelper.onEvent("下载管理", "下载管理入口", getActivityNameInChinese());
val intent = DownloadManagerActivity.getDownloadMangerIntent(this, mEntrance)
startActivity(intent)
return true
}
return super.onMenuItemClick(item)
}
private fun updateDownloadCountHint(updateList: List<GameUpdateEntity>?) {
if (mDownloadCountHint == null) return
val count = DownloadManager.getInstance().getDownloadOrUpdateCount(updateList)
if (count != null) {
mDownloadCountHint!!.visibility = View.VISIBLE
mDownloadCountHint!!.text = count
val params = mDownloadCountHint!!.layoutParams
if (TextUtils.isEmpty(count)) {
params.width = DisplayUtils.dip2px(6f)
params.height = DisplayUtils.dip2px(6f)
} else {
params.width = DisplayUtils.dip2px(12f)
params.height = DisplayUtils.dip2px(12f)
}
mDownloadCountHint!!.layoutParams = params
} else {
mDownloadCountHint!!.visibility = View.GONE
}
}
protected open fun showDownloadMenu(): Boolean {
return false
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEventMainThread(status: EBDownloadStatus?) {
if (!getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu() && mPackageViewModel != null) {
updateDownloadCountHint(mPackageViewModel?.filterSameUpdateLiveData?.value)
}
}
override fun onDarkModeChanged() {
super.onDarkModeChanged()
if (showDownloadMenu() && getMenuItem(R.id.menu_download) != null) {
(getMenuItem(R.id.menu_download).actionView?.findViewById(R.id.menu_download_iv) as ImageView).setImageResource(
R.drawable.toolbar_download
)
}
}
}

View File

@ -1,229 +0,0 @@
//package com.gh.base
//
//import android.app.Notification
//import android.app.NotificationChannel
//import android.app.NotificationManager
//import android.app.PendingIntent
//import android.content.Context
//import android.content.Intent
//import android.os.Build
//import android.os.Bundle
//import android.preference.PreferenceManager
//import android.text.TextUtils
//import android.view.View
//import androidx.core.app.NotificationCompat
//import androidx.core.text.htmlEncode
//import com.gh.common.notifier.Notifier
//import com.gh.common.util.*
//import com.gh.gamecenter.R
//import com.gh.gamecenter.entity.PushEntity
//import com.gh.gamecenter.entity.PushMessageEntity
//import com.gh.gamecenter.entity.PushMessageUnreadEntity
//import com.gh.gamecenter.entity.PushNotificationEntity
//import com.gh.gamecenter.manager.UserManager
//import com.gh.gamecenter.message.MessageUnreadRepository
//import com.gh.gamecenter.qa.answer.detail.AnswerDetailActivity
//import com.gh.gamecenter.receiver.UmengMessageReceiver
//import com.gh.gamecenter.receiver.UmengMessageReceiver.Companion.TYPE_CLICK
//import com.gh.gamecenter.receiver.UmengMessageReceiver.Companion.TYPE_REMOVE
//import com.gh.gamecenter.retrofit.Response
//import com.gh.gamecenter.retrofit.RetrofitManager
//import com.google.gson.Gson
//import com.umeng.message.UmengMessageService
//import io.reactivex.android.schedulers.AndroidSchedulers
//import io.reactivex.schedulers.Schedulers
//import okhttp3.MediaType
//import okhttp3.RequestBody
//import okhttp3.ResponseBody
//import org.android.agoo.common.AgooConstants
//import org.json.JSONObject
//import retrofit2.HttpException
//import java.util.*
//
//class GHUmengNotificationService : UmengMessageService() {
//
// companion object {
// const val ACTION_UMENG = "com.gh.gamecenter.UMENG"
// const val MESSAGE_FROM_SYSTEM = "message_from_system"
// const val HALO_MESSAGE_DIALOG = "HALO_MESSAGE_DIALOG"
// const val HALO_MESSAGE_CENTER = "HALO_MESSAGE_CENTER"
// const val ANSWER = "answer"
// const val FOLLOW_QUESTION = "follow_question"
// const val NOTIFICATION_ID = 2015
// const val DISPLAY_TYPE_NOTIFICATION = "notification"
// const val DISPLAY_TYPE_CUSTOM = "custom"
// const val MESSAGE_ID = "message_id"
// const val NOTIFICATION_MESSAGE_ID = "notification_message_id" // 通知中心消息 ID
// const val PUSH_ID = "push_id"
// }
//
// val notificationTags = arrayOf("GH_UMENG_TAG_1", "GH_UMENG_TAG_2", "GH_UMENG_TAG_3")
// val gson = Gson()
//
// override fun onMessage(context: Context, intent: Intent) {
// val message = intent.getStringExtra(AgooConstants.MESSAGE_BODY)
// val isMessageFromSystem = intent.getBooleanExtra(MESSAGE_FROM_SYSTEM, false)
//
// try {
// val pushData = message.toObject<PushEntity>()
// pushData?.let { handlePushData(context, it, message, isMessageFromSystem) }
// } catch (e: Exception) {
// e.printStackTrace()
// }
// }
//
// private fun handlePushData(context: Context, pushData: PushEntity, message: String, isMessageFromSystem: Boolean) {
// val notificationManager = context.applicationContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
//
// if (pushData.displayType == DISPLAY_TYPE_NOTIFICATION) {
// // 其它类型的透传信息
// // 显示到通知栏
// val msg = message.toObject<PushNotificationEntity>()
// val data = msg?.extra?.data
//
// // 系统推送(非自定义信息),直接处理跳转
// if (isMessageFromSystem) {
// val intent = Intent()
// intent.setClass(context, UmengMessageReceiver::class.java)
// intent.putExtra(EntranceUtils.KEY_DATA, data?.link)
// intent.putExtra(EntranceUtils.KEY_TYPE, UmengMessageReceiver.DIRECT_ONLY)
// intent.putExtra(EntranceUtils.KEY_MESSAGE, message)
// intent.putExtra(NOTIFICATION_MESSAGE_ID, data?.messageId)
// context.sendBroadcast(intent)
// return
// }
//
// // 用户未登录的情况下不生成消息中心通知,避免用户掉登录了还收到跳转至消息中心的通知
// if (data != null
// && data.link?.link == "system"
// && !UserManager.getInstance().isLoggedIn) {
// return
// }
//
// val clickIntent = Intent()
// val removeIntent = Intent()
//
// clickIntent.setClass(context, UmengMessageReceiver::class.java)
// clickIntent.putExtra(EntranceUtils.KEY_DATA, data?.link)
// clickIntent.putExtra(EntranceUtils.KEY_MESSAGE, message)
// clickIntent.putExtra(MESSAGE_ID, msg?.msgId)
// clickIntent.putExtra(PUSH_ID, data?.pushId)
// clickIntent.putExtra(NOTIFICATION_MESSAGE_ID, data?.messageId)
// clickIntent.putExtra(EntranceUtils.KEY_TYPE, TYPE_CLICK)
//
// removeIntent.setClass(context, UmengMessageReceiver::class.java)
// removeIntent.putExtra(EntranceUtils.KEY_TYPE, TYPE_REMOVE)
// removeIntent.putExtra(EntranceUtils.KEY_MESSAGE, message)
//
// val clickPendingIntent = PendingIntent.getBroadcast(context, System.currentTimeMillis().toInt(),
// clickIntent, PendingIntent.FLAG_UPDATE_CURRENT)
//
// val deletePendingIntent = PendingIntent.getBroadcast(context, System.currentTimeMillis().toInt() + 1,
// removeIntent, PendingIntent.FLAG_UPDATE_CURRENT)
//
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// val channel = NotificationChannel("Halo_Push", "Halo_Push", NotificationManager.IMPORTANCE_DEFAULT)
// notificationManager.createNotificationChannel(channel)
// }
//
// val notification = NotificationCompat.Builder(context, "Halo_Push")
// .setSmallIcon(R.drawable.ic_notification)
// .setTicker(pushData.body?.ticker)
// .setContentTitle(pushData.body?.title)
// .setContentText(pushData.body?.text?.fromHtml())
// .setContentIntent(clickPendingIntent)
// .setDeleteIntent(deletePendingIntent)
// .build()
// notification.flags = notification.flags or Notification.FLAG_AUTO_CANCEL
//
// notificationManager.notify(getNotificationTag(context), NOTIFICATION_ID, notification)
// } else {
// if (UserManager.getInstance().isLoggedIn &&
// HALO_MESSAGE_DIALOG == pushData.body?.custom &&
// MessageUnreadRepository.unreadLiveData.value != null) {
// // 回答了问题或者关注了问题的消息
// val msg = gson.fromJson(message, PushMessageEntity::class.java)
// val data = msg?.extra?.data
//
// val type = if (ANSWER == data?.type) {
// "回答了你的问题"
// } else {
// "回答了你关注的问题"
// }
//
// val userName = StringUtils.shrinkStringWithDot(data?.userEntity?.name, 8)
// val displayText = userName + type
//
// if (Notifier.isActivityValid(CurrentActivityHolder.getCurrentActivity()) &&
// Notifier.shouldShowNotifier(data?.answer?.id + displayText)) {
// Notifier.create(CurrentActivityHolder.getCurrentActivity())
// .setText(displayText)
// .setDuration(5000)
// .setIcon(data?.userEntity?.icon)
// .setOnClickListener(View.OnClickListener {
// val bundle = Bundle()
// bundle.putString(EntranceUtils.KEY_ANSWER_ID, data?.answer?.id)
// bundle.putString(EntranceUtils.KEY_ENTRANCE, EntranceUtils.ENTRANCE_UMENG)
// bundle.putString(EntranceUtils.KEY_TO, AnswerDetailActivity::class.java.name)
// EntranceUtils.jumpActivity(context, bundle)
//
// MtaHelper.onEvent("消息弹窗", type, "Does not contains any parameter.")
//
// // 标记已读
// val jsonObject = JSONObject()
// jsonObject.put("type", type)
// val body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString())
//
// RetrofitManager.getInstance().api.postMessageRead(UserManager.getInstance().userId, data?.id, body)
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(object : Response<ResponseBody>() {
// override fun onResponse(response: ResponseBody?) {
// super.onResponse(response)
// MessageUnreadRepository.loadMessageUnreadData()
// }
//
// override fun onFailure(e: HttpException?) {
// e?.printStackTrace()
// }
// })
// Notifier.hide()
// })
// .show(false)
// Notifier.tagNotifierAsShowed(data?.answer?.id + displayText)
// }
// } else if (HALO_MESSAGE_CENTER == pushData.body?.custom) {
// // 消息中心逻辑
// val msg = gson.fromJson(message, PushMessageUnreadEntity::class.java)
// val data = msg?.extra?.data
// data?.let { MessageUnreadRepository.loadMessageUnreadData() }
// }
// }
// }
//
// /**
// * 规则:最多三条消息,以旧换新
// *
// * @return NotificationTag
// */
// private fun getNotificationTag(context: Context): String {
// val sp = PreferenceManager.getDefaultSharedPreferences(context)
// val edit = sp.edit()
//
// val timeTagMap = HashMap<Long, String>()
// for (tag in notificationTags) {
// val time = sp.getLong(tag, 0)
// if (time == 0L) {
// edit.putLong(tag, System.currentTimeMillis()).apply()
// return tag
// } else {
// timeTagMap[time] = tag
// }
// }
//
// val minTime = Collections.min(timeTagMap.keys)
// val tag = timeTagMap[minTime]
// edit.putLong(tag, System.currentTimeMillis()).apply()
// return if (TextUtils.isEmpty(tag)) notificationTags[0] else tag!!
// }
//}

View File

@ -3,41 +3,35 @@ package com.gh.base
import android.app.Activity
import android.app.Application
import android.os.Bundle
import com.gh.common.notifier.Notifier
import com.gh.common.util.DataUtils
import androidx.appcompat.app.AppCompatActivity
import com.gh.common.util.FloatingBackViewManager
import com.gh.download.DownloadManager
import com.gh.gamecenter.MainActivity
import com.gh.gamecenter.SingletonWebActivity
import com.gh.gamecenter.SplashScreenActivity
import com.gh.gamecenter.energy.EnergyCenterActivity
import com.gh.gamecenter.forum.detail.ForumDetailActivity
import com.gh.gamecenter.forum.list.ForumListActivity
import com.gh.gamecenter.qa.article.detail.ArticleDetailActivity
import com.gh.gamecenter.qa.questions.newdetail.NewQuestionDetailActivity
import com.gh.gamecenter.qa.video.detail.ForumVideoDetailActivity
import com.gh.gamecenter.common.base.GlobalActivityManager
import com.gh.gamecenter.common.utils.PackageFlavorHelper
import com.gh.vspace.VHelper
import com.halo.assistant.HaloApp
import com.lightgame.utils.AppManager
// TODO移动到对应的模块
class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks {
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
AppManager.getInstance().addActivity(activity)
// do nothing
}
override fun onActivityStarted(activity: Activity) {
GlobalActivityManager.currentActivity = activity
}
override fun onActivityResumed(activity: Activity) {
CurrentActivityHolder.activitySet.add(activity)
// 判断是否需要显示或隐藏返回小浮窗
if (FloatingBackViewManager.getType().isNotEmpty()) {
if (activity is EnergyCenterActivity
if ((activity::class.java.name == "EnergyCenterActivity")
&& FloatingBackViewManager.getType() == FloatingBackViewManager.TYPE_TASK
) {
FloatingBackViewManager.disableBackView()
} else if (!shouldShowActivityBackView(activity)
} else if (activity is SingletonWebActivity
&& FloatingBackViewManager.getType() == FloatingBackViewManager.TYPE_ACTIVITY
) {
FloatingBackViewManager.disableBackView()
@ -47,7 +41,6 @@ class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks {
}
if (HaloApp.isUserAcceptPrivacyPolicy(activity)) {
DataUtils.onResume(activity)
// FIXME 这里应该只是部分Activity需要
try {
// 初始化gameMap
@ -58,36 +51,29 @@ class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks {
e.printStackTrace()
}
}
}
private fun shouldShowActivityBackView(activity: Activity): Boolean {
return (activity is MainActivity
|| activity is ArticleDetailActivity
|| activity is ForumVideoDetailActivity
|| activity is ForumDetailActivity
|| activity is ForumListActivity
|| activity is NewQuestionDetailActivity)
if (PackageFlavorHelper.IS_TEST_FLAVOR && activity is AppCompatActivity) {
DarkModeSwitchHelper.showDarkModeSwitchFloatingView(activity)
}
if (activity is AppCompatActivity && activity !is SplashScreenActivity) {
VHelper.showFeedbackDialogIfLastSuccessfulLaunchedGameExitUnexpectedly(activity)
}
}
override fun onActivityPaused(activity: Activity) {
CurrentActivityHolder.activitySet.remove(activity)
FloatingBackViewManager.dismissBackView()
if (HaloApp.isUserAcceptPrivacyPolicy(activity)) {
DataUtils.onPause(activity)
}
if (activity.isFinishing) {
AppManager.getInstance().finishActivity(activity)
if (PackageFlavorHelper.IS_TEST_FLAVOR && activity is AppCompatActivity) {
DarkModeSwitchHelper.dismissDarkModeSwitchFloatingView()
}
}
override fun onActivityStopped(activity: Activity) {
Notifier.hide()
// do nothing
}
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
// do nothing
}
override fun onActivityDestroyed(activity: Activity) {

View File

@ -1,19 +0,0 @@
package com.gh.base;
import android.view.View;
/**
* Created by khy on 26/09/17.
*/
public interface OnListClickListener {
/**
*
* @param view
* @param position list position
* @param data list data (直接强转 如果列表传入不同数据类型 请做好判断)
* @param <T>
*/
<T> void onListClick(View view, int position, T data);
}

View File

@ -1,20 +0,0 @@
package com.gh.base;
/**
* Created by Administrator on 2016/9/8.
*
* 逐步移除
*/
@Deprecated
public interface OnRequestCallBackListener<T> {
void loadDone();
void loadDone(T obj);
void loadError();
void loadEmpty();
}

View File

@ -1,7 +0,0 @@
package com.gh.base;
import android.view.View;
public interface OnViewClickListener<T> {
void onClick(View v, T data);
}

View File

@ -1,313 +0,0 @@
package com.gh.base;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.ActionMenuView;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.common.constant.Constants;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.ImageUtils;
import com.gh.common.util.SPUtils;
import com.gh.common.view.GameIconView;
import com.gh.download.DownloadManager;
import com.gh.gamecenter.DownloadManagerActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.entity.GameUpdateEntity;
import com.gh.gamecenter.eventbus.EBDownloadStatus;
import com.gh.gamecenter.normal.ToolbarController;
import com.gh.gamecenter.packagehelper.PackageViewModel;
import com.lightgame.OnTitleClickListener;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.List;
/**
* 需要用到工具栏的页面使用
* <p>
* 特殊页面请参考{@link BaseActivity}
*/
public abstract class ToolBarActivity extends BaseActivity implements ToolbarController, ActionMenuView.OnMenuItemClickListener {
@Nullable
private PackageViewModel mPackageViewModel;
protected View mToolbarContainer;
protected Toolbar mToolbar;
protected TextView mTitleTv;
protected LinearLayout mTitleContainer;
protected LinearLayout mIconTitleContainer;
protected FrameLayout mBackContainer;
protected ActionMenuView mActionMenuView;
protected View mBackBtn;
protected GameIconView mGameIconView;
protected SimpleDraweeView mUserAvatarIv;
protected TextView mIconTitle;
@Nullable
private TextView mDownloadCountHint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStatusBarDarkMode(true, this);
initToolbar();
if (!SPUtils.getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu()) {
mPackageViewModel = ViewModelProviders.of(this, new PackageViewModel.Factory()).get(PackageViewModel.class);
mPackageViewModel.getFilterSameUpdateLiveData().observe(this, this::updateDownloadCountHint);
}
}
// 小米沉浸式黑色字体
@SuppressLint("PrivateApi")
public void setStatusBarDarkMode(boolean darkmode, Activity activity) {
Class<? extends Window> clazz = activity.getWindow().getClass();
try {
Class<?> layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
int darkModeFlag = field.getInt(layoutParams);
Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
extraFlagField.invoke(activity.getWindow(), darkmode ? darkModeFlag : 0, darkModeFlag);
} catch (Exception ignore) {
}
}
private void initToolbar() {
mToolbarContainer = findViewById(R.id.normal_toolbar_container);
mToolbar = findViewById(R.id.normal_toolbar);
mTitleTv = findViewById(R.id.normal_title);
mActionMenuView = findViewById(R.id.actionMenuView);
mTitleContainer = findViewById(R.id.titleContainer);
mIconTitleContainer = findViewById(R.id.iconTitleContainer);
mBackContainer = findViewById(R.id.backContainer);
mBackBtn = findViewById(R.id.backBtn);
mGameIconView = findViewById(R.id.gameIv);
mUserAvatarIv = findViewById(R.id.userAvatar);
mIconTitle = findViewById(R.id.iconTitle);
if (mToolbar != null) {
// setSupportActionBar(mToolbar); // 替换actionBar后 toolBar无法控制
// mToolbar.setNavigationIcon(provideNavigationIcon());
// mToolbar.setNavigationOnClickListener(provideNavigationItemClickListener());
if (mBackBtn != null) mBackBtn.setOnClickListener(provideNavigationItemClickListener());
if (mBackContainer != null) mBackContainer.setOnClickListener(provideNavigationItemClickListener());
if (mTitleTv != null) {
mTitleTv.setOnClickListener(view -> {
final List<Fragment> fragmentList = getSupportFragmentManager().getFragments();
for (Fragment fragment : fragmentList) {
if (fragment instanceof OnTitleClickListener) {
((OnTitleClickListener) fragment).onTitleClick();
}
}
});
}
}
}
@DrawableRes
public int provideNavigationIcon() {
return R.drawable.ic_bar_back; // default navigation icon
}
@Override
public void setNavigationTitle(String title) {
if (mTitleTv != null) mTitleTv.setText(title);
if (mIconTitle != null) mIconTitle.setText(title);
}
@Override
public void setNavigationTitle(@StringRes int res) {
setNavigationTitle(getString(res));
}
/**
* 重写此方法以将标题靠左显示
*/
public boolean showToolbarAtLeft() {
return false;
}
@Override
public void setToolbarMenu(int res) {
if (mActionMenuView == null) return;
// 青少年模式下要隐藏下载按钮
if (SPUtils.getBoolean(Constants.SP_TEENAGER_MODE) && res == R.menu.menu_download) return;
// mToolbar.inflateMenu(res);
// mToolbar.setOnMenuItemClickListener(this);
getMenuInflater().inflate(res, mActionMenuView.getMenu());
mActionMenuView.setOnMenuItemClickListener(this);
if (showDownloadMenu()) {
createDownloadMenu(res);
}
Menu menu = mActionMenuView.getMenu();
for (int i = 0; i < menu.size(); i++) {
MenuItem menuItem = menu.getItem(i);
// menu设置actionLayout后无法捕捉点击事件以icon为tag如果icon is null 手动设置menuItem点击事件
if (menuItem != null && menuItem.getIcon() == null) {
if (menuItem.getActionView() != null) {
menuItem.getActionView().setOnClickListener((v) -> this.onMenuItemClick(menuItem));
}
}
}
if (showToolbarAtLeft() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && mTitleTv != null) {
mTitleTv.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START);
}
setTitleCenter();
}
@Override
protected void onResume() {
super.onResume();
setTitleCenter();
}
// 设置标题居中
public void setTitleCenter() {
if (mActionMenuView != null && mTitleContainer != null && mBackContainer != null && !showToolbarAtLeft()) {
mActionMenuView.post(() -> {
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mTitleContainer.getLayoutParams();
params.setMargins(mActionMenuView.getWidth() - mBackContainer.getWidth(), 0, 0, 0);
mTitleContainer.setLayoutParams(params);
});
}
}
public void setGameIconToolbar(String icon, String iconSubscript) {
mTitleContainer.setVisibility(View.GONE);
mGameIconView.displayGameIcon(icon, iconSubscript);
mGameIconView.setVisibility(View.VISIBLE);
mIconTitleContainer.setVisibility(View.VISIBLE);
}
public void setUserAvatarIconToolbar(String icon) {
mTitleContainer.setVisibility(View.GONE);
ImageUtils.display(mUserAvatarIv, icon);
mUserAvatarIv.setVisibility(View.VISIBLE);
mIconTitleContainer.setVisibility(View.VISIBLE);
}
private void createDownloadMenu(int res) {
if (res != R.menu.menu_download) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_download, mActionMenuView.getMenu());
}
if (mPackageViewModel != null) {
updateDownloadCountHint(mPackageViewModel.getFilterSameUpdateLiveData().getValue());
}
View downloadMenuView = mActionMenuView.getMenu().findItem(R.id.menu_download).getActionView();
mDownloadCountHint = downloadMenuView.findViewById(R.id.menu_download_count_hint);
}
private void updateDownloadCountHint(List<GameUpdateEntity> updateList) {
if (mDownloadCountHint == null) return;
String count = DownloadManager.getInstance().getDownloadOrUpdateCount(updateList);
if (count != null) {
mDownloadCountHint.setVisibility(View.VISIBLE);
mDownloadCountHint.setText(count);
ViewGroup.LayoutParams params = mDownloadCountHint.getLayoutParams();
if (TextUtils.isEmpty(count)) {
params.width = DisplayUtils.dip2px(6);
params.height = DisplayUtils.dip2px(6);
} else {
params.width = DisplayUtils.dip2px(12);
params.height = DisplayUtils.dip2px(12);
}
mDownloadCountHint.setLayoutParams(params);
} else {
mDownloadCountHint.setVisibility(View.GONE);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBDownloadStatus status) {
if (!SPUtils.getBoolean(Constants.SP_TEENAGER_MODE) && showDownloadMenu() && mPackageViewModel != null) {
updateDownloadCountHint(mPackageViewModel.getFilterSameUpdateLiveData().getValue());
}
}
@Override
public MenuItem getMenuItem(int res) {
if (mToolbar == null) return null; //后续页面做好判断
return mActionMenuView.getMenu().findItem(res);
}
public void clearMenu() {
if (mToolbar != null) {
mActionMenuView.getMenu().clear();
setTitleCenter();
}
}
public Menu getMenu() {
return mActionMenuView.getMenu();
}
@Override
public boolean onMenuItemClick(MenuItem item) {
if (item.getItemId() == R.id.menu_download) {
// MtaHelper.onEvent("下载管理", "下载管理入口", getActivityNameInChinese());
Intent intent = DownloadManagerActivity.getDownloadMangerIntent(this, mEntrance);
startActivity(intent);
}
return false;
}
protected View.OnClickListener provideNavigationItemClickListener() {
return view -> onBackPressed();
}
protected boolean showDownloadMenu() {
return false;
}
@Override
public void hideToolbar(boolean isHide) {
if (mToolbarContainer != null) {
mToolbarContainer.setVisibility(isHide ? View.GONE : View.VISIBLE);
}
}
}

View File

@ -1,31 +0,0 @@
package com.gh.base.adapter;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import java.util.List;
/**
* Created by khy on 7/12/28.
*/
public class FragmentStateAdapter extends FragmentStatePagerAdapter {
private List<Fragment> mFragmentList;
public FragmentStateAdapter(FragmentManager fm, List<Fragment> fragmentList) {
super(fm);
this.mFragmentList = fragmentList;
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
}

View File

@ -1,5 +0,0 @@
package com.gh.base.fragment;
public interface OnDialogBackListener {
void onBack();
}

View File

@ -1,71 +0,0 @@
package com.gh.common
import android.os.Handler
import android.os.Looper
import com.gh.base.GHThreadFactory
import com.gh.common.AppExecutor.ioExecutor
import com.gh.common.AppExecutor.lightWeightIoExecutor
import com.gh.common.AppExecutor.logExecutor
import com.gh.common.AppExecutor.uiExecutor
import io.reactivex.schedulers.Schedulers
import java.util.concurrent.*
/**
* APP 线程池管理类
*
* [ioExecutor] 是一个最大线程数固定的线程池,较为繁重的 IO 任务可以交给它
* [uiExecutor] 是主线程的包裹,需要切换至主线程执行可以用它
* [lightWeightIoExecutor] 是一个单线程的线程池,轻量级且需要保证同一线程的 IO 任务可以交给它
* [logExecutor] 只为上传 log 而使用的线程池
*/
object AppExecutor {
private val mCoreSize = Runtime.getRuntime().availableProcessors()
private val mMinimumPoolSize = 16.coerceAtLeast(mCoreSize * 4)
private val mMaximumPoolSize = 64.coerceAtLeast(mCoreSize * 16)
// TODO 因为 LinkedBlockingQueue 过大导致 MaximumPoolSize 的值几乎无效,下版本改造 [PackageRepository] 启动请求一堆游戏摘要信息的接口?
@JvmStatic
val uiExecutor by lazy { MainThreadExecutor() }
@JvmStatic
val lightWeightIoExecutor by lazy { Executors.newSingleThreadExecutor(GHThreadFactory("GH_LIGHT_WEIGHT_IO_THREAD")) }
@JvmStatic
val logExecutor by lazy { Executors.newSingleThreadExecutor(GHThreadFactory("GH_LOG_THREAD")) }
@JvmStatic
val ioExecutor = ThreadPoolExecutor(
mMinimumPoolSize,
mMaximumPoolSize,
20L, TimeUnit.SECONDS,
LinkedBlockingQueue<Runnable>(1000),
GHThreadFactory("GH_IO_THREAD"))
val cachedScheduler by lazy { Schedulers.from(ioExecutor) }
class MainThreadExecutor : Executor {
private val mainThreadHandler = Handler(Looper.getMainLooper())
override fun execute(command: Runnable) {
mainThreadHandler.post(command)
}
fun executeWithDelay(command: Runnable, delay: Long) {
mainThreadHandler.postDelayed(command, delay)
}
}
}
fun runOnIoThread(isLightWeightTask: Boolean = false, f: () -> Unit) {
if (isLightWeightTask) {
AppExecutor.lightWeightIoExecutor.execute(f)
} else {
AppExecutor.ioExecutor.execute(f)
}
}
fun runOnUiThread(f: () -> Unit) {
AppExecutor.uiExecutor.execute(f)
}

View File

@ -1,5 +0,0 @@
package com.gh.common
object Base64ImageHolder {
var image: String = ""
}

View File

@ -4,39 +4,76 @@ import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.util.Base64
import android.view.View
import android.webkit.JavascriptInterface
import androidx.annotation.Keep
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import com.gh.base.CurrentActivityHolder
import com.gh.common.constant.Constants
import com.gh.common.loghub.LoghubUtils
import com.gh.common.tracker.Tracker
import androidx.fragment.app.FragmentManager
import com.alibaba.android.arouter.launcher.ARouter
import com.gh.common.util.*
import com.gh.common.view.dsbridge.CompletionHandler
import com.gh.gamecenter.*
import com.gh.gamecenter.energy.EnergyCenterActivity
import com.gh.gamecenter.energy.EnergyHouseActivity
import com.gh.gamecenter.entity.Badge
import com.gh.gamecenter.entity.MtaEvent
import com.gh.gamecenter.entity.NotificationUgc
import com.gh.gamecenter.help.QaFeedbackDialogFragment
import com.gh.gamecenter.manager.UserManager
import com.gh.common.util.LogUtils
import com.gh.download.DownloadManager
import com.gh.download.PackageObserver
import com.gh.gamecenter.BuildConfig
import com.gh.gamecenter.ImageViewerActivity
import com.gh.gamecenter.WebActivity
import com.gh.gamecenter.common.callback.BiCallback
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.common.entity.NotificationUgc
import com.gh.gamecenter.common.loghub.LoghubUtils
import com.gh.gamecenter.common.provider.IHelpAndFeedbackProvider
import com.gh.gamecenter.common.tracker.Tracker
import com.gh.gamecenter.common.utils.*
import com.gh.gamecenter.common.view.dsbridge.CompletionHandler
import com.gh.gamecenter.core.AppExecutor
import com.gh.gamecenter.core.runOnIoThread
import com.gh.gamecenter.core.runOnUiThread
import com.gh.gamecenter.core.utils.*
import com.gh.gamecenter.energy.EnergyBridge
import com.gh.gamecenter.entity.SensorsEvent
import com.gh.gamecenter.eventbus.EBDownloadStatus
import com.gh.gamecenter.eventbus.EBPackage
import com.gh.gamecenter.feature.entity.Badge
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.login.user.LoginTag
import com.gh.gamecenter.login.user.UserManager
import com.gh.gamecenter.login.user.UserRepository
import com.gh.gamecenter.login.utils.LoginHelper
import com.gh.gamecenter.login.utils.QuickLoginHelper
import com.gh.gamecenter.login.view.LoginActivity
import com.gh.gamecenter.personalhome.border.AvatarBorderActivity
import com.gh.gamecenter.security.BindPhoneActivity
import com.gh.gamecenter.user.LoginTag
import com.gh.gamecenter.user.UserRepository
import com.gh.gamecenter.setting.SettingBridge
import com.gh.vspace.VHelper
import com.halo.assistant.HaloApp
import com.lightgame.download.DataWatcher
import com.lightgame.download.DownloadEntity
import com.lightgame.download.DownloadStatus.*
import com.lightgame.utils.Utils
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import org.json.JSONObject
import java.io.BufferedOutputStream
import java.io.File
import java.io.FileOutputStream
import java.util.*
class DefaultJsApi(var context: Context) {
class DefaultJsApi(var context: Context, val entrance: String = "", private var mFragment: Fragment? = null) {
private var mLoginHandler: CompletionHandler<Any>? = null
private var mDownloadWatcher: DataWatcher? = null // 下载观察者
private var mDownloadUrlSet: HashSet<String>? = null // 下载的 url 集合
private var mDownloadHandler: CompletionHandler<Any>? = null // 下载信息回调
init {
if (mFragment != null) {
EventBus.getDefault().register(this)
autoUnregisterDownloadObserverIfNeeded(mFragment)
}
}
@JavascriptInterface
fun isGhzs(msg: Any): String {
@ -50,9 +87,20 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun logMtaEvent(event: Any) {
val mtaEvent = event.toString().toObject() ?: MtaEvent()
// do nothing, mta is deprecated
}
MtaHelper.onEvent(mtaEvent.name, mtaEvent.key, mtaEvent.value)
@JavascriptInterface
fun logSensorsEvent(event: Any) {
val sensorsEvent = event.toString().toObject() ?: SensorsEvent()
val trackEvent = JSONObject()
tryCatchInRelease {
sensorsEvent.kv.split(",").forEach {
val kv = it.split(":")
trackEvent.put(kv[0], kv[1])
}
}
SensorsBridge.trackEvent(sensorsEvent.name, trackEvent)
}
@JavascriptInterface
@ -117,7 +165,7 @@ class DefaultJsApi(var context: Context) {
WechatBindHelper.bindWechat(wechatLoginInfoMap, object : BiCallback<Boolean, Boolean> {
override fun onFirst(first: Boolean) {
EnergyTaskHelper.postEnergyTask("bind_wechat")
EnergyBridge.postEnergyTask("bind_wechat")
handler.complete(true)
}
@ -153,7 +201,18 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun startApp(msg: Any) {
val packageName = msg.toString()
PackageUtils.launchApplicationByPackageName(HaloApp.getInstance().application, packageName)
val context = HaloApp.getInstance().application
runOnUiThread {
// 若畅玩列表中安装了,优先启动畅玩游戏
if (VHelper.isInstalled(packageName)) {
if (!VHelper.showDialogIfVSpaceIsNeeded(context, "", "")) {
VHelper.launch(context, packageName)
}
} else {
PackageUtils.launchApplicationByPackageName(context, packageName)
}
}
}
@JavascriptInterface
@ -183,7 +242,7 @@ class DefaultJsApi(var context: Context) {
fun openBase64Image(event: Any) {
val context = CurrentActivityHolder.getCurrentActivity()
Base64ImageHolder.image = event.toString()
ImageViewerActivity.base64Image = event.toString()
context?.startActivity(ImageViewerActivity.getBase64Intent(context, true))
}
@ -209,7 +268,7 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun updateRegulationTestStatus(msg: Any) {
if (msg.toString().toLowerCase(Locale.getDefault()) == "pass") {
EnergyTaskHelper.postEnergyTask("finish_etiquette_exam")
EnergyBridge.postEnergyTask("finish_etiquette_exam")
SPUtils.setString(Constants.SP_REGULATION_TEST_PASS_STATUS, "pass")
}
}
@ -234,7 +293,7 @@ class DefaultJsApi(var context: Context) {
fun shareBase64Image(event: Any) {
val imageShareEvent = event.toString().toObject() ?: ImageShareEvent()
val context = CurrentActivityHolder.getCurrentActivity()
Base64ImageHolder.image = imageShareEvent.image.run {
ImageViewerActivity.base64Image = imageShareEvent.image.run {
if (this.startsWith("data:image/png;base64")) this.split(",")[1] else this
}
MessageShareUtils.getInstance(context).shareFromWeb(context, imageShareEvent.type)
@ -245,7 +304,7 @@ class DefaultJsApi(var context: Context) {
val inviteEvent = event.toString().toObject() ?: InviteFriendsEvent()
val context = CurrentActivityHolder.getCurrentActivity()
if ("poster" == inviteEvent.type) {
Base64ImageHolder.image = inviteEvent.poster.run {
ImageViewerActivity.base64Image = inviteEvent.poster.run {
if (this.startsWith("data:image/png;base64")) this.split(",")[1] else this
}
MessageShareUtils.getInstance(context).shareInviteFriends(context, inviteEvent.way)
@ -256,7 +315,7 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun bindPhone(msg: Any) {
val intent = BindPhoneActivity.getNormalIntent(context, false)
val intent = SettingBridge.getBindPhoneNormalIntent(context, false)
context.startActivity(intent)
}
@ -280,27 +339,29 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun openInNewWebview(url: Any) {
runOnUiThread { DirectUtils.directToWebView(context, url.toString(), "内部网页") }
runOnUiThread { DirectUtils.directToWebView(context, url.toString(), entrance.ifBlank { "内部网页" }) }
}
@JavascriptInterface
fun postWearBadgeTask(msg: Any) {
EnergyTaskHelper.postEnergyTask("wear_badge")
EnergyBridge.postEnergyTask("wear_badge")
}
@JavascriptInterface
fun startEnergyCenter(msg: Any) {
context.startActivity(EnergyCenterActivity.getIntent(context))
context.startActivity(EnergyBridge.getEnergyCenterIntent(context))
}
@JavascriptInterface
fun startEnergyHouse(msg: Any) {
context.startActivity(EnergyHouseActivity.getIntent(context))
context.startActivity(EnergyBridge.getEnergyHouseIntent(context, null))
}
@JavascriptInterface
fun showQaFeedbackDialog(msg: Any) {
QaFeedbackDialogFragment.show(context as AppCompatActivity, msg.toString())
val mHelpAndFeedbackHelp =
ARouter.getInstance().build(RouteConsts.provider.helpAndFeedback).navigation() as? IHelpAndFeedbackProvider
mHelpAndFeedbackHelp?.showQaFeedbackDialogFragment(context as AppCompatActivity, msg.toString())
}
@JavascriptInterface
@ -347,11 +408,6 @@ class DefaultJsApi(var context: Context) {
FloatingBackViewManager.enableBackView(FloatingBackViewManager.TYPE_ACTIVITY, msg.toString())
}
@JavascriptInterface
fun startBBSStayTimeCount(msg: Any) {
BbsStayTimeHelper.enableStayTimeCount(msg.toString().toInt())
}
@JavascriptInterface
fun saveBase64ImageToGallery(msg: Any) {
val base64StringData = msg.toString()
@ -360,7 +416,8 @@ class DefaultJsApi(var context: Context) {
runOnIoThread {
val base64String = base64StringData.replace("data:image/png;base64", "")
tryWithDefaultCatch {
val imageFile = File(HaloApp.getInstance().cacheDir.absolutePath + File.separator + System.currentTimeMillis() + ".png")
val imageFile =
File(HaloApp.getInstance().cacheDir.absolutePath + File.separator + System.currentTimeMillis() + ".png")
val decodedString = Base64.decode(base64String, Base64.DEFAULT)
val bos = BufferedOutputStream(FileOutputStream(imageFile))
bos.write(decodedString)
@ -387,31 +444,220 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun openInNewFullWebview(url: Any) {
runOnUiThread { DirectUtils.directToFullScreenWebPage(context, url.toString(), true) }
}
@JavascriptInterface
fun startGameCollectionSquareBrowseTask(event: Any) {
val browseTimeEvent = event.toString().toObject() ?: BrowseTaskEvent()
GameCollectionSquareBrowseTaskHelper.enableBrowseTimeCount(
browseTimeEvent.timeout.toInt(),
browseTimeEvent.isFinished == "true"
)
runOnUiThread { DirectUtils.directToFullScreenWebPage(context, url.toString(), true, entrance) }
}
@JavascriptInterface
fun checkUpdateGhzs(msg: Any) {
context.startActivity(AboutActivity.getIntent(context, true));
context.startActivity(SettingBridge.getAboutIntent(context, true))
}
@JavascriptInterface
public fun clickGameActivityDownloadBtn(event: Any) {
val gameActivityEvent = event.toString().toObject() ?: GameActivityEvent()
GameActivityDownloadHelper.start(context, gameActivityEvent)
}
@JavascriptInterface
fun isGameActivityTaskCompleted(event: Any, handler: CompletionHandler<Any>) {
val gameActivityEvent = event.toString().toObject() ?: GameActivityEvent()
GameActivityDownloadHelper.checkTaskComplete(context, gameActivityEvent, handler)
}
@JavascriptInterface
fun postGameActivityExposureEvent(event: Any) {
val gameActivityEvent = event.toString().toObject() ?: GameActivityEvent()
GameActivityDownloadHelper.postExposureEvent(gameActivityEvent)
}
@JavascriptInterface
fun getEntrance(msg: Any): String {
return when {
entrance.contains("论坛-活动") -> "社区-活动tab-活动banner"
entrance.contains("启动弹窗") -> "首页_弹窗"
entrance.contains("新首页-轮播图") -> "首页banner"
entrance.contains("论坛banner") -> "社区banner"
entrance.contains("启动广告") -> "app_开屏文案"
// entrance.contains("资讯广场-轮播图") -> "资讯_活动banner"
entrance.contains("通用链接合集") -> "资讯_活动banner"
entrance.contains("视频流广告位") -> "视频流_广告位"
entrance.contains("我的光环banner") -> "我的光环_banner"
entrance.contains("论坛详情页置顶栏") -> "社区_论坛置顶"
else -> entrance
}
}
@JavascriptInterface
fun getInstallStatus(event: Any): String {
val localInstalledPackageList = PackageUtils.getAllPackageName(HaloApp.getInstance().application)
val packageNameList: ArrayList<String> = event.toString().toObject() ?: ArrayList()
val installStatusMap: HashMap<String, Boolean> = hashMapOf()
for (packageName in packageNameList) {
installStatusMap[packageName] =
localInstalledPackageList.contains(packageName) || VHelper.isInstalled(packageName)
}
return installStatusMap.toJson()
}
@JavascriptInterface
fun installDownloadedGame(event: Any) {
val url = event.toString()
val vUrl = VHelper.getVUrl(url)
val downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshot(url, null, false)
?: DownloadManager.getInstance().getDownloadEntitySnapshot(vUrl, null, false)
downloadEntity?.let {
PackageInstaller.install(context, it, showUnzipToast = false)
}
}
@JavascriptInterface
fun registerDownloadCallback(msg: Any, handler: CompletionHandler<Any>) {
val downloadUrlSet: HashSet<String> = msg.toString().toObject() ?: return
mDownloadHandler = handler
mDownloadUrlSet = downloadUrlSet
if (mDownloadWatcher == null) {
mDownloadWatcher = object : DataWatcher() {
override fun onDataInit(downloadEntity: DownloadEntity) {
onDataChanged(downloadEntity)
}
override fun onDataChanged(downloadEntity: DownloadEntity?) {
val url = VHelper.getOriginalUrl(downloadEntity?.url)
if (downloadEntity != null && mDownloadUrlSet?.contains(url) == true) {
mDownloadHandler?.setProgressData(
SimpleDownloadEntity.fromDownloadEntity(downloadEntity).toJson()
)
}
}
}
DownloadManager.getInstance().addObserver(mDownloadWatcher)
}
}
@JavascriptInterface
fun registerPackageChangesCallback(msg: Any, handler: CompletionHandler<Any>) {
PackageObserver.registerPackageChangeChangeListener(object : PackageObserver.PackageChangeListener {
override fun onChanged(data: EBPackage) {
handler.setProgressData(data.toJson())
}
})
}
@JavascriptInterface
fun startDownload(msg: Any) {
val gameEntity: GameEntity? = msg.toString().toObject()
if (gameEntity == null) {
ToastUtils.toast("下载异常,请稍后重试")
return
}
runOnUiThread {
// 用一个假的 view 来当 downloadView
val stubView = View(context)
DownloadItemUtils.setOnClickListener(
position = 0,
context = context,
downloadBtn = stubView,
gameEntity = gameEntity,
adapter = null,
entrance = "(网页活动)",
location = "",
traceEvent = null,
clickCallback = null,
refreshCallback = null,
allStateClickCallback = null
)
stubView.performClick()
}
}
@JavascriptInterface
fun resumeDownload(msg: Any) {
val url = msg.toString()
DownloadManager.getInstance().resumeDownload(url)
}
@JavascriptInterface
fun pauseDownload(msg: Any) {
val url = msg.toString()
DownloadManager.getInstance().pause(url)
}
@JavascriptInterface
fun shareText(event: Any) {
val textShareEvent = event.toString().toObject() ?: TextShareEvent()
if (textShareEvent.text.isNotEmpty() && textShareEvent.type.isNotEmpty()) {
val activity = CurrentActivityHolder.getCurrentActivity()
MessageShareUtils.getInstance(activity).shareTextFromWeb(activity, textShareEvent.text, textShareEvent.type)
}
}
private fun autoUnregisterDownloadObserverIfNeeded(fragment: Fragment?) {
fragment?.parentFragmentManager?.registerFragmentLifecycleCallbacks(
object : FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentViewDestroyed(fm: FragmentManager, f: Fragment) {
super.onFragmentViewDestroyed(fm, f)
if (f === fragment) {
fragment.parentFragmentManager.unregisterFragmentLifecycleCallbacks(this)
if (mDownloadWatcher != null) {
DownloadManager.getInstance().removeObserver(mDownloadWatcher)
}
EventBus.getDefault().unregister(this@DefaultJsApi)
}
}
override fun onFragmentResumed(fm: FragmentManager, f: Fragment) {
super.onFragmentResumed(fm, f)
if (f === fragment && mDownloadWatcher != null) {
DownloadManager.getInstance().addObserver(mDownloadWatcher)
}
}
override fun onFragmentPaused(fm: FragmentManager, f: Fragment) {
super.onFragmentPaused(fm, f)
if (f === fragment && mDownloadWatcher != null) {
DownloadManager.getInstance().removeObserver(mDownloadWatcher)
}
}
}, false
)
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEventMainThread(status: EBDownloadStatus) {
// 将下载任务删除事件回调给网页
if (mDownloadHandler != null && "delete" == status.status) {
mDownloadHandler?.setProgressData(SimpleDownloadEntity(status.url, 0F, "UNKNOWN").toJson())
}
}
@Keep
internal data class ImageEvent(var imageList: ArrayList<String> = arrayListOf(), var position: Int = 0)
internal class ImageEvent(var imageList: ArrayList<String> = arrayListOf(), var position: Int = 0)
@Keep
internal data class ImageShareEvent(var image: String = "", var type: String = "")
internal class ImageShareEvent(var image: String = "", var type: String = "")
@Keep
internal data class InviteFriendsEvent(
internal class TextShareEvent(var text: String = "", var type: String = "")
@Keep
internal class InviteFriendsEvent(
var type: String = "",
var way: String = "",
var url: String = "",
@ -419,8 +665,48 @@ class DefaultJsApi(var context: Context) {
)
@Keep
internal data class LogEvent(var jsonString: String = "", var logStore: String = "")
internal class LogEvent(var jsonString: String = "", var logStore: String = "")
@Keep
internal data class BrowseTaskEvent(var timeout: String = "", var isFinished: String = "")
class GameActivityEvent(
var gameId: String = "",
var activityTitle: String = "",
var activityId: String = "",
var platform: String = ""
)
@Keep
class SimpleDownloadEntity(
var url: String = "",
var progress: Float = 0F,
var status: String = "" // DOWNLOADING, PAUSED, DOWNLOADED, ERROR, UNKNOWN
) {
companion object {
fun fromDownloadEntity(downloadEntity: DownloadEntity): SimpleDownloadEntity {
val status: String = when (downloadEntity.status) {
add,
download,
downloading -> "DOWNLOADING"
done -> "DOWNLOADED"
pause,
resume,
subscribe,
waiting -> "PAUSED"
cancel,
delete -> "UNKNOWN"
else -> "ERROR"
}
return SimpleDownloadEntity(
url = VHelper.getOriginalUrl(downloadEntity.url),
progress = downloadEntity.percent.toFloat(),
status = status
)
}
}
}
}

View File

@ -5,7 +5,8 @@ import android.content.Intent
import android.net.Uri
import android.text.TextUtils
import android.util.Base64
import com.gh.common.constant.Constants
import com.gh.gamecenter.core.utils.CurrentActivityHolder
import com.gh.gamecenter.common.constant.Constants
import com.gh.common.util.*
import com.gh.common.util.DirectUtils.directToFeedback
import com.gh.common.util.DirectUtils.directToGameDetailVideoStreaming
@ -14,24 +15,43 @@ import com.gh.common.util.DirectUtils.directToGameVideo
import com.gh.common.util.DirectUtils.directToLegacyVideoDetail
import com.gh.common.util.DirectUtils.directToLinkPage
import com.gh.common.util.DirectUtils.directToQa
import com.gh.common.util.GsonUtils.gson
import com.gh.gamecenter.LibaoDetailActivity
import com.gh.gamecenter.MainActivity
import com.gh.gamecenter.NewsDetailActivity
import com.gh.gamecenter.WebActivity
import com.gh.gamecenter.*
import com.gh.gamecenter.core.utils.GsonUtils.gson
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.entity.CommunityEntity
import com.gh.gamecenter.common.entity.LinkEntity
import com.gh.gamecenter.common.eventbus.EBReuse
import com.gh.gamecenter.common.entity.SimpleGameEntity
import com.gh.gamecenter.core.AppExecutor
import com.gh.gamecenter.common.utils.DialogHelper
import com.gh.gamecenter.common.utils.EnvHelper
import com.gh.gamecenter.core.utils.ToastUtils
import com.gh.gamecenter.entity.*
import com.gh.gamecenter.eventbus.EBSkip
import com.gh.gamecenter.fragment.MainWrapperFragment
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.utils.PlatformUtils
import com.gh.gamecenter.gamecollection.publish.GameCollectionEditActivity
import com.gh.gamecenter.qa.BbsType
import com.gh.gamecenter.qa.video.publish.VideoPublishActivity
import com.gh.gamecenter.subject.SubjectActivity
import com.gh.gamecenter.video.detail.VideoDetailContainerViewModel
import com.lightgame.utils.Utils
import org.greenrobot.eventbus.EventBus
import java.nio.charset.Charset
object DefaultUrlHandler {
@JvmStatic
fun interceptUrl(context: Context, url: String, entrance: String): Boolean {
return interceptUrl(context, url, entrance, false)
}
/**
* @param bringAppToFront 是否需要在不匹配 host 的时候把 APP 调回到前台 (如微信调起)
*/
@JvmStatic
fun interceptUrl(context: Context, url: String, entrance: String, bringAppToFront: Boolean = false): Boolean {
val uri = Uri.parse(url)
if ("ghzhushou" == uri.scheme) {
Utils.log("url = $url")
@ -42,13 +62,29 @@ object DefaultUrlHandler {
if (!TextUtils.isEmpty(path)) {
id = path!!.substring(1)
}
if (TextUtils.isEmpty(id)) {
id = uri.getQueryParameter("id") ?: ""
}
val intent: Intent
when (host) {
"article" -> context.startActivity(NewsDetailActivity.getIntentById(context, id, entrance))
"game" -> DirectUtils.directToGameDetail(context, id = id, tab = uri.getQueryParameter("to"), autoDownload = uri.getQueryParameter("auto_download") == "true", entrance = entrance)
"game" -> DirectUtils.directToGameDetail(
context,
id = id,
tab = uri.getQueryParameter("to"),
autoDownload = uri.getQueryParameter("auto_download") == "true",
entrance = entrance
)
"column" -> SubjectActivity.startSubjectActivity(context, id, uri.getQueryParameter("name"), false, entrance)
"column" -> SubjectActivity.startSubjectActivity(
context,
id,
uri.getQueryParameter("name"),
false,
entrance
)
"libao" -> context.startActivity(LibaoDetailActivity.getIntentById(context, id, entrance))
@ -59,7 +95,7 @@ object DefaultUrlHandler {
e.printStackTrace()
}
EntranceUtils.HOST_QQ_QUN -> {
EntranceConsts.HOST_QQ_QUN -> {
val key = uri.getQueryParameter("key")
if (!DirectUtils.directToQqGroup(context, key)) {
Utils.toast(context, "请检查是否已经安装手机QQ")
@ -67,7 +103,7 @@ object DefaultUrlHandler {
}
"inurl" -> {
DirectUtils.directToWebView(context, uri.getQueryParameter("url") ?: "")
DirectUtils.directToWebView(context, uri.getQueryParameter("url") ?: "", entrance)
}
"outurl" -> {
@ -84,6 +120,8 @@ object DefaultUrlHandler {
}
"question" -> DirectUtils.directToQuestionDetail(context, id, entrance, "文章链接")
"real_name" -> DirectUtils.directToRealName(context)
"community" -> {
val community = CommunityEntity()
community.id = id
@ -122,11 +160,12 @@ object DefaultUrlHandler {
}
if ("articles" == type) {
DirectUtils.directToCommunityArticle(
context, typeId, communityId,
entrance, "文章链接")
context, typeId, communityId,
entrance, "文章链接"
)
}
}
EntranceUtils.HOST_UPLOAD_VIDEO -> {
EntranceConsts.HOST_UPLOAD_VIDEO -> {
val titleParameter = uri.getQueryParameter("title")
val title = if (titleParameter.isNullOrEmpty()) "" else "#$titleParameter#"
val categoryId = uri.getQueryParameter("category_id") ?: ""
@ -137,16 +176,31 @@ object DefaultUrlHandler {
val tagActivityName = uri.getQueryParameter("tagActivityName") ?: ""
val linkEntity = VideoLinkEntity(title, categoryId, link, tagActivityId, tagActivityName)
val simpleGameEntity = SimpleGameEntity(gameId, gameName)
CheckLoginUtils.checkLogin(context, null, true, EntranceUtils.ENTRANCE_BROWSER) {
DirectUtils.directToVideoManager(context, linkEntity, simpleGameEntity, EntranceUtils.ENTRANCE_BROWSER, "")
CheckLoginUtils.checkLogin(context, null, true, EntranceConsts.ENTRANCE_BROWSER) {
DirectUtils.directToVideoManager(
context,
linkEntity,
simpleGameEntity,
EntranceConsts.ENTRANCE_BROWSER,
""
)
}
}
EntranceUtils.HOST_USERHOME -> {
EntranceConsts.HOST_USERHOME -> {
val position = uri.getQueryParameter("position")
val subtype = uri.getQueryParameter("sub_type") ?: ""
DirectUtils.directToHomeActivity(context, id, subtype, if (position.isNullOrEmpty()) -1 else position.toInt(), entrance, "")
val subGameType = uri.getQueryParameter("sub_game_type") ?: "game_collection"
DirectUtils.directToHomeActivity(
context,
id,
subtype,
subGameType,
if (position.isNullOrEmpty()) -1 else position.toInt(),
entrance,
""
)
}
EntranceUtils.HOST_VIDEO_MORE -> {
EntranceConsts.HOST_VIDEO_MORE -> {
val referer = uri.getQueryParameter("referer") ?: ""
val type = uri.getQueryParameter("type") ?: ""
val act = uri.getQueryParameter("act") ?: ""
@ -154,7 +208,7 @@ object DefaultUrlHandler {
val fieldId = uri.getQueryParameter("fieldId") ?: ""
val sectionName = uri.getQueryParameter("sectionName") ?: ""
val paginationType = uri.getQueryParameter("paginationType")
?: "page"//活动分页方式 page filter
?: "page"//活动分页方式 page filter
val location = if (!TextUtils.isEmpty(act)) {
VideoDetailContainerViewModel.Location.VIDEO_ACTIVITY.value
} else if (!TextUtils.isEmpty(fieldId)) {
@ -162,91 +216,92 @@ object DefaultUrlHandler {
} else {
id
}
directToLegacyVideoDetail(context, id, location, false, gameId, entrance, "", referer, type, act, paginationType, fieldId, sectionName)
directToLegacyVideoDetail(
context,
id,
location,
false,
gameId,
entrance,
"",
referer,
type,
act,
paginationType,
fieldId,
sectionName
)
}
EntranceUtils.HOST_VIDEO_DETAIL -> {
EntranceConsts.HOST_VIDEO_DETAIL -> {
DirectUtils.directToVideoDetail(context, id, entrance, path)
}
EntranceUtils.HOST_VIDEO_SINGLE -> {
EntranceConsts.HOST_VIDEO_SINGLE -> {
val referer = uri.getQueryParameter("referer") ?: ""
DirectUtils.directToVideoDetail(context, id, VideoDetailContainerViewModel.Location.SINGLE_VIDEO.value,
false, "", entrance, "", if (TextUtils.isEmpty(referer)) "" else referer)
DirectUtils.directToVideoDetail(
context, id, VideoDetailContainerViewModel.Location.SINGLE_VIDEO.value,
false, "", entrance, "", if (TextUtils.isEmpty(referer)) "" else referer
)
}
EntranceUtils.HOST_VIDEO_STREAMING_HOME -> {
EntranceConsts.HOST_VIDEO_STREAMING_HOME -> {
intent = Intent(context, MainActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
intent.putExtra(MainActivity.SWITCH_TO_VIDEO, true)
context.startActivity(intent)
}
EntranceUtils.HOST_VIDEO_STREAMING_DESC -> {
EntranceConsts.HOST_VIDEO_STREAMING_DESC -> {
directToGameDetailVideoStreaming(context, id, entrance)
}
EntranceUtils.HOST_VIDEO_COLLECTION -> {
EntranceConsts.HOST_VIDEO_COLLECTION -> {
directToGameVideo(context, id, entrance, "")
}
EntranceUtils.HOST_CATEGORY -> {
EntranceConsts.HOST_CATEGORY -> {
val title = uri.getQueryParameter("title")
DirectUtils.directCategoryDirectory(context, id, title ?: "", entrance, "")
}
EntranceUtils.HOST_COLUMN_COLLECTION -> {
EntranceConsts.HOST_COLUMN_COLLECTION -> {
val name = uri.getQueryParameter("name")
DirectUtils.directToColumnCollection(context, id, -1, entrance, name ?: "")
}
EntranceUtils.HOST_COLUMN -> {
DirectUtils.directToSubject(context, id, uri.getQueryParameter(EntranceUtils.KEY_NAME), entrance)
EntranceConsts.HOST_COLUMN -> {
DirectUtils.directToSubject(context, id, uri.getQueryParameter(EntranceConsts.KEY_NAME), entrance)
}
EntranceUtils.HOST_COMMUNITY_QUESTION_LABEL_DETAIL -> {
val community = CommunityEntity()
community.id = uri.getQueryParameter("community_id") ?: ""
community.name = uri.getQueryParameter("community_name") ?: ""
val tag = uri.getQueryParameter("tag") ?: ""
DirectUtils.directAskColumnLabelDetail(context, tag, community, entrance, "")
}
EntranceUtils.HOST_COMMUNITY_COLUMN_DETAIL -> {
val community = CommunityEntity()
community.id = uri.getQueryParameter("community_id") ?: ""
community.name = uri.getQueryParameter("community_name") ?: ""
val columnId = uri.getQueryParameter("column_id") ?: ""
DirectUtils.directAskColumnDetail(context, columnId, community, entrance, "")
}
EntranceUtils.HOST_BLOCK -> {
EntranceConsts.HOST_BLOCK -> {
val name = uri.getQueryParameter("name")
?: ""
?: ""
val entity = SubjectRecommendEntity(link = id, name = name, text = name)
DirectUtils.directToBlock(context, entity, entrance)
}
EntranceUtils.HOST_SERVER_BLOCK -> {
EntranceConsts.HOST_SERVER_BLOCK -> {
DirectUtils.directToGameServers(context, entrance = entrance, path = "")
}
EntranceUtils.HOST_AMWAY_BLOCK -> {
EntranceConsts.HOST_AMWAY_BLOCK -> {
DirectUtils.directToAmway(context, entrance = entrance, path = "")
}
EntranceUtils.HOST_HELP -> {
EntranceConsts.HOST_HELP -> {
val name = uri.getQueryParameter("name")
?: ""
?: ""
DirectUtils.directToQa(context, name, id)
}
EntranceUtils.HOST_HELP_COLLECTION -> {
EntranceConsts.HOST_HELP_COLLECTION -> {
val name = uri.getQueryParameter("name")
?: ""
?: ""
DirectUtils.directToQaCollection(context, name, id)
}
EntranceUtils.HOST_GAME_UPLOAD -> {
EntranceConsts.HOST_GAME_UPLOAD -> {
DirectUtils.directGameUpload(context, entrance = entrance, path = "")
}
EntranceUtils.HOST_GAME_ZONE -> {
EntranceConsts.HOST_GAME_ZONE -> {
val zoneUrl = uri.getQueryParameter("url") ?: ""
DirectUtils.directGameZone(context, id, zoneUrl, entrance)
}
EntranceUtils.HOST_LINK -> {
EntranceConsts.HOST_LINK -> {
try {
val dataString = uri.getQueryParameter("data")
if (!TextUtils.isEmpty(dataString)) {
@ -260,91 +315,125 @@ object DefaultUrlHandler {
}
}
EntranceUtils.HOST_GAME_NEWS -> {
EntranceConsts.HOST_GAME_NEWS -> {
DirectUtils.directToGameNews(
context,
uri.getQueryParameter(EntranceUtils.KEY_GAME_ID),
uri.getQueryParameter(EntranceUtils.KEY_GAME_NAME),
entrance);
context,
uri.getQueryParameter(EntranceConsts.KEY_GAME_ID),
uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME),
entrance
);
}
EntranceUtils.HOST_GAME_CALENDAR -> {
directToGameServerCalendar(context, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID))
EntranceConsts.HOST_GAME_CALENDAR -> {
directToGameServerCalendar(context, uri.getQueryParameter(EntranceConsts.KEY_GAME_ID))
}
EntranceUtils.HOST_HISTORY_APK -> {
DirectUtils.directToHistoryApk(context, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID))
EntranceConsts.HOST_HISTORY_APK -> {
DirectUtils.directToHistoryApk(context, uri.getQueryParameter(EntranceConsts.KEY_GAME_ID))
}
EntranceUtils.HOST_FORUM_DETAIL -> {
EntranceConsts.HOST_FORUM_DETAIL -> {
DirectUtils.directForumDetail(context, id, entrance)
}
EntranceUtils.HOST_GAME_RATING_DETAIL -> {
EntranceConsts.HOST_GAME_RATING_DETAIL -> {
DirectUtils.directToGameRatingDetail(
context,
uri.getQueryParameter(EntranceUtils.KEY_GAME_ID),
uri.getQueryParameter(EntranceUtils.KEY_COMMENT_ID),
EntranceUtils.ENTRANCE_BROWSER)
context,
uri.getQueryParameter(EntranceConsts.KEY_GAME_ID),
uri.getQueryParameter(EntranceConsts.KEY_COMMENT_ID),
EntranceConsts.ENTRANCE_BROWSER
)
}
EntranceUtils.HOST_FORUM -> {
val position = uri.getQueryParameter(EntranceUtils.KEY_POSITION)?.toInt()
EntranceConsts.HOST_FORUM -> {
val position = uri.getQueryParameter(EntranceConsts.KEY_POSITION)?.toInt()
DirectUtils.directToForum(context, position ?: 0)
}
EntranceUtils.HOST_UPLOAD_VIDEO_NEW -> {
EntranceConsts.HOST_UPLOAD_VIDEO_NEW -> {
val activityName = uri.getQueryParameter("activity_name") ?: ""
val activityId = uri.getQueryParameter("activity_id") ?: ""
val original = uri.getQueryParameter("original") ?: ""
val forumName = uri.getQueryParameter("forum_name") ?: ""
val forumId = uri.getQueryParameter("forum_id") ?: ""
val forumIcon = uri.getQueryParameter("forum_icon") ?: ""
val forumType = uri.getQueryParameter("forum_type") ?: BbsType.OFFICIAL_BBS.value
val gameId = uri.getQueryParameter("game_id") ?: ""
val gameName = uri.getQueryParameter("game_name") ?: ""
val icon = uri.getQueryParameter("game_icon") ?: ""
val iconSubscript = uri.getQueryParameter("game_icon_subscript") ?: ""
val gameEntity =
if (forumType == BbsType.OFFICIAL_BBS.value && gameId.isNotEmpty() && gameName.isNotEmpty() && icon.isNotEmpty()) {
GameEntity(id = gameId, mName = gameName, mIcon = icon, mIconSubscript = iconSubscript)
} else null
val activityLabelEntity = if (activityId.isNotEmpty() && activityName.isNotEmpty()) {
ActivityLabelEntity(
id = activityId,
name = activityName,
original = original.ifEmpty { "false" }.toBoolean()
)
} else null
val communityEntity =
if (forumId.isNotEmpty() && forumName.isNotEmpty() && forumIcon.isNotEmpty()) {
CommunityEntity(id = forumId, name = forumName, icon = forumIcon)
} else null
val activityLabelEntity = ActivityLabelEntity(id = activityId, name = activityName)
val communityEntity = CommunityEntity(id = forumId, name = forumName, icon = forumIcon)
context.startActivity(VideoPublishActivity.getIntent(
context.startActivity(
VideoPublishActivity.getIntent(
context,
communityEntity,
gameEntity,
activityLabelEntity,
forumType,
false,
disableForumSelection = false,
isFromCommunityActivity = true,
entrance,
""
))
)
)
}
EntranceUtils.HOST_SUGGESTION -> {
val platform = uri.getQueryParameter(EntranceUtils.KEY_PLATFORM)
EntranceConsts.HOST_SUGGESTION -> {
val platform = uri.getQueryParameter(EntranceConsts.KEY_PLATFORM)
val platformName = PlatformUtils.getInstance(context).getPlatformName(platform)
val gameId = uri.getQueryParameter(EntranceUtils.KEY_GAMEID)
val packageMd5 = uri.getQueryParameter(EntranceUtils.KEY_PACKAGE_MD5)
val isQaFeedback = uri.getQueryParameter(EntranceUtils.KEY_IS_QA_FEEDBACK) == "true"
val content = if (TextUtils.isEmpty(gameId) || TextUtils.isEmpty(packageMd5)) String.format("%s-%s-V%s",
uri.getQueryParameter(EntranceUtils.KEY_GAME_NAME),
if (TextUtils.isEmpty(platformName)) platform else platformName,
uri.getQueryParameter(EntranceUtils.KEY_VERSION)) else String.format("%s-%s-V%s\n游戏ID%s\n游戏包MD5%s\n",
uri.getQueryParameter(EntranceUtils.KEY_GAME_NAME),
if (TextUtils.isEmpty(platformName)) platform else platformName,
uri.getQueryParameter(EntranceUtils.KEY_VERSION), gameId, packageMd5)
val gameId = uri.getQueryParameter(EntranceConsts.KEY_GAMEID)
val packageMd5 = uri.getQueryParameter(EntranceConsts.KEY_PACKAGE_MD5)
val isQaFeedback = uri.getQueryParameter(EntranceConsts.KEY_IS_QA_FEEDBACK) == "true"
val content = if (TextUtils.isEmpty(gameId) || TextUtils.isEmpty(packageMd5)) String.format(
"%s-%s-V%s",
uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME),
if (TextUtils.isEmpty(platformName)) platform else platformName,
uri.getQueryParameter(EntranceConsts.KEY_VERSION)
) else String.format(
"%s-%s-V%s\n游戏ID%s\n游戏包MD5%s\n",
uri.getQueryParameter(EntranceConsts.KEY_GAME_NAME),
if (TextUtils.isEmpty(platformName)) platform else platformName,
uri.getQueryParameter(EntranceConsts.KEY_VERSION), gameId, packageMd5
)
val qaId = uri.getQueryParameter("qa_id") ?: ""
val qaContentId = uri.getQueryParameter(EntranceUtils.KEY_QA_CONTENT_ID) ?: ""
val qaTitle = uri.getQueryParameter(EntranceUtils.KEY_QA_TITLE)
val qaContentId = uri.getQueryParameter(EntranceConsts.KEY_QA_CONTENT_ID) ?: ""
val qaTitle = uri.getQueryParameter(EntranceConsts.KEY_QA_TITLE)
if (!TextUtils.isEmpty(qaId)) {
directToQa(context, qaTitle, qaId)
} else {
directToFeedback(context, content, null, isQaFeedback, qaContentId, EntranceUtils.ENTRANCE_BROWSER)
directToFeedback(
context,
content,
null,
isQaFeedback,
qaContentId,
EntranceConsts.ENTRANCE_BROWSER
)
}
}
EntranceUtils.HOST_HELP_AND_FEEDBACK -> {
EntranceConsts.HOST_HELP_AND_FEEDBACK -> {
val position = uri.getQueryParameter("position") ?: ""
DirectUtils.directToHelpAndFeedback(context, position.toInt())
}
EntranceUtils.HOST_HELP_DETAIL -> {
EntranceConsts.HOST_HELP_DETAIL -> {
var url = uri.getQueryParameter("url")
if (!url.isNullOrEmpty()) {
context.startActivity(WebActivity.getIntent(context, url, false))
@ -357,23 +446,67 @@ object DefaultUrlHandler {
val id = uri.getQueryParameter("id")
val name = uri.getQueryParameter("name")
val qaCollectionId = uri.getQueryParameter("collection_id")
context.startActivity(WebActivity.getIntent(context, "$url$id", name, true, !qaCollectionId.isNullOrEmpty()))
context.startActivity(
WebActivity.getIntent(
context,
"$url$id",
name,
true,
!qaCollectionId.isNullOrEmpty()
)
)
}
}
EntranceUtils.HOST_GAME_COLLECTION_DETAIL -> {
EntranceConsts.HOST_GAME_COLLECTION_DETAIL -> {
DirectUtils.directToGameCollectionDetail(context, id, entrance)
}
EntranceUtils.HOST_GAME_COLLECTION_SQUARE -> {
EntranceConsts.HOST_GAME_COLLECTION_SQUARE -> {
DirectUtils.directToGameCollectionSquare(context, entrance)
}
EntranceUtils.HOST_GAME_COLLECTION_EDIT -> {
context.startActivity(GameCollectionEditActivity.getIntent(context, entrance))
EntranceConsts.HOST_GAME_COLLECTION_EDIT -> {
val activityId = uri.getQueryParameter("activity_id") ?: ""
val activityName = uri.getQueryParameter("activity_name") ?: ""
val gameId = uri.getQueryParameter("game_id") ?: ""
context.startActivity(
GameCollectionEditActivity.getIntent(
context,
activityId,
activityName,
gameId,
entrance
)
)
}
else -> DialogHelper.showUpgradeDialog(context)
EntranceConsts.HOST_GAME_LIBRARY -> {
DirectUtils.directToMainActivity(context)
EventBus.getDefault().post(EBSkip(MainActivity.EB_SKIP_MAIN, MainWrapperFragment.INDEX_GAME))
}
EntranceConsts.HOST_HOME_GAME_COLLECTION_SQUARE -> {
DirectUtils.directToMainActivity(context)
EventBus.getDefault()
.post(EBSkip(MainActivity.EB_SKIP_MAIN, MainWrapperFragment.INDEX_HOME))
EventBus.getDefault().post(EBReuse(host))
}
else -> {
if (bringAppToFront) {
DirectUtils.directToMainActivity(context)
if (!TextUtils.isEmpty(host)) {
AppExecutor.uiExecutor.executeWithDelay({
CurrentActivityHolder.getCurrentActivity()?.let {
DialogHelper.showUpgradeDialog(it)
}
}, 200)
}
} else {
DialogHelper.showUpgradeDialog(context)
}
}
}
return true
} else if ("zhiqu" == uri.scheme) {
@ -421,19 +554,32 @@ object DefaultUrlHandler {
@JvmStatic
fun transformNormalScheme(context: Context, url: String, entrance: String): Boolean {
val b = transformNewNormalScheme(context, url, entrance)
if (b) return b
return transformOldNormalScheme(context, url, entrance)
}
@JvmStatic
fun transformOldNormalScheme(context: Context, url: String, entrance: String): Boolean {
val uri = Uri.parse(url)
if (uri.host == "www.ghzs666.com"
|| uri.host == "www.ghzs.com"
|| uri.host == "ask.ghzs.com"
|| uri.host == "m.ghzs.com"
|| uri.host == "m.ghzs666.com") {
|| uri.host == "www.ghzs.com"
|| uri.host == "ask.ghzs.com"
|| uri.host == "m.ghzs.com"
|| uri.host == "m.ghzs666.com"
) {
Utils.log(uri.path)
uri.path?.apply {
when {
contains("game") -> {
val gameId = uri.getQueryParameter("gameId") ?: uri.pathSegments.last()
?: ""
DirectUtils.directToGameDetail(context, gameId, entrance, autoDownload = false, traceEvent = null)
val gameId = uri.getQueryParameter("gameId") ?: uri.pathSegments.last() ?: ""
DirectUtils.directToGameDetail(
context,
gameId,
entrance,
autoDownload = false,
traceEvent = null
)
}
contains("question") -> {
val questionId = split("/")[2]
@ -449,7 +595,10 @@ object DefaultUrlHandler {
var communityId = ""
var type = ""
var typeId = ""
val split = replace("/communities", "").replace("/bbs", "").replace(".html", "").split("/".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
val split =
replace("/communities", "").replace("/bbs", "").replace(".html", "").split("/".toRegex())
.dropLastWhile { it.isEmpty() }
.toTypedArray()
for (text in split) {
if (TextUtils.isEmpty(communityId)) {
communityId = text
@ -465,8 +614,9 @@ object DefaultUrlHandler {
}
if ("articles" == type || "article" == type) {
DirectUtils.directToCommunityArticle(
context, typeId, communityId,
entrance, "文章链接")
context, typeId, communityId,
entrance, "文章链接"
)
}
}
contains("article") -> {
@ -494,4 +644,73 @@ object DefaultUrlHandler {
}
return false
}
@JvmStatic
fun transformNewNormalScheme(context: Context, url: String, entrance: String): Boolean {
val uri = Uri.parse(url)
if (uri.host == "www.ghzs666.com"
|| uri.host == "www.ghzs.com"
|| uri.host == "ask.ghzs.com"
|| uri.host == "m.ghzs.com"
|| uri.host == "m.ghzs666.com"
|| uri.host == "dev-bbs-mobile.ghzs.com"
) {
Utils.log(uri.path)
uri.path?.apply {
val splits = split("/")
when {
//https://m.ghzs666.com/bbs/thread-帖子ID
splits.size >= 3 && splits[1] == "bbs" && splits[2].startsWith("thread-") -> {
val articleId = splits[2].substring(7)
DirectUtils.directToCommunityArticle(
context, articleId, "",
entrance, "文章链接"
)
}
//https://m.ghzs666.com/article/文章ID
splits.size >= 3 && splits[1] == "article" -> {
val articleId = splits[2]
DirectUtils.directToArticle(context, articleId, entrance)
}
//https://m.ghzs666.com/column/专题ID
splits.size >= 3 && splits[1] == "column" -> {
val columnId = splits[2]
DirectUtils.directToSubject(context, columnId, "", entrance)
}
//https://m.ghzs666.com/zone/游戏ID
splits.size >= 3 && splits[1] == "zone" -> {
DirectUtils.directToWebView(context, url, entrance)
}
//https://m.ghzs666.com/bbs/video-视频ID
splits.size >= 3 && splits[1] == "bbs" && splits[2].startsWith("video-") -> {
val videoId = splits[2].substring(6)
DirectUtils.directToVideoDetail(context, videoId, entrance)
}
else -> return false
}
}
return true
}
return false
}
/**
* 将 url 转换为 LinkEntity (实际只有 type 和 link 两个字段,仅供日志,不保证能用)
*/
fun urlToLinkEntity(url: String): LinkEntity? {
val uri = Uri.parse(url)
if ("ghzhushou" == uri.scheme) {
Utils.log("url = $url")
Utils.log("url = " + uri.scheme!!)
val host = uri.host
val path = uri.path
var id = ""
if (!TextUtils.isEmpty(path)) {
id = path!!.substring(1)
}
return LinkEntity(type = host, link = id)
}
return null
}
}

View File

@ -2,13 +2,15 @@ package com.gh.common
import com.gh.common.exposure.ExposureManager
import com.gh.common.filter.RegionSettingHelper
import com.gh.common.loghub.LoghubUtils
import com.gh.common.util.doOnMainProcessOnly
import com.gh.common.util.tryCatchInRelease
import com.gh.common.util.AdHelper
import com.gh.common.videolog.VideoRecordUtils
import com.gh.download.DownloadDataHelper
import com.gh.gamecenter.common.loghub.LoghubUtils
import com.gh.gamecenter.common.retrofit.Response
import com.gh.gamecenter.common.utils.doOnMainProcessOnly
import com.gh.gamecenter.common.utils.tryCatchInRelease
import com.gh.gamecenter.core.runOnUiThread
import com.gh.gamecenter.entity.TimeEntity
import com.gh.gamecenter.retrofit.Response
import com.gh.gamecenter.retrofit.RetrofitManager
import com.halo.assistant.HaloApp
import io.reactivex.schedulers.Schedulers
@ -16,14 +18,15 @@ import kotlin.concurrent.fixedRateTimer
object FixedRateJobHelper {
private const val CHECKER_PERIOD: Long = 15 * 1000L
private const val TIME_PERIOD: Long = 600 * 1000L
private const val LOGHUB_PERIOD: Long = 120 * 1000L
private const val EXPOSURE_PERIOD: Long = 300 * 1000L
private const val REGION_SETTING_PERIOD: Long = 300 * 1000L
private const val TIME_PERIOD: Long = 10 * 60 * 1000L
private const val LOGHUB_PERIOD: Long = 2 * 60 * 1000L
private const val EXPOSURE_PERIOD: Long = 5 * 60 * 1000L
private const val REGION_SETTING_PERIOD: Long = 30 * 1000L
private const val VIDEO_RECORD_PERIOD: Long = 60 * 1000L
private const val DOWNLOAD_HEARTBEAT_PERIOD: Long = 60 * 1000L
private const val DOWNLOAD_HEARTBEAT_SHEET_PERIOD: Long = 15 * 1000L
private const val STARTUP_AD: Long = 30 * 60 * 1000L
private var mExecuteCount: Int = 0
@ -32,26 +35,32 @@ object FixedRateJobHelper {
@JvmStatic
fun begin() {
doOnMainProcessOnly {
// 时间检查每15秒检查一次
fixedRateTimer("Global-Fixed-Rate-Timer", initialDelay = 100, period = CHECKER_PERIOD) {
val elapsedTime = mExecuteCount * CHECKER_PERIOD
// 时间校对10分钟一次
if ((mExecuteCount * CHECKER_PERIOD) % TIME_PERIOD == 0L) {
if (elapsedTime % TIME_PERIOD == 0L) {
RetrofitManager.getInstance().api.time
.subscribeOn(Schedulers.io())
.subscribe(object : Response<TimeEntity>() {
override fun onResponse(response: TimeEntity?) {
val serverTime = response?.time
serverTime?.let { timeDeltaBetweenServerAndClient = it * 1000 - System.currentTimeMillis() }
.subscribeOn(Schedulers.io())
.subscribe(object : Response<TimeEntity>() {
override fun onResponse(response: TimeEntity?) {
val serverTime = response?.time
serverTime?.let {
timeDeltaBetweenServerAndClient = it * 1000 - System.currentTimeMillis()
}
})
}
})
}
// 提交曝光数据
if ((mExecuteCount * CHECKER_PERIOD) % EXPOSURE_PERIOD == 0L) {
ExposureManager.commitSavedExposureEvents(true)
if (elapsedTime % EXPOSURE_PERIOD == 0L) {
runOnUiThread {
ExposureManager.commitSavedExposureEvents(true)
}
}
// 分片检测下载进度
if ((mExecuteCount * CHECKER_PERIOD) % DOWNLOAD_HEARTBEAT_SHEET_PERIOD == 0L) {
if (elapsedTime % DOWNLOAD_HEARTBEAT_SHEET_PERIOD == 0L) {
tryCatchInRelease {
val upload = (mExecuteCount * CHECKER_PERIOD) % DOWNLOAD_HEARTBEAT_PERIOD == 0L
DownloadDataHelper.uploadDownloadHeartbeat(upload)
@ -59,23 +68,29 @@ object FixedRateJobHelper {
}
// 提交普通 loghub 数据
if ((mExecuteCount * CHECKER_PERIOD) % LOGHUB_PERIOD == 0L) {
LoghubUtils.commitSavedLoghubEvents()
if (elapsedTime % LOGHUB_PERIOD == 0L) {
runOnUiThread {
LoghubUtils.commitSavedLoghubEvents(true)
}
}
// 更新游戏屏蔽信息
if ((mExecuteCount * CHECKER_PERIOD) % REGION_SETTING_PERIOD == 0L) {
if (elapsedTime % REGION_SETTING_PERIOD == 0L) {
if (HaloApp.getInstance().isRunningForeground) {
RegionSettingHelper.getRegionSetting()
}
}
// 提交视频浏览记录数据
if ((mExecuteCount * CHECKER_PERIOD) % VIDEO_RECORD_PERIOD == 0L) {
if (elapsedTime % VIDEO_RECORD_PERIOD == 0L) {
VideoRecordUtils.commitVideoRecord()
}
// ExposureUtils.logADownloadCompleteExposureEvent(GameEntity(id = mExecuteCount.toString(), name = "测试曝光上传"), platform = "", trace = null, downloadType = ExposureUtils.DownloadType.DOWNLOAD)
// 获取启动广告 (第一次不需要获取)
if (elapsedTime % STARTUP_AD == 0L && mExecuteCount != 0) {
AdHelper.getSettingAdCache()
}
mExecuteCount++
}
}

View File

@ -1,39 +0,0 @@
//package com.gh.common
//
//import android.content.BroadcastReceiver
//import android.content.Context
//import android.content.Intent
//import com.gh.common.im.ImManager
//import com.gh.gamecenter.manager.UserManager
//import com.gh.gamecenter.retrofit.RetrofitManager
//import com.halo.assistant.HaloApp
//import com.m7.imkfsdk.chat.ChatActivity
//import io.reactivex.schedulers.Schedulers
//
///**
// * 可使用 [LocalBroadcastManager] 来进行简单的模块间消息通知
// */
//
//class LocalBroadcastReceiver : BroadcastReceiver() {
//
// override fun onReceive(context: Context?, intent: Intent?) {
// intent?.let {
// when (intent.action) {
// ChatActivity.ACTION_DISMISS_FLOATING_WINDOW -> {
// ImManager.dismissFloatingWindow()
//
// RetrofitManager.getInstance().api.postImEnding(UserManager.getInstance().userId)
// .subscribeOn(Schedulers.io())
// .subscribe()
// }
//
// ChatActivity.ACTION_HIDE_UNREAD_DOT -> {
// ImManager.updateShouldShowFloatingWindowDot(false)
// }
//
// else -> return
// }
// }
// }
//
//}

View File

@ -1,117 +0,0 @@
package com.gh.common
import android.annotation.SuppressLint
import com.gh.gamecenter.entity.AliasEntity
import com.halo.assistant.HaloApp
object PushManager {
var deviceToken: String? = ""
private var mPreviousAlias: AliasEntity? = null
private var mApplication = HaloApp.getInstance().application
const val SP_PUSH_ALIAS = "push_alias"
@JvmStatic
fun init(channel: String) {
// tryWithDefaultCatch {
// //初始化友盟推送
// UMConfigure.init(mApplication, Config.UMENG_APPKEY, channel, UMConfigure.DEVICE_TYPE_PHONE, Config.UMENG_MESSAGE_SECRET)
//
// val pushAgent = PushAgent.getInstance(mApplication)
//
// runOnIoThread { registerDevice() }
//
// // 注册小米、华为和魅族通道
// MiPushRegistar.register(mApplication, Config.MIPUSH_APPID, Config.MIPUSH_APPKEY)
// HuaWeiRegister.register(mApplication)
// MeizuRegister.register(mApplication, BuildConfig.MEIZUPUSH_APPID, BuildConfig.MEIZUPUSH_APPKEY)
//
// val aliasInSp = PreferenceManager.getDefaultSharedPreferences(mApplication).getString(SP_PUSH_ALIAS, "")
// mPreviousAlias = aliasInSp?.toObject()
//
// if (mPreviousAlias == null) {
// getAndSetAlias()
// }
//
// // 完全自定义处理(透传)
// pushAgent.setPushIntentServiceClass(GHUmengNotificationService::class.java)
// }
}
private fun registerDevice() {
// PushAgent.getInstance(mApplication).register(object : IUmengRegisterCallback {
// override fun onSuccess(dToken: String) {
// //注册成功会返回device token
// deviceToken = dToken
// getAndSetAlias()
// Utils.log("deviceToken::$dToken")
// }
//
// override fun onFailure(s: String, s1: String) {
// Utils.log("deviceToken::" + "注册失败")
// }
// })
}
@SuppressLint("CheckResult")
@JvmStatic
fun getAndSetAlias() {
// if (deviceToken.isNullOrEmpty()) {
// registerDevice()
// return
// }
//
// val meta = MetaUtil.getMeta()
//
// val jsonObject = JSONObject()
// jsonObject.put("device_token", deviceToken)
// jsonObject.put("imei", meta.imei)
// jsonObject.put("android_id", meta.android_id)
// jsonObject.put("model", meta.model)
// jsonObject.put("manufacturer", meta.manufacturer)
// jsonObject.put("os", meta.os)
// jsonObject.put("os_version", meta.android_version)
// jsonObject.put("mac", meta.mac)
// jsonObject.put("gid", meta.gid)
//
// val body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString())
//
// RetrofitManager.getInstance().api.getAlias(body)
// .subscribeOn(Schedulers.io())
// .subscribe(
// { setAlias(it) },
// { it.printStackTrace() }
// )
}
@JvmStatic
fun setAlias(alias: AliasEntity) {
// val pushAgent = PushAgent.getInstance(mApplication)
//
// mPreviousAlias = alias
// PreferenceManager.getDefaultSharedPreferences(mApplication).edit {
// putString(SP_PUSH_ALIAS, mPreviousAlias?.toJson())
// }
//
// pushAgent.setAlias(alias.alias, alias.aliasType) { b, s ->
// Utils.log("注册别名 $b + $s")
// }
}
@JvmStatic
fun deleteAlias() {
// val pushAgent = PushAgent.getInstance(mApplication)
//
// mPreviousAlias?.let {
// pushAgent.deleteAlias(it.alias, it.aliasType) { b, s ->
// Utils.log("删除别名 $b + $s")
// }
// }
// PreferenceManager.getDefaultSharedPreferences(mApplication).edit {
// putString(SP_PUSH_ALIAS, "")
// }
// mPreviousAlias = null
}
}

View File

@ -1,123 +0,0 @@
package com.gh.common
import android.app.Activity
import android.app.Application
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import com.gh.base.GHThreadFactory
import com.halo.assistant.HaloApp
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
/**
* 统计用户在当前 Fragment/Activity 的停留时间,在 onViewDestroy 或 onDestroy 里获取 elapsedTime 即可,单位为秒
*/
class TimeElapsedHelper(val fragment: Fragment?, val activity: Activity?) {
constructor() : this(null, null)
constructor(fragment: Fragment) : this(fragment, null)
constructor(activity: Activity) : this(null, activity)
private var isWorking = false
var elapsedTime: Int = 0
var timeout: Int = 0
var timeoutCallback: TimeoutCallback? = null
init {
activity?.application?.registerActivityLifecycleCallbacks(object : Application.ActivityLifecycleCallbacks {
override fun onActivityStarted(a: Activity) {
}
override fun onActivitySaveInstanceState(a: Activity, outState: Bundle) {
}
override fun onActivityStopped(a: Activity) {
}
override fun onActivityCreated(a: Activity, savedInstanceState: Bundle?) {
}
override fun onActivityPaused(a: Activity) {
if (activity == a) {
pauseCounting()
}
}
override fun onActivityResumed(a: Activity) {
if (activity == a) {
resumeCounting()
}
}
override fun onActivityDestroyed(a: Activity) {
if (activity == a) {
HaloApp.getInstance().application.unregisterActivityLifecycleCallbacks(this)
}
}
})
fragment?.fragmentManager?.registerFragmentLifecycleCallbacks(
object : FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentResumed(fm: FragmentManager, f: Fragment) {
if (f === fragment) {
resumeCounting()
}
}
override fun onFragmentPaused(fm: FragmentManager, f: Fragment) {
if (f === fragment) {
pauseCounting()
}
}
override fun onFragmentViewDestroyed(fm: FragmentManager, f: Fragment) {
if (f === fragment) {
fragment.fragmentManager?.unregisterFragmentLifecycleCallbacks(this)
}
}
}, false)
}
fun resumeCounting() {
isWorking = true
TimeElapsedThreadHolder.threadService.execute {
while (isWorking) {
try {
elapsedTime++
if (timeout != 0 && timeout == elapsedTime) {
timeoutCallback?.run {
AppExecutor.uiExecutor.execute {
onTimeout()
}
}
}
Thread.sleep(1000)
} catch (e: Exception) {
e.printStackTrace()
}
}
}
}
fun resetCounting() {
elapsedTime = 0
}
fun pauseCounting() {
isWorking = false
}
}
object TimeElapsedThreadHolder {
val threadService: ExecutorService by lazy { Executors.newSingleThreadExecutor(GHThreadFactory("TIME_ELAPSED_THREAD")) }
}
interface TimeoutCallback {
fun onTimeout()
}

View File

@ -1,3 +0,0 @@
package com.gh.common
typealias OnFastClickListener = (isSuccess: Boolean) -> Unit

View File

@ -1,7 +0,0 @@
package com.gh.common.avoidcallback
import android.content.Intent
interface Callback {
fun onActivityResult(resultCode: Int, data: Intent?)
}

View File

@ -0,0 +1,21 @@
package com.gh.common.chain
import android.content.Context
import com.gh.download.server.BrowserInstallHelper
import com.gh.gamecenter.core.utils.EmptyCallback
import com.gh.gamecenter.feature.entity.GameEntity
class BrowserInstallHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
BrowserInstallHelper.showBrowserInstallHintDialog(context, gameEntity.isVGame(), object : EmptyCallback {
override fun onCallback() {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
})
}
}

View File

@ -0,0 +1,18 @@
package com.gh.common.chain
import android.content.Context
import com.gh.common.dialog.CertificationDialog
import com.gh.gamecenter.feature.entity.GameEntity
class CertificationHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
CertificationDialog.showCertificationDialog(context, gameEntity) {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
}
}

View File

@ -0,0 +1,28 @@
package com.gh.common.chain
class ChainBuilder {
private val handlers: MutableList<ChainHandler> = ArrayList()
private var processEndCallback: ((Any?) -> Unit)? = null
fun setProcessEndCallback(callback: (Any?) -> Unit): ChainBuilder {
processEndCallback = callback
return this
}
fun addHandler(handler: ChainHandler): ChainBuilder {
handlers.add(handler)
return this
}
fun buildHandlerChain(): ChainHandler? {
for (i in handlers.indices) {
handlers[i].processEndCallback = processEndCallback
if (i + 1 < handlers.size) {
handlers[i].setNext(handlers[i + 1])
}
}
return if (handlers.isEmpty()) null else handlers[0]
}
}

View File

@ -0,0 +1,24 @@
package com.gh.common.chain
import android.content.Context
import com.gh.gamecenter.feature.entity.GameEntity
abstract class ChainHandler {
private var next: ChainHandler? = null
var processEndCallback: ((Any?) -> Unit)? = null
fun setNext(next: ChainHandler?) {
this.next = next
}
fun getNext(): ChainHandler? {
return next
}
fun hasNext(): Boolean {
return next != null
}
abstract fun handleRequest(context: Context, gameEntity: GameEntity)
}

View File

@ -0,0 +1,21 @@
package com.gh.common.chain
import android.content.Context
import com.gh.common.util.DialogUtils
import com.gh.gamecenter.common.utils.safelyGetInRelease
import com.gh.gamecenter.feature.entity.GameEntity
class CheckDownloadHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
val apk = gameEntity.getApk().safelyGetInRelease(0) ?: return
DialogUtils.checkDownload(context, apk.size) { isSubscribe: Boolean ->
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(isSubscribe)
}
}
}
}

View File

@ -0,0 +1,21 @@
package com.gh.common.chain
import android.content.Context
import com.gh.gamecenter.common.utils.PermissionHelper
import com.gh.gamecenter.core.utils.EmptyCallback
import com.gh.gamecenter.feature.entity.GameEntity
class CheckStoragePermissionHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
PermissionHelper.checkStoragePermissionBeforeAction(context, object : EmptyCallback {
override fun onCallback() {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
})
}
}

View File

@ -0,0 +1,23 @@
package com.gh.common.chain
import android.content.Context
import com.gh.common.util.DownloadDialogHelper
import com.gh.gamecenter.common.utils.safelyGetInRelease
import com.gh.gamecenter.core.utils.EmptyCallback
import com.gh.gamecenter.feature.entity.GameEntity
class DownloadDialogHelperHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
val apk = gameEntity.getApk().safelyGetInRelease(0) ?: return
DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback {
override fun onCallback() {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
})
}
}

View File

@ -0,0 +1,19 @@
package com.gh.common.chain
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.gamedetail.dialog.GamePermissionDialogFragment
class GamePermissionHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info) {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
}
}

View File

@ -0,0 +1,18 @@
package com.gh.common.chain
import android.content.Context
import com.gh.common.util.DialogUtils
import com.gh.gamecenter.feature.entity.GameEntity
class OverseaDownloadHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
DialogUtils.showOverseaDownloadDialog(context, gameEntity) {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
}
}

View File

@ -0,0 +1,19 @@
package com.gh.common.chain
import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import com.gh.common.dialog.PackageCheckDialogFragment
import com.gh.gamecenter.feature.entity.GameEntity
class PackageCheckHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
PackageCheckDialogFragment.show((context as AppCompatActivity), gameEntity) {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
}
}

View File

@ -0,0 +1,35 @@
package com.gh.common.chain
import android.content.Context
import com.gh.common.simulator.NewSimulatorGameManager
import com.gh.common.simulator.SimulatorGameManager
import com.gh.gamecenter.feature.entity.GameEntity
class UpdateNewSimulatorHandler: ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
if (SimulatorGameManager.isSimulatorGame(gameEntity)) {
if (NewSimulatorGameManager.shouldShowUpdateNewSimulatorAlert(context)) {
NewSimulatorGameManager.showUpdateNewsSimulator(context) {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
}
else{
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
}
}
}
else{
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
}
}
}
}

View File

@ -0,0 +1,18 @@
package com.gh.common.chain
import android.content.Context
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.vspace.VHelper
class ValidateVSpaceHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
VHelper.validateVSpaceBeforeAction(context, gameEntity) {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
}
}

View File

@ -0,0 +1,33 @@
package com.gh.common.chain
import android.content.Context
import com.gh.gamecenter.R
import com.gh.gamecenter.common.utils.DialogHelper
import com.gh.gamecenter.common.utils.toResString
import com.gh.gamecenter.feature.entity.GameEntity
class VersionNumberHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
val confirmCallback = {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
if (!gameEntity.isShowVersionNumber()) {
confirmCallback.invoke()
} else {
DialogHelper.showGuideDialog(
context,
"温馨提示",
gameEntity.getVersionNumberString(),
"继续下载",
R.string.cancel.toResString(),
{ confirmCallback.invoke() },
extraConfig = DialogHelper.Config(titleIcon = R.drawable.ic_dialog_tips)
)
}
}
}

View File

@ -1,27 +1,36 @@
package com.gh.common.constant;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Build;
import android.preference.PreferenceManager;
import android.text.TextUtils;
import com.gh.common.util.EnvHelper;
import com.gh.common.util.GsonUtils;
import androidx.annotation.Nullable;
import com.gh.common.util.AdHelper;
import com.gh.common.util.PackageHelper;
import com.gh.common.util.PackageUtils;
import com.gh.common.util.SPUtils;
import com.gh.gamecenter.BuildConfig;
import com.gh.gamecenter.SuggestionActivity;
import com.gh.gamecenter.common.constant.CommonConsts;
import com.gh.gamecenter.common.constant.Constants;
import com.gh.gamecenter.common.eventbus.EBReuse;
import com.gh.gamecenter.common.retrofit.BiResponse;
import com.gh.gamecenter.common.retrofit.Response;
import com.gh.gamecenter.common.utils.DarkModeUtils;
import com.gh.gamecenter.common.utils.EnvHelper;
import com.gh.gamecenter.core.utils.GsonUtils;
import com.gh.gamecenter.core.utils.SPUtils;
import com.gh.gamecenter.core.utils.UrlFilterUtils;
import com.gh.gamecenter.entity.GameGuidePopupEntity;
import com.gh.gamecenter.entity.NewApiSettingsEntity;
import com.gh.gamecenter.entity.NewSettingsEntity;
import com.gh.gamecenter.entity.NewsEntity;
import com.gh.gamecenter.entity.SettingsEntity;
import com.gh.gamecenter.eventbus.EBReuse;
import com.gh.gamecenter.retrofit.BiResponse;
import com.gh.gamecenter.retrofit.Response;
import com.gh.gamecenter.entity.VSetting;
import com.gh.gamecenter.feature.entity.NewsEntity;
import com.gh.gamecenter.feature.entity.SettingsEntity;
import com.gh.gamecenter.feature.entity.SimulatorEntity;
import com.gh.gamecenter.retrofit.RetrofitManager;
import com.gh.vspace.VHelper;
import com.halo.assistant.HaloApp;
import com.lightgame.utils.Utils;
@ -33,8 +42,6 @@ import java.io.IOException;
import java.util.List;
import java.util.Locale;
import androidx.annotation.Nullable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody;
@ -44,10 +51,7 @@ public class Config {
// 这个 API_HOST 在测试包里会随着选择的环境切换,正式包里会一直保持正式 host
public static final String API_HOST = EnvHelper.getHost();
public static final String NEW_API_HOST = EnvHelper.getNewHost();
/**
* 需要配置的请使用{@link PreferenceManager#getDefaultSharedPreferences(Context)}
*/
public static final String VAPI_HOST = EnvHelper.getVHost();
// Third-Party confs
public static final String WECHAT_APPID = BuildConfig.WECHAT_APPID;
@ -59,20 +63,20 @@ public class Config {
// http://www.ghzs666.com/article/${articleId}.html
public static final String URL_ARTICLE = "http://www.ghzs666.com/article/"; // ghzs/ghzs666 统一
public static final String DEFAULT_CHANNEL = "GH_TEST3";
public static final String DEFAULT_CHANNEL_FOR_RELEASE = "GH_LOST"; // 正式包的缺省渠道,避免因渠道丢失而回落到测试渠道
private static String SETTINGS_KEY = "settingsKey";
private static final String SETTINGS_KEY = "settingsKey";
private static SettingsEntity mSettingsEntity;
private static NewSettingsEntity mNewSettingsEntity;
private static NewApiSettingsEntity mNewApiSettingsEntity;
private static NewApiSettingsEntity.NightMode mNightModeSetting;
private static SimulatorEntity mNewSimulatorEntity;
private static VSetting mVSetting;
private static GameGuidePopupEntity mGameGuidePopupEntity;
private static SharedPreferences mDefaultSharedPreferences;
public static final String FIX_DOWNLOAD_KEY = "isFixDownload";
public static final String FIX_PLUGIN_KEY = "isFixPlugin";
public static final String FIX_ARTICLE_KEY = "isFixArticle";
public static final String FIX_COMMUNITY_KEY = "isFixCommunity";
public static final int VIDEO_PAGE_SIZE = 21; // 视频列表大多都是一行3个
@ -93,13 +97,6 @@ public class Config {
return false;
}
public static String getExceptionMsg() {
return getPreferences().getString("errMsg", null);
}
public static void setExceptionMsg(String errMsg) {
SPUtils.setString(getPreferences(), "errMsg", errMsg); //先用apply(),保存不了再用commit() 9.0机型保存不了信息
}
public static boolean isShowDownload(String gameId) {
@ -125,6 +122,29 @@ public class Config {
return false;
}
/**
* 是否启用畅玩游戏
*/
public static boolean isVGameEnabled() {
if (getSettings() == null) {
return false;
}
return !"off".equals(getSettings().getGameSmooth());
}
/**
* VPN 开关选项是否开启
*/
public static boolean isVpnOptionEnabled() {
if (mNewApiSettingsEntity == null
|| mNewApiSettingsEntity.getInstall() == null
|| mNewApiSettingsEntity.getInstall().getVpnRequired() == null) {
return false;
}
return mNewApiSettingsEntity.getInstall().getVpnRequired().getShouldShowVpnOption();
}
public static boolean isShowPlugin(String gameId) {
SharedPreferences preferences = getPreferences();
@ -190,11 +210,15 @@ public class Config {
getPreferences().edit().putString(SETTINGS_KEY, GsonUtils.toJson(settingsEntity)).apply();
mSettingsEntity = settingsEntity;
// 更新 FIX_ARTICLE_KEY 状态
// 更新设置状态
mSettingsEntity.showArticleEntrance();
mSettingsEntity.showCommunityEntrance();
// 加载完设置后刷新下
PackageHelper.initList();
// 初始化畅玩相关的东西
VHelper.init(HaloApp.getInstance());
}
@Nullable
@ -212,6 +236,37 @@ public class Config {
return mSettingsEntity;
}
//新模拟器
@Nullable
public static SimulatorEntity getNewSimulatorEntitySetting() {
if (mNewSimulatorEntity != null) {
return mNewSimulatorEntity;
} else if (mNewApiSettingsEntity != null && mNewApiSettingsEntity.getSimulator() != null) {
return mNewApiSettingsEntity.getSimulator();
} else {
return null;
}
}
@Nullable
public static NewApiSettingsEntity.NightMode getNightModeSetting() {
if (mNightModeSetting != null) {
return mNightModeSetting;
} else if (mNewApiSettingsEntity != null && mNewApiSettingsEntity.getNightMode() != null) {
return mNewApiSettingsEntity.getNightMode();
} else {
return null;
}
}
public static boolean getUserInterestedGame() {
if (mNewApiSettingsEntity != null) {
return mNewApiSettingsEntity.getUserInterestedGame();
} else {
return false;
}
}
@Nullable
public static NewSettingsEntity getNewSettingsEntity() {
if (mNewSettingsEntity == null) {
@ -227,6 +282,41 @@ public class Config {
return mNewSettingsEntity;
}
@Nullable
public static NewApiSettingsEntity getNewApiSettingsEntity() {
if (mNewApiSettingsEntity == null) {
try {
String json = SPUtils.getString(Constants.SP_NEW_API_SETTINGS);
if (!TextUtils.isEmpty(json)) {
mNewApiSettingsEntity = GsonUtils.fromJson(json, NewApiSettingsEntity.class);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return mNewApiSettingsEntity;
}
public static void updateNewApiSettings(NewApiSettingsEntity settingsEntity) {
mNewApiSettingsEntity = settingsEntity;
SPUtils.setString(Constants.SP_NEW_API_SETTINGS, GsonUtils.toJson(settingsEntity));
}
@Nullable
public static VSetting getVSettingEntity() {
if (mVSetting == null) {
try {
String json = SPUtils.getString(Constants.SP_V_SETTINGS);
if (!TextUtils.isEmpty(json)) {
mVSetting = GsonUtils.fromJson(json, VSetting.class);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return mVSetting;
}
@Nullable
public static GameGuidePopupEntity getGameGuidePopupEntity() {
return mGameGuidePopupEntity;
@ -255,42 +345,19 @@ public class Config {
public static SharedPreferences getPreferences() {
if (mDefaultSharedPreferences == null) {
mDefaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication());
mDefaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication());
}
return mDefaultSharedPreferences;
}
public static boolean isExistHideFunction() {
SharedPreferences preferences = getPreferences();
if (!preferences.getBoolean(FIX_DOWNLOAD_KEY, false)) return true;
if (!preferences.getBoolean(FIX_PLUGIN_KEY, false)) return true;
if (!preferences.getBoolean(FIX_COMMUNITY_KEY, false)) return true;
if (!preferences.getBoolean(FIX_ARTICLE_KEY, false)) return true;
return false;
}
public static boolean isGameDomeSwitchOpen() {
return getSettings() != null && getSettings().getGameDomeSwitch().equals("on");
}
public static boolean isPermissionPopupSwitchOpen() {
return getSettings() != null && getSettings().getPermissionPopupSwitch().equals("on");
}
public static void fixHideFunction() {
SharedPreferences preferences = PreferenceManager.
getDefaultSharedPreferences(HaloApp.getInstance().getApplication());
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(Config.FIX_DOWNLOAD_KEY, true);
editor.putBoolean(Config.FIX_ARTICLE_KEY, true);
editor.putBoolean(Config.FIX_COMMUNITY_KEY, true);
editor.putBoolean(Config.FIX_PLUGIN_KEY, true);
editor.apply();
}
@SuppressLint("CheckResult")
public static void getGhzsSettings() {
String channel = HaloApp.getInstance().getChannel();
// 把请求提前,避免请求过多阻塞,首页显示广告时老是用到上一次的缓存
getNewSettings(channel);
RetrofitManager.getInstance()
.getApi().getSettings(PackageUtils.getGhVersionName(), channel)
.subscribeOn(Schedulers.io())
@ -302,7 +369,7 @@ public class Config {
// 意见反馈
SharedPreferences.Editor edit = getPreferences().edit();
edit.putString(SuggestionActivity.SUGGESTION_HINT_TYPE,
edit.putString(CommonConsts.SUGGESTION_HINT_TYPE,
GsonUtils.toJson(response.getSuggestion()));
edit.apply();
@ -327,6 +394,19 @@ public class Config {
}
});
if (mVSetting == null) {
RetrofitManager.getInstance()
.getVApi().getSettings(BuildConfig.VERSION_NAME)
.subscribeOn(Schedulers.io())
.subscribe(new BiResponse<VSetting>() {
@Override
public void onSuccess(VSetting data) {
mVSetting = data;
SPUtils.setString(Constants.SP_V_SETTINGS, GsonUtils.toJson(data));
}
});
}
RetrofitManager.getInstance()
.getApi().getGameGuidePopup(Build.MANUFACTURER, Build.VERSION.RELEASE, Build.MODEL, channel, BuildConfig.VERSION_NAME)
.subscribeOn(Schedulers.io())
@ -358,4 +438,34 @@ public class Config {
});
}
}
@SuppressLint("CheckResult")
private static void getNewSettings(String channel) {
if (mNewApiSettingsEntity == null) {
String filterString = UrlFilterUtils.getFilterQuery(
"manufacturer", Build.MANUFACTURER,
"model", Build.MODEL,
"android_sdk_version", String.valueOf(Build.VERSION.SDK_INT));
RetrofitManager.getInstance()
.getNewApi().getNewSettings(PackageUtils.getGhVersionName(), channel, filterString)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BiResponse<NewApiSettingsEntity>() {
@Override
public void onSuccess(NewApiSettingsEntity data) {
mNewApiSettingsEntity = data;
mNightModeSetting = data.getNightMode();
mNewSimulatorEntity = data.getSimulator();
if (HaloApp.getInstance().isNewForThisVersion && mNightModeSetting != null && mNightModeSetting.getInstall()) {
DarkModeUtils.INSTANCE.updateFollowSystemDarkModeToSp(true);
DarkModeUtils.INSTANCE.initDarkMode();
}
AdHelper.prefetchStartUpAd(mNewApiSettingsEntity);
SPUtils.setString(Constants.SP_NEW_API_SETTINGS, GsonUtils.toJson(data));
}
});
}
}
}

View File

@ -13,15 +13,15 @@ import android.widget.PopupWindow
import androidx.core.content.ContextCompat
import androidx.databinding.BindingAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import com.gh.base.OnViewClickListener
import com.gh.common.util.dip2px
import com.gh.common.util.toDrawable
import com.gh.common.view.BugFixedPopupWindow
import com.gh.gamecenter.common.callback.OnViewClickListener
import com.gh.gamecenter.common.utils.dip2px
import com.gh.gamecenter.common.utils.toDrawable
import com.gh.gamecenter.common.view.BugFixedPopupWindow
import com.gh.gamecenter.R
import com.gh.gamecenter.databinding.KaifuAddItemBinding
import com.gh.gamecenter.databinding.LayoutAddKaifuPopupBinding
import com.gh.gamecenter.databinding.LayoutPopupContainerBinding
import com.gh.gamecenter.entity.ServerCalendarEntity
import com.gh.gamecenter.feature.entity.ServerCalendarEntity
import com.gh.gamecenter.servers.add.AddKaiFuPopupAdapter
import java.text.SimpleDateFormat
import java.util.*
@ -67,7 +67,7 @@ object AddKaiFuBindingAdapter {
binding.kaifuAddServerName.hint = "点击填写"
}
}
binding.kaifuAddFirstName.addTextChangedListener(object :TextWatcher{
binding.kaifuAddFirstName.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(
s: CharSequence?,
start: Int,
@ -77,7 +77,7 @@ object AddKaiFuBindingAdapter {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (!s.isNullOrEmpty()){
if (!s.isNullOrEmpty()) {
popupWindow?.dismiss()
}
}
@ -87,8 +87,8 @@ object AddKaiFuBindingAdapter {
})
if (i == list.size - 1) {
binding.kaifuAddTime.background = R.drawable.bg_add_kaifu_bottom_left.toDrawable()
binding.kaifuAddServerName.background = R.drawable.bg_add_kaifu_bottom_right.toDrawable()
binding.kaifuAddTime.background = R.drawable.bg_add_kaifu_bottom_left.toDrawable(view.context)
binding.kaifuAddServerName.background = R.drawable.bg_add_kaifu_bottom_right.toDrawable(view.context)
}
}
}
@ -104,12 +104,14 @@ object AddKaiFuBindingAdapter {
val format = SimpleDateFormat(pattern, Locale.CHINA)
view.setText(format.format(time * 1000))
if (position == 0) {
view.append(if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) Html.fromHtml(
String.format(
"<font color='#2496FF'>%1\$s</font>",
"&nbsp+"
), Html.FROM_HTML_MODE_LEGACY
) else Html.fromHtml(String.format("<font color='#2496FF'>%1\$s</font>", "&nbsp+")))
view.append(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) Html.fromHtml(
String.format(
"<font color='#2496FF'>%1\$s</font>",
"&nbsp+"
), Html.FROM_HTML_MODE_LEGACY
) else Html.fromHtml(String.format("<font color='#2496FF'>%1\$s</font>", "&nbsp+"))
)
}
}
}

View File

@ -16,58 +16,68 @@ import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
import androidx.databinding.BindingAdapter;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.base.OnViewClickListener;
import com.gh.common.chain.BrowserInstallHandler;
import com.gh.common.chain.CertificationHandler;
import com.gh.common.chain.ChainBuilder;
import com.gh.common.chain.ChainHandler;
import com.gh.common.chain.CheckDownloadHandler;
import com.gh.common.chain.DownloadDialogHelperHandler;
import com.gh.common.chain.GamePermissionHandler;
import com.gh.common.chain.OverseaDownloadHandler;
import com.gh.common.chain.PackageCheckHandler;
import com.gh.common.chain.ValidateVSpaceHandler;
import com.gh.common.chain.VersionNumberHandler;
import com.gh.common.constant.Config;
import com.gh.common.dialog.CertificationDialog;
import com.gh.common.dialog.PackageCheckDialogFragment;
import com.gh.common.exposure.ExposureEvent;
import com.gh.common.filter.RegionSetting;
import com.gh.common.filter.RegionSettingHelper;
import com.gh.common.history.HistoryHelper;
import com.gh.common.repository.ReservationRepository;
import com.gh.common.simulator.SimulatorDownloadManager;
import com.gh.common.simulator.SimulatorGameManager;
import com.gh.common.util.CheckLoginUtils;
import com.gh.common.util.DataUtils;
import com.gh.common.util.DialogUtils;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.DownloadDialogHelper;
import com.gh.common.util.GameUtils;
import com.gh.common.util.GameViewUtils;
import com.gh.common.util.ImageUtils;
import com.gh.common.util.LogUtils;
import com.gh.common.util.MtaHelper;
import com.gh.common.util.NewsUtils;
import com.gh.common.util.NumberUtils;
import com.gh.common.util.PackageInstaller;
import com.gh.common.util.PackageUtils;
import com.gh.common.util.PlatformUtils;
import com.gh.common.util.RealNameHelper;
import com.gh.common.util.ReservationHelper;
import com.gh.common.view.DownloadProgressBar;
import com.gh.common.view.DrawableView;
import com.gh.common.view.GameIconView;
import com.gh.download.DownloadManager;
import com.gh.download.dialog.DownloadDialog;
import com.gh.download.server.BrowserInstallHelper;
import com.gh.gamecenter.DownloadManagerActivity;
import com.gh.gamecenter.R;
import com.gh.gamecenter.WebActivity;
import com.gh.gamecenter.baselist.LoadStatus;
import com.gh.gamecenter.common.baselist.LoadStatus;
import com.gh.gamecenter.common.callback.OnViewClickListener;
import com.gh.gamecenter.common.entity.LinkEntity;
import com.gh.gamecenter.common.eventbus.EBReuse;
import com.gh.gamecenter.common.utils.DarkModeUtils;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.common.utils.ImageUtils;
import com.gh.gamecenter.common.view.DrawableView;
import com.gh.gamecenter.core.utils.DisplayUtils;
import com.gh.gamecenter.core.utils.MtaHelper;
import com.gh.gamecenter.core.utils.NumberUtils;
import com.gh.gamecenter.databinding.KaifuDetailItemRowBinding;
import com.gh.gamecenter.entity.ApkEntity;
import com.gh.gamecenter.entity.GameEntity;
import com.gh.gamecenter.entity.LinkEntity;
import com.gh.gamecenter.entity.PluginLocation;
import com.gh.gamecenter.entity.ServerCalendarEntity;
import com.gh.gamecenter.entity.TagStyleEntity;
import com.gh.gamecenter.entity.TestEntity;
import com.gh.gamecenter.eventbus.EBReuse;
import com.gh.gamecenter.feature.entity.ApkEntity;
import com.gh.gamecenter.feature.entity.CommunityVideoEntity;
import com.gh.gamecenter.feature.entity.GameEntity;
import com.gh.gamecenter.feature.entity.PluginLocation;
import com.gh.gamecenter.feature.entity.ServerCalendarEntity;
import com.gh.gamecenter.feature.entity.TagStyleEntity;
import com.gh.gamecenter.feature.entity.TestEntity;
import com.gh.gamecenter.feature.exposure.ExposureEvent;
import com.gh.gamecenter.feature.utils.PlatformUtils;
import com.gh.gamecenter.feature.view.DownloadButton;
import com.gh.gamecenter.feature.view.GameIconView;
import com.gh.gamecenter.gamedetail.dialog.GamePermissionDialogFragment;
import com.gh.gamecenter.manager.PackagesManager;
import com.gh.gamecenter.qa.entity.CommunityVideoEntity;
import com.gh.vspace.VDownloadManagerActivity;
import com.gh.vspace.VHelper;
import com.lightgame.download.DownloadEntity;
import com.lightgame.download.FileUtils;
import com.lightgame.utils.Utils;
@ -84,22 +94,18 @@ import java.util.List;
public class BindingAdapters {
@BindingAdapter("imageIcon")
public static void loadIcon(SimpleDraweeView view, String imageUrl) {
ImageUtils.displayIcon(view, imageUrl);
}
@BindingAdapter("imageUrl")
public static void loadImage(SimpleDraweeView view, String imageUrl) {
ImageUtils.display(view, imageUrl);
}
@BindingAdapter("setTextSize")
public static void setTextSize(TextView view, int number) {
view.setTextSize(number);
}
@BindingAdapter("setTypeface")
public static void setTypeface(TextView view, String type) {
if (type == null) return;
@ -119,7 +125,6 @@ public class BindingAdapters {
}
}
@BindingAdapter({"addDetailKaiFuView", "addDetailKaiFuViewListener", "isReadyPatch"})
public static void addDetailKaiFuView(LinearLayout view, List<ServerCalendarEntity> list
, OnViewClickListener listener, Boolean isReadyPatch) {
if (list == null) return;
@ -127,13 +132,13 @@ public class BindingAdapters {
for (int i = 0; i < list.size() + 1; i++) { // 1 is Title
View inflate = LayoutInflater.from(view.getContext()).inflate(R.layout.kaifu_detail_item_row, null);
KaifuDetailItemRowBinding binding = KaifuDetailItemRowBinding.bind(inflate);
binding.setIsCloseBottom(i == list.size());
binding.setIsReadyPatch(isReadyPatch);
if (i == 0) {
binding.setIsTitle(true);
} else {
ServerCalendarEntity serverEntity = list.get(i - 1);
binding.setEntity(serverEntity);
binding.getRoot().setBackgroundColor(isReadyPatch != null && isReadyPatch ? ExtensionsKt.toColor(R.color.theme) : ExtensionsKt.toColor(R.color.white));
binding.getRoot().setPadding(DisplayUtils.dip2px(1), DisplayUtils.dip2px(1), DisplayUtils.dip2px(1), i == list.size() ? DisplayUtils.dip2px(1) : 0);
ServerCalendarEntity serverEntity = list.get(i - 1);
binding.timeTv.setText(i == 0 ? "时间" : serverEntity.getFormatTime("HH:mm"));
binding.remarkTv.setText(i == 0 ? "备注" : serverEntity.getRemark());
binding.nameTv.setText(i == 0 ? "名字" : (TextUtils.isEmpty(serverEntity.getNote()) ? "-" : serverEntity.getNote()));
if (i != 0) {
binding.getRoot().setOnClickListener(v -> {
listener.onClick(v, isReadyPatch != null && isReadyPatch ? serverEntity : null);
});
@ -155,12 +160,10 @@ public class BindingAdapters {
}
// 如果超过10000则转换为1.0W
@BindingAdapter("transSimpleCount")
public static void transSimpleCount(TextView view, int count) {
view.setText(NumberUtils.transSimpleCount(count));
}
@BindingAdapter("textColorFromString")
public static void textColorFromString(TextView tv, String hexString) {
if (TextUtils.isEmpty(hexString)) return;
@ -171,7 +174,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("visibleGone")
public static void showHide(View view, Boolean show) {
if (show != null && show) {
view.setVisibility(View.VISIBLE);
@ -180,7 +182,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("goneIf")
public static void goneIf(View view, Boolean gone) {
if (gone != null && gone) {
view.setVisibility(View.GONE);
@ -192,7 +193,6 @@ public class BindingAdapters {
/**
* lazy 的 paddingTop
*/
@BindingAdapter("lazyPaddingLeft")
public static void lazyPaddingLeft(View view, int paddingLeftInDp) {
view.setPadding(DisplayUtils.dip2px(paddingLeftInDp), view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom());
}
@ -200,7 +200,6 @@ public class BindingAdapters {
/**
* lazy 的 paddingTop
*/
@BindingAdapter("lazyPaddingTop")
public static void lazyPaddingTop(View view, int paddingTopInDp) {
view.setPadding(view.getPaddingLeft(), DisplayUtils.dip2px(paddingTopInDp), view.getPaddingRight(), view.getPaddingBottom());
}
@ -208,12 +207,10 @@ public class BindingAdapters {
/**
* lazy 的 paddingBottom
*/
@BindingAdapter("lazyPaddingBottom")
public static void lazyPaddingBottom(View view, int paddingBottomInDp) {
view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), DisplayUtils.dip2px(paddingBottomInDp));
}
@BindingAdapter("visibleInvisible")
public static void visibleInvisible(View view, Boolean show) {
if (show != null && show) {
view.setVisibility(View.VISIBLE);
@ -222,7 +219,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("messageUnread")
public static void setMessageUnread(TextView view, int unreadCount) {
if (unreadCount < 100) {
view.setText(String.valueOf(unreadCount));
@ -231,7 +227,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("serverTypePadding")
public static void setServerTypePadding(TextView view, String serverType) {
int paddRight = 0;
if (TextUtils.isEmpty(serverType)) {
@ -249,7 +244,6 @@ public class BindingAdapters {
view.setPadding(0, 0, paddRight, 0);
}
@BindingAdapter("serverType")
public static void setServerType(TextView view, String serverType) {
view.setText(serverType);
if ("删档内测".equals(serverType) || "不删档内测".equals(serverType)) {
@ -259,26 +253,22 @@ public class BindingAdapters {
}
}
@BindingAdapter("game")
public static void setGame(View view, GameEntity gameEntity) {
if (gameEntity != null && view instanceof GameIconView) {
((GameIconView) view).displayGameIcon(gameEntity);
}
}
@BindingAdapter("gameIcon")
public static void setGameIcon(View view, GameEntity gameEntity) {
if (gameEntity != null && view instanceof GameIconView) {
((GameIconView) view).displayGameIcon(gameEntity.getIcon(), gameEntity.getIconSubscript());
((GameIconView) view).displayGameIcon(gameEntity.getIcon(), gameEntity.getIconSubscript(), gameEntity.getIconFloat());
}
}
@BindingAdapter("articleType")
public static void setArticleType(TextView view, String articleType) {
NewsUtils.setNewsType(view, articleType, 0, 0);
}
@BindingAdapter("detailDownloadText")
public static void setDetailDownloadText(TextView view, GameEntity gameEntity) {
if (gameEntity == null || gameEntity.getApk().isEmpty()) {
view.setBackgroundResource(R.drawable.game_item_btn_pause_style);
@ -287,7 +277,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("liBaoBtn")
public static void setLiBaoBtn(TextView view, String status) {
if (TextUtils.isEmpty(status)) return;
switch (status) {
@ -352,8 +341,7 @@ public class BindingAdapters {
}
// 大图下的进度条
@BindingAdapter({"downloadButton", "traceEvent", "clickCallBack", "entrance", "location"})
public static void setDownloadButton(DownloadProgressBar progressBar,
public static void setDownloadButton(DownloadButton progressBar,
GameEntity gameEntity,
ExposureEvent traceEvent,
@Nullable View.OnClickListener clickCallBack,
@ -376,62 +364,77 @@ public class BindingAdapters {
// 点击事件
progressBar.setOnClickListener(v -> {
if (clickCallBack != null) clickCallBack.onClick(v);
switch (progressBar.getDownloadType()) {
switch (progressBar.getButtonStyle()) {
case DOWNLOADING_PLUGIN:
case DOWNLOADING_NORMAL:
Intent intent = DownloadManagerActivity.getDownloadMangerIntent(v.getContext(),
gameEntity.getApk().get(0).getUrl(), entrance);
v.getContext().startActivity(intent);
if (gameEntity.isVGame()) {
v.getContext().startActivity(VDownloadManagerActivity.getIntent(v.getContext(), true));
} else {
Intent intent = DownloadManagerActivity.getDownloadMangerIntent(v.getContext(),
gameEntity.getApk().get(0).getUrl(), entrance);
v.getContext().startActivity(intent);
}
break;
case NONE:
Utils.toast(v.getContext(), "该游戏已关闭下载");
break;
case NORMAL:
case PLUGIN:
if (gameEntity.getApk().size() == 1) {
ApkEntity apk = gameEntity.getApk().get(0);
DownloadEntity downloadEntity = SimulatorGameManager.findDownloadEntityByUrl(apk.getUrl());
if (gameEntity.getSimulator() != null) {
boolean isInstalled = PackageUtils.isInstalledFromAllPackage(v.getContext(), gameEntity.getSimulator().getApk().getPackageName());
if (downloadEntity != null && SimulatorGameManager.isSimulatorGame(gameEntity) && !isInstalled) {
SimulatorDownloadManager.getInstance().showDownloadDialog(v.getContext(), gameEntity.getSimulator(),
SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName(), null);
return;
final RegionSetting.GameH5Download gameH5Download = RegionSettingHelper.getGameH5DownloadByGameId(gameEntity.getId());
if (gameH5Download != null) {
DialogUtils.showGameH5DownloadDialog(v.getContext(), gameEntity, gameH5Download);
} else {
if (gameEntity.getApk().size() == 1) {
ApkEntity apk = gameEntity.getApk().get(0);
DownloadEntity downloadEntity = SimulatorGameManager.findDownloadEntityByUrl(apk.getUrl());
if (gameEntity.getSimulator() != null) {
boolean isInstalled = PackageUtils.isInstalledFromAllPackage(v.getContext(), gameEntity.getSimulator().getApk().getPackageName());
if (downloadEntity != null && SimulatorGameManager.isSimulatorGame(gameEntity) && !isInstalled) {
SimulatorDownloadManager.getInstance().showDownloadDialog(v.getContext(), gameEntity.getSimulator(),
SimulatorDownloadManager.SimulatorLocation.LAUNCH, gameEntity.getId(), gameEntity.getName(), null);
return;
}
}
ChainBuilder builder = new ChainBuilder();
builder.addHandler(new ValidateVSpaceHandler());
builder.addHandler(new GamePermissionHandler());
builder.addHandler(new BrowserInstallHandler());
builder.addHandler(new PackageCheckHandler());
builder.addHandler(new DownloadDialogHelperHandler());
builder.addHandler(new CertificationHandler());
builder.addHandler(new VersionNumberHandler());
builder.addHandler(new OverseaDownloadHandler());
builder.addHandler(new CheckDownloadHandler());
builder.setProcessEndCallback(o -> {
download(progressBar, gameEntity, traceEvent, (boolean) o, entrance, location);
return null;
});
final ChainHandler chainHandler = builder.buildHandlerChain();
if (chainHandler != null) {
chainHandler.handleRequest(v.getContext(), gameEntity);
}
} else {
ChainBuilder builder = new ChainBuilder();
builder.addHandler(new GamePermissionHandler());
builder.addHandler(new CertificationHandler());
builder.addHandler(new VersionNumberHandler());
builder.setProcessEndCallback(o -> {
DownloadDialog.showDownloadDialog(
v.getContext(),
gameEntity,
traceEvent,
entrance,
location + ":" + gameEntity.getName());
return null;
});
final ChainHandler chainHandler = builder.buildHandlerChain();
if (chainHandler != null) {
chainHandler.handleRequest(v.getContext(), gameEntity);
}
}
RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> {
GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> {
BrowserInstallHelper.showBrowserInstallHintDialog(v.getContext(), () -> {
PackageCheckDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, () -> {
DownloadDialogHelper.findAvailableDialogAndShow(v.getContext(), gameEntity, apk, () -> {
CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> {
DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> {
DialogUtils.showOverseaDownloadDialog(v.getContext(), gameEntity, () -> {
DialogUtils.checkDownload(v.getContext(), apk.getSize(),
isSubscribe -> download(progressBar, gameEntity, traceEvent, isSubscribe, entrance, location));
});
});
});
});
});
});
});
});
} else {
RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> {
GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> {
CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> {
DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> {
DownloadDialog.showDownloadDialog(
v.getContext(),
gameEntity,
traceEvent,
entrance,
location + ":" + gameEntity.getName());
});
});
});
});
}
break;
case LAUNCH_OR_OPEN:
@ -450,7 +453,12 @@ public class BindingAdapters {
}
return;
}
DataUtils.onGameLaunchEvent(v.getContext(), gameEntity.getName(), gameEntity.getApk().get(0).getPlatform(), location);
if (gameEntity.isVGame()) {
VHelper.installOrLaunch((AppCompatActivity) v.getContext(), gameEntity.getApk().get(0).getPackageName());
return;
}
PackageUtils.launchApplicationByPackageName(v.getContext(), gameEntity.getApk().get(0).getPackageName());
} else {
DownloadDialog.showDownloadDialog(
@ -464,20 +472,25 @@ public class BindingAdapters {
case INSTALL_PLUGIN:
case INSTALL_NORMAL:
if (gameEntity.getApk().size() == 1) {
DownloadEntity downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshotByUrl(gameEntity.getApk().get(0).getUrl());
DownloadEntity downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshot(gameEntity);
String packageName = gameEntity.getApk().get(0).getPackageName();
if (gameEntity.isVGame()) {
VHelper.installOrLaunch(v.getContext(), packageName);
return;
}
if (downloadEntity != null) {
PackageInstaller.install(v.getContext(), downloadEntity);
}
}
break;
case RESERVABLE:
RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> {
GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> {
CheckLoginUtils.checkLogin(progressBar.getContext(), "", () -> {
ReservationHelper.reserve(v.getContext(), gameEntity.getId(), () -> {
LogUtils.logReservation(gameEntity, traceEvent);
updateReservation(progressBar, gameEntity);
});
GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> {
CheckLoginUtils.checkLogin(progressBar.getContext(), "", () -> {
ReservationHelper.reserve(v.getContext(), gameEntity.getId(), gameEntity.getName(), () -> {
LogUtils.logReservation(gameEntity, traceEvent);
updateReservation(progressBar, gameEntity);
});
});
});
@ -521,10 +534,10 @@ public class BindingAdapters {
if (gameEntity.isReservable()) {
if (!ReservationRepository.thisGameHasBeenReserved(gameEntity.getId())) {
progressBar.setText("预约");
progressBar.setDownloadType(DownloadProgressBar.DownloadType.RESERVABLE);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.RESERVABLE);
} else {
progressBar.setText("已预约");
progressBar.setDownloadType(DownloadProgressBar.DownloadType.RESERVED);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.RESERVED);
}
return;
}
@ -539,17 +552,17 @@ public class BindingAdapters {
} else {
progressBar.setText("查看");
}
progressBar.setDownloadType(DownloadProgressBar.DownloadType.H5_GAME);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.H5_GAME);
} else {
if (offStatus != null && "dialog".equals(offStatus)) {
progressBar.setText("查看");
progressBar.setDownloadType(DownloadProgressBar.DownloadType.NONE);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.NONE);
} else if ("updating".equals(offStatus)) {
progressBar.setText("更新中");
progressBar.setDownloadType(DownloadProgressBar.DownloadType.UPDATING);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.UPDATING);
} else {
progressBar.setText("暂无");
progressBar.setDownloadType(DownloadProgressBar.DownloadType.NONE);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.NONE);
}
}
@ -557,14 +570,14 @@ public class BindingAdapters {
String status = GameUtils.getDownloadBtnText(progressBar.getContext(), gameEntity, PluginLocation.only_game);
switch (status) {
case "插件化":
progressBar.setDownloadType(DownloadProgressBar.DownloadType.PLUGIN);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.PLUGIN);
break;
case "打开":
case "启动":
progressBar.setDownloadType(DownloadProgressBar.DownloadType.LAUNCH_OR_OPEN);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.LAUNCH_OR_OPEN);
break;
default:
progressBar.setDownloadType(DownloadProgressBar.DownloadType.NORMAL);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.NORMAL);
break;
}
progressBar.setText(status);
@ -572,7 +585,7 @@ public class BindingAdapters {
// 显示下载过程状态
if (gameEntity.getApk().size() == 1) {
DownloadEntity downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshotByUrl(gameEntity.getApk().get(0).getUrl());
DownloadEntity downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshot(gameEntity);
if (downloadEntity != null) {
progressBar.setProgress((int) (downloadEntity.getPercent() * 10));
switch (downloadEntity.getStatus()) {
@ -580,21 +593,22 @@ public class BindingAdapters {
case pause:
case timeout:
case neterror:
case diskisfull:
case waiting:
progressBar.setText(R.string.downloading);
if (downloadEntity.isPluggable() && PackagesManager.INSTANCE.isInstalled(downloadEntity.getPackageName())) {
progressBar.setDownloadType(DownloadProgressBar.DownloadType.DOWNLOADING_PLUGIN);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.DOWNLOADING_PLUGIN);
} else {
progressBar.setDownloadType(DownloadProgressBar.DownloadType.DOWNLOADING_NORMAL);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.DOWNLOADING_NORMAL);
}
break;
case done:
progressBar.setText(R.string.install);
if (downloadEntity.isPluggable()
&& PackagesManager.INSTANCE.isInstalled(downloadEntity.getPackageName())) {
progressBar.setDownloadType(DownloadProgressBar.DownloadType.INSTALL_PLUGIN);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.INSTALL_PLUGIN);
} else {
progressBar.setDownloadType(DownloadProgressBar.DownloadType.INSTALL_NORMAL);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.INSTALL_NORMAL);
}
break;
case cancel:
@ -602,6 +616,8 @@ public class BindingAdapters {
case notfound:
case uncertificated:
case unqualified:
case unavailable:
case banned:
break;
default:
break;
@ -614,9 +630,9 @@ public class BindingAdapters {
* 当页面完全重建时若存在重建的DialogFragment则需要手动恢复该DialogFragment之前配置的回调(因为DialogFragment重建时只会从arguments中获取之前的配置内容
* 而arguments无法传递回调)或者dismiss该DialogFragment
*/
private static void restoreDialogFragment(DownloadProgressBar progressBar) {
private static void restoreDialogFragment(DownloadButton progressBar) {
GamePermissionDialogFragment gamePermissionDialogFragment =
((GamePermissionDialogFragment) ((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager().findFragmentByTag(GamePermissionDialogFragment.class.getSimpleName()));
((GamePermissionDialogFragment) ((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager().findFragmentByTag(GamePermissionDialogFragment.class.getName()));
if (gamePermissionDialogFragment != null) {
gamePermissionDialogFragment.dismissAllowingStateLoss();
}
@ -640,28 +656,28 @@ public class BindingAdapters {
}*/
private static void updateReservation(DownloadProgressBar progressBar, GameEntity gameEntity) {
private static void updateReservation(DownloadButton progressBar, GameEntity gameEntity) {
// 显示预约
if (gameEntity.isReservable()) {
if (!ReservationRepository.thisGameHasBeenReserved(gameEntity.getId())) {
progressBar.setText("预约");
progressBar.setDownloadType(DownloadProgressBar.DownloadType.RESERVABLE);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.RESERVABLE);
} else {
progressBar.setText("已预约");
progressBar.setDownloadType(DownloadProgressBar.DownloadType.RESERVED);
progressBar.setButtonStyle(DownloadButton.ButtonStyle.RESERVED);
}
}
}
// 开始下载
private static void download(DownloadProgressBar progressBar,
private static void download(DownloadButton progressBar,
GameEntity gameEntity,
ExposureEvent traceEvent,
boolean isSubscribe,
String entrance,
String location) {
String str = progressBar.getText();
String str = progressBar.getText().toString();
String method;
if (str.contains("更新")) {
method = "更新";
@ -673,8 +689,6 @@ public class BindingAdapters {
ApkEntity apkEntity = gameEntity.getApk().get(0);
String msg = FileUtils.isCanDownload(progressBar.getContext(), apkEntity.getSize());
if (TextUtils.isEmpty(msg)) {
DataUtils.onGameDownloadEvent(progressBar.getContext(), gameEntity.getName(), apkEntity.getPlatform(), entrance, "下载开始", method);
DownloadManager.createDownload(progressBar.getContext(),
apkEntity,
gameEntity,
@ -685,20 +699,18 @@ public class BindingAdapters {
traceEvent);
progressBar.setProgress(0);
progressBar.setDownloadType("插件化".equals(method) ?
DownloadProgressBar.DownloadType.DOWNLOADING_PLUGIN : DownloadProgressBar.DownloadType.DOWNLOADING_NORMAL);
progressBar.setButtonStyle("插件化".equals(method) ?
DownloadButton.ButtonStyle.DOWNLOADING_PLUGIN : DownloadButton.ButtonStyle.DOWNLOADING_NORMAL);
} else {
Utils.toast(progressBar.getContext(), msg);
}
}
@BindingAdapter("gameLabelList")
public static void setGameLabelList(LinearLayout layout, List<TagStyleEntity> tagStyle) {
GameViewUtils.setLabelList(layout.getContext(), layout, tagStyle);
}
// 包含测试开服标签
@BindingAdapter("setGameTags")
public static void setGameTags(LinearLayout layout, GameEntity gameEntity) {
try {
if (layout.getVisibility() == View.GONE) return;
@ -719,15 +731,16 @@ public class BindingAdapters {
tagStyle.add(typeTag);
} else {
TagStyleEntity typeTag = new TagStyleEntity();
boolean isDarkModeOn = DarkModeUtils.INSTANCE.isDarkModeOn(layout.getContext());
typeTag.setName(test.getType() != null ? test.getType() : "");
typeTag.setBackground("FFF3E0");
typeTag.setColor("FA8500");
typeTag.setBackground("1AFFA142");
typeTag.setColor(isDarkModeOn ? "EB9238" : "FFA142");
tagStyle.add(typeTag);
TagStyleEntity timeTag = new TagStyleEntity();
timeTag.setName(GameViewUtils.getGameTestDate(test.getStart()));
timeTag.setBackground("E0FFF9");
timeTag.setColor("00A887");
timeTag.setBackground("1A06CEA8");
timeTag.setColor(isDarkModeOn ? "07A385" : "06CEA8");
tagStyle.add(timeTag);
}
} else {
@ -739,7 +752,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("setVideoDetailGameTags")
public static void setVideoDetailGameTags(LinearLayout layout, GameEntity gameEntity) {
try {
ArrayList<TagStyleEntity> tagStyle = new ArrayList<>();
@ -767,27 +779,33 @@ public class BindingAdapters {
}
}
@BindingAdapter("isRefreshing")
public static void isRefreshing(SwipeRefreshLayout layout, LoadStatus status) {
if (status != LoadStatus.INIT_LOADING && status != LoadStatus.LIST_LOADING) {
layout.setRefreshing(false);
}
}
@BindingAdapter({"setGameName", "isShowPlatform", "isShowSuffix"})
public static void setGameName(TextView view, GameEntity game, boolean isShowPlatform, @Nullable Boolean isShowSuffix) {
if (isShowSuffix == null) isShowSuffix = true; // 默认显示
String gameName;
if (isShowPlatform && game.getApk().size() > 0) {
view.setText(String.format("%s - %s", !isShowSuffix ? game.getNameWithoutSuffix() : game.getName(),
gameName = String.format("%s - %s", !isShowSuffix ? game.getNameWithoutSuffix() : game.getName(),
PlatformUtils.getInstance(view.getContext()).getPlatformName(
game.getApk().get(0).getPlatform())));
game.getApk().get(0).getPlatform()));
if (!gameName.equals((String) view.getTag(R.string.tag_game_name_id))) {
view.setText(gameName);
view.setTag(R.string.tag_game_name_id, gameName);
}
} else {
view.setText(!isShowSuffix ? game.getNameWithoutSuffix() : game.getName());
gameName = !isShowSuffix ? game.getNameWithoutSuffix() : game.getName();
if (gameName != null && !gameName.equals((String) view.getTag(R.string.tag_game_name_id))) {
view.setText(gameName);
view.setTag(R.string.tag_game_name_id, gameName);
}
}
}
@BindingAdapter({"setCommunityImage", "setCommunityVideoImage"})
public static void setCommunityImage(SimpleDraweeView imageView, List<String> images, List<CommunityVideoEntity> videos) {
if (videos.size() > 0) {
CommunityVideoEntity videoEntity = videos.get(0);
@ -801,11 +819,10 @@ public class BindingAdapters {
}
}
@BindingAdapter({"setCommunityVideoDuration"})
public static void setCommunityVideoDuration(TextView mVideoDuration, List<CommunityVideoEntity> videos) {
if (videos != null && videos.size() > 0) {
CommunityVideoEntity videoEntity = videos.get(0);
mVideoDuration.setBackground(DrawableView.getOvalDrawable(R.color.black_alpha_80, 999F));
mVideoDuration.setBackground(DrawableView.getOvalDrawable(R.color.black_alpha_50, 999F));
mVideoDuration.setText(videoEntity.getDuration());
mVideoDuration.setVisibility(View.VISIBLE);
} else {
@ -813,7 +830,6 @@ public class BindingAdapters {
}
}
@BindingAdapter({"setGameTags", "setMaxGameTags"})
public static void setGameTags(TextView view, List<TagStyleEntity> tags, int maxTags) {
if (tags == null) {
view.setText("");
@ -836,20 +852,19 @@ public class BindingAdapters {
int start = index;
int end = start + tag.getName().length() + ((i != showCount - 1) ? 1 : 0);
index = end;
span.setSpan(new ForegroundColorSpan(Color.parseColor("#" + tag.getColor())),
span.setSpan(new ForegroundColorSpan(ExtensionsKt.hexStringToIntColor("#" + tag.getColor(), Color.WHITE)),
start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
view.setText(span);
}
@BindingAdapter({"setVideoData"})
public static void setVideoData(TextView view, int count) {
if (count > 0) {
view.setCompoundDrawablesWithIntrinsicBounds(ContextCompat.getDrawable(view.getContext(), R.drawable.ic_video_data_up), null, null, null);
ExtensionsKt.setDrawableStart(view, ContextCompat.getDrawable(view.getContext(), R.drawable.ic_video_data_up), null, null);
view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.text_EA3333));
view.setText(count + "");
} else {
view.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
ExtensionsKt.removeDrawable(view);
view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.text_subtitleDesc));
view.setText("-");
}

View File

@ -6,13 +6,13 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import com.gh.base.fragment.BaseDialogFragment
import com.gh.common.util.DirectUtils
import com.gh.common.util.EntranceUtils
import com.gh.common.util.SpanBuilder
import com.gh.common.util.dip2px
import com.gh.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.fragment.BaseDialogFragment
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.utils.dip2px
import com.gh.gamecenter.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.core.utils.SpanBuilder
import com.gh.gamecenter.databinding.DialogApplyModeratorBinding
@ -27,7 +27,7 @@ class ApplyModeratorDialogFragment : BaseDialogFragment() {
requireArguments().run {
mGroupNumber = getString(KEY_GROUP_NUMBER) ?: ""
mGroupKey = getString(KEY_GROUP_KEY) ?: ""
mParentTag = getString(EntranceUtils.KEY_PARENT_TAG) ?: ""
mParentTag = getString(EntranceConsts.KEY_PARENT_TAG) ?: ""
}
}
@ -45,7 +45,13 @@ class ApplyModeratorDialogFragment : BaseDialogFragment() {
val startText = "版主考核群:"
val text = "$startText$mGroupNumber\n感谢你对论坛建设的支持\n请加入版主考核群并联系群主进行版主资格考核"
binding.desTv.text = SpanBuilder(text)
.click(startText.length, startText.length + mGroupNumber.length, R.color.theme_font,true) {
.click(
requireContext(),
startText.length,
startText.length + mGroupNumber.length,
R.color.theme_font,
true
) {
DirectUtils.directToQqGroup(
requireContext(),
mGroupKey
@ -83,11 +89,11 @@ class ApplyModeratorDialogFragment : BaseDialogFragment() {
arguments = Bundle().apply {
putString(KEY_GROUP_NUMBER, number)
putString(KEY_GROUP_KEY, key)
putString(EntranceUtils.KEY_PARENT_TAG, tag)
putString(EntranceConsts.KEY_PARENT_TAG, tag)
}
}.show(
activity.supportFragmentManager,
PrivacyDialogFragment::class.java.simpleName
ApplyModeratorDialogFragment::class.java.name
)
}
}

View File

@ -14,22 +14,32 @@ import android.view.View
import android.widget.CheckBox
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.gh.common.avoidcallback.AvoidOnResultManager
import com.gh.common.avoidcallback.Callback
import com.gh.common.constant.Constants
import com.gh.gamecenter.common.avoidcallback.AvoidOnResultManager
import com.gh.gamecenter.common.avoidcallback.Callback
import com.gh.gamecenter.common.constant.Constants
import com.gh.common.util.*
import com.gh.gamecenter.R
import com.gh.gamecenter.ShellActivity
import com.gh.gamecenter.entity.AuthDialogEntity
import com.gh.gamecenter.entity.AuthDialogLevel
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.common.callback.ConfirmListener
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.common.utils.SensorsBridge
import com.gh.gamecenter.core.utils.GsonUtils
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.feature.entity.AuthDialogEntity
import com.gh.gamecenter.feature.entity.AuthDialogLevel
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.login.user.UserManager
import com.google.gson.reflect.TypeToken
import com.halo.assistant.fragment.user.UserInfoEditFragment
import com.lightgame.utils.AppManager
class CertificationDialog(context: Context, private val authDialogEntity: AuthDialogEntity, val gameId: String, val listener: DialogUtils.ConfirmListener) :
Dialog(context, R.style.GhAlertDialog) {
class CertificationDialog(
context: Context,
private val authDialogEntity: AuthDialogEntity,
val gameEntity: GameEntity,
val listener: ConfirmListener
) :
Dialog(context, R.style.GhAlertDialog) {
private lateinit var view: View
private lateinit var detailedDesTv: TextView
@ -60,9 +70,11 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
actionRightTv.text = "去实名认证"
noRemindAgainCb.visibility = View.GONE
actionLeftTv.setOnClickListener {
SensorsBridge.trackEvent("VerificationPopupClick", "button_name", actionLeftTv.text.toString())
dismiss()
}
actionRightTv.setOnClickListener {
SensorsBridge.trackEvent("VerificationPopupClick", "button_name", actionRightTv.text.toString())
if (UserManager.getInstance().isLoggedIn) {
gotoAuthPage()
} else {
@ -75,6 +87,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
actionRightTv.text = "继续下载"
noRemindAgainCb.visibility = View.GONE
actionLeftTv.setOnClickListener {
SensorsBridge.trackEvent("VerificationPopupClick", "button_name", actionLeftTv.text.toString())
if (UserManager.getInstance().isLoggedIn) {
gotoAuthPage()
} else {
@ -82,6 +95,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
}
}
actionRightTv.setOnClickListener {
SensorsBridge.trackEvent("VerificationPopupClick", "button_name", actionRightTv.text.toString())
listener.onConfirm()
dismiss()
}
@ -91,8 +105,9 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
actionRightTv.text = "继续下载"
noRemindAgainCb.visibility = View.VISIBLE
actionLeftTv.setOnClickListener {
SensorsBridge.trackEvent("VerificationPopupClick", "button_name", actionLeftTv.text.toString())
if (noRemindAgainCb.isChecked) {
SPUtils.setBoolean(gameId, true)
SPUtils.setBoolean(gameEntity.id, true)
}
if (UserManager.getInstance().isLoggedIn) {
gotoAuthPage()
@ -101,22 +116,35 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
}
}
actionRightTv.setOnClickListener {
SensorsBridge.trackEvent("VerificationPopupClick", "button_name", actionRightTv.text.toString())
if (noRemindAgainCb.isChecked) {
SPUtils.getBoolean(gameId, true)
SPUtils.getBoolean(gameEntity.id, true)
}
listener.onConfirm()
dismiss()
}
}
}
SensorsBridge.trackEvent(
"VerificationDialogShow",
"game_id",
gameEntity.id,
"game_name",
gameEntity.name ?: "",
"game_type",
gameEntity.categoryChinese
)
}
//跳转登录页面
private fun gotoLoginPage() {
val currentActivity = AppManager.getInstance().currentActivity() ?: return
CheckLoginUtils.checkLogin(currentActivity as AppCompatActivity,
null, true, "实名认证弹窗") {
CheckLoginUtils.checkLogin(
currentActivity as AppCompatActivity,
null, true, "实名认证弹窗"
) {
if (UserManager.getInstance().isAuth) {
listener.onConfirm()
dismiss()
@ -129,10 +157,17 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
val currentActivity = AppManager.getInstance().currentActivity() ?: return
AvoidOnResultManager.getInstance(currentActivity as AppCompatActivity)
.startForResult(ShellActivity.getIntent(context, ShellActivity.Type.REAL_NAME_INFO, null), object : Callback {
.startForResult(
ShellActivity.getIntent(
context,
ShellActivity.Type.REAL_NAME_INFO,
).apply {
putExtra(EntranceConsts.KEY_GAME_ID, gameEntity.id)
}, object : Callback {
override fun onActivityResult(resultCode: Int, data: Intent?) {
if (resultCode == Activity.RESULT_OK && data != null) {
val isAuthSuccess = data.getBooleanExtra(UserInfoEditFragment.AUTH_SUCCESS, false)
val isAuthSuccess =
data.getBooleanExtra(UserInfoEditFragment.AUTH_SUCCESS, false)
if (isAuthSuccess) {
listener.onConfirm()
dismiss()
@ -145,7 +180,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
companion object {
@JvmStatic
fun showCertificationDialog(context: Context, game: GameEntity, listener: DialogUtils.ConfirmListener) {
fun showCertificationDialog(context: Context, game: GameEntity, listener: ConfirmListener) {
//1.先判断是否登录 是执行2 否执行3
//2.判断是否实名认证 是终止 否执行3
//3.判断是否需要弹出认证弹窗接口
@ -161,7 +196,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
}
@SuppressLint("CheckResult")
private fun authDialog(context: Context, game: GameEntity, listener: DialogUtils.ConfirmListener) {
private fun authDialog(context: Context, game: GameEntity, listener: ConfirmListener) {
var authDialog: AuthDialogEntity? = null
if (game.authDialog != null) {
authDialog = game.authDialog
@ -176,7 +211,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
}
val isCloseAuthDialog = SPUtils.getBoolean(game.id, false)
if (authDialog != null && (authDialog.level != AuthDialogLevel.OPTIONAL_HINT.value || !isCloseAuthDialog)) {
val dialog = CertificationDialog(context, authDialog, game.id, listener)
val dialog = CertificationDialog(context, authDialog, game, listener)
dialog.show()
} else {
listener.onConfirm()

View File

@ -8,7 +8,6 @@ import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.preference.PreferenceManager
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View
@ -19,26 +18,30 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2
import com.facebook.drawee.view.SimpleDraweeView
import com.gh.common.constant.Constants
import com.gh.common.util.*
import com.gh.download.DownloadManager
import com.gh.gamecenter.R
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.utils.ImageUtils
import com.gh.gamecenter.common.utils.countDownTimer
import com.gh.gamecenter.core.utils.DisplayUtils
import com.gh.gamecenter.core.utils.GsonUtils
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.databinding.DialogDeviceRemindBinding
import com.gh.gamecenter.entity.DeviceDialogEntity
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.feature.entity.GameEntity
import com.google.gson.reflect.TypeToken
import com.gh.gamecenter.setting.GameDownloadSettingFragment.Companion.AUTO_INSTALL_SP_KEY
import com.lightgame.download.DataWatcher
import com.lightgame.download.DownloadEntity
import com.lightgame.download.DownloadStatus
import io.reactivex.disposables.Disposable
import kotlinx.android.synthetic.main.dialog_device_remind.view.*
import java.lang.ref.WeakReference
/**
* 设备提醒弹窗
*/
class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val gameEntity: GameEntity) : Dialog(context, R.style.GhAlertDialog) {
private lateinit var view: View
class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val gameEntity: GameEntity) :
Dialog(context, R.style.GhAlertDialog) {
private val mBinding: DialogDeviceRemindBinding by lazy { DialogDeviceRemindBinding.inflate(layoutInflater) }
private var currentPage = 0
private var mSlideLooperInterval = 3000L
private lateinit var mLooperHandle: LooperHandle
@ -49,8 +52,7 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
private val dataWatcher = object : DataWatcher() {
override fun onDataChanged(downloadEntity: DownloadEntity) {
if (downloadEntity.status == DownloadStatus.done && downloadEntity.name == gameEntity.name) {
val sp = PreferenceManager.getDefaultSharedPreferences(getContext())
val autoInstall = sp.getBoolean(AUTO_INSTALL_SP_KEY, true)
val autoInstall = SPUtils.getBoolean(Constants.SP_AUTO_INSTALL, true)
if (autoInstall) {
dismiss()
}
@ -76,7 +78,8 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
val type = object : TypeToken<List<DeviceDialogEntity>>() {}.type
val entities = GsonUtils.gson.fromJson<List<DeviceDialogEntity>>(datas, type)
//1.判断设备是否匹配
val entity = entities.find { it.manufacturer.toLowerCase().startsWith(Build.MANUFACTURER.toLowerCase()) }
val entity =
entities.find { it.manufacturer.toLowerCase().startsWith(Build.MANUFACTURER.toLowerCase()) }
?: return Pair(false, null)
//2.判断游戏不含剔除标签
gameEntity.tagStyle.forEach {
@ -96,13 +99,12 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
view = LayoutInflater.from(context).inflate(R.layout.dialog_device_remind, null)
setContentView(view)
setContentView(mBinding.root)
mDatas.addAll(entity.gallery)
view.titleTv.text = entity.title
view.contentTv.text = entity.content
mBinding.titleTv.text = entity.title
mBinding.contentTv.text = entity.content
view.bannerView.apply {
mBinding.bannerView.apply {
orientation = ViewPager2.ORIENTATION_HORIZONTAL
mAdapter = BannerAdapter()
val recyclerView = getChildAt(0) as RecyclerView
@ -133,36 +135,36 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
}
val isFirst = SPUtils.getBoolean(Constants.SP_FIRST_DEVICE_REMIND, false)
if (!isFirst) {
view.cancelTv.isEnabled = false
view.cancelTv.background = ContextCompat.getDrawable(context, R.drawable.button_round_f5f5f5)
mBinding.cancelTv.isEnabled = false
mBinding.cancelTv.background = ContextCompat.getDrawable(context, R.drawable.button_round_f5f5f5)
disposable = countDownTimer(3) { finish, time ->
if (finish) {
view.cancelTv.isEnabled = true
view.cancelTv.background = ContextCompat.getDrawable(context, R.drawable.button_blue_oval)
view.cancelTv.text = "我知道了"
view.cancelTv.setTextColor(ContextCompat.getColor(context, R.color.white))
mBinding.cancelTv.isEnabled = true
mBinding.cancelTv.background = ContextCompat.getDrawable(context, R.drawable.button_blue_oval)
mBinding.cancelTv.text = "我知道了"
mBinding.cancelTv.setTextColor(ContextCompat.getColor(context, R.color.white))
} else {
view.cancelTv.text = "我知道了(${time}S)"
mBinding.cancelTv.text = "我知道了(${time}S)"
}
}
SPUtils.setBoolean(Constants.SP_FIRST_DEVICE_REMIND, true)
} else {
view.noRemindAgainCb.visibility = View.VISIBLE
view.cancelTv.text = "我知道了"
view.cancelTv.isEnabled = true
view.cancelTv.setTextColor(ContextCompat.getColor(context, R.color.white))
view.cancelTv.background = ContextCompat.getDrawable(context, R.drawable.button_blue_oval)
mBinding.noRemindAgainCb.visibility = View.VISIBLE
mBinding.cancelTv.text = "我知道了"
mBinding.cancelTv.isEnabled = true
mBinding.cancelTv.setTextColor(ContextCompat.getColor(context, R.color.white))
mBinding.cancelTv.background = ContextCompat.getDrawable(context, R.drawable.button_blue_oval)
}
view.cancelTv.setOnClickListener {
SPUtils.setBoolean(Constants.SP_NO_REMIND_AGAIN, view.noRemindAgainCb.isChecked)
mBinding.cancelTv.setOnClickListener {
SPUtils.setBoolean(Constants.SP_NO_REMIND_AGAIN, mBinding.noRemindAgainCb.isChecked)
dismiss()
}
DownloadManager.getInstance().addObserver(dataWatcher)
}
private fun addIndicator() {
view.indicatorLl.removeAllViews()
mBinding.indicatorLl.removeAllViews()
mDatas.forEach { _ ->
val indicatorView = ImageView(context).apply {
setImageResource(R.drawable.selector_device_remind_indicator)
@ -171,13 +173,13 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
params.rightMargin = DisplayUtils.dip2px(1F)
layoutParams = params
}
view.indicatorLl.addView(indicatorView)
mBinding.indicatorLl.addView(indicatorView)
}
}
private fun slideIndicator(position: Int) {
for (i in 0 until view.indicatorLl.childCount) {
val childAt = view.indicatorLl.getChildAt(i)
for (i in 0 until mBinding.indicatorLl.childCount) {
val childAt = mBinding.indicatorLl.getChildAt(i)
childAt.isSelected = i == position
}
}
@ -188,7 +190,9 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
inner class BannerAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return object : RecyclerView.ViewHolder(LayoutInflater.from(context).inflate(R.layout.item_device_remind_banner, parent, false)) {}
return object : RecyclerView.ViewHolder(
LayoutInflater.from(context).inflate(R.layout.item_device_remind_banner, parent, false)
) {}
}
override fun getItemCount(): Int = if (mDatas.size == 1) mDatas.size else Int.MAX_VALUE
@ -210,7 +214,7 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
fun scrollToNextPage() {
currentPage++
view.bannerView.setCurrentItem(currentPage, true)
mBinding.bannerView.setCurrentItem(currentPage, true)
}
fun startScroll() {

View File

@ -10,18 +10,16 @@ import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.text.HtmlCompat
import com.gh.base.fragment.BaseDialogFragment
import com.gh.gamecenter.common.base.fragment.BaseDialogFragment
import com.gh.common.util.DirectUtils
import com.gh.common.util.dip2px
import com.gh.common.util.toColor
import com.gh.gamecenter.common.utils.dip2px
import com.gh.gamecenter.common.utils.toColor
import com.gh.gamecenter.R
import com.gh.gamecenter.databinding.DialogGameOffServiceBinding
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.feature.entity.GameEntity
// 游戏关闭下载弹窗
class GameOffServiceDialogFragment
// : BaseTrackableDialogFragment()
: BaseDialogFragment() {
class GameOffServiceDialogFragment : BaseDialogFragment() {
private var mDialog: GameEntity.Dialog? = null
private var mBinding: DialogGameOffServiceBinding? = null
@ -33,9 +31,9 @@ class GameOffServiceDialogFragment
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return DialogGameOffServiceBinding
.inflate(inflater)
.apply { mBinding = this }
.root
.inflate(inflater)
.apply { mBinding = this }
.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -54,16 +52,19 @@ class GameOffServiceDialogFragment
notEmptySite.forEachIndexed { index, site ->
val siteTv = TextView(context)
siteTv.layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT).apply {
siteTv.layoutParams = LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT
).apply {
topMargin = 24F.dip2px()
if (index == notEmptySite.size - 1) bottomMargin = 8F.dip2px()
}
siteTv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14F)
siteTv.setTextColor(R.color.theme_font.toColor())
siteTv.setTextColor(R.color.theme_font.toColor(requireContext()))
siteTv.text = site.text
siteTv.paintFlags = siteTv.paintFlags or Paint.UNDERLINE_TEXT_FLAG
siteTv.setOnClickListener {
// MtaHelper.onEvent("游戏下载状态按钮", getKey(), site.text)
// MtaHelper.onEvent("游戏下载状态按钮", getKey(), site.text)
DirectUtils.directToWebView(requireContext(), site.url, "(关闭下载弹窗)")
dismissAllowingStateLoss()
}
@ -78,14 +79,6 @@ class GameOffServiceDialogFragment
return super.onCreateDialog(savedInstanceState).apply { setCanceledOnTouchOutside(true) }
}
// override fun getEvent(): String {
// return "游戏下载状态按钮"
// }
//
// override fun getKey(): String {
// return "查看详情弹窗"
// }
companion object {
const val KEY_DIALOG = "dialog"

View File

@ -13,20 +13,25 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentTransaction
import com.airbnb.lottie.LottieAnimationView
import com.gh.common.constant.Config
import com.gh.common.constant.Constants
import com.gh.common.util.*
import com.gh.common.util.PermissionHelper.INSTALL_PERMISSION_CODE
import com.gh.common.xapk.XapkInstaller
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.fragment.BaseDialogFragment
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.utils.PermissionHelper
import com.gh.gamecenter.common.utils.PermissionHelper.INSTALL_PERMISSION_CODE
import com.gh.gamecenter.common.utils.getExtension
import com.gh.gamecenter.common.utils.goneIf
import com.gh.gamecenter.core.utils.SPUtils
import com.lightgame.download.DownloadEntity
import com.lightgame.utils.Utils
import kotlin.random.Random
class InstallPermissionDialogFragment : BaseTrackableDialogFragment() {
class InstallPermissionDialogFragment : BaseDialogFragment() {
lateinit var mView: View
var isXapk = false
var url: String = ""
var mCallBack: (() -> Unit)? = null
var mCallBack: ((isFromPermissionGrantedCallback: Boolean) -> Unit)? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
mView = inflater.inflate(R.layout.dialog_install_permission, null, false)
@ -54,18 +59,15 @@ class InstallPermissionDialogFragment : BaseTrackableDialogFragment() {
}
closeTv.setOnClickListener {
MtaHelper.onEvent(getEvent(), getKey(), "文案样式_点击以后再说")
if (isXapk) {
mCallBack?.invoke()
mCallBack?.invoke(false)
}
dismiss()
}
closeIv.setOnClickListener {
MtaHelper.onEvent(getEvent(), getKey(), "图标样式_点击关闭")
dismiss()
}
activateTv.setOnClickListener {
MtaHelper.onEvent(getEvent(), getKey(), if (randomNumber == 0) "文案样式_点击立即开启" else "图标样式_点击立即开启")
PermissionHelper.toInstallPermissionSetting(requireActivity())
if (isXapk) {
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, requireActivity().javaClass.name)
@ -77,44 +79,47 @@ class InstallPermissionDialogFragment : BaseTrackableDialogFragment() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == RESULT_OK && requestCode == INSTALL_PERMISSION_CODE) {
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, "")
SPUtils.setString(Constants.SP_XAPK_URL, "")
mCallBack?.invoke()
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, "")
SPUtils.setString(Constants.SP_XAPK_URL, "")
}
mCallBack?.invoke(true)
dismiss()
}
}
override fun getEvent(): String = "安装引导弹窗"
override fun getKey(): String = "引导弹窗"
companion object {
@JvmStatic
fun show(activity: AppCompatActivity, downloadEntity: DownloadEntity, callBack: (() -> Unit)?) {
fun show(
activity: AppCompatActivity,
downloadEntity: DownloadEntity,
callBack: ((isFromPermissionGrantedCallback: Boolean) -> Unit)?
) {
val isXapk = XapkInstaller.XAPK_EXTENSION_NAME == downloadEntity.path.getExtension()
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
callBack?.invoke()
callBack?.invoke(false)
return
}
val haveInstallPermission = activity.packageManager.canRequestPackageInstalls()
if (haveInstallPermission) {
callBack?.invoke()
callBack?.invoke(false)
return
}
if (isXapk) {
val xapkUnzipVersions = Config.getSettings()?.permissionPopupAppliedVersions?.xapkUnzip
if (xapkUnzipVersions?.contains(Build.VERSION.SDK_INT.toString()) == false) {
callBack?.invoke()
callBack?.invoke(false)
return
}
} else {
val installVersions = Config.getSettings()?.permissionPopupAppliedVersions?.install
if (installVersions?.contains(Build.VERSION.SDK_INT.toString()) == false) {
callBack?.invoke()
callBack?.invoke(false)
return
}
}
var installPermissionDialogFragment = activity.supportFragmentManager.findFragmentByTag(InstallPermissionDialogFragment::class.java.simpleName) as? InstallPermissionDialogFragment
var installPermissionDialogFragment =
activity.supportFragmentManager.findFragmentByTag(InstallPermissionDialogFragment::class.java.name) as? InstallPermissionDialogFragment
if (installPermissionDialogFragment != null) {
installPermissionDialogFragment.mCallBack = callBack
installPermissionDialogFragment.isXapk = isXapk
@ -128,7 +133,10 @@ class InstallPermissionDialogFragment : BaseTrackableDialogFragment() {
this.isXapk = isXapk
this.url = downloadEntity.url
}
installPermissionDialogFragment.show(activity.supportFragmentManager, InstallPermissionDialogFragment::class.java.simpleName)
installPermissionDialogFragment.show(
activity.supportFragmentManager,
InstallPermissionDialogFragment::class.java.name
)
}
}
}

View File

@ -0,0 +1,170 @@
package com.gh.common.dialog
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.TextPaint
import android.text.style.ClickableSpan
import android.view.*
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentTransaction
import com.gh.common.util.DirectUtils
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.fragment.BaseDialogFragment
import com.gh.gamecenter.common.utils.dip2px
import com.gh.gamecenter.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.databinding.DialogPrivacyProtocolNewBinding
import com.gh.gamecenter.entity.DialogEntity
class NewPrivacyPolicyDialogFragment : BaseDialogFragment() {
private var mCallBack: ((isSuccess: Boolean) -> Unit)? = null
private val mBinding by lazy { DialogPrivacyProtocolNewBinding.inflate(layoutInflater) }
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return mBinding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
updateView()
}
private fun updateView() {
val contentText = SpannableStringBuilder(
"1.您可以通过《光环助手隐私政策》以及《儿童隐私保护声明》,了解我们如何收集、使用、存储、保护、对外提供您的个人信息以及您享有的权利\n" +
"2.您可以通过《接入第三方SDK目录》了解本产品接入的第三方SDK的具体信息\n" +
"3.您可以通过《应用权限列表》了解权限申请与使用情况说明\n" +
"4.如果您是14周岁以下的未成年人您需要和您监护人一起仔细阅读《儿童隐私保护声明》并在征得您监护人同意后使用我们的产品、服务或向我们提供信息"
)
val privacyPolicyText = "《光环助手隐私政策》"
val childrenPrivacyPolicyText = "《儿童隐私保护声明》"
val thirdPartySdkText = "《接入第三方SDK目录》"
val permissionListText = "《应用权限列表》"
val hypertextList = arrayListOf(
privacyPolicyText,
childrenPrivacyPolicyText,
thirdPartySdkText,
permissionListText
)
val positionListPairList = arrayListOf<Pair<Int, Int>>()
for (hypertext in hypertextList) {
var start = 0
var index = 0
while (index != -1) {
index = contentText.indexOf(hypertext, start)
start = index + hypertext.length
if (index != -1) {
positionListPairList.add(Pair(index, start))
}
}
}
for (hypertextPositionPair in positionListPairList) {
contentText.setSpan(object : ClickableSpan() {
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.color = ContextCompat.getColor(requireContext(), R.color.theme_font)
ds.isUnderlineText = false
}
override fun onClick(widget: View) {
val privacyPolicyUrl = requireContext().getString(R.string.privacy_policy_url)
val childrenPrivacyPolicyUrl = requireContext().getString(R.string.children_policy_url)
val thirdPartySdkUrl = requireContext().getString(R.string.sdk_list_url)
val permissionListUrl = requireContext().getString(R.string.permission_and_usage_url)
val selectedUrl =
when (contentText.substring(hypertextPositionPair.first, hypertextPositionPair.second)) {
privacyPolicyText -> privacyPolicyUrl
childrenPrivacyPolicyText -> childrenPrivacyPolicyUrl
thirdPartySdkText -> thirdPartySdkUrl
permissionListText -> permissionListUrl
else -> ""
}
DirectUtils.directToExternalBrowser(requireContext(), selectedUrl)
}
}, hypertextPositionPair.first, hypertextPositionPair.second, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
}
mBinding.contentTv.movementMethod = CustomLinkMovementMethod.getInstance()
mBinding.contentTv.text = contentText
mBinding.refuseTv.setOnClickListener {
mCallBack?.invoke(false)
dismissAllowingStateLoss()
}
mBinding.agreeTv.setOnClickListener {
mCallBack?.invoke(true)
dismissAllowingStateLoss()
}
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val createDialog = super.onCreateDialog(savedInstanceState)
createDialog.setCanceledOnTouchOutside(false)
createDialog.setOnKeyListener(object : DialogInterface.OnKeyListener {
override fun onKey(dialog: DialogInterface?, keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true
}
return false
}
})
val window = createDialog.window
window?.setGravity(Gravity.CENTER)
return createDialog
}
override fun onStart() {
super.onStart()
val width = 300F.dip2px()
val height = ViewGroup.LayoutParams.WRAP_CONTENT
dialog?.window?.setLayout(width, height)
}
companion object {
const val KEY_DATA = "data"
@JvmStatic
fun show(
activity: FragmentActivity,
privacyPolicyEntity: DialogEntity.PrivacyPolicyEntity? = null,
callBack: ((isSuccess: Boolean) -> Unit)?
) {
var privacyDialogFragment =
activity.supportFragmentManager.findFragmentByTag(NewPrivacyPolicyDialogFragment::class.java.name) as? NewPrivacyPolicyDialogFragment
if (privacyDialogFragment != null) {
privacyDialogFragment.mCallBack = callBack
val transaction: FragmentTransaction = activity.supportFragmentManager.beginTransaction()
transaction.show(privacyDialogFragment)
transaction.commit()
} else {
privacyDialogFragment = NewPrivacyPolicyDialogFragment().apply {
mCallBack = callBack
}
}
privacyDialogFragment.arguments = Bundle().apply {
putParcelable(KEY_DATA, privacyPolicyEntity)
}
privacyDialogFragment.show(
activity.supportFragmentManager,
NewPrivacyPolicyDialogFragment::class.java.name
)
}
}
}

View File

@ -1,132 +0,0 @@
package com.gh.common.dialog
import android.annotation.SuppressLint
import android.content.ActivityNotFoundException
import android.content.Intent
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import com.gh.common.util.GsonUtils
import com.gh.common.util.MtaHelper
import com.gh.common.util.PermissionHelper
import com.gh.common.util.fromHtml
import com.gh.gamecenter.BuildConfig
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.NotificationStyleEntity
import com.gh.gamecenter.entity.NotificationUgc
import com.lightgame.utils.Utils
import kotlinx.android.synthetic.main.dialog_notification_hint.*
import org.json.JSONArray
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
import kotlin.random.Random
// 通知权限弹窗
class NotificationHintDialogFragment : BaseTrackableDialogFragment() {
private var mNotificationUgc: NotificationUgc? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.dialog_notification_hint, null)
}
@Suppress("DEPRECATION")
@SuppressLint("SetTextI18n")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val jsonString = getJsonFromAssets()
if (jsonString.isNullOrEmpty()) {
Utils.log("Failed to obtain configuration file")
return
}
val index = Random.nextInt(2)
val jsonArray = JSONArray(jsonString)
val jsonObj = jsonArray.getJSONObject(index)
if (!jsonObj.has(mNotificationUgc?.value)) {
Utils.log("ugc type error")
return
}
val styleEntityJson = jsonObj.getJSONObject(mNotificationUgc!!.value)
val styleEntity = GsonUtils.fromJson(styleEntityJson.toString(), NotificationStyleEntity::class.java)
val drawableId = resources.getIdentifier(styleEntity.image, "drawable", requireContext().packageName)
notificationIv.setImageDrawable(ContextCompat.getDrawable(requireContext(), drawableId))
notificationTitle.text = styleEntity.title
notificationContent.text = styleEntity.content.fromHtml()
if (index == 0) {
closeIv.setImageDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.ic_notification_close_1))
} else {
activateTv.background = ContextCompat.getDrawable(requireContext(), R.drawable.bg_notification_open_btn_style_1)
activateTv.text = "优雅的开启"
}
activateTv.setOnClickListener {
MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "点击立即开启")
MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "${styleEntity.scenes}_${styleEntity.styleNo}_点击立即开启")
dismissAllowingStateLoss()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//这种方案适用于 API 26, 即8.0含8.0)以上可以用
val intent = Intent()
intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS
intent.putExtra(Settings.EXTRA_APP_PACKAGE, BuildConfig.APPLICATION_ID)
try {
startActivity(intent)
} catch (e: ActivityNotFoundException) {
PermissionHelper.toPermissionSetting(requireActivity())
}
} else {
PermissionHelper.toPermissionSetting(requireActivity())
}
}
closeIv.setOnClickListener {
dismissAllowingStateLoss()
MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "点击关闭")
MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), "${styleEntity.scenes}_${styleEntity.styleNo}_点击关闭")
}
dialog?.setCanceledOnTouchOutside(true)
}
override fun getEvent(): String {
return "推送引导弹窗"
}
override fun getKey(): String {
return "引导弹窗"
}
override fun trackWithBasicDeviceInfo() = true
private fun getJsonFromAssets(): String? {
val stringBuilder = StringBuilder()
var bufferedReader: BufferedReader? = null
var inputStreamReader: InputStreamReader? = null
try {
inputStreamReader = InputStreamReader(requireContext().assets.open("notification_style.json"))
bufferedReader = BufferedReader(inputStreamReader)
var line: String?
while (bufferedReader.readLine().also { line = it } != null) {
stringBuilder.append(line)
}
} catch (e: IOException) {
e.printStackTrace()
} finally {
inputStreamReader?.close()
bufferedReader?.close()
}
return stringBuilder.toString()
}
companion object {
@JvmStatic
fun getInstance(ugc: NotificationUgc) = NotificationHintDialogFragment().apply {
mNotificationUgc = ugc
}
}
}

View File

@ -15,18 +15,25 @@ import androidx.fragment.app.FragmentTransaction
import androidx.lifecycle.Lifecycle
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.gh.base.BaseRecyclerViewHolder
import com.gh.common.constant.Constants
import com.gh.common.util.*
import com.gh.common.view.CustomLinkMovementMethod
import com.gh.common.util.DirectUtils
import com.gh.common.util.LogUtils
import com.gh.common.util.PackageUtils
import com.gh.download.DownloadManager
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.BaseRecyclerViewHolder
import com.gh.gamecenter.common.callback.ConfirmListener
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.entity.LinkEntity
import com.gh.gamecenter.common.utils.*
import com.gh.gamecenter.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.core.utils.DisplayUtils
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.core.utils.SpanBuilder
import com.gh.gamecenter.databinding.FragmentPackageCheckBinding
import com.gh.gamecenter.databinding.PackageCheckItemBinding
import com.gh.gamecenter.entity.DetectionObjectEntity
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.entity.LinkEntity
import com.gh.gamecenter.entity.PackageDialogEntity
import com.gh.gamecenter.feature.entity.DetectionObjectEntity
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.entity.PackageDialogEntity
import com.gh.gamecenter.eventbus.EBPackage
import com.halo.assistant.HaloApp
import com.lightgame.adapter.BaseRecyclerAdapter
@ -52,7 +59,7 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
private var mAdapter: PackageCheckAdapter? = null
private var mAllInstalledPackages = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0)
var gameEntity: GameEntity? = null
var callBack: DialogUtils.ConfirmListener? = null
var callBack: ConfirmListener? = null
private val dataWatcher = object : DataWatcher() {
override fun onDataChanged(downloadEntity: DownloadEntity) {
@ -62,9 +69,16 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
detectionObjects?.forEach { detectionObject ->
if (detectionObject.packages.contains(packageName)) {
val packageLink = gameEntity?.packageDialog?.links?.find { it.buttonLink }
LogUtils.uploadPackageCheck("pkg_check_pop_download", if (DownloadStatus.add == downloadEntity.status) "下载开始" else "下载完成",
gameEntity, packageLink?.text ?: "", packageLink?.title
?: "", downloadEntity.gameId, downloadEntity.getMetaExtra(Constants.GAME_NAME))
LogUtils.uploadPackageCheck(
"pkg_check_pop_download",
if (DownloadStatus.add == downloadEntity.status) "下载开始" else "下载完成",
gameEntity,
packageLink?.text ?: "",
packageLink?.title
?: "",
downloadEntity.gameId,
downloadEntity.getMetaExtra(Constants.GAME_NAME)
)
}
}
}
@ -98,9 +112,22 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
val spanBuilder = SpanBuilder(it.linkHintText).build()
it.links.forEachIndexed { index, link ->
val linkSpan = SpanBuilder(link.title ?: "").click(0, (link.title
?: "").length, R.color.theme_font, true) {
LogUtils.uploadPackageCheck("pkg_check_pop_click", "点击链接", gameEntity, link.text, link.title, "", "")
val linkSpan = SpanBuilder(link.title ?: "").click(
requireContext(),
0,
(link.title ?: "").length,
R.color.theme_font,
true
) {
LogUtils.uploadPackageCheck(
"pkg_check_pop_click",
"点击链接",
gameEntity,
link.text,
link.title,
"",
""
)
DirectUtils.directToLinkPage(requireContext(), link, "包名检测弹窗", "")
}.build()
spanBuilder.append(linkSpan)
@ -157,7 +184,15 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
packageLink = entity.links.find { it.buttonLink }
}
if (packageLink != null) {
LogUtils.uploadPackageCheck("pkg_check_pop_click", "点击前往下载", gameEntity, packageLink.text, packageLink.title, "", "")
LogUtils.uploadPackageCheck(
"pkg_check_pop_click",
"点击前往下载",
gameEntity,
packageLink.text,
packageLink.title,
"",
""
)
DirectUtils.directToLinkPage(requireContext(), packageLink, "包名检测弹窗", "")
}
}
@ -205,6 +240,7 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
if (it >= mDuration) {
mDisposable?.dispose()
binding.downloadBtn.isEnabled = true
binding.downloadBtn.background = R.drawable.bg_notification_open_btn_style_2.toDrawable()
}
}
val animator = ValueAnimator.ofInt(0, 100)
@ -267,13 +303,14 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
//安装、卸载事件
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEventMainThread(busFour: EBPackage) {
if ("安装" == busFour.type || "卸载" == busFour.type) {
if (busFour.isInstalledOrUninstalled()) {
mAllInstalledPackages = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0)
mAdapter?.notifyDataSetChanged()
}
}
inner class PackageCheckAdapter(val context: Context, val entities: ArrayList<DetectionObjectEntity>) : BaseRecyclerAdapter<RecyclerView.ViewHolder>(context) {
inner class PackageCheckAdapter(val context: Context, val entities: ArrayList<DetectionObjectEntity>) :
BaseRecyclerAdapter<RecyclerView.ViewHolder>(context) {
private var index = -1
fun notifyPackages() {
@ -282,7 +319,7 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return PackageCheckViewHolder(PackageCheckItemBinding.bind(LayoutInflater.from(context).inflate(R.layout.package_check_item, parent, false)))
return PackageCheckViewHolder(parent.toBinding())
}
override fun getItemCount(): Int = entities.size
@ -290,7 +327,7 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is PackageCheckViewHolder) {
val entity = entities[position]
holder.binding.entity = entity
holder.binding.gameNameTv.text = entity.text
if (position <= index) {
val isAllInstalled = checkDetectionsInstalled(mAllInstalledPackages, entity.packages)
if (isAllInstalled) {
@ -308,11 +345,12 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
}
}
class PackageCheckViewHolder(val binding: PackageCheckItemBinding) : BaseRecyclerViewHolder<DetectionObjectEntity>(binding.root)
class PackageCheckViewHolder(val binding: PackageCheckItemBinding) :
BaseRecyclerViewHolder<DetectionObjectEntity>(binding.root)
companion object {
@JvmStatic
fun show(activity: AppCompatActivity, gameEntity: GameEntity, callBack: DialogUtils.ConfirmListener) {
fun show(activity: AppCompatActivity, gameEntity: GameEntity, callBack: ConfirmListener) {
val packageDialogEntity = gameEntity.packageDialog
if (packageDialogEntity == null) {
callBack.onConfirm()
@ -339,12 +377,13 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
if (!activity.lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) return
var dialogFragment = activity.supportFragmentManager.findFragmentByTag(PackageCheckDialogFragment::class.java.simpleName) as? PackageCheckDialogFragment
var dialogFragment =
activity.supportFragmentManager.findFragmentByTag(PackageCheckDialogFragment::class.java.name) as? PackageCheckDialogFragment
if (dialogFragment == null) {
dialogFragment = PackageCheckDialogFragment()
dialogFragment.gameEntity = gameEntity
dialogFragment.callBack = callBack
dialogFragment.show(activity.supportFragmentManager, PackageCheckDialogFragment::class.java.simpleName)
dialogFragment.show(activity.supportFragmentManager, PackageCheckDialogFragment::class.java.name)
} else {
dialogFragment.gameEntity = gameEntity
dialogFragment.callBack = callBack
@ -354,7 +393,10 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
}
}
private fun checkDetectionsInstalled(allInstalledPackages: List<PackageInfo>, packages: ArrayList<String>): Boolean {
private fun checkDetectionsInstalled(
allInstalledPackages: List<PackageInfo>,
packages: ArrayList<String>
): Boolean {
var isPackagesInstalled = false
packages.forEach { packageName ->
val isInstalled = allInstalledPackages.find { it.packageName == packageName } != null
@ -367,7 +409,10 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
}
fun isAllPackageInstalled(allInstalledPackages: List<PackageInfo>, packageDialogEntity: PackageDialogEntity): Boolean {
fun isAllPackageInstalled(
allInstalledPackages: List<PackageInfo>,
packageDialogEntity: PackageDialogEntity
): Boolean {
var isAllInstalled = true
packageDialogEntity.detectionObjects.forEach loop@{ obj ->
if (!checkDetectionsInstalled(allInstalledPackages, obj.packages)) {

View File

@ -1,157 +0,0 @@
package com.gh.common.dialog
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.TextPaint
import android.text.method.ScrollingMovementMethod
import android.text.style.ClickableSpan
import android.view.*
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentTransaction
import com.gh.base.fragment.BaseDialogFragment
import com.gh.common.util.dip2px
import com.gh.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.R
import com.gh.gamecenter.WebActivity
class PrivacyDialogFragment : BaseDialogFragment() {
// private val mLocalPrivacyHtml = "file:///android_asset/privacy_policies.html"
// private val mLocalRegulationHtml = "file:///android_asset/user_regulation.html"
var containerView: View? = null
var mCallBack: ((isSuccess: Boolean) -> Unit)? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
containerView = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_privacy_protocol, null, false)
return containerView
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// val mWebViewPrivacy = containerView?.findViewById<WebView>(R.id.webView)
// val mWebViewRegulation = containerView?.findViewById<WebView>(R.id.webView2)
//
// mWebViewPrivacy?.isHorizontalScrollBarEnabled = false
// mWebViewRegulation?.isHorizontalScrollBarEnabled = false
val contentTv = containerView?.findViewById<TextView>(R.id.contentTv)
val descTv = containerView?.findViewById<TextView>(R.id.descTv)
contentTv?.movementMethod = ScrollingMovementMethod()
val skipText = SpannableStringBuilder("查看完整版的隐私政策和用户协议")
skipText.setSpan(object : ClickableSpan() {
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.color = ContextCompat.getColor(requireContext(), R.color.theme_font)
ds.isUnderlineText = false
}
override fun onClick(widget: View) {
val intent = WebActivity.getIntent(requireContext(), context!!.getString(R.string.privacy_policy_url), true)
context?.startActivity(intent)
}
}, skipText.length - 9, skipText.length - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
skipText.setSpan(object : ClickableSpan() {
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.color = ContextCompat.getColor(requireContext(), R.color.theme_font)
ds.isUnderlineText = false
}
override fun onClick(widget: View) {
val intent = WebActivity.getIntent(requireContext(), context!!.getString(R.string.disclaimer_url), true)
context?.startActivity(intent)
}
}, skipText.length - 4, skipText.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
descTv?.movementMethod = CustomLinkMovementMethod()
descTv?.text = skipText
// val mWebViewPrivacy = containerView?.findViewById<WebView>(R.id.webView)
//
// mWebViewPrivacy?.isHorizontalScrollBarEnabled = false
//
// val settingsArrayList = arrayListOf(mWebViewPrivacy?.settings, mWebViewRegulation?.settings)
//
// for (settings in settingsArrayList) {
// settings?.javaScriptEnabled = true
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// settings?.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
// }
// // 避免提示网页有害信息不能访问
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// settings?.safeBrowsingEnabled = false
// }
//
// // 适配大于屏幕宽度的页面
// settings?.useWideViewPort = true
// settings?.loadWithOverviewMode = true
// settings?.domStorageEnabled = true
//
// // 自适应屏幕
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// settings?.layoutAlgorithm = WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING
// }
// }
// mWebViewPrivacy?.webViewClient = client
// mWebViewRegulation?.webViewClient = client
containerView?.findViewById<View>(R.id.refuseTv)?.setOnClickListener {
mCallBack?.invoke(false)
dismissAllowingStateLoss()
}
containerView?.findViewById<View>(R.id.agreeTv)?.setOnClickListener {
mCallBack?.invoke(true)
dismissAllowingStateLoss()
}
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val createDialog = super.onCreateDialog(savedInstanceState)
createDialog.setCanceledOnTouchOutside(false)
createDialog.setOnKeyListener(object : DialogInterface.OnKeyListener {
override fun onKey(dialog: DialogInterface?, keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true
}
return false
}
})
val window = createDialog.window
window?.setGravity(Gravity.CENTER)
return createDialog
}
override fun onStart() {
super.onStart()
val width = requireContext().resources.displayMetrics.widthPixels - 60F.dip2px()
val height = ViewGroup.LayoutParams.WRAP_CONTENT
dialog?.window?.setLayout(width, height)
}
companion object {
@JvmStatic
fun show(activity: AppCompatActivity, callBack: ((isSuccess: Boolean) -> Unit)?) {
var privacyDialogFragment = activity.supportFragmentManager.findFragmentByTag(PrivacyDialogFragment::class.java.simpleName) as? PrivacyDialogFragment
if (privacyDialogFragment != null) {
privacyDialogFragment.mCallBack = callBack
val transaction: FragmentTransaction = activity.supportFragmentManager.beginTransaction()
transaction.show(privacyDialogFragment)
transaction.commit()
} else {
privacyDialogFragment = PrivacyDialogFragment().apply {
mCallBack = callBack
}
privacyDialogFragment.show(activity.supportFragmentManager, PrivacyDialogFragment::class.java.simpleName)
}
}
}
}

View File

@ -0,0 +1,194 @@
package com.gh.common.dialog
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.TextPaint
import android.text.method.ScrollingMovementMethod
import android.text.style.ClickableSpan
import android.view.*
import androidx.core.content.ContextCompat
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentTransaction
import com.gh.gamecenter.R
import com.gh.gamecenter.WebActivity
import com.gh.gamecenter.common.base.fragment.BaseDialogFragment
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.utils.dip2px
import com.gh.gamecenter.common.utils.fromHtml
import com.gh.gamecenter.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.databinding.DialogPrivacyProtocolBinding
import com.gh.gamecenter.entity.DialogEntity
import com.lightgame.utils.AppManager
class PrivacyPolicyDialogFragment : BaseDialogFragment() {
private var mCallBack: ((isSuccess: Boolean) -> Unit)? = null
private val mBinding by lazy { DialogPrivacyProtocolBinding.inflate(layoutInflater) }
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
return mBinding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mBinding.contentTv.movementMethod = ScrollingMovementMethod()
val privacyPolicyEntity = arguments?.get(KEY_DATA) as? DialogEntity.PrivacyPolicyEntity
if (privacyPolicyEntity == null) {
showPreLaunchStyle()
} else {
showUpdatedStyle(privacyPolicyEntity)
}
}
private fun showUpdatedStyle(privacyPolicyEntity: DialogEntity.PrivacyPolicyEntity) {
mBinding.titleIv.visibility = View.VISIBLE
mBinding.privacyTitleTv.text = "光环助手《隐私协议》更新"
mBinding.contentTv.text = privacyPolicyEntity.content.fromHtml()
val skipText = SpannableStringBuilder("查看隐私政策详情")
skipText.setSpan(object : ClickableSpan() {
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.color = ContextCompat.getColor(requireContext(), R.color.theme_font)
ds.isUnderlineText = false
}
override fun onClick(widget: View) {
val intent =
WebActivity.getIntent(requireContext(), context!!.getString(R.string.privacy_policy_url), true)
context?.startActivity(intent)
}
}, skipText.length - 6, skipText.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
mBinding.descTv.movementMethod = CustomLinkMovementMethod()
mBinding.descTv.text = skipText
if (privacyPolicyEntity.alertType == "INFORM") {
mBinding.refuseTv.visibility = View.GONE
mBinding.agreeTv.text = "我知道了"
mBinding.agreeTv.setOnClickListener {
SPUtils.setString(Constants.SP_LAST_ACCEPTED_PRIVACY_DIALOG_ID, privacyPolicyEntity.id)
mCallBack?.invoke(true)
dismissAllowingStateLoss()
}
} else {
mBinding.refuseTv.text = "不同意退出"
mBinding.agreeTv.text = "同意"
mBinding.refuseTv.setOnClickListener {
dismissAllowingStateLoss()
AppManager.getInstance().finishAllActivity()
}
mBinding.agreeTv.setOnClickListener {
SPUtils.setString(Constants.SP_LAST_ACCEPTED_PRIVACY_DIALOG_ID, privacyPolicyEntity.id)
mCallBack?.invoke(true)
dismissAllowingStateLoss()
}
}
}
private fun showPreLaunchStyle() {
val skipText = SpannableStringBuilder("查看完整版的隐私政策和用户协议")
skipText.setSpan(object : ClickableSpan() {
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.color = ContextCompat.getColor(requireContext(), R.color.theme_font)
ds.isUnderlineText = false
}
override fun onClick(widget: View) {
val intent =
WebActivity.getIntent(requireContext(), context!!.getString(R.string.privacy_policy_url), true)
context?.startActivity(intent)
}
}, skipText.length - 9, skipText.length - 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
skipText.setSpan(object : ClickableSpan() {
override fun updateDrawState(ds: TextPaint) {
super.updateDrawState(ds)
ds.color = ContextCompat.getColor(requireContext(), R.color.theme_font)
ds.isUnderlineText = false
}
override fun onClick(widget: View) {
val intent = WebActivity.getIntent(requireContext(), context!!.getString(R.string.disclaimer_url), true)
context?.startActivity(intent)
}
}, skipText.length - 4, skipText.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
mBinding.descTv.movementMethod = CustomLinkMovementMethod()
mBinding.descTv.text = skipText
mBinding.refuseTv.setOnClickListener {
mCallBack?.invoke(false)
dismissAllowingStateLoss()
}
mBinding.agreeTv.setOnClickListener {
mCallBack?.invoke(true)
dismissAllowingStateLoss()
}
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val createDialog = super.onCreateDialog(savedInstanceState)
createDialog.setCanceledOnTouchOutside(false)
createDialog.setOnKeyListener(object : DialogInterface.OnKeyListener {
override fun onKey(dialog: DialogInterface?, keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true
}
return false
}
})
val window = createDialog.window
window?.setGravity(Gravity.CENTER)
return createDialog
}
override fun onStart() {
super.onStart()
val width = requireContext().resources.displayMetrics.widthPixels - 60F.dip2px()
val height = ViewGroup.LayoutParams.WRAP_CONTENT
dialog?.window?.setLayout(width, height)
}
companion object {
const val KEY_DATA = "data"
@JvmStatic
fun show(
activity: FragmentActivity,
privacyPolicyEntity: DialogEntity.PrivacyPolicyEntity? = null,
callBack: ((isSuccess: Boolean) -> Unit)?
) {
var privacyDialogFragment =
activity.supportFragmentManager.findFragmentByTag(PrivacyPolicyDialogFragment::class.java.name) as? PrivacyPolicyDialogFragment
if (privacyDialogFragment != null) {
privacyDialogFragment.mCallBack = callBack
val transaction: FragmentTransaction = activity.supportFragmentManager.beginTransaction()
transaction.show(privacyDialogFragment)
transaction.commit()
} else {
privacyDialogFragment = PrivacyPolicyDialogFragment().apply {
mCallBack = callBack
}
}
privacyDialogFragment.arguments = Bundle().apply {
putParcelable(KEY_DATA, privacyPolicyEntity)
}
privacyDialogFragment.show(
activity.supportFragmentManager,
PrivacyPolicyDialogFragment::class.java.name
)
}
}
}

View File

@ -1,20 +1,21 @@
package com.gh.common.view
package com.gh.common.dialog
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.gh.base.BaseRecyclerViewHolder
import com.gh.base.fragment.BaseDialogFragment
import com.gh.common.util.fromHtml
import com.gh.gamecenter.common.base.BaseRecyclerViewHolder
import com.gh.gamecenter.common.base.fragment.BaseDialogFragment
import com.gh.gamecenter.common.utils.ImageUtils
import com.gh.gamecenter.common.utils.fromHtml
import com.gh.gamecenter.GameDetailActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.common.view.FixLinearLayoutManager
import com.gh.gamecenter.databinding.DialogReserveBinding
import com.gh.gamecenter.databinding.DialogReserveItemBinding
import com.gh.gamecenter.entity.SimpleGameEntity
import com.gh.gamecenter.common.entity.SimpleGameEntity
import com.gh.gamecenter.mygame.MyGameActivity
import com.lightgame.adapter.BaseRecyclerAdapter
@ -23,8 +24,8 @@ class ReserveDialog : BaseDialogFragment() {
private lateinit var mReserveList: List<SimpleGameEntity>
private var mDismissListener: (() -> Unit)? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val binding: DialogReserveBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_reserve, container, false)
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
val binding: DialogReserveBinding = DialogReserveBinding.inflate(layoutInflater, null, false)
mReserveList = arguments?.getParcelableArrayList(RESERVE_LIST) ?: arrayListOf()
@ -54,7 +55,8 @@ class ReserveDialog : BaseDialogFragment() {
override fun onBindViewHolder(holder: ReserveDialogItemViewHolder, position: Int) {
val entity = mReserveList[position]
holder.binding.game = entity
ImageUtils.display(holder.binding.icon, entity.icon)
holder.binding.gameNameTv.text = entity.name
holder.itemView.setOnClickListener {
GameDetailActivity.startGameDetailActivity(mContext, entity.id, "(预约弹窗)")
dismissAllowingStateLoss()

View File

@ -1,384 +0,0 @@
package com.gh.common.dialog
import android.annotation.SuppressLint
import android.app.Application
import android.os.Bundle
import android.text.Html
import android.view.*
import android.view.animation.AnimationUtils
import android.widget.EditText
import android.widget.TextView
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
import butterknife.BindView
import butterknife.ButterKnife
import butterknife.OnClick
import com.gh.base.fragment.BaseDialogFragment
import com.gh.common.AppExecutor
import com.gh.common.constant.Config
import com.gh.common.history.HistoryHelper
import com.gh.common.repository.ReservationRepository
import com.gh.common.util.*
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.entity.NotificationUgc
import com.gh.gamecenter.manager.UserManager
import com.gh.gamecenter.retrofit.BiResponse
import com.gh.gamecenter.retrofit.RetrofitManager
import com.halo.assistant.HaloApp
import com.lightgame.utils.Utils
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
import okhttp3.ResponseBody
import org.json.JSONArray
import org.json.JSONObject
// 预约弹窗
@Deprecated("v5.6.0废弃")
class ReserveDialogFragment
: BaseDialogFragment(), KeyboardHeightObserver {
// : BaseTrackableDialogFragment() {
@BindView(R.id.reserve_hint_tv)
lateinit var reserveHintTv: TextView
@BindView(R.id.reserve_content_tv)
lateinit var reserveContentTv: TextView
@BindView(R.id.reserve_completed_content_tv)
lateinit var reserveCompletedContentTv: TextView
@BindView(R.id.mobile_et)
lateinit var mobileEt: EditText
@BindView(R.id.reserve_container)
lateinit var reserveContainer: View
@BindView(R.id.reserve_completed_container)
lateinit var reserveCompletedContainer: View
@BindView(R.id.customizable_btn)
lateinit var customizableBtn: TextView
@BindView(R.id.content_container)
lateinit var contentContainer: View
@BindView(R.id.mobile_index_container)
lateinit var mobileIndexContainer: View
@BindView(R.id.mobile_index_reserve)
lateinit var mobileIndexReserve: TextView
@BindView(R.id.mobile_index_user)
lateinit var mobileIndexUser: TextView
@BindView(R.id.mobile_et_delete)
lateinit var mobileEtDelete: View
@BindView(R.id.layout_container)
lateinit var layoutContainer: View
private lateinit var mViewModel: ReserveViewModel
var successCallback: SuccessCallback? = null
private var mGame: GameEntity? = null
private var mGameId: String = ""
private var mGameName: String = ""
private var mKeyboardHeightProvider: KeyboardHeightProvider? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mGame = requireArguments().getParcelable(EntranceUtils.KEY_GAME)
mGameId = mGame?.id ?:""
mGameName = mGame?.name ?:""
mViewModel = viewModelProvider()
mKeyboardHeightProvider = KeyboardHeightProvider(activity)
mKeyboardHeightProvider?.start()
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
dialog?.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.dialog_reserve_game, null)
}
// override fun getEvent(): String {
// return "预约游戏"
// }
//
// override fun getKey(): String {
// return "预约功能操作"
// }
@Suppress("DEPRECATION")
@SuppressLint("SetTextI18n")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
ButterKnife.bind(this, view)
val reserveContent = "游戏上线,您将收到<font color='#1383EB'>免费短信</font>提醒"
reserveContentTv.text = Html.fromHtml(reserveContent)
mobileEt.setTextChangedListener { s, _, _, _ ->
mobileIndexContainer.visibility = View.GONE
mobileEtDelete.goneIf(s.trim().isEmpty())
}
mViewModel.reservation.observeNonNull(this) {
if (it.success) {
showSuccessDialog(it.withMobile, it.boundWechat)
successCallback?.onSuccess()
HistoryHelper.insertGameEntity(mGame!!)
}
}
mViewModel.reserveMobile.observe(viewLifecycleOwner, Observer {
setMobileIndexHint(it)
})
dialog?.setCanceledOnTouchOutside(true)
}
private fun showSuccessDialog(withMobile: Boolean, boundWechat: Boolean) {
reserveHintTv.text = "游戏预约成功"
reserveContainer.visibility = View.GONE
reserveCompletedContainer.visibility = View.VISIBLE
val reservation = Config.getSettings()?.appointment
val dialogConfig = if (withMobile) reservation?.withMobile else reservation?.withoutMobile
reserveCompletedContentTv.text = dialogConfig?.htmlContent?.fromHtml()
if (dialogConfig?.text.isNullOrEmpty()
|| (dialogConfig?.type == "wechat_bind" && boundWechat)) {
customizableBtn.visibility = View.GONE
} else {
customizableBtn.text = dialogConfig?.text
customizableBtn.setOnClickListener {
// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击跳转按钮")
DirectUtils.directToLinkPage(
requireContext(),
dialogConfig!!.toLinkEntity(),
"(游戏预约)",
"")
dismissAllowingStateLoss()
}
}
}
private fun setMobileIndexHint(reserveMobile: String?) {
var userMobile = UserManager.getInstance().userInfoEntity?.mobile
if (reserveMobile == userMobile) userMobile = null
if (!reserveMobile.isNullOrEmpty()) {
mobileIndexReserve.visibility = View.VISIBLE
mobileIndexReserve.text = reserveMobile
} else {
mobileIndexReserve.visibility = View.GONE
}
if (!userMobile.isNullOrEmpty()) {
mobileIndexUser.visibility = View.VISIBLE
mobileIndexUser.text = userMobile
} else {
mobileIndexUser.visibility = View.GONE
}
mobileIndexContainer.goneIf(mobileIndexUser.visibility == View.GONE && mobileIndexReserve.visibility == View.GONE)
if (mobileIndexContainer.visibility ==View.VISIBLE) {
mobileIndexContainer.animation = AnimationUtils.loadAnimation(requireContext(), R.anim.reserve_dialog_index_anim)
}
}
@OnClick(R.id.reserve_with_mobile_btn,
R.id.reserve_without_mobile_btn,
R.id.content_container,
R.id.close_btn,
R.id.customizable_btn,
R.id.mobile_index_reserve,
R.id.mobile_index_user,
R.id.mobile_et_delete,
R.id.mobile_et,
R.id.layout_container)
fun onClick(view: View) {
when (view.id) {
R.id.reserve_without_mobile_btn -> {
// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击无手机号预约")
if (mobileIndexContainer.visibility == View.VISIBLE) {
mobileIndexContainer.visibility = View.GONE
return
}
mViewModel.reserve(gameId = mGameId, gameName = mGameName)
}
R.id.reserve_with_mobile_btn -> {
if (mobileIndexContainer.visibility == View.VISIBLE) {
mobileIndexContainer.visibility = View.GONE
return
}
val mobile = mobileEt.text.toString()
if (mobile.length < 11 || !mobile.startsWith("1")) {
Utils.toast(context, "手机号格式错误,请检查并重新输入")
return
}
// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击立即预约")
mViewModel.reserve(gameId = mGameId, gameName = mGameName, mobile = mobile)
}
R.id.close_btn -> {
// MtaHelper.onEvent("预约游戏", "预约功能操作", "点击关闭")
dismissAllowingStateLoss()
AppExecutor.uiExecutor.executeWithDelay(Runnable {
NotificationHelper.showNotificationHintDialog(NotificationUgc.RESERVE_GAME)
}, 1000)
}
R.id.content_container -> {
mobileIndexContainer.visibility = View.GONE
}
R.id.mobile_index_reserve -> {
mobileEt.setText(mobileIndexReserve.text.toString())
mobileEt.setSelection(mobileEt.text.length)
mobileIndexContainer.visibility = View.GONE
}
R.id.mobile_index_user -> {
mobileEt.setText(mobileIndexUser.text.toString())
mobileEt.setSelection(mobileEt.text.length)
mobileIndexContainer.visibility = View.GONE
}
R.id.mobile_et_delete -> {
mobileEt.setText("")
}
R.id.mobile_et -> {
mobileIndexContainer.visibility = View.GONE
}
R.id.layout_container -> {
dismissAllowingStateLoss()
}
}
}
override fun onResume() {
super.onResume()
if (HaloApp.getInstance().mCacheKeyboardHeight > 0) {
val attributes = dialog?.window?.attributes
val heightPixels = requireContext().resources.displayMetrics.heightPixels
val mCacheKeyboardHeight = HaloApp.getInstance().mCacheKeyboardHeight
val statusBarHeight = DisplayUtils.getStatusBarHeight(requireContext().resources)
dialog?.window?.attributes?.height = heightPixels - mCacheKeyboardHeight - statusBarHeight
attributes?.gravity = Gravity.TOP
dialog?.window?.attributes = attributes
}
mKeyboardHeightProvider?.setKeyboardHeightObserver(this)
}
override fun onPause() {
super.onPause()
mKeyboardHeightProvider?.setKeyboardHeightObserver(null)
}
override fun onDestroy() {
super.onDestroy()
mKeyboardHeightProvider?.close()
}
override fun onKeyboardHeightChanged(height: Int, orientation: Int) {
if (height > 0) {
val attributes = dialog?.window?.attributes
attributes?.gravity = Gravity.CENTER
dialog?.window?.attributes = attributes
HaloApp.getInstance().mCacheKeyboardHeight = height
}
}
companion object {
@JvmStatic
fun getInstance(gameEntity: GameEntity, successCallback: SuccessCallback) = ReserveDialogFragment().apply {
arguments = Bundle().apply {
putParcelable(EntranceUtils.KEY_GAME, gameEntity)
}
this.successCallback = successCallback
}
}
interface SuccessCallback {
fun onSuccess()
}
}
class ReserveViewModel(application: Application) : AndroidViewModel(application) {
val reservation = MutableLiveData<Reservation>()
val reserveMobile = MutableLiveData<String>()
init {
getAppointmentMobile()
}
@SuppressLint("CheckResult")
fun reserve(gameId: String, gameName: String, mobile: String = "") {
val requestMap = hashMapOf<String, String>()
requestMap["game_id"] = gameId
if (mobile.isNotEmpty()) {
requestMap["mobile"] = mobile
}
RetrofitManager.getInstance().api
.createNewGameReservation(requestMap.createRequestBody())
.subscribeOn(Schedulers.io())
.subscribe(object : BiResponse<ResponseBody>() {
override fun onSuccess(data: ResponseBody) {
var boundWechat = false
tryWithDefaultCatch {
boundWechat = JSONObject(data.string() ?: "").getBoolean("wechat_bind")
}
reservation.postValue(Reservation(success = true, withMobile = mobile.isNotEmpty(), boundWechat = boundWechat))
ReservationRepository.addReservationToMemoryAndRefresh(gameId)
// MtaHelper.onEvent("预约游戏", "预约", gameName)
}
override fun onFailure(exception: Exception) {
Utils.toast(getApplication(), exception.message)
}
})
}
@SuppressLint("CheckResult")
private fun getAppointmentMobile() {
RetrofitManager.getInstance().api
.getAppointmentMobile(UserManager.getInstance().userId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : BiResponse<ResponseBody>() {
override fun onSuccess(data: ResponseBody) {
var mobile: String? = null
tryCatchInRelease {
val jsonArray = JSONArray(data.string())
if (jsonArray.length() > 0) {
mobile = jsonArray.get(0).toString()
}
}
reserveMobile.postValue(mobile)
}
override fun onFailure(exception: Exception) {
reserveMobile.postValue(null)
}
})
}
class Reservation(var success: Boolean = false, var withMobile: Boolean = false, var boundWechat: Boolean = false)
}

View File

@ -1,57 +0,0 @@
package com.gh.common.dialog
import android.app.Dialog
import android.content.Context
import android.os.Bundle
import android.view.KeyEvent
import com.gh.common.util.MtaHelper
import java.util.concurrent.atomic.AtomicBoolean
open class TrackableDialog(context: Context,
themeResId: Int,
private var mEvent: String,
private var mKey: String,
private var mValue: String? = null,
private var mCancelValue: String? = null,
private var mKeyBackValue: String? = null,
private var mLogShowEvent: Boolean = true)
: Dialog(context, themeResId) {
// 区分此 dialog 是点击 dialog 外部取消的还是点击返回取消的
private val mIsCanceledByClickOutsideOfDialog = AtomicBoolean(true)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setOnCancelListener {
if (mIsCanceledByClickOutsideOfDialog.get()) {
MtaHelper.onEvent(mEvent, mKey, mCancelValue ?: "点击空白")
if (!mValue.isNullOrEmpty()) {
MtaHelper.onEvent(mEvent, "点击空白", mValue)
}
}
}
setOnKeyListener { _, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
mIsCanceledByClickOutsideOfDialog.set(false)
MtaHelper.onEvent(mEvent, mKey, mKeyBackValue ?: "点击返回")
if (mValue != null) {
MtaHelper.onEvent(mEvent, "点击返回", mValue)
}
}
false
}
}
override fun show() {
super.show()
if (mLogShowEvent) {
MtaHelper.onEvent(mEvent, mKey, "出现弹窗")
if (!mValue.isNullOrEmpty()) {
MtaHelper.onEvent(mEvent, "出现弹窗", mValue)
}
}
}
}

View File

@ -1,61 +0,0 @@
package com.gh.common.exposure
import androidx.room.TypeConverter
import com.gh.common.exposure.meta.Meta
import com.gh.common.util.GsonUtils
import java.util.*
import kotlin.collections.ArrayList
class ExposureConverters {
@TypeConverter
fun convertPayload2String(any: ExposureEntity): String {
return GsonUtils.toJson(any)
}
@TypeConverter
fun convertString2Payload(string: String): ExposureEntity {
return GsonUtils.fromJson(string, ExposureEntity::class.java)
}
@TypeConverter
fun convertSource2String(sourceList: List<ExposureSource>): String {
return GsonUtils.toJson(sourceList)
}
@TypeConverter
fun convertString2Source(sourceList: String): List<ExposureSource> {
return ArrayList(Arrays.asList(GsonUtils.fromJson(sourceList, Array<ExposureSource>::class.java))) as List<ExposureSource>
}
@TypeConverter
fun convertETrace2String(sourceList: List<ExposureEvent>?): String {
return GsonUtils.toJson(sourceList)
}
@TypeConverter
fun convertStringToETrace(sourceList: String): List<ExposureEvent> {
return ArrayList(Arrays.asList(GsonUtils.fromJson(sourceList, Array<ExposureEvent>::class.java))) as List<ExposureEvent>
}
@TypeConverter
fun convertExposeType2String(exposureType: ExposureType): String {
return exposureType.toString()
}
@TypeConverter
fun convertStringToExposeType(exposureType: String): ExposureType {
return ExposureType.valueOf(exposureType)
}
@TypeConverter
fun convertMeta2String(any: Meta): String {
return GsonUtils.toJson(any)
}
@TypeConverter
fun convertString2Meta(string: String): Meta {
return GsonUtils.fromJson(string, Meta::class.java)
}
}

View File

@ -1,23 +0,0 @@
package com.gh.common.exposure
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import android.content.Context
@TypeConverters(ExposureConverters::class)
@Database(entities = [ExposureEvent::class], version = 1, exportSchema = false)
abstract class ExposureDatabase : RoomDatabase() {
companion object {
private const val DATABASE = "exposure_database"
fun buildDatabase(context: Context): ExposureDatabase {
return Room.databaseBuilder(context, ExposureDatabase::class.java, DATABASE)
.fallbackToDestructiveMigration()
.build()
}
}
abstract fun logHubEventDao(): ExposureEventDao
}

View File

@ -1,84 +0,0 @@
package com.gh.common.exposure
import android.os.Parcelable
import androidx.annotation.Keep
import com.google.gson.annotations.SerializedName
import kotlinx.android.parcel.Parcelize
@Keep
@Parcelize
data class ExposureEntity(
@SerializedName("game_id")
val gameId: String? = "",
@SerializedName("subject_id")
val subjectId: String? = null, // 专题 id
val gameName: String? = "",
val gameVersion: String? = "",
val sequence: Int? = 0,
val outerSequence: Int? = 0,
val platform: String? = null,
var isMirrorData: Boolean = false,
@SerializedName("is_web_download")
var isWebDownload: Boolean = false,
val downloadType: String? = null,
val downloadCompleteType: String? = null,
@SerializedName("display_type")
val displayType: String? = "",
@SerializedName("is_platform_recommend")
val isPlatformRecommend: Boolean? = false,
// 外层内容 id (包括)
// 1. "test_server_id" : "", // 开测表 ID
// 2. "block_id" : "", // 板块 ID
// 3. "category_id" : "", // 新分类1.0 ID
// 4. "category_v2_id" : "", // 新分类2.0 ID
var containerId: String? = null,
var containerType: String? = null,
@SerializedName("test_server_id")
var testServerId: String? = null,
@SerializedName("block_id")
var blockId: String? = null,
@SerializedName("category_id")
var categoryId: String? = null,
@SerializedName("category_v2_id")
var categoryV2Id: String? = null,
// 专题详情的来源页面和来源 id
@SerializedName("source_page")
var sourcePage: String? = null,
@SerializedName("source_page_id")
var sourcePageId: String? = null,
@SerializedName("source_page_name")
var sourcePageName: String? = null,
// 下载地址的 host 和 path
var host: String? = null,
var path: String? = null,
// 统计启动弹窗相关数据用的 (ugly)
@SerializedName("dialog_id")
var welcomeDialogId: String? = null,
@SerializedName("link_title")
var welcomeDialogLinkTitle: String? = null
) : Parcelable {
fun setContainerInfo(id: String?, type: String?) {
when (type) {
TEST_SERVER_ID -> testServerId = id
BLOCK_ID -> blockId = id
CATEGORY_ID -> categoryId = id
CATEGORY_V2_ID -> categoryV2Id = id
}
containerId = null
containerType = null
}
companion object {
const val TEST_SERVER_ID = "test_server_id"
const val BLOCK_ID = "block_id"
const val CATEGORY_ID = "category_id"
const val CATEGORY_V2_ID = "category_v2_id"
}
}

View File

@ -1,110 +0,0 @@
package com.gh.common.exposure
import android.os.Parcelable
import androidx.annotation.Keep
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.gh.common.constant.Constants
import com.gh.common.exposure.meta.Meta
import com.gh.common.exposure.meta.MetaUtil
import com.gh.common.exposure.time.TimeUtil
import com.gh.common.util.getFirstElementDividedByDivider
import com.gh.download.server.BrowserInstallHelper
import com.gh.gamecenter.entity.GameEntity
import com.lightgame.download.DownloadEntity
import kotlinx.android.parcel.Parcelize
import java.util.*
import kotlin.collections.ArrayList
@Keep
@Parcelize
@Entity(tableName = "exposureEvent")
data class ExposureEvent(
var payload: ExposureEntity,
val source: List<ExposureSource>,
var eTrace: List<ExposureEvent>? = arrayListOf(),
val event: ExposureType,
val meta: Meta = MetaUtil.getMeta(),
val time: Int = TimeUtil.currentTime(),
@PrimaryKey
val id: String = UUID.randomUUID().toString()
) : Parcelable {
companion object {
@JvmStatic
fun createEvent(
gameEntity: GameEntity?,
source: List<ExposureSource>,
eTrace: List<ExposureEvent>? = null,
event: ExposureType = ExposureType.EXPOSURE
): ExposureEvent {
if (gameEntity?.getApk()?.size == 1) {
gameEntity.gameVersion = gameEntity.getApk().elementAtOrNull(0)?.version ?: ""
}
return ExposureEvent(
payload = ExposureEntity(
gameId = gameEntity?.id?.getFirstElementDividedByDivider(DownloadEntity.GAME_ID_DIVIDER),
gameName = eTrace?.firstOrNull()?.payload?.gameName
?: gameEntity?.name?.removeSuffix(Constants.GAME_NAME_DECORATOR),
gameVersion = eTrace?.firstOrNull()?.payload?.gameVersion
?: gameEntity?.gameVersion,
subjectId = eTrace?.firstOrNull()?.payload?.subjectId
?: gameEntity?.subjectId
?: gameEntity?.subjectData?.id,
isMirrorData = eTrace?.firstOrNull()?.payload?.isMirrorData
?: gameEntity?.shouldUseMirrorInfo() ?: false,
isWebDownload = BrowserInstallHelper.isUseBrowserToInstallEnabled() && BrowserInstallHelper.shouldUseBrowserToInstall(), // 实时的值,不用从 eTrace 里取
sequence = eTrace?.firstOrNull()?.payload?.sequence ?: gameEntity?.sequence,
outerSequence = eTrace?.firstOrNull()?.payload?.outerSequence
?: gameEntity?.outerSequence,
platform = eTrace?.firstOrNull()?.payload?.platform ?: gameEntity?.platform,
downloadType = gameEntity?.downloadType,
downloadCompleteType = gameEntity?.downloadCompleteType,
displayType = eTrace?.firstOrNull()?.payload?.displayType
?: gameEntity?.displayContent,
isPlatformRecommend = gameEntity?.isPlatformRecommend,
// ugly
welcomeDialogId = gameEntity?.welcomeDialogId
?: eTrace?.firstOrNull()?.payload?.welcomeDialogId,
welcomeDialogLinkTitle = gameEntity?.welcomeDialogTitle
?: eTrace?.firstOrNull()?.payload?.welcomeDialogLinkTitle
),
source = source,
eTrace = eTrace,
event = event
).also {
it.payload.categoryId = eTrace?.firstOrNull()?.payload?.categoryId
it.payload.categoryV2Id = eTrace?.firstOrNull()?.payload?.categoryV2Id
it.payload.testServerId = eTrace?.firstOrNull()?.payload?.testServerId
it.payload.blockId = eTrace?.firstOrNull()?.payload?.blockId
it.payload.setContainerInfo(
eTrace?.firstOrNull()?.payload?.containerId ?: gameEntity?.containerId,
eTrace?.firstOrNull()?.payload?.containerType ?: gameEntity?.containerType
)
it.payload.sourcePage = eTrace?.firstOrNull()?.payload?.sourcePage
it.payload.sourcePageId = eTrace?.firstOrNull()?.payload?.sourcePageId
it.payload.sourcePageName = eTrace?.firstOrNull()?.payload?.sourcePageName
gameEntity?.exposureEvent = it
}
}
@JvmStatic
fun createEventWithSourceConcat(
gameEntity: GameEntity?,
basicSource: List<ExposureSource>,
source: List<ExposureSource>,
eTrace: List<ExposureEvent>? = null,
event: ExposureType = ExposureType.EXPOSURE
): ExposureEvent {
val concatSourceList = ArrayList<ExposureSource>().apply {
addAll(basicSource)
addAll(source)
}
return createEvent(gameEntity, concatSourceList, eTrace, event)
}
}
}

View File

@ -1,18 +0,0 @@
package com.gh.common.exposure
import androidx.room.*
@Dao
interface ExposureEventDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertMany(eventList: List<ExposureEvent>)
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(event: ExposureEvent)
@Query("SELECT * FROM exposureEvent")
fun getAll(): List<ExposureEvent>
@Delete
fun deleteMany(eventList: List<ExposureEvent>)
}

View File

@ -4,6 +4,7 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.gh.gamecenter.feature.exposure.ExposureEvent
import io.reactivex.functions.Consumer
/**
@ -11,26 +12,32 @@ import io.reactivex.functions.Consumer
*/
class ExposureListener(var fragment: Fragment, var exposable: IExposable) : RecyclerView.OnScrollListener() {
val throttleBus: ExposureThrottleBus by lazy { ExposureThrottleBus(Consumer { commitExposure(it) }, Consumer(Throwable::printStackTrace)) }
val throttleBus: ExposureThrottleBus by lazy {
ExposureThrottleBus(
Consumer { commitExposure(it) },
Consumer(Throwable::printStackTrace)
)
}
var layoutManager: LinearLayoutManager? = null
var visibleState: ExposureThrottleBus.VisibleState? = null
init {
fragment.fragmentManager?.registerFragmentLifecycleCallbacks(
object : FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentPaused(fm: FragmentManager, f: Fragment) {
if (fragment == f) {
visibleState?.let { commitExposure(it) }
throttleBus.clear()
}
object : FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentPaused(fm: FragmentManager, f: Fragment) {
if (fragment == f) {
visibleState?.let { commitExposure(it) }
throttleBus.clear()
}
}
override fun onFragmentViewDestroyed(fm: FragmentManager, f: Fragment) {
if (fragment == f) {
fragment.fragmentManager?.unregisterFragmentLifecycleCallbacks(this)
}
override fun onFragmentViewDestroyed(fm: FragmentManager, f: Fragment) {
if (fragment == f) {
fragment.fragmentManager?.unregisterFragmentLifecycleCallbacks(this)
}
}, false)
}
}, false
)
}
/**
@ -43,7 +50,8 @@ class ExposureListener(var fragment: Fragment, var exposable: IExposable) : Recy
if (layoutManager == null) layoutManager = recyclerView.layoutManager as LinearLayoutManager
layoutManager?.run {
visibleState = ExposureThrottleBus.VisibleState(findFirstVisibleItemPosition(), findLastVisibleItemPosition())
visibleState =
ExposureThrottleBus.VisibleState(findFirstVisibleItemPosition(), findLastVisibleItemPosition())
throttleBus.postVisibleState(visibleState!!)
}
}

View File

@ -1,13 +1,12 @@
package com.gh.common.exposure
import com.aliyun.sls.android.producer.Log
import com.gh.common.loghub.LoghubHelper
import com.gh.common.util.toJson
import com.gh.common.util.tryWithDefaultCatch
import com.gh.gamecenter.BuildConfig
import com.halo.assistant.HaloApp
import com.gh.gamecenter.common.loghub.LoghubHelper
import com.gh.gamecenter.common.utils.FixedSizeLinkedHashSet
import com.gh.gamecenter.common.utils.toJson
import com.gh.gamecenter.feature.exposure.ExposureEvent
import com.lightgame.utils.Utils
import java.util.concurrent.ExecutorService
/**
* A handful tool for committing logs to aliyun loghub.
@ -25,40 +24,17 @@ object ExposureManager {
// exposureCache 用来过滤掉具有相同 id 的曝光事件,避免重复发送事件
private val exposureSet by lazy { hashSetOf<ExposureEvent>() }
private var exposureExecutor: ExecutorService? = null
private val exposureCache by lazy { FixedSizeLinkedHashSet<String>(300) }
private val exposureDao by lazy { ExposureDatabase.buildDatabase(HaloApp.getInstance().application).logHubEventDao() }
@JvmStatic
fun init(excutor: ExecutorService) {
exposureExecutor = excutor
exposureExecutor?.execute {
tryWithDefaultCatch {
val eventList = exposureDao.getAll()
exposureSet.addAll(eventList)
}
}
}
/**
* Log a single exposure event.
*/
fun log(event: ExposureEvent) {
exposureExecutor?.execute {
try {
if (!exposureCache.contains(event.id)) {
// Catch `android.database.sqlite.SQLiteFullException: database or disk is full` exception.
exposureSet.add(event)
exposureDao.insert(event)
exposureCache.add(event.id)
} else {
Utils.log("Exposure", "遇到重复曝光事件,自动过滤 ${event.id} - ${event.payload.gameName}")
}
} catch (e: Exception) {
e.printStackTrace()
}
if (!exposureCache.contains(event.id)) {
exposureSet.add(event)
exposureCache.add(event.id)
} else {
Utils.log("Exposure", "遇到重复曝光事件,自动过滤 ${event.id} - ${event.payload.gameName}")
}
}
@ -66,51 +42,37 @@ object ExposureManager {
* Log a collection of exposure event.
*/
fun log(eventList: List<ExposureEvent>) {
exposureExecutor?.execute {
for (event in eventList) {
try {
if (!exposureCache.contains(event.id)) {
// Catch `android.database.sqlite.SQLiteFullException: database or disk is full` exception.
exposureSet.add(event)
exposureDao.insert(event)
exposureCache.add(event.id)
} else {
Utils.log("Exposure", "遇到重复曝光事件,自动过滤 ${event.id} - ${event.payload.gameName}")
}
} catch (e: Exception) {
e.printStackTrace()
}
for (event in eventList) {
if (!exposureCache.contains(event.id)) {
exposureSet.add(event)
exposureCache.add(event.id)
} else {
Utils.log("Exposure", "遇到重复曝光事件,自动过滤 ${event.id} - ${event.payload.gameName}")
}
commitSavedExposureEvents()
}
commitSavedExposureEvents()
}
/**
* @param forced Ignore all restrictions.
* @param forcedUpload Ignore all restrictions.
*/
fun commitSavedExposureEvents(forced: Boolean = false) {
exposureExecutor?.execute {
tryWithDefaultCatch {
// TODO 初始化 loghubHelper 去掉这个 tryCatch 块
if (exposureSet.size < STORE_SIZE && !forced || exposureSet.size == 0) return@execute
fun commitSavedExposureEvents(forcedUpload: Boolean = false) {
if (exposureSet.size < STORE_SIZE && !forcedUpload || exposureSet.size == 0) return
val exposureList = exposureSet.toList()
uploadExposures(exposureList)
uploadExposures(exposureSet.toList(), forcedUpload)
Utils.log("Exposure", "提交了${exposureList.size}条曝光记录")
exposureSet.removeAll(exposureList)
exposureDao.deleteMany(exposureList)
}
}
Utils.log("Exposure", "提交了${exposureSet.size}条曝光记录")
exposureSet.clear()
}
private fun eliminateMultipleBrackets(jsonWithMultipleBracket: String): String {
return jsonWithMultipleBracket.replace("[[", "[").replace("]]", "]")
}
private fun uploadExposures(eventList: List<ExposureEvent>) {
private fun uploadExposures(eventList: List<ExposureEvent>, forced: Boolean) {
eventList.forEach {
LoghubHelper.uploadLog(buildLog(it), LOG_STORE)
LoghubHelper.uploadLog(buildLog(it), LOG_STORE, forced)
it.recycle()
}
}
@ -120,25 +82,12 @@ object ExposureManager {
putContent("event", event.event.toString())
putContent("source", eliminateMultipleBrackets(event.source.toJson()))
putContent("meta", event.meta.toJson())
putContent("e-traces", if (event.eTrace != null) {
eliminateMultipleBrackets(event.eTrace?.toJson() ?: "")
} else "")
logTime = event.time.toLong()
}
class FixedSizeLinkedHashSet<T>(var maxSize: Int) : LinkedHashSet<T>() {
override fun add(element: T): Boolean {
if (size == maxSize) {
pop()
}
return super.add(element);
}
private fun pop() {
if (size > 0) {
remove(iterator().next())
}
}
putContent("real_millisecond", event.timeInMillisecond.toString())
putContent(
"e-traces", if (event.eTrace != null) {
eliminateMultipleBrackets(event.eTrace?.toJson() ?: "")
} else ""
)
}
}

View File

@ -1,9 +0,0 @@
package com.gh.common.exposure
import android.os.Parcelable
import androidx.annotation.Keep
import kotlinx.android.parcel.Parcelize
@Keep
@Parcelize
data class ExposureSource(var k: String, var v: String = ""): Parcelable

View File

@ -23,10 +23,10 @@ class ExposureThrottleBus(var onSuccess: Consumer<VisibleState>, var onError: Co
* throttleWithTimeout() to pass a visibleState event with a delay and drop current event if another event arrives before the timeout.
*/
val disposable = mPublishSubject
.distinctUntilChanged()
.throttleWithTimeout(THRESHOLD_TIME, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.subscribe(onSuccess, onError)
.distinctUntilChanged()
.throttleWithTimeout(THRESHOLD_TIME, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.io())
.subscribe(onSuccess, onError)
mCompositeDisposable.add(disposable)
}

View File

@ -1,16 +1,20 @@
package com.gh.common.exposure
import com.gh.gamecenter.feature.exposure.ExposureEvent
object ExposureTraceUtils {
fun appendTrace(event: ExposureEvent?): List<ExposureEvent> {
val traceList = arrayListOf<ExposureEvent>()
event?.let {
if (event.eTrace == null) {
traceList.add(event)
//这里使用deepCopy是为了防止循环引用调用hashCode方法触发StackOverflowError错误
val deepCopy = it.deepCopy()
if (deepCopy.eTrace == null) {
traceList.add(deepCopy)
} else {
traceList.addAll(event.eTrace!!)
traceList.add(flattenTrace(event))
traceList.addAll(deepCopy.eTrace!!)
traceList.add(flattenTrace(deepCopy))
}
}

View File

@ -1,11 +0,0 @@
package com.gh.common.exposure
enum class ExposureType {
EXPOSURE,
CLICK,
DOWNLOAD,
DOWNLOAD_COMPLETE
}

View File

@ -3,15 +3,19 @@ package com.gh.common.exposure
import android.text.TextUtils
import com.g00fy2.versioncompare.Version
import com.gh.common.util.PackageUtils
import com.gh.common.util.toObject
import com.gh.gamecenter.entity.ApkEntity
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.common.utils.FixedSizeLinkedHashSet
import com.gh.gamecenter.common.utils.toObject
import com.gh.gamecenter.feature.entity.ApkEntity
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.exposure.ExposureEvent
import com.gh.gamecenter.feature.exposure.ExposureType
import com.gh.gamecenter.manager.PackagesManager
import com.halo.assistant.HaloApp
import com.lightgame.download.DownloadEntity
object ExposureUtils {
private val mDownloadCompleteTraceEventIdSet = ExposureManager.FixedSizeLinkedHashSet<String>(3)
private val mDownloadCompleteTraceEventIdSet = FixedSizeLinkedHashSet<String>(3)
@JvmStatic
fun logADownloadExposureEvent(
@ -20,7 +24,7 @@ object ExposureUtils {
traceEvent: ExposureEvent?,
downloadType: DownloadType
): ExposureEvent {
val gameEntity = entity.clone()
val gameEntity = entity.copy()
gameEntity.id = if (entity.id.contains(DownloadEntity.GAME_ID_DIVIDER)) {
entity.id.split(DownloadEntity.GAME_ID_DIVIDER).toTypedArray()[0]
} else {
@ -47,11 +51,12 @@ object ExposureUtils {
entity: GameEntity,
platform: String?,
trace: String?,
speed: Long,
host: String? = "unknown",
path: String? = "unknown",
downloadType: DownloadType
) {
val gameEntity = entity.clone()
val gameEntity = entity.copy()
gameEntity.platform = platform
gameEntity.downloadCompleteType = downloadType.toString()
val traceEvent = trace?.toObject<ExposureEvent>()
@ -73,45 +78,47 @@ object ExposureUtils {
)
exposureEvent.payload.host = host
exposureEvent.payload.path = path
exposureEvent.payload.speed = speed
ExposureManager.log(exposureEvent)
ExposureManager.commitSavedExposureEvents(forced = true)
ExposureManager.commitSavedExposureEvents(forcedUpload = true)
}
@JvmStatic
fun getDownloadType(apkEntity: ApkEntity, gameId: String): DownloadType {
return if (PackageUtils.isInstalled(
fun getDownloadType(apkEntity: ApkEntity, gameId: String, isVGame: Boolean): DownloadType {
return when {
isVGame -> getVGameDownloadType(apkEntity, gameId)
PackageUtils.isInstalled(
HaloApp.getInstance().application,
apkEntity.packageName
)
) {
if (PackageUtils.isSignedByGh(
HaloApp.getInstance().application,
apkEntity.packageName
)
) {
if (PackageUtils.isCanUpdate(apkEntity, gameId)) {
DownloadType.PLUGIN_UPDATE
} else {
if (Version(apkEntity.version).isHigherThan(
PackageUtils.getVersionNameByPackageName(
apkEntity.packageName
)
)
) {
DownloadType.UPDATE
} else {
DownloadType.DOWNLOAD
}
}
} else {
if (!TextUtils.isEmpty(apkEntity.ghVersion)) {
DownloadType.PLUGIN_DOWNLOAD
} else {
DownloadType.UPDATE
}
}
} else {
DownloadType.DOWNLOAD
) -> getInstallDownloadType(apkEntity, gameId)
else -> DownloadType.DOWNLOAD
}
}
private fun getVGameDownloadType(apkEntity: ApkEntity, gameId: String): DownloadType {
return when {
PackagesManager.isCanUpdate(gameId, apkEntity.packageName) -> DownloadType.FUN_UPDATE
else -> DownloadType.FUN_DOWNLOAD
}
}
private fun getInstallDownloadType(apkEntity: ApkEntity, gameId: String): DownloadType {
return when {
PackageUtils.isSignedByGh(
HaloApp.getInstance().application,
apkEntity.packageName
) -> getUpdateDownloadType(apkEntity, gameId)
!TextUtils.isEmpty(apkEntity.ghVersion) -> DownloadType.PLUGIN_DOWNLOAD
else -> DownloadType.UPDATE
}
}
private fun getUpdateDownloadType(apkEntity: ApkEntity, gameId: String): DownloadType {
return when {
PackageUtils.isCanUpdate(apkEntity, gameId) -> DownloadType.PLUGIN_UPDATE
Version(apkEntity.version).isHigherThan(PackageUtils.getVersionNameByPackageName(apkEntity.packageName)) -> DownloadType.UPDATE
else -> DownloadType.DOWNLOAD
}
}
@ -142,6 +149,10 @@ object ExposureUtils {
PLUGIN_UPDATE,
PLUGIN_DOWNLOAD
PLUGIN_DOWNLOAD,
FUN_DOWNLOAD,
FUN_UPDATE
}
}

View File

@ -1,5 +1,7 @@
package com.gh.common.exposure
import com.gh.gamecenter.feature.exposure.ExposureEvent
/**
* 统计曝光的列表的 adapter 需要实现这个接口
*/

View File

@ -1,26 +0,0 @@
package com.gh.common.exposure.meta
import android.os.Parcelable
import androidx.annotation.Keep
import kotlinx.android.parcel.Parcelize
@Keep
@Parcelize
data class Meta(
val mac: String? = "",
val jnfj: String? = "",
val model: String? = "",
val manufacturer: String? = "",
val dia: String? = "",
val android_sdk: Int? = -1,
val android_version: String? = "",
val network: String? = "",
val os: String? = "",
val gid: String? = "",
val oaid: String? = "",
val channel: String? = "",
val appVersion: String? = "",
val userId: String? = "",
val exposureVersion: String? = "",
val rom: String? = ""
) : Parcelable

View File

@ -1,239 +0,0 @@
package com.gh.common.exposure.meta
import android.Manifest
import android.app.Application
import android.content.Context
import android.content.pm.PackageManager
import android.net.ConnectivityManager
import android.os.Build
import android.provider.Settings
import android.telephony.TelephonyManager
import android.text.TextUtils
import com.gh.common.constant.Constants
import com.gh.common.util.SPUtils
import com.gh.common.util.tryWithDefaultCatch
import com.gh.gamecenter.BuildConfig
import com.gh.gamecenter.manager.UserManager
import com.halo.assistant.HaloApp
import com.leon.channel.helper.ChannelReaderUtil
import com.walkud.rom.checker.RomIdentifier
object MetaUtil {
private val application: Application = HaloApp.getInstance().application
private var channel = ""
private var m: Meta? = null
private var imei: String? = null
private var base64EncodedImei: String? = null
private var androidId: String? = null
private var base64EncodedAndroidId: String? = null
private var romName: String? = null
private var romVersion: String? = null
fun refreshMeta() {
if (romName == null) {
tryWithDefaultCatch {
romName = RomIdentifier.getRom().name
romVersion = RomIdentifier.getRom().versionName
}
}
m = Meta(mac = null,
jnfj = getBase64EncodedIMEI(),
model = getModel(),
manufacturer = getManufacturer(),
dia = getBase64EncodedAndroidId(),
android_sdk = getAndroidSDK(),
android_version = getAndroidVersion(),
network = getNetwork(),
os = getOS(),
gid = HaloApp.getInstance().gid,
oaid = HaloApp.getInstance().oaid,
channel = getChannel(),
appVersion = BuildConfig.VERSION_NAME,
userId = UserManager.getInstance().userId,
exposureVersion = BuildConfig.EXPOSURE_VERSION,
rom = romName + "" + romVersion)
}
fun getMeta(): Meta {
if (m == null) {
refreshMeta()
}
return m!!
}
private fun getChannel(): String? {
return HaloApp.getInstance().channel
}
/**
* Get IMEI
*/
@JvmStatic
fun getIMEI(): String {
if (!HaloApp.isUserAcceptPrivacyPolicy(HaloApp.getInstance().application)) {
return ""
}
if (imei != null) {
return imei ?: ""
}
imei = SPUtils.getString(Constants.SP_IMEI)
if (!TextUtils.isEmpty(imei)) {
return imei ?: ""
}
if (application.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
return ""
}
val telephonyManager = application.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
if (Build.VERSION.SDK_INT >= 29) {
return "".apply {
imei = this
SPUtils.setString(Constants.SP_IMEI, this)
}
} else if (Build.VERSION.SDK_INT >= 26) {
return (telephonyManager.imei ?: "").apply {
imei = this
SPUtils.setString(Constants.SP_IMEI, this)
}
}
return (telephonyManager.getDeviceId() ?: "").apply {
imei = this
SPUtils.setString(Constants.SP_IMEI, this)
}
}
@JvmStatic
fun getBase64EncodedIMEI(): String {
if (imei == null) {
getIMEI()
}
if (TextUtils.isEmpty(base64EncodedImei) && imei != null) {
try {
base64EncodedImei = android.util.Base64.encodeToString(getIMEI().trim().toByteArray(), android.util.Base64.NO_WRAP)
} catch (e: java.lang.Exception) {
e.printStackTrace()
return ""
}
}
return base64EncodedImei ?: ""
}
@JvmStatic
fun getBase64EncodedAndroidId(): String {
if (androidId == null) {
getAndroidId()
}
if (TextUtils.isEmpty(base64EncodedAndroidId) && androidId != null) {
try {
base64EncodedAndroidId = android.util.Base64.encodeToString(getAndroidId().trim().toByteArray(), android.util.Base64.NO_WRAP)
} catch (e: java.lang.Exception) {
e.printStackTrace()
return ""
}
}
return base64EncodedAndroidId ?: ""
}
fun getModel(): String? {
return Build.MODEL
}
fun getManufacturer(): String? {
return Build.MANUFACTURER
}
@JvmStatic
fun getAndroidId(): String {
if (!HaloApp.isUserAcceptPrivacyPolicy(HaloApp.getInstance().application)) {
return ""
}
if (androidId != null) {
return androidId ?: ""
}
androidId = SPUtils.getString(Constants.SP_ANDROID_ID)
if (!TextUtils.isEmpty(androidId)) {
return androidId ?: ""
}
return try {
Settings.Secure.getString(application.contentResolver, Settings.Secure.ANDROID_ID).apply {
androidId = this
SPUtils.setString(Constants.SP_ANDROID_ID, this)
}
} catch (e: Exception) {
e.printStackTrace()
androidId = ""
SPUtils.setString(Constants.SP_ANDROID_ID, "")
""
}
}
fun getAndroidSDK(): Int? {
return Build.VERSION.SDK_INT
}
fun getAndroidVersion(): String? {
return Build.VERSION.RELEASE
}
fun getNetwork(): String? {
if (application.checkCallingOrSelfPermission(Manifest.permission.ACCESS_NETWORK_STATE) != PackageManager.PERMISSION_GRANTED)
return "unknown"
val activeNetwork = (application.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager).activeNetworkInfo
?: return "unknown"
return when (activeNetwork.type) {
ConnectivityManager.TYPE_WIFI -> "Wifi"
ConnectivityManager.TYPE_WIMAX -> "WifiMax"
ConnectivityManager.TYPE_MOBILE -> {
val telephonyManager = application.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
if (telephonyManager.simState != TelephonyManager.SIM_STATE_READY) return "unknown"
when (telephonyManager.networkType) {
// Unknown
TelephonyManager.NETWORK_TYPE_UNKNOWN -> "Cellular - Unknown"
// Cellular Data2G
TelephonyManager.NETWORK_TYPE_EDGE, TelephonyManager.NETWORK_TYPE_GPRS, TelephonyManager.NETWORK_TYPE_CDMA,
TelephonyManager.NETWORK_TYPE_IDEN, TelephonyManager.NETWORK_TYPE_1xRTT -> "Cellular - 2G"
// Cellular Data3G
TelephonyManager.NETWORK_TYPE_UMTS, TelephonyManager.NETWORK_TYPE_HSDPA, TelephonyManager.NETWORK_TYPE_HSPA,
TelephonyManager.NETWORK_TYPE_HSPAP, TelephonyManager.NETWORK_TYPE_HSUPA, TelephonyManager.NETWORK_TYPE_EVDO_0,
TelephonyManager.NETWORK_TYPE_EVDO_A, TelephonyManager.NETWORK_TYPE_EVDO_B -> "Cellular - 3G"
// Cellular Data4G
TelephonyManager.NETWORK_TYPE_LTE -> "Cellular - 4G"
else -> "Cellular - Unknown Generation"
}
}
else -> "unknown"
}
}
fun getOS(): String {
return "android"
}
}

View File

@ -1,15 +0,0 @@
package com.gh.common.exposure.time
import com.gh.common.FixedRateJobHelper
object TimeUtil {
fun currentTimeMillis(): Long {
return FixedRateJobHelper.timeDeltaBetweenServerAndClient + System.currentTimeMillis()
}
fun currentTime(): Int {
return ((FixedRateJobHelper.timeDeltaBetweenServerAndClient + System.currentTimeMillis()) / 1000).toInt()
}
}

View File

@ -1,21 +1,53 @@
package com.gh.common.filter
import androidx.annotation.Keep
import com.gh.gamecenter.feature.entity.IpInfo
import com.google.gson.annotations.SerializedName
@Keep
data class RegionSetting(
@SerializedName("game_mirror")
var mirrorGameIdSet: HashSet<String>,
@SerializedName("game_block")
var filterGameIdSet: HashSet<String>,
@SerializedName("channel_control")
var channelControl: ChannelControl) {
class RegionSetting(
@SerializedName("game_mirror")
var mirrorGameIdSet: HashSet<String>,
@SerializedName("game_block")
var filterGameIdSet: HashSet<String>,
@SerializedName("channel_control")
var channelControl: ChannelControl,
@SerializedName("game_h5_download")
var gameH5DownloadList: List<GameH5Download>,
@SerializedName("game_special_download")
var gameSpecialDownloadInfoList: List<GameSpecialDownloadInfo>,
@SerializedName("ip_info")
var ipInfo: IpInfo? = null
) {
@Keep
data class ChannelControl(
@SerializedName("game_category")
var gameCategory: String,
@SerializedName("effect")
var effect: Boolean)
class ChannelControl(
@SerializedName("game_category")
var gameCategory: String,
@SerializedName("effect")
var effect: Boolean
)
@Keep
class GameH5Download(
@SerializedName("game_id")
var gameId: String,// 游戏id
@SerializedName("h5_link")
var h5Link: String,// 网页链接
@SerializedName("download_link")
var downloadLink: String,// 下载链接
@SerializedName("button_text")
var buttonText: String,// 按钮文案
)
class GameSpecialDownloadInfo(
@SerializedName("game_id")
var gameId: String = "",
@SerializedName("bbs_id")
var bbsId: String = "",
@SerializedName("top_id")
var topId: String = "",
@SerializedName("hint_text")
var hintText: String = ""
)
}

View File

@ -1,14 +1,16 @@
package com.gh.common.filter
import android.annotation.SuppressLint
import com.gh.common.constant.Constants
import com.gh.common.util.SPUtils
import com.gh.common.util.debounceActionWithInterval
import com.gh.common.util.toJson
import com.gh.common.util.toObject
import com.gh.gamecenter.R
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.retrofit.BiResponse
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.retrofit.BiResponse
import com.gh.gamecenter.common.utils.debounceActionWithInterval
import com.gh.gamecenter.common.utils.toJson
import com.gh.gamecenter.common.utils.toObject
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.entity.IpInfo
import com.gh.gamecenter.feature.entity.SimpleGame
import com.gh.gamecenter.retrofit.RetrofitManager
import com.halo.assistant.HaloApp
import io.reactivex.functions.Function
@ -16,12 +18,20 @@ import io.reactivex.schedulers.Schedulers
object RegionSettingHelper {
// 是否是初始化调用
private var mIsInit = true
private var mChannelControl: RegionSetting.ChannelControl? = null
private var mFilterGameIdSet: HashSet<String>? = hashSetOf()
private var mDisplayMirrorIfoGameIdSet: HashSet<String>? = hashSetOf()
private var mGameH5DownloadList: List<RegionSetting.GameH5Download>? = listOf()
private var mGameSpecialDownloadInfoList: List<RegionSetting.GameSpecialDownloadInfo>? = listOf()
private var mIpInfo: IpInfo? = null
private const val SP_SETTING = "region_setting"
const val SP_SETTING_FAILURE = "region_setting_failure"
@JvmStatic
fun shouldThisGameDisplayMirrorInfo(gameId: String): Boolean {
return mDisplayMirrorIfoGameIdSet?.contains(gameId) ?: false
}
@ -31,6 +41,14 @@ object RegionSettingHelper {
return mFilterGameIdSet?.contains(gameId) ?: false
}
fun shouldThisGameShowSpecialDownload(gameId: String) =
mGameSpecialDownloadInfoList?.any { it.gameId == gameId } ?: false
@JvmStatic
fun getGameSpecialDownloadInfo(gameId: String) = mGameSpecialDownloadInfoList?.find { it.gameId == gameId }
fun getIpInfo(): IpInfo? = mIpInfo
@JvmStatic
fun filterGame(list: List<GameEntity>?): ArrayList<GameEntity> {
if (list == null) return arrayListOf()
@ -44,6 +62,19 @@ object RegionSettingHelper {
return listCopy
}
@JvmStatic
fun filterSimpleGame(list: List<SimpleGame>?): ArrayList<SimpleGame> {
if (list == null) return arrayListOf()
if (mFilterGameIdSet?.isEmpty() == true) {
if (list is ArrayList) return list
}
val listCopy: ArrayList<SimpleGame> = if (list is ArrayList) list else ArrayList(list)
listCopy.removeAll { mFilterGameIdSet?.contains(it.id) ?: false }
return listCopy
}
@JvmField
var filterGame = Function { list: List<GameEntity> ->
filterGame(list)
@ -58,27 +89,43 @@ object RegionSettingHelper {
}
}
@JvmStatic
fun getGameH5DownloadByGameId(gameId: String): RegionSetting.GameH5Download? {
if (mGameH5DownloadList.isNullOrEmpty()) return null
return mGameH5DownloadList!!.find { it.gameId == gameId }
}
@SuppressLint("CheckResult")
@JvmStatic
fun getRegionSetting() {
debounceActionWithInterval(R.string.app_name, 5000) {
// 初始启动时先使用历史数据
if (mIsInit) {
SPUtils.getString(SP_SETTING).toObject<RegionSetting>()?.let {
updateSettingsInMemory(it)
}
mIsInit = false
}
// 使用默认的 Schdulers.io() 可能会触发 OOM
RetrofitManager.getInstance()
.api
.getRegionSetting(HaloApp.getInstance().channel)
.subscribeOn(Schedulers.io())
.subscribe(object : BiResponse<RegionSetting>() {
override fun onSuccess(data: RegionSetting) {
updateSettingsInMemory(data)
SPUtils.setString(SP_SETTING, data.toJson())
}
.api
.getRegionSetting(HaloApp.getInstance().channel)
.subscribeOn(Schedulers.io())
.subscribe(object : BiResponse<RegionSetting>() {
override fun onSuccess(data: RegionSetting) {
updateSettingsInMemory(data)
SPUtils.setString(SP_SETTING, data.toJson())
}
override fun onFailure(exception: Exception) {
SPUtils.getString(SP_SETTING)?.toObject<RegionSetting>()?.let {
updateSettingsInMemory(it)
}
override fun onFailure(exception: Exception) {
SPUtils.getString(SP_SETTING).toObject<RegionSetting>()?.let {
updateSettingsInMemory(it)
}
})
SPUtils.setBoolean(SP_SETTING_FAILURE, true)
}
})
}
}
@ -86,6 +133,9 @@ object RegionSettingHelper {
mFilterGameIdSet = data.filterGameIdSet
mDisplayMirrorIfoGameIdSet = data.mirrorGameIdSet
mChannelControl = data.channelControl
mGameH5DownloadList = data.gameH5DownloadList
mGameSpecialDownloadInfoList = data.gameSpecialDownloadInfoList
mIpInfo = data.ipInfo
}
/**

View File

@ -9,30 +9,40 @@ import androidx.sqlite.db.SupportSQLiteDatabase
import com.gh.gamecenter.entity.GamesCollectionEntity
import com.gh.gamecenter.entity.HistoryGameEntity
import com.gh.gamecenter.entity.MyVideoEntity
import com.gh.gamecenter.entity.NewsEntity
import com.gh.gamecenter.qa.entity.AnswerEntity
import com.gh.gamecenter.qa.entity.ArticleEntity
import com.gh.gamecenter.feature.entity.NewsEntity
import com.gh.gamecenter.feature.entity.AnswerEntity
import com.gh.gamecenter.feature.entity.ArticleEntity
import com.gh.gamecenter.feature.room.converter.*
import com.gh.gamecenter.room.converter.*
import com.gh.gamecenter.room.dao.*
import com.halo.assistant.HaloApp
@Database(entities = [AnswerEntity::class, ArticleEntity::class, NewsEntity::class, HistoryGameEntity::class, MyVideoEntity::class, GamesCollectionEntity::class], version = 10, exportSchema = false)
@TypeConverters(CountConverter::class,
CommunityConverter::class,
TimeConverter::class,
AnswerUserConverter::class,
ThumbnailConverter::class,
TagStyleListConverter::class,
StringArrayListConverter::class,
ListStringConverter::class,
CommunityVideoConverter::class,
UserConverter::class,
ImageInfoConverter::class,
VideoInfoConverter::class,
QuestionsConverter::class,
MeConverter::class,
SimpleGameListConverter::class,
TagInfoListConverter::class)
@Database(
entities = [AnswerEntity::class, ArticleEntity::class, NewsEntity::class, HistoryGameEntity::class, MyVideoEntity::class, GamesCollectionEntity::class],
version = 13,
exportSchema = false
)
@TypeConverters(
CountConverter::class,
CommunityConverter::class,
TimeConverter::class,
AnswerUserConverter::class,
ThumbnailConverter::class,
TagStyleListConverter::class,
TagStyleConverter::class,
StringArrayListConverter::class,
ListStringConverter::class,
CommunityVideoConverter::class,
UserConverter::class,
ImageInfoConverter::class,
VideoInfoConverter::class,
QuestionsConverter::class,
MeConverter::class,
SimpleGameListConverter::class,
TagInfoListConverter::class,
ActivityLabelListConverter::class,
IconFloatConverter::class
)
abstract class HistoryDatabase : RoomDatabase() {
@ -108,22 +118,49 @@ abstract class HistoryDatabase : RoomDatabase() {
val MIGRATION_9_10: Migration = object : Migration(9, 10) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("CREATE TABLE GamesCollectionEntity (id TEXT NOT NULL PRIMARY KEY, tags TEXT, games TEXT, title TEXT NOT NULL, intro TEXT NOT NULL, cover TEXT NOT NULL, display TEXT NOT NULL, stamp TEXT NOT NULL, count TEXT, user TEXT, me TEXT, orderTag INTEGER NOT NULL)"
database.execSQL(
"CREATE TABLE GamesCollectionEntity (id TEXT NOT NULL PRIMARY KEY, tags TEXT, games TEXT, title TEXT NOT NULL, intro TEXT NOT NULL, cover TEXT NOT NULL, display TEXT NOT NULL, stamp TEXT NOT NULL, count TEXT, user TEXT, me TEXT, orderTag INTEGER NOT NULL)"
)
}
}
val MIGRATION_10_11: Migration = object : Migration(10, 11) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("Alter TABLE GamesCollectionEntity add activityTags TEXT DEFAULT ''")
}
}
val MIGRATION_11_12: Migration = object : Migration(11, 12) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("Alter TABLE HistoryGameEntity add subtitle TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE HistoryGameEntity add subtitleStyle TEXT")
}
}
val MIGRATION_12_13: Migration = object : Migration(12, 13) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("Alter TABLE HistoryGameEntity add iconFloat TEXT")
}
}
val instance by lazy {
Room.databaseBuilder(HaloApp.getInstance().application, HistoryDatabase::class.java, "USER_TRACK_HISTORY_DATABASE")
.addMigrations(MIGRATION_2_3)
.addMigrations(MIGRATION_3_4)
.addMigrations(MIGRATION_4_5)
.addMigrations(MIGRATION_5_6)
.addMigrations(MIGRATION_6_7)
.addMigrations(MIGRATION_7_8)
.addMigrations(MIGRATION_8_9)
.addMigrations(MIGRATION_9_10)
.build()
Room.databaseBuilder(
HaloApp.getInstance().application,
HistoryDatabase::class.java,
"USER_TRACK_HISTORY_DATABASE"
)
.addMigrations(MIGRATION_2_3)
.addMigrations(MIGRATION_3_4)
.addMigrations(MIGRATION_4_5)
.addMigrations(MIGRATION_5_6)
.addMigrations(MIGRATION_6_7)
.addMigrations(MIGRATION_7_8)
.addMigrations(MIGRATION_8_9)
.addMigrations(MIGRATION_9_10)
.addMigrations(MIGRATION_10_11)
.addMigrations(MIGRATION_11_12)
.addMigrations(MIGRATION_12_13)
.build()
}
}

View File

@ -1,15 +1,17 @@
package com.gh.common.history
import com.gh.common.runOnIoThread
import com.gh.common.util.clearHtmlFormatCompletely
import com.gh.common.util.removeInsertedContent
import com.gh.common.util.removeVideoContent
import com.gh.common.util.tryCatchInRelease
import com.gh.gamecenter.common.utils.clearHtmlFormatCompletely
import com.gh.gamecenter.common.utils.removeInsertedContent
import com.gh.gamecenter.common.utils.removeVideoContent
import com.gh.gamecenter.common.utils.tryCatchInRelease
import com.gh.gamecenter.core.runOnIoThread
import com.gh.gamecenter.entity.*
import com.gh.gamecenter.feature.entity.AnswerEntity
import com.gh.gamecenter.feature.entity.ArticleEntity
import com.gh.gamecenter.feature.entity.GameEntity
import com.gh.gamecenter.feature.entity.NewsEntity
import com.gh.gamecenter.qa.entity.AnswerDetailEntity
import com.gh.gamecenter.qa.entity.AnswerEntity
import com.gh.gamecenter.qa.entity.ArticleDetailEntity
import com.gh.gamecenter.qa.entity.ArticleEntity
object HistoryHelper {
@ -26,7 +28,11 @@ object HistoryHelper {
fun insertGamesCollectionEntity(gamesCollectionDetailEntity: GamesCollectionDetailEntity) {
val gamesCollectionEntity = convertGamesCollectionDetailToGamesCollection(gamesCollectionDetailEntity)
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.gamesCollectionDao().addGamesCollection(gamesCollectionEntity) } }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.gamesCollectionDao().addGamesCollection(gamesCollectionEntity)
}
}
}
@JvmStatic
@ -50,9 +56,9 @@ object HistoryHelper {
historyGame.des = ""
historyGame.icon = updateEntity.rawIcon ?: updateEntity.icon
historyGame.iconSubscript = updateEntity.iconSubscript
historyGame.iconFloat = updateEntity.iconFloat
historyGame.name = updateEntity.name
historyGame.tagStyle = updateEntity.tagStyle
historyGame.tag = updateEntity.tag
return historyGame
}
@ -65,9 +71,12 @@ object HistoryHelper {
historyGame.des = gameEntity.des
historyGame.icon = gameEntity.rawIcon ?: gameEntity.icon
historyGame.iconSubscript = gameEntity.iconSubscript
historyGame.iconFloat = gameEntity.iconFloat
historyGame.name = gameEntity.name
historyGame.tagStyle = gameEntity.tagStyle
historyGame.tag = gameEntity.getTag()
historyGame.subtitle = gameEntity.subtitle
historyGame.subtitleStyle = gameEntity.subtitleStyle
return historyGame
}
@ -79,27 +88,47 @@ object HistoryHelper {
@JvmStatic
fun deleteNewsEntity(newsId: String) {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.newsDao().deleteNews(NewsEntity().apply { id = newsId }) } }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.newsDao().deleteNews(NewsEntity().apply { id = newsId })
}
}
}
@JvmStatic
fun deleteGameEntity(gameId: String) {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.gameDao().deleteGame(HistoryGameEntity(id = gameId)) } }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.gameDao().deleteGame(HistoryGameEntity(id = gameId))
}
}
}
@JvmStatic
fun deleteArticleEntity(articleId: String) {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.articleDao().deleteArticle(ArticleEntity(id = articleId)) } }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.articleDao().deleteArticle(ArticleEntity(id = articleId))
}
}
}
@JvmStatic
fun deleteAnswerEntity(answerId: String) {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.answerDao().deleteAnswer(AnswerEntity().apply { primaryKey = answerId }) } }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.answerDao().deleteAnswer(AnswerEntity().apply { primaryKey = answerId })
}
}
}
@JvmStatic
fun deleteVideoEntity(videoId: String) {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.videoHistoryDao().deleteVideo(MyVideoEntity().apply { id = videoId }) } }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.videoHistoryDao().deleteVideo(MyVideoEntity().apply { id = videoId })
}
}
}
@JvmStatic
@ -109,7 +138,12 @@ object HistoryHelper {
@JvmStatic
fun deleteGamesCollectionEntity(gameCollectionId: String) {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.gamesCollectionDao().deleteGamesCollection(GamesCollectionEntity(id = gameCollectionId)) }}
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.gamesCollectionDao()
.deleteGamesCollection(GamesCollectionEntity(id = gameCollectionId))
}
}
}
@ -122,7 +156,9 @@ object HistoryHelper {
val articleEntity = ArticleEntity()
articleEntity.id = articleDetailEntity.id
articleEntity.brief = articleDetailEntity.content.removeVideoContent().removeInsertedContent().clearHtmlFormatCompletely().replace(" +".toRegex(), " ")
articleEntity.brief =
articleDetailEntity.content.removeVideoContent().removeInsertedContent().clearHtmlFormatCompletely()
.replace(" +".toRegex(), " ")
articleEntity.count = articleDetailEntity.count
articleDetailEntity.community.id = articleDetailEntity.communityId
articleEntity.community = articleDetailEntity.community
@ -147,7 +183,9 @@ object HistoryHelper {
answerEntity.vote = answerDetailEntity.vote
answerEntity.user = answerDetailEntity.user
answerEntity.orderTag = System.currentTimeMillis()
answerEntity.brief = answerDetailEntity.content.removeVideoContent().removeInsertedContent().clearHtmlFormatCompletely().replace(" +".toRegex(), " ")
answerEntity.brief =
answerDetailEntity.content.removeVideoContent().removeInsertedContent().clearHtmlFormatCompletely()
.replace(" +".toRegex(), " ")
answerEntity.time = answerDetailEntity.time
answerEntity.images = answerDetailEntity.images
answerEntity.imagesInfo = answerDetailEntity.imagesInfo
@ -161,7 +199,10 @@ object HistoryHelper {
gamesCollectionEntity.id = gamesCollectionDetailEntity.id
gamesCollectionEntity.tags = gamesCollectionDetailEntity.tags
gamesCollectionEntity.games = ArrayList(gamesCollectionDetailEntity.games?.take(3)?.map { it.toSimpleGame() })
gamesCollectionEntity.activityTags = gamesCollectionDetailEntity.activityTags
gamesCollectionDetailEntity.games?.take(3)?.map { it.toSimpleGame() }?.run {
gamesCollectionEntity.games = ArrayList(this)
}
gamesCollectionEntity.title = gamesCollectionDetailEntity.title
gamesCollectionEntity.intro = gamesCollectionDetailEntity.intro
gamesCollectionEntity.cover = gamesCollectionDetailEntity.cover
@ -174,7 +215,8 @@ object HistoryHelper {
id = id ?: "",
name = name ?: "",
icon = icon ?: "",
badge = badge)
badge = badge
)
}
gamesCollectionEntity.me = gamesCollectionDetailEntity.me

View File

@ -1,5 +0,0 @@
package com.gh.common.iinterface
interface IScrollable {
fun scrollToTop()
}

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