Compare commits

...

3557 Commits

Author SHA1 Message Date
04468c0627 build: suppress warning 2022-12-23 16:16:12 +08:00
e585d905ac fix: 处理一些细节问题 2022-11-08 17:56:55 +08:00
1f066e676f Merge branch 'feature-module_setting' into feature-module_setting_compose 2022-11-08 17:51:03 +08:00
a08f3aa9ac Merge branch 'dev-5.16.0' into feature-module_setting
# Conflicts:
#	app/src/main/res/values/strings.xml
2022-11-08 17:30:04 +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
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
f799096655 fix: 处理一些细节问题 2022-11-07 18:01:28 +08:00
431aa52e49 refactor:使用 Jetpack Compose 实现设置功能模块的 UI https://git.shanqu.cc/halo/android/assistant-android/-/issues/88 2022-11-04 11:36:25 +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
26d6e4086a fix: 处理合并分支后出现的冲突 2022-11-02 17:16:55 +08:00
ed19677568 ci: 更新含 chucker 的编译脚本 2022-11-02 17:12:48 +08:00
7e999784b7 Merge branch 'feature-module_setting' into dev
# Conflicts:
#	app/build.gradle
#	app/src/main/java/com/gh/common/util/DownloadObserver.kt
#	app/src/main/java/com/gh/gamecenter/home/HomeFragmentAdapter.kt
#	app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt
#	app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionAdapter.kt
#	module_core/src/main/java/com/gh/gamecenter/core/provider/IAppProvider.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingActivity.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/GameDownloadSettingFragment.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/NetworkDiagnosisActivity.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/VideoSettingActivity.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/security/BindPhoneFragment.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityActivity.kt
#	module_setting/src/main/java/com/gh/gamecenter/setting/view/security/SecurityFragment.kt
2022-11-02 16:56:56 +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
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
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
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
f07bcc89e8 fix:修复无法跳转安装包清理的问题 2022-10-28 17:47:14 +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
22cff4ed72 refactor: 组件化设置功能 https://git.shanqu.cc/halo/android/assistant-android/-/issues/87 2022-10-18 11:57:27 +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
bb7cea3dee 版本更新至 5.6.2 2022-03-02 10:47:11 +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
9b9aa8c060 Merge branch 'hotfix-v5.6.1-471-history_apk_crash' into 'release'
修复历史版本页面不存在 apk 时的闪退

See merge request halo/android/assistant-android!221
2022-03-02 09:39:05 +08:00
ee445c0819 修复历史版本页面不存在 apk 时的闪退 2022-03-02 09:37:49 +08:00
0060312d52 Merge branch 'hotfix-v5.6.1-471-offline_simulator_game_launch' into 'release'
修复无网络状态下无法启动模拟器游戏的问题

See merge request halo/android/assistant-android!220
2022-03-01 16:39:01 +08:00
3a4f4eaf24 修复无网络状态下无法启动模拟器游戏的问题 2022-03-01 16:37:15 +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
58999418ab Merge branch 'hotfix-v5.6.0-470_imageviewer' into 'release'
处理查看大图页面sentry问题

See merge request halo/android/assistant-android!219
2022-02-28 17:21:18 +08:00
f4e90aa9da 处理查看大图页面sentry问题 2022-02-28 17:17:12 +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
82ec3569dc 版本更新至 5.6.1 2022-02-28 16:18:20 +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
9760aa23d7 Merge branch 'hotfix-v5.6.0-470-skip_crash' into 'release'
修复外部页面跳转偶发的 SimpleDrawee 初始化闪退

See merge request halo/android/assistant-android!217
2022-02-22 14:19:10 +08:00
6656676636 修复外部页面跳转偶发的 SimpleDrawee 初始化闪退 2022-02-22 14:15:49 +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
09f1bdb915 Merge branch 'hotfix-v5.6.0-470_imageviewer' into 'release'
修复游戏详情打开大图动画异常

See merge request halo/android/assistant-android!216
2022-02-21 17:17:32 +08:00
8e5168005e 修复游戏详情打开大图动画异常 2022-02-21 17:06:10 +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
9020022fdc Merge branch 'hotfix-v5.6.0-470_crash' into 'release'
修复跳转意见反馈闪退问题

See merge request halo/android/assistant-android!215
2022-02-21 15:41:39 +08:00
b13aede1d3 修复跳转意见反馈闪退问题 2022-02-21 15:40:55 +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
9cb7cc8c07 Merge branch 'hotfix-v5.6.0-470-crash' into 'release'
修复首页页面因为内存不足回收时的闪退

See merge request halo/android/assistant-android!213
2022-02-18 17:00:56 +08:00
c7cfb7d7b7 修复首页页面因为内存不足回收时的闪退 2022-02-18 17:00:14 +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
e64f87bc0c Merge branch 'hotfix-v5.6.0-470-fix_3th_party_login' into 'release'
修复微信绑定有机率触发的无响应问题

See merge request halo/android/assistant-android!212
2022-02-18 16:29:05 +08:00
891958c4d9 修复微信绑定有机率触发的无响应问题 2022-02-18 16:28:11 +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
ccf3e43dc1 Merge branch 'hotfix-v5.6.0-beta-crash' into 'release'
修复工具箱跳转意见反馈闪退

See merge request halo/android/assistant-android!211
2022-02-17 11:36:22 +08:00
218091e1be 修复工具箱跳转意见反馈闪退 2022-02-17 11:34:30 +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
82f7efdc59 Merge branch 'release' into dev 2022-02-16 15:17:54 +08:00
25bc499245 更新 sentry 地址 2022-02-16 15:15:53 +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
77e1df1bb0 Merge branch 'flutter-dev' into 'dev'
【光环助手V5.6.0】前端优化汇总12月第5周(0216UI调整) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672

See merge request halo/android/assistant-android!209
2022-02-16 10:05:37 +08:00
d77533a421 【光环助手V5.6.0】前端优化汇总12月第5周(0215UI测试问题) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-02-16 10:04:05 +08:00
e47e1d6747 【光环助手V5.6.0】前端优化汇总12月第5周(0216UI调整)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-02-16 09:31:08 +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
8a6e0f45c7 Merge branch 'flutter-dev' into 'dev'
前端优化汇总12月第5周(02151505UI调整)

See merge request halo/android/assistant-android!208
2022-02-15 16:01:49 +08:00
e30f3269e8 Merge remote-tracking branch 'origin/flutter-dev' into flutter-dev 2022-02-15 15:46:13 +08:00
439710d5f3 【光环助手V5.6.0】前端优化汇总12月第5周(02151505UI调整)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-02-15 15:43:49 +08:00
de68d5e3f2 【光环助手V5.6.0】前端优化汇总12月第5周 (0127UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-02-15 14:47:42 +08:00
4643197fb4 【光环助手V5.6.0】前端优化汇总12月第5周(0215UI调整)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-02-15 12:07:29 +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
c368148bfc Merge branch 'flutter-dev' into 'dev'
【客户端内部需求】使用 flutter 实现反馈详情页面(修复mumu模拟器闪退问题)

See merge request halo/android/assistant-android!207
2022-02-14 10:28:39 +08:00
d43f7240b8 【光环助手5.6.0】【客户端内部需求】使用 flutter 实现反馈详情页面(修复mumu模拟器闪退问题)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1684 2022-02-11 18:31:49 +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
8c607ae05a 更新 sentry 地址 2022-02-10 18:14:08 +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
804f9ee111 Merge branch 'flutter-dev' into 'dev'
修复 flutter 端的问题

See merge request halo/android/assistant-android!206
2022-02-10 17:22:54 +08:00
d343519e19 Merge branch 'flutter-release' into 'release'
处理 flutter 状态栏显示异常

See merge request halo/android/assistant-android!205
2022-02-10 17:20:55 +08:00
ce43cb6226 处理 flutter 状态栏显示异常 2022-02-10 17:20:55 +08:00
08b281c428 【光环助手V5.4.0】客户端内部需求(弹窗阴影修复)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1567 2022-02-10 17:06:42 +08:00
6b3079343e 【光环助手V5.6.0】前端优化汇总12月第5周(0127UI测试BUG修复)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-02-10 17:02:02 +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
c7d670d50c 处理 AppManager 获取最上层页面异常 2022-02-10 10:08: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
1d7903ad02 Merge branch 'flutter-dev' into 'dev'
使用 flutter 实现反馈详情页面(修复0209测试反馈的BUG)

See merge request halo/android/assistant-android!203
2022-02-09 16:52:44 +08:00
31bae10c28 【光环助手5.6.0】【客户端内部需求】使用 flutter 实现反馈详情页面(修复0209测试反馈的BUG)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1684 2022-02-09 16:04:52 +08:00
3081d99e12 Merge branch 'flutter-dev' into 'dev'
使用 flutter 实现反馈详情页面(修复0208-1013测试的BUG)

See merge request halo/android/assistant-android!202
2022-02-08 18:23:18 +08:00
ac8525f4e1 Merge branch 'dev' into flutter-dev 2022-02-08 18:16:00 +08:00
f921ee35fe 【光环助手5.6.0】【客户端内部需求】使用 flutter 实现反馈详情页面(修复0208-1013测试的BUG)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1684 2022-02-08 18:04:45 +08:00
3c9f44bda0 【光环助手5.6.0】【客户端内部需求】使用 flutter 实现反馈详情页面(修复0208-1013测试的BUG)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1684 2022-02-08 18:02:30 +08:00
381b4f4e3b 修复测试包无法选择接口环境的问题 2022-02-08 17:38:36 +08:00
7defa40be5 修复首页列表分页加载完成时闪烁的问题 2022-02-08 17:18:26 +08:00
02a0a9aaee 修复一些数组越界和无应用响应闪退 2022-02-08 14:47:22 +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
9da9f118c9 Merge remote-tracking branch 'origin/dev' into dev 2022-02-08 10:12:37 +08:00
86e5995c8a Merge branch 'flutter-dev' into 'dev'
使用 flutter 实现反馈详情页面(BUG修复)

See merge request halo/android/assistant-android!200
2022-02-08 10:11:58 +08:00
cb2603d057 修复游戏搜索遇到特殊字符显示网络异常的问题 2022-02-08 09:46:35 +08:00
e6d70f23fa 【光环助手5.6.0】【客户端内部需求】使用 flutter 实现反馈详情页面(BUG修复)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1684 2022-01-29 15:29:51 +08:00
22427d0fa5 修复资讯-评论详情大图渐出动画异常 2022-01-27 18:06:01 +08:00
9459e7ca07 添加背景模糊度变更的事件埋点 2022-01-27 17:45:55 +08:00
fab7dffed0 添加EmojiUtils工具类 2022-01-27 14:25:05 +08:00
61f6e595f2 【光环助手V5.6.0】前端优化汇总12月第5周(0120UI测试、0124UI测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-26 19:49:57 +08:00
22f4c97314 Merge branch 'flutter-dev' into 'dev'
【光环助手V5.6.0】前端优化汇总12月第5周(0119UI测试) pm/halo-app-issues#1672

See merge request halo/android/assistant-android!199
2022-01-26 19:05:16 +08:00
6d7dbed929 Merge branch 'dev' into flutter-dev 2022-01-26 19:04:55 +08:00
22f7021ab4 【光环助手V5.6.0】前端优化汇总12月第5周(0119UI测试)[pm/halo-app-issues#1672](https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672) 2022-01-26 18:59:15 +08:00
075359ef5e 【光环助手V5.6.0】前端优化汇总12月第5周(0119UI测试) 2022-01-26 18:51:24 +08:00
dacb7e3dd6 处理 Sonarqube 异常 2022-01-26 15:36:23 +08:00
267e9f3ccc 移除无用配置 2022-01-26 15:36:23 +08:00
178865af03 Merge remote-tracking branch 'origin/dev' into dev 2022-01-26 15:31:13 +08:00
f8864b8303 修复论坛帖子列表打开大图数组越界的问题
修复帖子回复图片渐出动画异常
2022-01-26 15:25:06 +08:00
94c31916cf 移除正式包中的测试代码 2022-01-26 15:08:49 +08:00
b9b82ec3d2 Merge branch 'flutter-release' into 'release'
feature flutter

See merge request halo/android/assistant-android!198
2022-01-26 09:19:11 +08:00
ed400b7ee0 feature flutter
1.修复原生Fresco动图失效问题 
2.优化init.flutter.gradle 
3.修复flutter_fresco空赋值报错问题 
4.移除flutter根路由测试代码
2022-01-26 09:19:11 +08:00
fb653b66d1 Updated 更新Flutter模块 2022-01-25 19:47:37 +08:00
e92253eeb6 Merge branch 'dev' into flutter-dev 2022-01-25 19:44:51 +08:00
3c0f8be6ca Updated 更新Flutter模块和LGLibrary模块代码 2022-01-25 19:42:47 +08:00
46ea2f9862 Merge remote-tracking branch 'origin/flutter-dev' into flutter-dev 2022-01-25 18:47:28 +08:00
e8626221b0 移除包体无用的 Mta 代码 2022-01-25 18:10:53 +08:00
09d7ffbf0a Updated 更新Flutter模块分支代码 2022-01-25 17:52:11 +08:00
791aa46586 Updated 优化init.flutter.gradle
Updated 支持Flutter传入gameId进入游戏详情页面
2022-01-25 17:49:56 +08:00
e0f9416a1f 修复选择图片页面图片排序异常问题 2022-01-25 14:40:14 +08:00
0b4acba116 修复图片选择切换文件夹后失效的问题 2022-01-25 14:39:22 +08:00
aa9df23d18 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2022-01-24 20:24:51 +08:00
e3e44f0b19 修改个性背景预览页不能预览问题 2022-01-24 20:24:34 +08:00
1bbea7bd75 【光环助手V5.6.0】前端优化汇总12月第5周 0124UI测试 1 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672
【光环助手V5.6.0】前端优化汇总12月第5周 0124UI测试 1 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672
2022-01-24 19:59:10 +08:00
31daffa123 Merge remote-tracking branch 'origin/dev' into dev 2022-01-24 19:48:16 +08:00
e91c32c5e7 【光环助手V5.6.0】前端优化汇总12月第5周 0124UI测试 2 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-24 19:48:06 +08:00
15bb6a722d 修改浏览记录-帖子点击编辑、取消图片闪烁问题 2022-01-24 19:47:37 +08:00
16a187f7d0 【光环助手V5.6.0】前端优化汇总12月第5周(0124UI测试1,3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-24 18:44:25 +08:00
aaddcbc67a 1.修改游戏动态标题未居中问题 2.修改游戏动态背景颜色 2022-01-21 16:29:54 +08:00
5476dd443c 处理合并冲突 2022-01-21 16:15:32 +08:00
3ab52cadd5 Merge branch 'release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
#	app/src/main/java/com/gh/gamecenter/history/HistoryWrapperFragment.kt
#	assistant_flutter
#	dependencies.gradle
2022-01-21 16:03:27 +08:00
6f7374c479 版本更新到 5.5.7-458 2022-01-21 15:53:29 +08:00
7e296ae7ab Merge branch 'hotfix-v5.5.7-457-article_comment' into 'release'
修改帖子评论复用问题

See merge request halo/android/assistant-android!197
2022-01-21 15:46:39 +08:00
f5a985b221 修改帖子评论复用问题 2022-01-21 15:16:50 +08:00
72e061b344 【光环助手V5.6.0】前端优化汇总12月第5周(0120UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-21 12:06:46 +08:00
a08e6d5ad8 优化首页游戏单组件滑动性能 2022-01-21 10:12:49 +08:00
f719ec10a7 版本更新至 5.5.7 2022-01-21 10:10:23 +08:00
b680d723b1 Merge branch 'hotfix-v5.6.6-456-wrong_so_crash' into 'release'
修复部分 5.1.1 设备加载错误 so 的问题

See merge request halo/android/assistant-android!196
2022-01-21 10:07:23 +08:00
0cf410c768 修复部分 5.1.1 设备加载错误 so 的问题 2022-01-21 10:04:23 +08:00
be84693610 处理SonarQube问题 2022-01-20 11:45:11 +08:00
047b80e0d8 【光环助手V5.6.0】前端优化汇总12月第5周(0119UI测试) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-20 11:00:20 +08:00
3c255a7119 Merge branch 'hotfix_5.5.6-456-crashes' into 'release'
修复sentry一些闪退问题

See merge request halo/android/assistant-android!195
2022-01-20 10:40:35 +08:00
d9c5c7ffc4 修复WebActivity关闭Dialog闪退
修复首页游戏单安利墙组件闪退问题
2022-01-20 10:36:08 +08:00
a61b621ceb 【光环助手V5.6.0】游戏预约功能(第四期)(0119测试:2) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1637 2022-01-20 09:47:31 +08:00
90ca311205 处理SonarQube问题 2022-01-19 17:55:17 +08:00
e466d1feeb 调整 FlutterBoost 的初始化时机 2022-01-19 17:46:37 +08:00
e594703f8f Merge branch 'flutter-release' into 'release'
调整 FlutterBoost 的初始化时机

See merge request halo/android/assistant-android!194
2022-01-19 17:39:09 +08:00
cd98550183 调整 FlutterBoost 的初始化时机 2022-01-19 17:37:54 +08:00
60dbb7e11a 优化首页游戏单组件代码
处理部分SonarQube问题
2022-01-19 16:55:06 +08:00
e6cbcd385a 【光环助手V5.6.0】游戏预约功能(第四期)(埋点) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1637 2022-01-19 16:16:33 +08:00
e1f9c4984d Merge branch 'cherry-pick-89999315' into 'dev'
【光环助手5.6.0】活动跳转链接优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1682#note_132656

See merge request halo/android/assistant-android!193
2022-01-19 12:34:29 +08:00
lyr
039ee400ff 【光环助手5.6.0】活动跳转链接优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1682#note_132656
(cherry picked from commit 8999931517f55f819b3da7f854bd93a7e7d0c6ca)
2022-01-19 12:34:15 +08:00
d376f7291c 【光环助手V5.6.0】前端优化汇总12月第5周(0118UI测试问题) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-19 11:47:17 +08:00
76402b7bcf 修改工具箱版块分割线 2022-01-19 11:35:06 +08:00
c2cbfad51f 版本更新至 5.5.6 2022-01-19 11:29:56 +08:00
9848c3d07e Merge branch 'hotfix_5.5.5-455-forced_static_image_on_buggy_device' into 'release'
在特殊设备上禁用动图

See merge request halo/android/assistant-android!192
2022-01-19 10:59:41 +08:00
84a2d9cdba 在特殊设备上禁用动图 2022-01-19 10:59:41 +08:00
f2438f80e0 Merge branch 'flutter-release' into 'release'
issue 1567

See merge request halo/android/assistant-android!191
2022-01-18 17:37:15 +08:00
824d8897aa issue 1567 2022-01-18 17:37:15 +08:00
2c432348fe Merge branch 'flutter-dev' into 'dev'
issue 1567

See merge request halo/android/assistant-android!190
2022-01-18 17:31:22 +08:00
b764eb472c Fixed 修复Flutter页面横屏问题
Fixed 修复我的关注页面游戏名称带“.”问题
2022-01-18 17:15:28 +08:00
1d4333ffe4 Merge branch 'hotfix-v5.5.4-454-fix_launch_type' into 'release'
修复启动类型上报异常问题

See merge request halo/android/assistant-android!188
2022-01-18 15:12:10 +08:00
337bbe7ec3 修复启动类型上报异常问题 2022-01-18 15:11:16 +08:00
fd482f32f0 Merge branch 'hotfix-v5.5.4-454-argument_error' into 'release'
修改我的收藏、历史记录页面参数传递错误

See merge request halo/android/assistant-android!187
2022-01-18 14:05:45 +08:00
755e4f24ff 修改我的收藏、历史记录页面参数传递错误 2022-01-18 12:11:16 +08:00
9d27eaef7d Merge branch 'feature-flutter-game-comments' into 'dev'
Feature flutter game comments

See merge request halo/android/assistant-android!186
2022-01-18 10:40:58 +08:00
b0d4021212 Feature Flutter反馈详情 2022-01-18 10:40:58 +08:00
2f1137b97b Merge branch 'hotfix-v5.5.4-454-generic_crash' into 'release'
Hotfix v5.5.4 454 generic crash

See merge request halo/android/assistant-android!185
2022-01-18 10:21:36 +08:00
78541a56f8 调整包被篡改后的闪退提示弹窗 2022-01-18 10:18:29 +08:00
7d9a0d3308 尝试修复 Fresco 未能被正常初始化的问题 2022-01-18 10:18:29 +08:00
0c6ace909e 处理 Sonar 代码问题 2022-01-18 10:15:30 +08:00
8afba620f8 【光环助手V5.6.0】游戏预约功能(第四期)(0117测试:2,3,4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1637 2022-01-18 10:08:24 +08:00
5bef19fac2 Merge branch 'hotfix-v5.5.4-454-generic_crash' into 'release'
修复 5.5.4 的一些闪退

See merge request halo/android/assistant-android!184
2022-01-18 09:25:08 +08:00
beb1c95a2b 修复 5.5.4 的一些闪退
1. 捕抓选择图片上传时的异常
2. 捕抓骨架图在老旧 oppo 设备上的夜间模式闪退
2022-01-18 09:25:08 +08:00
ec5865fa69 【光环助手V5.6.0】工具箱集合页优化(UI反馈2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1640 2022-01-17 18:22:55 +08:00
4bd2d0aff7 Merge branch 'hotfix-v5.5.4-454-generic_crash' into 'release'
修复一些闪退

See merge request halo/android/assistant-android!183
2022-01-17 17:58:17 +08:00
ca73e267d8 Merge branch 'hotfix-v5.5.4-454-crashes' into 'release'
修改sentry上一些闪退问题

See merge request halo/android/assistant-android!182
2022-01-17 17:57:28 +08:00
628b91eed8 修复一些闪退
1. 修复未成年弹窗偶发的闪退
2. 捕抓富文本点击闪退
3. 修复首页轮播图偶发的数组越界闪退
2022-01-17 17:56:36 +08:00
878deba341 【光环助手V5.6.0】工具箱集合页优化(UI反馈1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1640 2022-01-17 17:47:53 +08:00
1376a787dd 【光环助手V5.6.0】工具箱集合页优化(20220117测试反馈2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1640 2022-01-17 17:06:07 +08:00
9c56b67dcc 1.修改帖子详情闪退问题
2.修改视频贴评论页还未显示出来点击评论闪退问题
3.修改视频帖信息展开功能闪退问题
2022-01-17 16:36:07 +08:00
f4e7c9acc5 Merge branch 'hotfix-v5.5.4-454-my_game_activity_crash' into 'release'
修复我的游戏页显示右上角引导图导致的闪退问题

See merge request halo/android/assistant-android!181
2022-01-17 16:26:52 +08:00
lyr
0a94a27331 修复我的游戏页显示右上角引导图导致的闪退问题 2022-01-17 16:24:21 +08:00
21230d17fb 【光环助手V5.6.0】工具箱集合页优化(20220117测试反馈1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1640 2022-01-17 15:47:17 +08:00
b12d9528c1 更改emoji4j库bug并上传私有nexus 2022-01-17 15:11:13 +08:00
2127356240 【光环助手V5.6.0】前端优化汇总12月第5周(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-17 14:25:25 +08:00
ce677b13a0 【光环助手V5.6.0】前端优化汇总12月第5周(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-17 10:57:31 +08:00
62d6ea002d 版本更新至 5.5.5 2022-01-17 10:02:06 +08:00
e0aa84c877 Merge branch 'hotfix-v5.5.4-454-fix_wrong_so_loaded' into 'release'
尝试修复 VIVO 和 OPPO 设备加载错误 SO 的问题

See merge request halo/android/assistant-android!180
2022-01-17 10:00:57 +08:00
25f4c027bf 尝试修复 VIVO 和 OPPO 设备加载错误 SO 的问题 2022-01-17 09:59:08 +08:00
10d7bc56b1 替换微信绑定正式环境链接 2022-01-17 09:27:51 +08:00
59006ad921 Merge branch 'feature-issues1637' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
2022-01-14 10:55:43 +08:00
a821915a1a 【光环助手V5.6.0】游戏预约功能(第四期)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1637 2022-01-14 10:49:26 +08:00
4a91d0db53 Update .gitlab-ci.yml 2022-01-13 17:23:20 +08:00
984fca183f 处理合并冲突 2022-01-13 17:21:45 +08:00
fc1710f3b9 Merge remote-tracking branch 'origin/dev-5.6.0' into dev
# Conflicts:
#	app/src/main/java/com/gh/common/util/DownloadObserver.kt
#	app/src/main/java/com/gh/common/util/EnvHelper.kt
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
#	app/src/main/java/com/gh/gamecenter/collection/GamesCollectionAdapter.kt
#	app/src/main/java/com/gh/gamecenter/collection/GamesCollectionFragment.kt
#	app/src/main/java/com/gh/gamecenter/download/NewInstalledGameFragment.kt
#	app/src/main/java/com/gh/gamecenter/forum/home/CommunityHomeFragment.kt
#	app/src/main/java/com/gh/gamecenter/game/rank/RankCollectionAdapter.kt
#	app/src/main/java/com/gh/gamecenter/manager/DataCollectionManager.java
#	app/src/main/java/com/gh/gamecenter/message/MessageItemViewHolder.java
#	app/src/main/java/com/gh/gamecenter/retrofit/RetrofitManager.java
#	app/src/main/java/com/halo/assistant/HaloApp.java
#	dependencies.gradle
2022-01-13 16:59:12 +08:00
56f817bb7a Merge branch 'dev' into 'release'
修复下载管理sentry问题

See merge request halo/android/assistant-android!179
2022-01-13 14:43:54 +08:00
70a939b2b6 处理部分 SonarQube 问题 2022-01-13 11:36:38 +08:00
c7f7804b52 Merge branch 'dev-5.6.0' of git.ghzs.com:halo/android/assistant-android into dev-5.6.0 2022-01-13 11:06:47 +08:00
d3494774a3 修改创建游戏单输入文字闪退问题 2022-01-13 11:06:30 +08:00
1b976106e4 尝试修复下载管理游戏更新列表数组越界闪退 2022-01-13 11:02:16 +08:00
10a81255a6 Merge dev-5.6.0 into dev-5.6.0 2022-01-13 10:50:13 +08:00
4eaa55cf78 apksig 调整为外部依赖 2022-01-13 10:46:46 +08:00
0e3ab3c3a7 Merge branch 'hotfix-v5.5.3-453-crash' into 'release'
修改sentry上闪退问题

See merge request halo/android/assistant-android!178
2022-01-13 09:10:53 +08:00
948588b874 1.修改外部浏览器跳转app闪退问题 2.修改帖子详情空指针问题 2022-01-12 19:55:10 +08:00
095139079e 修复下载管理已安装列表空指针闪退 尝试修复数组越界闪退 2022-01-12 17:40:16 +08:00
42c553b9d3 优化创建游戏单一个emoji表情只算作1个字符 2022-01-12 15:31:22 +08:00
aedd766d7d 启动弹窗图片不加入到内存缓存中 2022-01-12 15:03:00 +08:00
228ab0ca40 Merge branch 'hotfix-v5.5.3-453-room_crash' into 'release'
尝试处理数据库的CursorWindowAllocationException异常

See merge request halo/android/assistant-android!176
2022-01-12 14:11:06 +08:00
fdcb7cbbf7 Merge branch 'hotfix-v5.5.3-453-optimizate' into 'release'
修复游戏单、搜索论坛问题

See merge request halo/android/assistant-android!175
2022-01-12 11:21:38 +08:00
933f46e250 1.修改游戏单选择游戏列表复用问题
2.修改论坛搜索页热门论坛超过20个闪退问题
2022-01-12 11:08:44 +08:00
2282787bd7 Merge branch 'hotfix-v5.5.3-453-wrong_so_crash' into 'release'
再次启用 64 位 SO, 尝试修复部分 5.0 & 5.1 设备依旧读取错误图片 SO 的问题

See merge request halo/android/assistant-android!174
2022-01-12 10:52:08 +08:00
c4d3698a9b 再次启用 64 位 SO, 尝试修复部分 5.0 & 5.1 设备依旧读取错误图片 SO 的问题 2022-01-12 10:50:29 +08:00
80cc86a791 尝试处理数据库的CursorWindowAllocationException异常 2022-01-12 10:30:38 +08:00
3646672849 版本更新至 5.5.4 2022-01-11 17:26:15 +08:00
9a4c8f1f06 Merge branch 'dev' into 'release'
合并 5.5.0 游戏单活动

See merge request halo/android/assistant-android!173
2022-01-11 17:16:39 +08:00
4eba721461 调整下载进度更新方法入参 2022-01-11 16:04:09 +08:00
eeafcde6e9 修复游戏卡片快速更新时出现重复标签的问题 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1680 2022-01-11 16:03:11 +08:00
0255fdbe33 处理游戏搜索页直接读取数据库引起的无响应问题 2022-01-11 14:08:15 +08:00
ce303b37b7 修复下载管理已安装列表在安装/卸载游戏后的显示异常 2022-01-10 17:50:39 +08:00
lyr
84cd49478a 优化页面重建后的显示(5、6)https://git.shanqu.cc/halo/android/assistant-android/-/issues/54 2022-01-10 17:14:30 +08:00
0ed92483f6 修复快速来回滑动时首页榜单卡片可能闪退的问题 2022-01-07 16:37:13 +08:00
83f22c2874 优化页面重建后的显示(1) https://git.shanqu.cc/halo/android/assistant-android/-/issues/54 2022-01-07 16:26:39 +08:00
c4f6d00540 修改页面重建后没有及时刷新用户数据问题 2022-01-07 15:54:30 +08:00
6af60df87c 优化页面重建后的显示(4) https://git.shanqu.cc/halo/android/assistant-android/-/issues/54 2022-01-07 15:00:50 +08:00
d4ffa6116d 优化页面重建后的显示(2,3) https://git.shanqu.cc/halo/android/assistant-android/-/issues/54 2022-01-07 14:49:37 +08:00
dab2d40ba4 处理部分 SonarQube 问题 2022-01-07 11:58:20 +08:00
f45f29aa43 修复安利墙页面重建会闪退的问题 2022-01-07 10:17:00 +08:00
lyr
f793469dce 修复开服表页面闪退问题 2022-01-06 19:06:55 +08:00
06ced1c0d2 处理 SonarQube 问题 2022-01-06 18:32:44 +08:00
0ea396fa35 修复懒加载页面在页面重构时会显示空白的问题 2022-01-06 18:19:43 +08:00
1714b01b34 修复ImageViewerActivity单张图片渐出动画异常 2022-01-06 16:46:04 +08:00
ced132c07f Merge remote-tracking branch 'origin/dev-5.6.0' into dev-5.6.0 2022-01-06 16:28:06 +08:00
500e069139 优化 ImageViewerActivity 代码及渐出动画 https://git.shanqu.cc/halo/android/assistant-android/-/issues/52 2022-01-06 16:25:56 +08:00
lyr
2bf896aa3f 【光环助手V5.6.0】前端优化汇总12月第5周(2、7(1))https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-06 14:45:11 +08:00
9168cfc928 我的光环相关页面列表去掉分隔条用线条代替 2022-01-06 10:33:03 +08:00
0bbffb20cd Merge branch 'release' into 'dev'
Merge hotfix from release

See merge request halo/android/assistant-android!172
2022-01-05 11:49:50 +08:00
lyr
18a28254fb 【光环助手V5.6.0】前端优化汇总12月第5周(5)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-05 11:22:28 +08:00
415626ef58 版本更新至 5.5.3 2022-01-04 16:25:03 +08:00
e9ad25dc36 Merge branch 'hotfix-v5.5.2-452-realname_compat_layout' into 'release'
处理实名页面在小屏设备上的显示问题

See merge request halo/android/assistant-android!171
2022-01-04 15:44:48 +08:00
92215163bf 处理实名页面在小屏设备上的显示问题 2022-01-04 15:44:06 +08:00
b3ffe61376 Merge branch 'hotfix-v5.5.2-452-select_id_image_crash' into 'release'
修复部分设备在实名认证人工审核选择图片时的闪退问题

See merge request halo/android/assistant-android!170
2022-01-04 11:28:51 +08:00
8e6048883a 修复部分设备在实名认证人工审核选择图片时的闪退问题 2022-01-04 11:27:50 +08:00
532e40efc3 Merge branch 'hotfix-v5.5.2-452-meizu_skeleton_crash' into 'release'
捕抓骨架图在魅族设备上的闪退

See merge request halo/android/assistant-android!169
2022-01-04 10:52:12 +08:00
b775083437 捕抓骨架图在魅族设备上的闪退 2022-01-04 10:51:09 +08:00
e4b4270731 【光环助手V5.6.0】前端优化汇总12月第5周(3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-04 09:53:51 +08:00
bf0f551768 【光环助手V5.6.0】前端优化汇总12月第5周(4) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2022-01-02 16:09:59 +08:00
213ccd86c0 【光环助手V5.6.0】前端优化汇总12月第5周(4,6) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1672 2021-12-31 18:21:13 +08:00
lyr
fc5de50f61 【光环助手V5.5.0】游戏单活动:解锁好游种草新姿势(1230测试 7)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1638#note_130160 2021-12-31 16:43:59 +08:00
lyr
b896af2a15 【光环助手V5.5.0】游戏单活动:解锁好游种草新姿势(完善"url参数增加是否可以由web端处理返回键")https://git.shanqu.cc/pm/halo-app-issues/-/issues/1638#note_129888 2021-12-30 19:10:10 +08:00
lyr
93ba447192 【光环助手V5.5.0】游戏单活动:解锁好游种草新姿势(url参数增加是否可以由web端处理返回键)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1638 2021-12-30 16:56:15 +08:00
dd8cc3c744 优化 ImageViewerActivity 代码及渐出动画 https://git.shanqu.cc/halo/android/assistant-android/-/issues/52 2021-12-30 16:47:18 +08:00
064b041d28 版本更新至 5.5.2 2021-12-30 09:28:33 +08:00
a131aca047 Merge branch 'hotfix-v5.5.1-451-installed_crash' into 'release'
修复下载管理已安装列表的空列表闪退问题

See merge request halo/android/assistant-android!168
2021-12-30 09:27:32 +08:00
ad9b39a94a 修复下载管理已安装列表的空列表闪退问题 2021-12-30 09:25:22 +08:00
lyr
c3cf93eaee 【光环助手V5.5.0】游戏单活动:解锁好游种草新姿势(更新递增任务进度接口)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1638#note_129888 2021-12-29 18:32:32 +08:00
b83f98e90c Merge branch 'hotfix-v5.5.1-451-community_home_crash' into 'release'
修复首页-社区Tab重建后页面空白问题以及按返回键闪退问题

See merge request halo/android/assistant-android!167
2021-12-29 17:48:39 +08:00
lyr
5e4c451ccd 修复首页-社区Tab重建后页面空白问题以及按返回键闪退问题 2021-12-29 17:47:12 +08:00
ab5e0136a7 Merge branch 'hotfix-v5.5.1-451-forum_crash' into 'release'
修复论坛详情页面重建后闪退问题

See merge request halo/android/assistant-android!166
2021-12-29 16:40:04 +08:00
89ca11bb81 修复论坛详情页面重建后闪退问题 2021-12-29 16:40:03 +08:00
f220b2fd43 Merge branch 'hotfix-v5.5.1-451-recyclerview_crash' into 'release'
尝试修复下载管理更新页面列表闪退

See merge request halo/android/assistant-android!165
2021-12-29 15:02:19 +08:00
28d99cbe38 尝试修复下载管理更新页面列表闪退 2021-12-29 14:59:08 +08:00
9c2130562b Merge branch 'hotfix-v5.5.1-451-log_anr' into 'release'
处理部分因为日志上报造成的无响应问题

See merge request halo/android/assistant-android!164
2021-12-29 10:58:39 +08:00
d242aca942 处理部分因为日志上报造成的无响应问题 2021-12-29 10:56:39 +08:00
a341dcf0b7 Merge branch 'hotfix-v5.5.1-451-comment_detail' into 'release'
修改游戏/新闻评论详情评论输入框显示异常

See merge request halo/android/assistant-android!163
2021-12-28 18:05:03 +08:00
8a1c7ed5a0 修改游戏/新闻评论详情评论输入框显示异常 2021-12-28 17:49:17 +08:00
1e0a3e9881 处理 SonarQube Code Smell 2021-12-28 16:52:38 +08:00
d76d430672 Merge branch 'hotfix-v5.5.1-451-message_center' into 'release'
修改点赞游戏单评论回复消息跳转错误

See merge request halo/android/assistant-android!162
2021-12-28 16:50:03 +08:00
32034473ac 修改点赞游戏单评论回复消息跳转错误 2021-12-28 16:16:31 +08:00
383d349b3a 测试包测试预执行 dex2oat 2021-12-28 15:57:04 +08:00
e036f2e602 处理工具箱集合页相关SonarQube问题 2021-12-28 14:31:18 +08:00
c73b70b7e7 处理工具箱集合页相关SonarQube问题 2021-12-28 11:30:07 +08:00
d105f2a175 优化 ImageViewerActivity 代码及渐出动画 https://git.shanqu.cc/halo/android/assistant-android/-/issues/52 2021-12-28 10:18:12 +08:00
cf1dc4e4f1 版本更新至 5.5.1 2021-12-27 18:31:09 +08:00
1d9a877f59 Merge branch 'hotfix-v5.5.0-450-installed_game' into 'release'
修复已安装游戏列表空指针

See merge request halo/android/assistant-android!161
2021-12-27 18:29:27 +08:00
772226fb1a Merge branch 'hotfix-v5.5.0-450-generic_crash' into 'release'
处理闪退

See merge request halo/android/assistant-android!160
2021-12-27 18:26:57 +08:00
fe62dee207 Merge branch 'hotfix-v5.5.0-450-multiple_download_complete_event' into 'release'
临时处理因为优化性能而引起的重复触发下载完成事件的问题

See merge request halo/android/assistant-android!159
2021-12-27 18:25:52 +08:00
37309918dd 临时处理因为优化性能而引起的重复触发下载完成事件的问题 2021-12-27 18:25:11 +08:00
7f8e853657 Merge branch 'hotfix-v5.5.0-450-image_so_crash' into 'release'
去除 arm64-v8a

See merge request halo/android/assistant-android!158
2021-12-27 15:19:08 +08:00
006a8a523e 去除 arm64-v8a 2021-12-27 15:18:20 +08:00
8e497122f2 Merge branch 'hotfix-v5.5.0-450-build_script' into 'release'
处理 sentry 插件编译问题

See merge request halo/android/assistant-android!157
2021-12-27 11:10:36 +08:00
33d5353f75 处理 sentry 插件编译问题 2021-12-27 11:08:41 +08:00
6da3d46d71 Merge branch 'feature-issues1638' into 'dev'
【光环助手V5.5.0】游戏单活动:解锁好游种草新姿势(客户端部分)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1638

See merge request halo/android/assistant-android!156
2021-12-27 11:07:31 +08:00
a26e61ae4b 【光环助手V5.5.0】游戏单活动:解锁好游种草新姿势(客户端部分)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1638 2021-12-27 11:07:31 +08:00
c3d347bffe - 捕抓已收录游戏列表类型异常
- 修复无内容查看大图时的闪退问题
2021-12-27 11:02:00 +08:00
39cc7e98a8 Merge branch 'hotfix-v5.5.0-450-rank_list_crash' into 'release'
捕抓首页排行榜列表数组越界异常

See merge request halo/android/assistant-android!155
2021-12-27 10:34:59 +08:00
2a4e500893 捕抓首页排行榜列表数组越界异常 2021-12-27 10:32:25 +08:00
d6e0cfd644 修复已安装游戏列表空指针 2021-12-27 10:29:56 +08:00
dbbcd29303 MOD限制规则(新)(修复重复安装不算更新的问题) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1646 2021-12-24 16:28:02 +08:00
f3a5f28236 MOD限制规则(新)(修复请求头异常的问题) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1646 2021-12-24 14:32:26 +08:00
bfae7143b1 MOD限制规则(新)(补充请求头) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1646 2021-12-24 11:55:58 +08:00
3ce733ab67 调整异步渲染 UI API,首页安利墙应用异步渲染 2021-12-24 11:02:04 +08:00
d6f75d6dd0 完成MOD限制规则(新) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1646 2021-12-23 18:14:02 +08:00
6f3ba952ab 优化首页滑动性能 2021-12-23 17:45:34 +08:00
4203fdfb72 【光环助手V5.6.0】工具箱集合页优化 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1640 2021-12-23 16:38:21 +08:00
fd9abc7619 【光环助手5.5.0】新社区运营验收问题(5,7) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1662 2021-12-23 09:43:19 +08:00
53a9f408e7 处理 SonarQube 问题
1. 移除冗余判断
2. 处理可空异常
3. 处理捕获 InteruptionException 的状态
4. 调整类是否一致的判断方式
2021-12-22 10:58:25 +08:00
4eba49b625 Merge branch 'feature-optimizate_gamedetail' into dev-5.6.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
#	app/src/main/java/com/gh/gamecenter/servers/GameServersContentAdapter.kt
2021-12-22 09:49:10 +08:00
lyr
e3476f9956 【光环助手V5.5.0】同步正式环境后测试问题汇总(12(2))https://git.shanqu.cc/pm/halo-app-issues/-/issues/1656 2021-12-21 18:08:24 +08:00
aedb08ce5d 修改编辑游戏单获取详情数据错误问题 2021-12-21 17:33:40 +08:00
lyr
9feb4e774a 处理 SonarQube 问题:
双重检查锁方式实现的单例,改为使用静态内部类方式
2021-12-21 16:51:44 +08:00
9515676876 恢复 arm64 SO,5.0 & 5.1 设备禁用 fresco native 解码 2021-12-21 16:13:36 +08:00
e250f69d6b 整理游戏详情模块代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/53 2021-12-21 15:27:46 +08:00
4d4d2c91e2 完成国家实名认证系统接入 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1645 2021-12-21 15:16:18 +08:00
1283ec94de 【光环助手V5.5.0】同步正式环境后测试问题汇总(12(1)) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1656 2021-12-21 10:09:07 +08:00
lyr
27f14ac914 【光环助手V5.6.0】客服联系QQ更换(1.我的光环-设置-账号与安全-联系客服)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1648 2021-12-20 14:56:27 +08:00
lyr
4565819dd8 【光环助手V5.5.0】同步正式环境后测试问题汇总(游戏icon为动图的情况下不会显示白色边框)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1656#note_128656 2021-12-20 14:27:58 +08:00
fa5207855e 修改提交游戏单后我的游戏单页面没有刷新数据 2021-12-17 17:53:23 +08:00
7f586a042b 修改编辑游戏单游戏不足8个且未勾选仅自己可见提示错误问题 2021-12-17 17:12:46 +08:00
1adad849e0 【光环助手V5.5.0】同步正式环境后测试问题汇总(11) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1656 2021-12-17 16:26:50 +08:00
56b2983252 整理游戏详情模块代码 https://git.shanqu.cc/halo/android/assistant-android/-/issues/53 2021-12-17 16:07:16 +08:00
lyr
8b5e0edb88 处理 SonarQube 问题:
1.双重检查锁实现单例时增加使用volatile,以防止获取到未初始化完成的对象
2.对之前未在finally进行关闭资源的流操作,使用try-with-resources实现资源自动关闭
3.使用BigDecimal.valueOf(double)代替BigDecimal(double)
2021-12-16 19:01:06 +08:00
be17d3fc97 Update .gitlab-ci.yml 2021-12-16 16:55:24 +08:00
lyr
e898b8a7a4 【光环助手V5.5.0】新社区运营测试问题汇总(2)(第10点) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1636 2021-12-15 16:25:28 +08:00
831c698f8d 版本号更新至 5.6.0,全部接口请求添加 version 和 channel 请求头 2021-12-15 16:04:36 +08:00
76b8988597 Merge branch 'dev' into dev-5.6.0 2021-12-15 15:58:44 +08:00
34b46a6143 正式环境接口切换到 5.5.0 2021-12-15 15:06:34 +08:00
422cc5d396 处理代码合并异常 2021-12-15 15:06:09 +08:00
a048e00489 Merge remote-tracking branch 'origin/feature-issues1625' into dev
# Conflicts:
#	app/src/main/java/com/gh/common/util/UploadImageUtils.kt
#	app/src/main/java/com/halo/assistant/HaloApp.java
2021-12-15 11:29:33 +08:00
7dde4eca55 优化部分代码 2021-12-15 11:14:12 +08:00
e7af8840fd 处理一些代码错误 2021-12-15 10:01:54 +08:00
903276e5ed 修复没有后门的实名下载任务也会被有后门的任务触发的问题 2021-12-14 16:22:33 +08:00
43bdfc0605 优化字符串替换 2021-12-14 15:33:41 +08:00
3c2332d6f4 处理一些代码错误 2021-12-14 11:28:35 +08:00
e222f504f6 更新 flutter 打包脚本 2021-12-14 10:59:11 +08:00
86707ccc7d 更新 flutter 打包脚本 2021-12-14 10:47:25 +08:00
ed8c1a6b6c 更新 flutter 打包脚本 2021-12-14 10:43:55 +08:00
8179715f5b 移除本地过期的隐私政策网页文件 2021-12-14 10:28:58 +08:00
3ea293612d 添加 CI 配置 2021-12-14 09:55:14 +08:00
545bb6b47d Merge branch 'dev-5.5.0' into 'dev'
5.5.0 功能变更

See merge request halo/android/assistant-android!154
2021-12-14 09:22:35 +08:00
lyr
0b40894cda 【光环助手V5.5.0】前端优化汇总第一周(1213测试 1-3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1617#note_127947 2021-12-13 20:35:44 +08:00
e6246314fd 修复热门游戏单组件内无法上下滑动的问题 2021-12-13 20:12:20 +08:00
2c23f03cc4 修改游戏单广场布局 2021-12-13 19:26:10 +08:00
91b9502d0b 修复游戏单广场列表下滑时偏移留白的问题 2021-12-13 17:24:36 +08:00
lyr
5bbe039e9f 【光环助手V5.5.0】游戏单功能测试汇总(1213测试 8)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1651 2021-12-13 16:45:02 +08:00
8be8fbee19 去除游戏单广场头图的视差的效果 2021-12-13 15:56:30 +08:00
2e5361f844 【光环助手V5.5.0】更换引导图 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1643 2021-12-13 14:49:36 +08:00
f4ecf28808 调整实名认证按钮样式 2021-12-13 11:13:53 +08:00
5dd88e30f8 发布视频贴添加防抖处理 https://git.shanqu.cc/pm/halo-app-issues/-/issues/1641 2021-12-13 10:41:02 +08:00
0095c82edb 修复测试包的登录问题 2021-12-13 10:20:42 +08:00
b8260cada6 文字字号从固定值改成 dimens.xml中引用的值 2021-12-13 10:04:50 +08:00
39ec77faae 调整测试环境和正式环境切换的逻辑 2021-12-10 17:57:25 +08:00
lyr
5d4434eebd 修改游戏单详情顶部遮罩 2021-12-10 16:13:25 +08:00
553ab70d78 Merge remote-tracking branch 'origin/dev' into dev-5.5.0
# Conflicts:
#	app/build.gradle
#	app/src/main/java/com/gh/common/DefaultUrlHandler.kt
#	app/src/main/java/com/gh/common/util/DirectUtils.kt
#	app/src/main/java/com/gh/common/util/EntranceUtils.java
#	build.gradle
2021-12-10 15:19:25 +08:00
23bffe7c5e 处理榜单卡片游戏文字的显示问题 2021-12-10 15:05:33 +08:00
babc41a0cb 【光环助手V5.5.0】游戏单功能测试汇总(1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1651 2021-12-10 14:26:19 +08:00
a272033834 统一颜色取值 2021-12-10 11:55:45 +08:00
82ebdd3908 【光环助手V5.5.0】游戏单数据埋点(1209测试2-3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1549 2021-12-10 10:18:24 +08:00
lyr
30cac9f86e 【光环助手V5.5.0】游戏单数据埋点(1209测试 1) 2021-12-09 19:00:34 +08:00
lyr
6f19a2b668 【光环助手V5.5.0】游戏单详情-玩家评论(1209测试 2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1602#note_127599 2021-12-09 17:52:39 +08:00
lyr
9235c19475 【光环助手V5.5.0】游戏单-个人主页(1209测试 3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1591#note_127565 2021-12-09 17:22:27 +08:00
lyr
79d9d05775 Merge remote-tracking branch 'origin/dev-5.5.0' into dev-5.5.0 2021-12-09 16:36:08 +08:00
lyr
2b816a5914 修改游戏单详情顶部遮罩 2021-12-09 16:36:03 +08:00
7d163f454e 【光环助手V5.5.0】游戏单广场(1209补充2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1598
修改游戏单广场发布控件动效
修改游戏单卡片黑色渐变遮罩
删除选择标签刷新动画
2021-12-09 16:31:37 +08:00
b44b676a59 【光环助手V5.5.0】游戏单-社区相关(1209测试:1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1595 2021-12-09 15:33:39 +08:00
c71429750c 修改添加游戏搜索时提示信息的显示问题 2021-12-09 15:13:24 +08:00
a8c273f68a 【光环助手V5.5.0】前端优化汇总第六周(1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1650 2021-12-09 10:24:52 +08:00
2588999270 Merge remote-tracking branch 'origin/dev-5.5.0' into dev-5.5.0 2021-12-09 10:20:49 +08:00
99f7bd9192 【光环助手V5.5.0】游戏单 UI 修复(创建游戏单(2)选择标签)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1647 2021-12-09 10:20:37 +08:00
70419e412e 修改我的游戏单标签显示错误问题 2021-12-09 09:54:03 +08:00
df3df01327 修改热门游戏单跳转游戏单详情参数 2021-12-08 18:32:36 +08:00
lyr
4bdc051d34 【光环助手V5.5.0】游戏单详情-顶部区域/游戏列表(1208测试 1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1601#note_127384 2021-12-08 16:29:12 +08:00
575dab06f6 完成实名认证第四期优化(20211207UI测试反馈) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1625 2021-12-08 16:12:05 +08:00
lyr
78cc7b116a 【【光环助手V5.5.0】游戏单-个人主页(1206测试 2)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1591#note_126908 2021-12-08 15:15:05 +08:00
6ebc4f1f43 【光环助手V5.5.0】首页顶部tab-游戏单广场(1208测试1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1599 2021-12-08 15:09:52 +08:00
lyr
82bb0e26ec 【光环助手V5.5.0】游戏单 UI 修复(社区 - 发帖子 - 引用游戏单)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1647 2021-12-08 10:54:37 +08:00
lyr
6c4030c965 【光环助手V5.5.0】游戏单 UI 修复(游戏单介绍页)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1647 2021-12-07 17:41:17 +08:00
lyr
ba6d3746ab 【光环助手V5.5.0】游戏单 UI 修复(游戏单详情页)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1647 2021-12-07 17:26:49 +08:00
03faa42bab 删除游戏单广场多余代码 2021-12-07 16:32:52 +08:00
151a4fd2bc DataBinding改为使用ViewBinding
优化游戏单曝光统计代码
2021-12-07 16:11:02 +08:00
lyr
3d8c4038a6 【光环助手V5.5.0】游戏单详情-玩家评论(1202测试: 15)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1602#note_126460 2021-12-07 15:20:05 +08:00
lyr
1e0265f6ff 【光环助手V5.5.0】游戏单详情-玩家评论(1202测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1602#note_126460 2021-12-07 15:03:10 +08:00
19871d2bed 【光环助手V5.5.0】首页顶部tab-游戏单广场(1206测试1)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1599
【光环助手V5.5.0】游戏单广场(1206测试1、3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1598
2021-12-07 11:38:13 +08:00
3da57acf12 Merge branch 'release' into 'dev'
Merge hotfix from release

See merge request halo/android/assistant-android!153
2021-12-07 11:32:53 +08:00
f6b5e5ecc7 修复进入类型为热门回答的游戏专区会闪退的问题 2021-12-07 11:31:23 +08:00
8f471b76eb Merge branch 'feature-optimise_home_page_performance' into 'dev-5.5.0'
优化首页嵌套列表滑动性能

See merge request halo/android/assistant-android!152
2021-12-06 18:30:24 +08:00
8218aa004b 【光环助手V5.5.0】首页/版块内容列表-游戏单广场(1201测试3)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1600 2021-12-06 18:29:58 +08:00
lyr
741a4c1640 【光环助手V5.5.0】游戏单详情-顶部区域/游戏列表(1202测试)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1601#note_126457 2021-12-06 18:28:08 +08:00
63e9f02cda 优化首页嵌套列表滑动性能 2021-12-06 18:27:44 +08:00
8ed3f759b4 【光环助手V5.5.0】创建/编辑游戏单(1206测试:3) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1604 2021-12-06 16:54:39 +08:00
616abbe04c 【光环助手V5.5.0】我的光环-我的游戏单(1206测试:1) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1603 2021-12-06 15:56:58 +08:00
8ea3511451 【光环助手V5.5.0】游戏单 UI 修复(1、2、4、8(2))https://git.shanqu.cc/pm/halo-app-issues/-/issues/1647 2021-12-06 15:21:50 +08:00
52475e83e9 Merge branch 'feature-flutter-game-comments' into 'dev'
Feature flutter game comments

See merge request halo/android/assistant-android!151
2021-12-06 09:40:20 +08:00
c573fc3b8f Fixed Sentry插件冲突问题
Updated 更新Sentry DSN地址
Added 游戏动态大图长按保存功能
2021-12-06 09:40:20 +08:00
bc23240003 【光环助手V5.5.0】游戏单 UI 修复(7,8) https://git.shanqu.cc/pm/halo-app-issues/-/issues/1647 2021-12-04 14:21:47 +08:00
f92490406e 【光环助手V5.5.0】游戏单 UI 修复(1-4、6)https://git.shanqu.cc/pm/halo-app-issues/-/issues/1647 2021-12-03 18:30:05 +08:00
9ab5b67ae7 更新 Sentry 版本和 DSN 地址 2021-12-03 18:07:48 +08:00
adaffbac77 修改首页tab游戏单广场接口 2021-12-03 11:08:56 +08:00
3c9150adbc 完善游戏单广场列表分页加载 2021-12-03 10:37:16 +08:00
884e5b3095 【光环助手V5.5.0】创建/编辑游戏单(1201测试1-4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1604 2021-12-02 17:21:16 +08:00
lyr
5bafb565a2 【光环助手V5.5.0】游戏单-个人主页(1201测试:5)https://git.ghzs.com/pm/halo-app-issues/-/issues/1591#note_126169 2021-12-02 17:12:42 +08:00
c750e3a50c 【光环助手V5.5.0】游戏单广场(1202测试2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-12-02 17:01:09 +08:00
lyr
917ed615f9 【光环助手V5.5.0】游戏单-浏览记录(1201测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1593#note_126175 2021-12-02 15:18:43 +08:00
19399824c2 Merge branch 'feature-flutter-game-comments' into 'dev'
Feature flutter game comments

See merge request halo/android/assistant-android!150
2021-12-02 15:00:37 +08:00
998cfb9233 Feature flutter game comments 2021-12-02 15:00:37 +08:00
ea86b09444 【光环助手V5.5.0】游戏单-社区相关(1201测试:4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1595 2021-12-02 11:45:35 +08:00
lyr
b399e6284c Merge remote-tracking branch 'origin/dev-5.5.0' into dev-5.5.0 2021-12-02 11:15:40 +08:00
lyr
adcc6fa5ef 【光环助手V5.5.0】游戏单-社区相关(1201测试 8)https://git.ghzs.com/pm/halo-app-issues/-/issues/1595#note_126269 2021-12-02 11:15:34 +08:00
da3fe16ac0 【光环助手V5.5.0】首页/版块内容列表-游戏单广场(1201测试2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1600
修复首页tab游戏单广场列表接口加载逻辑
2021-12-02 11:10:50 +08:00
5f2695f4fb 修复游戏单卡片UI问题 2021-12-02 10:17:33 +08:00
lyr
8408091b33 Merge remote-tracking branch 'origin/dev-5.5.0' into dev-5.5.0 2021-12-02 10:16:03 +08:00
lyr
8de2ba1c14 【光环助手V5.5.0】前端优化汇总第一周(1、2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1617 2021-12-02 10:15:57 +08:00
41680a3440 【光环助手V5.5.0】游戏单-社区相关(1201测试:1,3,9) https://git.ghzs.com/pm/halo-app-issues/-/issues/1595 2021-12-02 10:15:23 +08:00
320c44815e 【光环助手V5.5.0】游戏单广场(1201测试2、3、6)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-12-01 18:35:30 +08:00
f4fb26ffa9 Merge branch 'test_flutter_script' into 'dev'
修改混 flutter 编译脚本

See merge request halo/android/assistant-android!149
2021-12-01 18:23:32 +08:00
39ba62e5bd 修改混 flutter 编译脚本 2021-12-01 18:22:49 +08:00
a2a28d801c 【光环助手V5.5.0】我的光环-我的游戏单(1201测试:2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1603 2021-12-01 17:32:32 +08:00
491c94e536 移除部分 bintray 仓库地址 2021-12-01 16:15:14 +08:00
lyr
78a805a6a2 游戏单评论列表与评论详情页同步点赞数据 2021-12-01 15:04:21 +08:00
86f6c66f97 修复游戏单广场标签筛选文字过长时显示问题
调整热门游戏单组件间距
2021-12-01 10:52:05 +08:00
lyr
674ebbfe65 通用链接模块支持跳转游戏单详情 2021-11-30 18:08:30 +08:00
48d964b957 完成1119测试反馈(3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1625 2021-11-30 18:02:10 +08:00
e08ba51951 添加 jenkins flutter 编译脚本 2021-11-30 16:35:47 +08:00
1c1c271195 【光环助手V5.5.0】新社区运营测试问题汇总(2)8 https://git.ghzs.com/pm/halo-app-issues/-/issues/1636 2021-11-30 15:50:34 +08:00
9a0d49741d Merge branch 'feature-flutter-game-comments' into 'dev'
Flutter模块合并

See merge request halo/android/assistant-android!148
2021-11-30 15:16:22 +08:00
lyr
91c07dad2c 游戏单列表与游戏单详情同步数据
(cherry picked from commit bd8fd8cec33667d9460a75d28416175b0bd2995f)
2021-11-30 14:57:26 +08:00
lyr
bfb2130517 1.修复游戏单数据库迁移报错问题;
2.游戏单详情顶部Toolbar适配小米系统


(cherry picked from commit 6cca83a7a1bd8512886a8c26db78e1fd254271c4)
2021-11-30 14:56:43 +08:00
1942cf8ce9 Added 添加Tracker初始化
Updated Lancet注解依赖声明迁移回app的build.gradle
2021-11-30 14:45:52 +08:00
3f5b5ac2ed Merge branch 'dev' into feature-flutter-game-comments 2021-11-30 11:01:53 +08:00
7ab424f107 Updated 移除无用代码 2021-11-30 09:35:32 +08:00
8403db9c0e Updated Pull away configurations of Flutter project and add them into init.flutter.gradle 2021-11-30 09:17:22 +08:00
2139c19b40 Merge branch 'feature-games_collection' into dev-5.5.0 2021-11-29 18:17:10 +08:00
lyr
34d332129b 【光环助手V5.5.0】游戏单详情-玩家评论(增加分享统计) 2021-11-29 17:54:48 +08:00
19617c7e26 【光环助手V5.5.0】首页/版块内容列表-游戏单广场 https://git.ghzs.com/pm/halo-app-issues/-/issues/1600
【光环助手V5.5.0】游戏单数据埋点(首页/版块游戏单) https://git.ghzs.com/pm/halo-app-issues/-/issues/1549
2021-11-29 17:49:27 +08:00
lyr
1ca9472eee 【光环助手V5.5.0】游戏单-个人主页(细节完善)https://git.ghzs.com/pm/halo-app-issues/-/issues/1591 2021-11-29 16:11:34 +08:00
lyr
798503cf26 【光环助手V5.5.0】游戏单详情web页(提供跳转)https://git.ghzs.com/pm/halo-app-issues/-/issues/1546 2021-11-29 10:46:06 +08:00
lyr
fb251f95ce 1.优化点击评论按钮点击自动定位到[玩家评论]区域;
2.游戏单详情添加浏览记录增加状态判断
2021-11-28 16:45:54 +08:00
44b69e3d06 修复热门游戏单组件内无法上下滑动的问题 2021-11-26 15:48:44 +08:00
lyr
b44caf693b 【光环助手V5.5.0】游戏单数据埋点(游戏单详情部分(遗漏部分)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1549 2021-11-26 15:17:30 +08:00
lyr
21c456e1d0 【光环助手V5.5.0】游戏单数据埋点(游戏单详情部分) https://git.ghzs.com/pm/halo-app-issues/-/issues/1549 2021-11-26 15:11:24 +08:00
aeb41616d9 更换 gid 依赖源 2021-11-26 10:22:56 +08:00
92b4658123 Merge remote-tracking branch 'origin/feature-games_collection' into feature-games_collection 2021-11-25 15:27:24 +08:00
95c9afa550 修复游戏单广场列表分页 2021-11-25 15:26:39 +08:00
lyr
0d28fc15e9 Merge remote-tracking branch 'origin/feature-games_collection' into feature-games_collection 2021-11-25 15:02:45 +08:00
lyr
f5ff23ff3a 【光环助手V5.5.0】游戏单详情-玩家评论(完善字段) https://git.ghzs.com/pm/halo-app-issues/-/issues/1602 2021-11-25 15:02:40 +08:00
1b838b473c 1.修改我的游戏单页面刷新问题
2.关闭游戏单发布页面时清空选择的游戏
2021-11-25 15:00:30 +08:00
lyr
f0c6e437a9 【光环助手V5.5.0】游戏单详情-玩家评论(修复评论详情闪退问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1602 2021-11-25 14:33:30 +08:00
lyr
95a955c51e 【光环助手V5.5.0】游戏单详情-玩家评论(重新优化) https://git.ghzs.com/pm/halo-app-issues/-/issues/1602 2021-11-25 13:07:15 +08:00
f3fe3990c8 【光环助手V5.5.0】游戏单数据埋点(首页游戏单)https://git.ghzs.com/pm/halo-app-issues/-/issues/1549 2021-11-24 17:13:47 +08:00
8690559646 【光环助手V5.5.0】新社区运营测试问题汇总(26) https://git.ghzs.com/pm/halo-app-issues/-/issues/1582 2021-11-24 09:43:51 +08:00
3e71115443 修正拼写错误 2021-11-23 11:45:30 +08:00
5534e6f1a7 【光环助手V5.5.0】游戏单数据埋点(游戏单广场)https://git.ghzs.com/pm/halo-app-issues/-/issues/1549 2021-11-23 11:09:28 +08:00
ffe98bfac0 【光环助手V5.5.0】游戏单-消息中心 https://git.ghzs.com/pm/halo-app-issues/-/issues/1596 2021-11-23 10:45:37 +08:00
lyr
946503d469 Merge remote-tracking branch 'origin/feature-games_collection' into feature-games_collection 2021-11-22 18:06:51 +08:00
lyr
381ce29ae9 【光环助手V5.5.0】游戏单详情-玩家评论 https://git.ghzs.com/pm/halo-app-issues/-/issues/1602
【光环助手V5.5.0】游戏单详情-顶部区域/游戏列表(对接视频数据) https://git.ghzs.com/pm/halo-app-issues/-/issues/1601
2021-11-22 18:06:43 +08:00
67bfcc82fa 【光环助手V5.5.0】游戏单数据埋点(选择标签)https://git.ghzs.com/pm/halo-app-issues/-/issues/1549 2021-11-22 18:02:01 +08:00
65e07959a5 【光环助手V5.5.0】游戏单数据埋点(选择标签)https://git.ghzs.com/pm/halo-app-issues/-/issues/1549 2021-11-22 17:59:30 +08:00
a91195d829 修复请求头的 gid 更新不及时的问题 2021-11-22 15:30:42 +08:00
3d75d8507c 优化通用导航栏标题居中的实现
优化资讯详情页面导航栏标题居中
2021-11-22 10:11:35 +08:00
2ec43d4ff2 修复ToolbarActivity导致的内存泄漏问题 2021-11-19 18:33:32 +08:00
7c55f71bb5 修复 6.0 以下设备读取 DSA 签名会闪退的问题 2021-11-19 17:47:53 +08:00
99ac44de9e 游戏单禁言弹窗判断是否永久禁言 2021-11-19 17:10:04 +08:00
9df38387f2 修复 DSA 签名游戏无法正常更新的问题 2021-11-19 16:26:02 +08:00
e870dc9fd7 修复ToolbarActivity导致的内存泄漏问题 2021-11-19 14:53:45 +08:00
d7faf04a2e Fixed 修复礼包中心搜索框清空关键字后页面状态不对的问题 2021-11-19 11:31:19 +08:00
f0e325cd2e 首页顶部tab新增游戏单类型
跳转链接新增游戏单广场类型
2021-11-19 11:19:43 +08:00
lyr
c64e0da8c7 【光环助手V5.5.0】游戏单详情web页(完成分享面板)https://git.ghzs.com/pm/halo-app-issues/-/issues/1546 2021-11-19 09:44:40 +08:00
e2140f501f 【光环助手V5.5.0】首页顶部tab-游戏单广场 https://git.ghzs.com/pm/halo-app-issues/-/issues/1599 2021-11-18 18:26:40 +08:00
020c8d4456 1.处理编辑游戏单闪退问题
2.处理选择游戏页面内存泄露问题
2021-11-18 17:47:29 +08:00
401c0bfdfe Added 添加Flutter上报事件日志 2021-11-18 16:59:01 +08:00
lyr
33c411befa 【光环助手V5.5.0】游戏单-浏览记录 https://git.ghzs.com/pm/halo-app-issues/-/issues/1593 2021-11-18 16:48:57 +08:00
041619ed0d Merge branch 'feature-cache_download_status' into 'dev-5.5.0'
尝试缓存下载队列状态,避免下载按钮直接访问数据库

See merge request halo/android/assistant-android!147
2021-11-18 15:30:45 +08:00
ad6114a44b 尝试缓存下载队列状态,避免下载按钮直接访问数据库 2021-11-18 15:30:03 +08:00
d61008349a Merge branch 'dev' into feature-flutter-game-comments 2021-11-18 15:08:06 +08:00
39cfa01f5a Fixed 游戏动态我的关注入口显示和隐藏
Fixed 游戏动态评论详情评论列表缺失问题
Fixed 我的关注无数据ui展示和取消关注列表闪烁问题
2021-11-18 14:06:43 +08:00
924f83dacf 【光环助手V5.5.0】游戏单数据埋点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1549 2021-11-18 11:21:28 +08:00
lyr
68db40c4c8 【光环助手V5.5.0】游戏单-我的收藏(对接接口) https://git.ghzs.com/pm/halo-app-issues/-/issues/1592
【光环助手V5.5.0】游戏单详情-顶部区域/游戏列表(二、视频样式-顶部区域(视频数据未对接))https://git.ghzs.com/pm/halo-app-issues/-/issues/1601
2021-11-18 10:49:14 +08:00
b53a793e1c 完成【光环助手V5.5.0】实名认证第四期优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1625 2021-11-18 09:55:14 +08:00
1097300211 修改搜索游戏意见反馈内容格式 2021-11-17 16:16:58 +08:00
1052663db0 【光环助手V5.5.0】游戏单广场https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-11-17 15:34:16 +08:00
e3f0311cc7 【光环助手V5.5.0】游戏单-禁言相关 https://git.ghzs.com/pm/halo-app-issues/-/issues/1597 2021-11-17 14:55:04 +08:00
f0af5787c3 【光环助手V5.5.0】游戏单-禁言相关 https://git.ghzs.com/pm/halo-app-issues/-/issues/1597 2021-11-17 14:45:31 +08:00
4ed1da1777 完成创建游戏单页面选择标签UI 2021-11-17 11:17:37 +08:00
6cca81c4bb Added 游戏动态添加loading图 2021-11-17 11:13:09 +08:00
047c45db9a 完成【光环助手V5.5.0】前端优化汇总第三周(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1627 2021-11-17 10:30:13 +08:00
lyr
689fec168f Merge remote-tracking branch 'origin/feature-games_collection' into feature-games_collection
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java
2021-11-16 18:31:52 +08:00
lyr
cff7f4a9f5 【光环助手V5.5.0】游戏单详情-顶部区域/游戏列表(一、大图样式-顶部区域)https://git.ghzs.com/pm/halo-app-issues/-/issues/1601 2021-11-16 18:30:28 +08:00
fcb8a60722 【光环助手V5.5.0】游戏单广场(选择标签)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-11-16 18:21:18 +08:00
f2ad9b2235 合并冲突 2021-11-16 15:11:58 +08:00
49067706b7 【光环助手V5.5.0】游戏单-社区相关 https://git.ghzs.com/pm/halo-app-issues/-/issues/1595 2021-11-16 15:08:49 +08:00
098f02f0aa Added 礼包中心添加请先登录界面,登录成功后刷新关注和领号箱列表 2021-11-15 18:29:45 +08:00
772aa7ca03 【光环助手V5.5.0】游戏单广场(选择标签UI)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-11-15 17:38:13 +08:00
4e78162d7f 【光环助手V5.5.0】游戏单广场(UI)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598
【光环助手V5.5.0】首页顶部tab-游戏单广场(UI)https://git.ghzs.com/pm/halo-app-issues/-/issues/1599
【光环助手V5.5.0】首页/版块内容列表-游戏单广场(UI)https://git.ghzs.com/pm/halo-app-issues/-/issues/1600
2021-11-15 17:27:41 +08:00
017600f90e 完成【光环助手V5.5.0】新社区运营测试问题汇总(24) https://git.ghzs.com/pm/halo-app-issues/-/issues/1582#note_123972 2021-11-15 15:52:11 +08:00
86d1749989 【光环助手V5.5.0】新社区运营测试问题汇总(11,12,18,22) https://git.ghzs.com/pm/halo-app-issues/-/issues/1582 2021-11-15 14:54:34 +08:00
32bc1a4a6f 优化创建游戏单 2021-11-15 09:36:26 +08:00
lyr
58b37f8922 【光环助手V5.5.0】游戏单-个人主页(大致完成) https://git.ghzs.com/pm/halo-app-issues/-/issues/1591
【光环助手V5.5.0】游戏单-我的收藏(大致完成)https://git.ghzs.com/pm/halo-app-issues/-/issues/1592
2021-11-14 11:47:15 +08:00
135b55b204 Fixed 礼包中心列表无数据UI不居中问题
Fixed 存号箱已过期列表下拉加载无数据时没有显示“没有更多了”
2021-11-12 18:38:18 +08:00
1f025f3556 【光环助手V5.5.0】我的光环-我的游戏单 https://git.ghzs.com/pm/halo-app-issues/-/issues/1603 2021-11-12 12:19:36 +08:00
54bf1af524 修复礼包详情领取礼包时会出现重复数据的问题 2021-11-12 11:42:16 +08:00
11cae2c56f Fixed 游戏动态-礼包详情领取礼包后页面刷新问题 2021-11-11 11:00:15 +08:00
7075f3bcc1 更新 gradle 版本 2021-11-10 18:13:07 +08:00
5df2a1c2f5 更新 sentry mapping plugin 2021-11-10 17:08:33 +08:00
831ca71a58 【光环助手V5.5.0】创建/编辑游戏单 https://git.ghzs.com/pm/halo-app-issues/-/issues/1604 2021-11-10 16:52:01 +08:00
bb854161f5 Updated 实现原生页面点击关注,领取礼包后,Flutter页面的更新 2021-11-09 18:46:41 +08:00
a98d6125da Merge remote-tracking branch 'origin/dev-5.5.0' into dev-5.5.0 2021-11-09 18:22:15 +08:00
b178961b9b 尝试修复 WebView 不可用时的闪退 https://git.ghzs.com/halo/android/assistant-android/-/issues/47 2021-11-09 18:20:58 +08:00
9c6664aed2 Merge remote-tracking branch 'origin/dev' into dev-5.5.0 2021-11-09 17:59:59 +08:00
1d254248d9 Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/personal/PersonalFunctionAdapter.kt
#	dependencies.gradle
2021-11-09 17:52:15 +08:00
844c028b7b 版本升级至 5.3.4 2021-11-09 14:26:54 +08:00
cf320fa01b Merge branch 'hotfix-v5.3.3-413-crash' into 'release'
修复一部分闪退

See merge request halo/android/assistant-android!145
2021-11-09 14:21:24 +08:00
739b729654 Merge branch 'hotfix-v5.3.3-413-forced_update' into 'release'
修复用户快速跳转页面可以跳过强更的问题

See merge request halo/android/assistant-android!144
2021-11-09 14:18:16 +08:00
48729b298f Merge branch 'hotfix-v5.3.3-413-optimize_real_name_input' into 'release'
去除实名认证姓名的输入限制

See merge request halo/android/assistant-android!143
2021-11-09 11:53:58 +08:00
df2d5a93a0 去除实名认证的输入限制 2021-11-09 11:49:33 +08:00
328d200a78 修复多游戏可更新时点击全部更新按钮出现的闪退问题 2021-11-09 11:36:53 +08:00
a5f5bd8828 尝试修复通用列表数据变更偶发的越界闪退 2021-11-09 11:21:40 +08:00
760aa6f8f6 停用因未正确初始化已失效的 WorkManager 2021-11-09 10:58:47 +08:00
d6a341337a 修复部分设备跳转通知设置页面的闪退问题 2021-11-09 10:46:17 +08:00
82d79028de 捕抓部分设备网页不支持关闭安全浏览触发的闪退 2021-11-09 10:40:57 +08:00
92eece6289 修复排行榜列表点击数组越界闪退 2021-11-09 10:38:16 +08:00
edd8b86144 修复下载更新页面偶发的数组越界闪退 2021-11-09 10:37:16 +08:00
5d5c8dfddb 修复首页轮播图刷新获取新渐变颜色时的越界闪退问题 2021-11-09 10:17:01 +08:00
1dc2e661d1 修复进入游戏详情页时,非活跃 tab 也会被同时初始化的问题 2021-11-09 10:13:17 +08:00
feb46a5887 测试环境api版本升级为v5d5d0 2021-11-08 18:12:53 +08:00
4086fcdb30 修复用户快速跳转页面可以跳过强更的问题 2021-11-08 11:56:58 +08:00
8dd8d21e85 Fixed Flutter页面第一次加载不显示的问题 2021-11-08 11:30:57 +08:00
42a4210290 【光环助手V5.5.0】游戏单广场(选择标签UI)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-11-08 09:40:57 +08:00
9a1266d9d9 【光环助手V5.5.0】游戏单广场(选择标签UI)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-11-08 09:24:26 +08:00
2915042719 Fixed 解决礼包中心模块原生页面数据更新后,Flutter页面数据的更新 2021-11-08 09:09:56 +08:00
b4730589bf Merge branch 'feature-games_collection' of git.ghzs.com:halo/android/assistant-android into feature-games_collection
# Conflicts:
#	app/src/main/res/layout/layout_menu_save.xml
#	app/src/main/res/menu/menu_save.xml
2021-11-06 15:57:04 +08:00
001cbfcdb6 【光环助手V5.5.0】创建/编辑游戏单(选择游戏/添加游戏UI) https://git.ghzs.com/pm/halo-app-issues/-/issues/1604 2021-11-06 15:55:06 +08:00
44dab8246f 【光环助手V5.5.0】游戏单广场(选择标签UI)https://git.ghzs.com/pm/halo-app-issues/-/issues/1598 2021-11-05 18:08:15 +08:00
lyr
be5cbf0ca0 【光环助手V5.5.0】游戏单-我的游戏 https://git.ghzs.com/pm/halo-app-issues/-/issues/1594 2021-11-05 14:27:15 +08:00
fa2fb66f44 取消实名认证身份证类型输入限制 2021-11-05 11:12:16 +08:00
9982ebea9e 版本更新到 5.3.3 2021-11-05 11:07:34 +08:00
2b30cc1f41 Merge branch 'hotfix-v5.3.2-412-crash' into 'release'
修复部分闪退

See merge request halo/android/assistant-android!142
2021-11-05 11:06:54 +08:00
96a19eb5ee 修复部分闪退
1. 部分5.0设备启动读取错误abi造成闪退的问题
2. 部分华为鸿蒙设备读取系统类型闪退的问题
2021-11-05 11:05:26 +08:00
85276d462f Merge branch 'hotfix-v5.3.2-412-fix_realname_input' into 'release'
修复实名身份证号无法输入 X 的问题

See merge request halo/android/assistant-android!141
2021-11-05 09:59:50 +08:00
44aebc39ea 修复实名身份证号无法输入 X 的问题 2021-11-05 09:58:42 +08:00
52294ebb3a Merge branch 'dev' into feature-flutter-game-comments
# Conflicts:
#	app/build.gradle
#	app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameLibaoAdapter.kt
#	app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt
#	app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt
#	gradle.properties
2021-11-04 16:54:56 +08:00
623156bdb5 【光环助手V5.5.0】创建/编辑游戏单(创建游戏单UI) https://git.ghzs.com/pm/halo-app-issues/-/issues/1604 2021-11-04 10:19:34 +08:00
lyr
6bac5d79a9 【光环助手V5.5.0】前端优化汇总第一周(5)https://git.ghzs.com/pm/halo-app-issues/-/issues/1617 2021-11-03 17:44:37 +08:00
293fc635e1 Updated 整合环境配置
Added AssistantNavigator整合路由跳转代码,自动根据环境使用路由跳转类
2021-11-03 16:42:20 +08:00
0f0dc6dd9b Updated 更新文档 2021-11-02 17:36:19 +08:00
46de8f5f9e Added 添加我的关注跳转实现 2021-11-02 17:34:11 +08:00
ed6b2960cc Updated 更新文档 2021-11-02 16:55:54 +08:00
f3ef7930f3 Updated 更新Flutter路由跳转 2021-11-02 16:51:04 +08:00
lyr
5ecb3d5378 【光环助手V5.4.0】骨架屏 UI 优化(1102补充)https://git.ghzs.com/pm/halo-app-issues/-/issues/1575#note_122935 2021-11-02 16:22:33 +08:00
1d4fe89900 版本更新至 5.5.0 2021-11-02 10:18:18 +08:00
3f3b19f2cf 更新依赖库 2021-11-02 10:17:33 +08:00
af1ac4e888 Merge remote-tracking branch 'origin/dev' into dev-5.4.0 2021-11-02 10:14:47 +08:00
1478b59479 相关版本合并及处理要求 https://git.ghzs.com/pm/halo-app-issues/-/issues/1605 2021-11-01 16:14:04 +08:00
lyr
335cde94fe 【光环助手V5.4.0】客户端内部需求(新分类2.0游戏Item-UI问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1567#note_122549 2021-11-01 15:27:00 +08:00
dd1f399425 Merge branch 'feature-issues1572' into 'release'
完成实名认证优化第三期 https://git.ghzs.com/pm/halo-app-issues/-/issues/1572

See merge request halo/android/assistant-android!140
2021-11-01 15:03:26 +08:00
3e8923f34a 完成实名认证优化第三期 https://git.ghzs.com/pm/halo-app-issues/-/issues/1572 2021-11-01 15:00:35 +08:00
612fc8f444 【光环助手V5.2.0】光环助手UI组件库(第2期)(1101UI测试问题2-3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1327 2021-11-01 14:58:32 +08:00
0cbc104092 正式环境切换到 5.4.0 的接口 2021-11-01 07:31:32 +01:00
41f7e3a05a Merge branch 'hotfix-v5.3.1-411-crash' into 'release'
修复一些闪退

See merge request halo/android/assistant-android!139
2021-11-01 11:26:26 +08:00
25ce3ccdc9 修复一些闪退
1. 修复游戏详情页回到顶部的闪退
2. 尝试修复获取游戏更新时偶发的闪退
2021-11-01 11:24:43 +08:00
82a60413e1 【光环助手V5.4.0】客户端内部需求(Toolbar样式补充3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1567 2021-11-01 09:32:15 +08:00
2b4126fa71 【光环助手V5.4.0】客户端内部需求(修复视频数据出现2个返回按钮)https://git.ghzs.com/pm/halo-app-issues/-/issues/1567 2021-10-29 18:08:56 +08:00
lyr
52a7ab7b3c Merge remote-tracking branch 'origin/dev-5.4.0' into dev-5.4.0 2021-10-29 17:30:28 +08:00
lyr
9b8ce918d8 【光环助手V5.4.0】骨架屏 UI 优化(优化部分页面骨架屏显示)https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-29 17:30:23 +08:00
57081f4003 修复Toolbar按钮点击动画卡顿的问题 2021-10-29 17:28:01 +08:00
5df0d85004 Merge branch 'hotfix-v5.3.1-411-comment' into 'release'
修改未登录评论时一键登录弹窗弹起键盘没有收起问题

See merge request halo/android/assistant-android!138
2021-10-29 16:00:47 +08:00
63b88383a4 修改未登录评论时一键登录弹窗弹起键盘没有收起问题 2021-10-29 14:59:55 +08:00
7564a0a771 尝试修改发视频贴快速点击发送按钮会生成多条数据 2021-10-29 11:58:16 +08:00
36bc35a7e3 版本更新至 5.3.1 2021-10-29 11:13:46 +08:00
1c55ab8f86 Merge branch 'hotfix-v5.3.0-410-generic_crash' into 'release'
修复一系列闪退

See merge request halo/android/assistant-android!137
2021-10-29 11:02:35 +08:00
9a1f3b0fe3 修复一系列闪退
1. 跳转用户详情参数有误造成的闪退
2. 标记更新已读红点时的闪退
3. 5.0 以下设备点击更新按钮的闪退
4. 横向列表专题点击时偶发的闪退
5. 首页滑动顶部 BANNER 偶发的闪退
2021-10-29 11:01:16 +08:00
438b55c08b Updated 完成礼包中心-领取礼包功能
Updated 完成礼包中心-领号箱复制功能
2021-10-28 21:59:30 +08:00
lyr
12fcb98412 Merge remote-tracking branch 'origin/dev-5.4.0' into dev-5.4.0 2021-10-28 21:58:08 +08:00
lyr
33030cf550 优化部分页面骨架屏显示 2021-10-28 21:58:03 +08:00
9a7acef9a3 修改评论点赞图片闪烁问题 2021-10-28 21:48:09 +08:00
61f92e544b Merge remote-tracking branch 'origin/dev-5.4.0' into dev-5.4.0 2021-10-28 21:44:30 +08:00
57d6cc7d0e 【光环助手V5.4.0】儿童/青少年模式(修改密码输入框输入时的背景)https://git.ghzs.com/pm/halo-app-issues/-/issues/1571 2021-10-28 21:44:22 +08:00
919ace95b9 修改评论楼层显示错位 2021-10-28 21:16:21 +08:00
ec1af285af 【光环助手V5.4.0】儿童/青少年模式(修改密码输入框输入时的背景)https://git.ghzs.com/pm/halo-app-issues/-/issues/1571 2021-10-28 21:02:22 +08:00
6b4c02e965 【光环助手V5.4.0】儿童/青少年模式(测试反馈2、UI测试1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1571 2021-10-28 20:06:21 +08:00
913bcdeeb2 捕抓卸载应用时偶发的闪退异常 2021-10-28 17:52:43 +08:00
e40857d24b Merge branch 'hotfix-v5.3.0-410-image_viewer_crash' into 'release'
修复查看大图传入数组为空时的闪退异常

See merge request halo/android/assistant-android!136
2021-10-28 17:40:56 +08:00
d3fab1aa73 修复查看大图传入数组为空时的闪退异常 2021-10-28 17:40:18 +08:00
d32698ca91 Merge branch 'hotfix-v5.3.0-410-store_old_version_info' into 'release'
为后续版本提供当前版本的版本和渠道

See merge request halo/android/assistant-android!135
2021-10-28 17:26:27 +08:00
7832276560 为后续版本提供当前版本的版本和渠道 2021-10-28 17:25:37 +08:00
2fca73dfe8 Merge branch 'hotfix-v5.3.0-410-crash' into 'release'
修复游戏搜索页面列表数组越界问题

See merge request halo/android/assistant-android!134
2021-10-28 17:11:06 +08:00
lyr
0f194a80bb 修复游戏搜索页面列表数组越界问题 2021-10-28 17:09:08 +08:00
lyr
e0cdf42d26 【光环助手V5.4.0】儿童/青少年模式(修复青少年模式下部分页面右上角依然显示下载按钮的问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1571 2021-10-28 16:48:14 +08:00
c501248408 【光环助手V5.4.0】骨架屏 UI 优化(1027UI测试问题1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-28 16:40:13 +08:00
a559df99ec 添加青少年模式使用须知、找回密码url 2021-10-28 15:24:54 +08:00
1cdd7ed6ef 修改评论上传图片失败没有删除违规图片问题 2021-10-28 15:07:20 +08:00
7e3bd14db4 【光环助手V5.4.0】新社区5期-内容详情页优化(1027UI测试问题5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1533 2021-10-28 14:41:47 +08:00
ab08a725ca 【光环助手V5.4.0】新社区5期-发布页优化(1028 产品验收1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1531 2021-10-28 10:19:00 +08:00
1977c80038 【光环助手V5.4.0】骨架屏 UI 优化 (中心色宽度调整为0.1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-28 10:13:06 +08:00
d9d8eaa611 【光环助手V5.4.0】骨架屏 UI 优化(1027UI测试问题1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-28 10:05:13 +08:00
e0dcb70fcd 【光环助手V5.4.0】新社区5期-内容详情页优化(1027UI测试问题5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1533 2021-10-27 22:06:02 +08:00
bb60f7f22a 修改模拟器游戏下载按钮显示错误问题
(cherry picked from commit d3e21251d9)
2021-10-27 17:52:03 +08:00
70821c73c1 【光环助手V5.4.0】新社区5期-内容详情页优化(1027UI测试问题1,2,3,7) https://git.ghzs.com/pm/halo-app-issues/-/issues/1533 2021-10-27 17:49:07 +08:00
lyr
1560234105 【光环助手V5.4.0】新社区5期-内容详情页优化(1027UI测试问题 6)https://git.ghzs.com/pm/halo-app-issues/-/issues/1533#note_122064 2021-10-27 17:38:12 +08:00
lyr
59f74ebb9e 重构通用游戏 item 布局(修改部分页面LayoutParams不适配问题)https://git.ghzs.com/halo/android/assistant-android/-/issues/46 2021-10-27 17:07:20 +08:00
d3e21251d9 修改模拟器游戏下载按钮显示错误问题 2021-10-27 15:44:00 +08:00
aedd996c3f 【光环助手V5.4.0】骨架屏 UI 优化 (1027UI测试问题 2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-27 15:03:30 +08:00
lyr
a589b77de5 修改社区-推荐页最近浏览无数据也会显示标题的问题 2021-10-27 14:49:29 +08:00
86330c74b5 Merge remote-tracking branch 'origin/dev' into dev-5.4.0 2021-10-27 11:00:54 +08:00
lyr
54a77555cc 【光环助手V5.4.0】骨架屏 UI 优化(1026测试问题 1、2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1575#note_121834 2021-10-26 17:34:36 +08:00
30ae815717 尝试修复游戏搜索详情可能发生的进度同步问题 2021-10-26 17:18:35 +08:00
1eb1b6a956 处理合并异常 2021-10-26 16:35:52 +08:00
f46b303a67 Merge branch 'feature-issues1526' into dev
# Conflicts:
#	app/src/main/java/com/gh/download/DownloadManager.java
#	app/src/main/java/com/halo/assistant/fragment/WebFragment.java
#	dependencies.gradle
2021-10-26 16:28:25 +08:00
a1ecb784e2 完成实名认证第二期优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1526 2021-10-26 16:16:08 +08:00
lyr
142e04fa60 重构通用游戏 item 布局(适配新分类2.0游戏item)https://git.ghzs.com/halo/android/assistant-android/-/issues/46 2021-10-26 15:55:35 +08:00
540d6cd1e4 完成【光环助手V5.4.0】骨架屏 UI 优化 (1026测试问题 3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-26 15:13:24 +08:00
b078f38e62 【光环助手V5.4.0】骨架屏 UI 优化(1026测试问题4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-26 14:43:11 +08:00
a2e5415b5c 【光环助手V5.4.0】新社区5期-内容详情页优化(1026产品测试2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1533 2021-10-26 11:44:57 +08:00
9aae1c5476 Keep Constraints.Group 用到的 R.id 2021-10-26 10:42:02 +08:00
e73b431378 Merge branch 'revert-6957ca54' into 'dev-5.4.0'
Revert "Merge branch 'revert-65a82369' into 'dev-5.4.0'"

See merge request halo/android/assistant-android!131
2021-10-26 10:24:58 +08:00
0fe60f52e2 Revert "Merge branch 'revert-65a82369' into 'dev-5.4.0'"
This reverts merge request !130
2021-10-26 10:22:32 +08:00
6957ca54f0 Merge branch 'revert-65a82369' into 'dev-5.4.0'
Revert "Merge branch 'feature-fast_build' into 'dev-5.4.0'"

See merge request halo/android/assistant-android!130
2021-10-25 18:18:23 +08:00
31de4089ad Revert "Merge branch 'feature-fast_build' into 'dev-5.4.0'"
This reverts merge request !128
2021-10-25 18:17:15 +08:00
d73a4704c8 Merge remote-tracking branch 'origin/dev' into dev-5.4.0
# Conflicts:
#	app/src/main/res/layout/rank_collection_item.xml
2021-10-25 09:47:18 +08:00
2f5f52471e Merge branch 'cherry-pick-37460cea' into 'dev-5.4.0'
优化首页滑动到专题合集-排行榜样式刷新加载

See merge request halo/android/assistant-android!129
2021-10-25 09:37:52 +08:00
lyr
97f82d70f5 优化首页滑动到专题合集-排行榜样式刷新加载
(cherry picked from commit 37460ceac2)
2021-10-25 09:37:39 +08:00
lyr
c355bc2b79 【光环助手V5.4.0】骨架屏 UI 优化(首页&社区)https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-24 17:32:06 +08:00
a011b5a947 修改微博分享图片异常问题 2021-10-22 22:03:02 +08:00
efdf02158c 【光环助手V5.4.0】新社区5期-内容详情页优化(一(2)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1533 2021-10-22 18:13:45 +08:00
4ca302f5fc 微调社区评论列表UI 2021-10-22 15:55:06 +08:00
lyr
e669df00b4 Merge remote-tracking branch 'origin/dev-5.4.0' into dev-5.4.0 2021-10-22 14:41:48 +08:00
lyr
19e6f1e7b7 重构通用游戏 item 布局(优化游戏名字布局) https://git.ghzs.com/halo/android/assistant-android/-/issues/46 2021-10-22 14:41:36 +08:00
025d237be0 修改社区评论选择图片且文本为空不能提交问题 2021-10-22 14:39:50 +08:00
lyr
2eb5fb7526 【光环助手V5.4.0】儿童/青少年模式(对接设置页面)https://git.ghzs.com/pm/halo-app-issues/-/issues/1571 2021-10-22 12:28:46 +08:00
3818e17976 修复专题列表游戏大小不受后台配置控制的问题 2021-10-22 10:36:45 +08:00
1f43b8b220 修复专题列表游戏大小不受后台配置控制的问题 2021-10-22 10:35:41 +08:00
lyr
10003fe49d 重构通用游戏 item 布局 https://git.ghzs.com/halo/android/assistant-android/-/issues/46 2021-10-22 10:22:11 +08:00
80a8cadaae 【光环助手V5.4.0】前端优化汇总第四周(6) https://git.ghzs.com/pm/halo-app-issues/-/issues/1574 2021-10-22 09:51:19 +08:00
88098a8255 适配接口返回 DSA 形式的游戏签名 2021-10-21 18:07:02 +08:00
66a543146a 【光环助手V5.4.0】新社区5期-内容详情页优化(一(1)、二) https://git.ghzs.com/pm/halo-app-issues/-/issues/1533 2021-10-21 17:22:42 +08:00
3aafc3fcbe 【光环助手V5.4.0】儿童/青少年模式https://git.ghzs.com/pm/halo-app-issues/-/issues/1571 2021-10-21 11:57:22 +08:00
050da95a8f 测试环境api版本升级为v5d4d0 2021-10-21 10:59:52 +08:00
lyr
40b7b09de4 【光环助手V5.4.0】前端优化汇总第二周(4)https://git.ghzs.com/pm/halo-app-issues/-/issues/1574 2021-10-21 10:27:49 +08:00
lyr
16091f759c 【光环助手V5.4.0】儿童/青少年模式(客户端展示,未对接设置页面)https://git.ghzs.com/pm/halo-app-issues/-/issues/1571 2021-10-20 17:55:41 +08:00
f65664b885 【光环助手V5.4.0】骨架屏 UI 优化(详情页&合集) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-20 17:43:01 +08:00
lyr
3eef9c465a 【光环助手V5.4.0】前端优化汇总第二周(2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1574 2021-10-20 10:33:43 +08:00
a1b4c726dd Updated 更新游戏动态文档,新增filter字段描述
Added 礼包中心UI
2021-10-20 10:32:56 +08:00
5e2752569b 完成【光环助手V5.4.0】骨架屏 UI 优化 (游戏库&版块) https://git.ghzs.com/pm/halo-app-issues/-/issues/1575 2021-10-19 11:39:35 +08:00
65a823698a Merge branch 'feature-fast_build' into 'dev-5.4.0'
提高项目的编译性能 https://git.ghzs.com/halo/android/assistant-android/-/issues/42

See merge request halo/android/assistant-android!128
2021-10-19 10:32:57 +08:00
fdfad0edf1 【光环助手V5.4.0】前端优化汇总第二周(1,3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1574 2021-10-19 10:22:06 +08:00
dcadb529c7 修复Fragment中的Toobar返回按钮无效的问题 2021-10-19 09:54:03 +08:00
lyr
37460ceac2 优化首页滑动到专题合集-排行榜样式刷新加载 2021-10-18 18:09:21 +08:00
lyr
994397ec35 页面刷新优化(我的主页优化)https://git.ghzs.com/halo/android/assistant-android/-/issues/43 2021-10-18 17:57:06 +08:00
9354ff9af8 版本升级到 5.4.0 (430) 2021-10-18 17:46:17 +08:00
2811e21911 Updated 将AOP注入代码迁移到Flutter插件中
Fixed 项目热更新失效问题
Updated 更新文档
Updated 更新版本
2021-10-18 16:33:49 +08:00
746f81e45b Merge branch 'cherry-pick-bfa236f8' into 'dev-5.4.0'
【光环助手V5.4.0】新社区5期-活动主页(3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1535

See merge request halo/android/assistant-android!127
2021-10-18 14:42:39 +08:00
lyr
69f1887926 【光环助手V5.4.0】新社区5期-活动主页(3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1535
(cherry picked from commit bfa236f802)
2021-10-18 14:42:12 +08:00
lyr
6dfded50d6 Merge remote-tracking branch 'origin/dev' into dev 2021-10-18 11:37:12 +08:00
lyr
5e01ecf0a2 修改视频发布页-内容来源-转载网址弹窗无法触发回调问题 2021-10-18 11:37:06 +08:00
a1be42a135 【光环助手V5.4.0】后台优化汇总第三周(10(2)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1564
(cherry picked from commit 5bdd655715)
2021-10-18 11:34:45 +08:00
5bdd655715 【光环助手V5.4.0】后台优化汇总第三周(10(2)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1564 2021-10-16 09:40:35 +08:00
c32e9bd0fc 【光环助手V5.2.0】光环助手UI组件库(第2期)(二级标题导航栏)https://git.ghzs.com/pm/halo-app-issues/-/issues/1327 2021-10-15 18:28:28 +08:00
lyr
2e2985cb90 页面刷新优化 https://git.ghzs.com/halo/android/assistant-android/-/issues/43 2021-10-15 18:21:34 +08:00
lyr
f4a5dd47fc 【光环助手V5.2.0&V5.3.0】同步正式环境后测试问题汇总(13)https://git.ghzs.com/pm/halo-app-issues/-/issues/1565 2021-10-15 18:15:16 +08:00
81873bd898 Updated 更新文档 2021-10-15 15:01:26 +08:00
d6604ff2c9 Updated 更新文档 2021-10-15 14:59:31 +08:00
298b7af692 Updated 更新文档 2021-10-15 14:56:38 +08:00
433df3bebd Updated 更新文档 2021-10-15 14:49:31 +08:00
84dba2036c Updated 更新文档
Added 新增路由声明
2021-10-15 14:36:38 +08:00
924ef2a727 Added 添加游戏动态、我的关注路由
Updated 开发文档新增资源描述
2021-10-15 14:21:29 +08:00
5a2b997693 Updated 更新文档 2021-10-14 09:50:05 +08:00
ebb87962ac Updated 游戏动态模块文档新增原生支持,资源列表和路由配置描述 2021-10-14 09:44:06 +08:00
075eb1a21b 【光环助手V5.4.0】新社区5期-发布页优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1531 2021-10-13 16:57:45 +08:00
lyr
b9554d11a8 【光环助手V5.2.0&V5.3.0】同步正式环境后测试问题汇总(12)https://git.ghzs.com/pm/halo-app-issues/-/issues/1565 2021-10-13 11:36:52 +08:00
b910075c4c Merge remote-tracking branch 'origin/dev-5.3.0' into dev 2021-10-13 09:40:23 +08:00
1966e844bd 【光环助手V5.2.0&V5.3.0】同步正式环境后测试问题汇总 (8,9,10) https://git.ghzs.com/pm/halo-app-issues/-/issues/1565 2021-10-12 17:46:12 +08:00
e760a63181 重构下载管理-已安装页面https://git.ghzs.com/halo/android/assistant-android/-/issues/44 2021-10-12 16:33:23 +08:00
lyr
bfa236f802 【光环助手V5.4.0】新社区5期-活动主页(3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1535 2021-10-12 16:24:28 +08:00
lyr
7f64b51582 适配评论详情Footer显示 2021-10-12 15:31:32 +08:00
4324126660 Merge branch 'dev-5.3.0' of git.ghzs.com:halo/android/assistant-android into dev-5.3.0 2021-10-12 15:22:37 +08:00
a8c54de47d 【光环助手V5.2.0&V5.3.0】同步正式环境后测试问题汇总(6) https://git.ghzs.com/pm/halo-app-issues/-/issues/1565 2021-10-12 15:22:28 +08:00
562b3e9d3b 【光环助手V5.2.0&V5.3.0】同步正式环境后测试问题汇总 (1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1565 2021-10-12 10:59:29 +08:00
679c6da972 修复礼包中心、工具箱清理搜索文字功能实效的问题 2021-10-11 18:22:51 +08:00
lyr
793adb9a03 解决首页滑动到专题合集-排行榜样式卡顿问题 2021-10-11 18:10:21 +08:00
23c62f1092 缺省渠道改为 GH_TEST3 2021-10-11 17:25:07 +08:00
70acea8e92 Updated 优化调整Flutter项目架构,实现Flutter项目模块化 2021-10-11 10:56:33 +08:00
516d8d8044 正式环境切换到 5.3.0 的接口 2021-10-11 10:35:08 +08:00
ed2b41bc55 【光环助手V5.3.0】Q&A管理-事件埋点(1009测试1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1393 2021-10-11 09:10:29 +08:00
5351ffd6b6 【光环助手V5.3.0】Q&A管理-事件埋点(替换埋点字段qa_title为help_id) https://git.ghzs.com/pm/halo-app-issues/-/issues/1393 2021-10-09 11:56:53 +08:00
aaffbb376c Added 添加反馈页、QA页和QA集合页搜索内容为空的toast提示 2021-10-08 13:12:11 +08:00
ac852c0484 Deleted 删除多余代码 2021-10-08 10:33:13 +08:00
4bd93ad958 Fixed 反馈页点击清空按钮会强制刷新界面的问题 2021-10-08 09:46:51 +08:00
5f131848e7 Updated UI调整 2021-09-30 17:40:48 +08:00
4915f99412 Deleted 移除测试代码
Added 接入日志上报
2021-09-30 15:03:40 +08:00
92841346cd Merge branch 'dev-5.3.0' into feature-flutter-feedback 2021-09-30 11:58:38 +08:00
b0e8db6e0e Added 添加日志上报 2021-09-30 11:57:57 +08:00
d533e0ceab 提高项目的编译性能 https://git.ghzs.com/halo/android/assistant-android/-/issues/42 2021-09-30 10:15:27 +08:00
672b697209 Added 添加日志上报方法 2021-09-29 17:51:51 +08:00
c9bef1fb1a 修复 MUMU 模拟器无法显示部分图片的问题 2021-09-29 14:19:56 +08:00
454e8bb934 修复 MUMU 模拟器无法显示部分图片的问题 2021-09-29 12:00:41 +08:00
e587d0daaa 【光环助手V5.3.0】通用链接内容合集-客户端需求(0928测试:5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1473 2021-09-28 20:24:33 +08:00
fcc23ddfc2 修改部分弹窗为居中样式 2021-09-28 18:51:10 +08:00
c541805bed 【光环助手V5.3.0】通用链接内容合集-客户端需求(0928补充:1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1473 2021-09-28 17:45:35 +08:00
lyr
2c38c8fd91 优化专题合集-排行榜样式标签加载 2021-09-28 17:10:36 +08:00
15385cf78c 统一视频贴加精/取消加精接口错误处理 2021-09-28 16:33:52 +08:00
6df3a8ec51 【光环助手V5.3.0】新社区4期-详情页分享面板权限优化(0922 产品验收问题6) https://git.ghzs.com/pm/halo-app-issues/-/issues/1501 2021-09-28 16:13:10 +08:00
bca9c6d96f Merge branch 'feature-optimise_home_page_performance' into 'dev-5.3.0'
优化首页列表性能

See merge request halo/android/assistant-android!126
2021-09-28 16:04:19 +08:00
26feccc28b 优化首页列表性能 2021-09-28 16:04:18 +08:00
a1fc7d2e48 Merge remote-tracking branch 'origin/dev-5.3.0' into dev-5.3.0 2021-09-28 15:42:29 +08:00
0b42b10e41 【光环助手V5.3.0】游戏详情-开服相关优化(20210928UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1469 2021-09-28 15:42:11 +08:00
lyr
0a0912dbab 微调游戏搜索-专题样式UI 2021-09-28 15:32:55 +08:00
5e3ff2de31 Merge branch 'dev-5.3.0' of git.ghzs.com:halo/android/assistant-android into dev-5.3.0 2021-09-28 15:31:48 +08:00
55db52f8f0 【光环助手V5.3.0】新社区4期-提问帖详情页评论区权限优化(0923 产品验收问题2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1502 2021-09-28 15:31:43 +08:00
2888ab56cd 【光环助手V5.3.0】客户端内部需求(整理简单弹窗样式测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1527 2021-09-28 15:30:45 +08:00
1edc20f665 更改通用链接合集数据结构 2021-09-28 14:34:25 +08:00
72c818b17b 【光环助手V5.3.0】游戏详情-开服相关优化(20210927UI测试补充)https://git.ghzs.com/pm/halo-app-issues/-/issues/1469 2021-09-28 11:49:25 +08:00
7393dc83f5 修改选择视频时删除本地视频闪退问题 2021-09-28 10:27:23 +08:00
6043553a39 【光环助手V5.3.0】开发者中心相关配套需求 https://git.ghzs.com/pm/halo-app-issues/-/issues/1518 2021-09-28 10:25:19 +08:00
lyr
87461b52ce 【光环助手V5.3.0】专题合集-排行榜功能优化(20210927UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1471#note_119397 2021-09-28 10:07:25 +08:00
lyr
df807d746f 修改搜索结果页面加载下一页时,页面会跳动即滑动不流畅问题 2021-09-27 19:07:57 +08:00
lyr
9e7a519806 【光环助手V5.3.0】游戏搜索-客户端功能优化(第8期)(0926测试 第1点、0927测试 第1点、20210927UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1402 2021-09-27 18:35:03 +08:00
6ee4af82ad 【光环助手V5.3.0】光环前端优化汇总第二周(完成0927测试:1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1517 2021-09-27 18:07:28 +08:00
75c8a4597c Merge branch 'dev-5.3.0' of git.ghzs.com:halo/android/assistant-android into dev-5.3.0 2021-09-27 17:21:54 +08:00
de274f0954 修改通用链接详情刷新过程中滑动列表闪退问题 2021-09-27 17:21:35 +08:00
82195950b3 论坛详情精华 tab 支持视频贴 https://git.ghzs.com/pm/halo-app-issues/-/issues/1461#note_119153 2021-09-27 17:21:22 +08:00
806b3ac77e 【光环助手V5.3.0】游戏详情-开服相关优化(20210927UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1469 2021-09-27 17:17:44 +08:00
lyr
ae95bd1db8 【光环助手V5.3.0】游戏搜索-数据埋点(0927测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1403#note_119302 2021-09-27 16:48:33 +08:00
62ffefb92f 论坛发帖添加使用移动网络上传视频的弹窗 2021-09-27 16:10:58 +08:00
ca190c6d57 Updated 更新文档 2021-09-27 16:01:39 +08:00
1c739a6269 【光环助手V5.3.0】客户端内部需求(整理简单弹窗样式测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1527 2021-09-27 15:21:54 +08:00
lyr
f5386cd3c1 优化专题合集-排行榜样式显示更新逻辑 2021-09-27 15:16:06 +08:00
65aab99639 Updated 将Flutter镜像地址配置迁移到dependencies.gradle 2021-09-27 12:01:00 +08:00
lyr
7540659396 【光环助手V5.3.0】专题合集-排行榜功能优化(20210926UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1471#note_119218 2021-09-27 11:56:21 +08:00
bbb7904477 Updated 更新Flutter模块 2021-09-27 11:48:02 +08:00
056985531b 【光环助手V5.3.0】新社区4期-详情页分享面板权限优化(0922 产品验收问题5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1501 2021-09-27 11:07:36 +08:00
730739077b 【光环助手V5.3.0】游戏详情-开服相关优化(0926测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1469 2021-09-27 09:41:15 +08:00
6c82184d1d 【光环助手V5.3.0】通用链接内容合集-客户端需求(20210926UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1473 2021-09-26 20:15:05 +08:00
d3b6f6a1e4 修改通用链接列表滑动闪退问题 2021-09-26 17:29:42 +08:00
lyr
d35550900b 【光环助手V5.3.0】专题合集-排行榜功能优化(0926测试 2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1471#note_119210 2021-09-26 17:11:30 +08:00
dfc16e38eb 修改游戏详情标签被切割问题 2021-09-26 15:28:01 +08:00
08bd5f3081 【光环助手V5.3.0】新社区4期-详情页分享面板权限优化(0922 产品验收问题4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1501 2021-09-26 11:08:02 +08:00
7d98fde53a Merge branch 'dev-5.3.0' of git.ghzs.com:halo/android/assistant-android into dev-5.3.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/entity/LinkEntity.kt
2021-09-26 10:38:50 +08:00
486e9ae0c5 【光环助手V5.3.0】通用链接内容合集-数据埋点(测试补充:3(1)(3),4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1474 2021-09-26 10:37:32 +08:00
d51587aa66 【光环助手V5.3.0】通用链接内容合集-数据埋点 (0924测试 2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1474 2021-09-26 10:34:13 +08:00
1fabcc756d 视频帖详情页的埋点新增字段 2021-09-26 09:44:45 +08:00
ee3fc058e1 【光环助手V5.3.0】通用链接内容合集-客户端需求(0924测试3,4,5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1473 2021-09-24 17:59:02 +08:00
lyr
e66e9e1ba8 【光环助手V5.3.0】游戏搜索-客户端功能优化(第8期)(20210917测试问题 2、9) https://git.ghzs.com/pm/halo-app-issues/-/issues/1402#note_118197 2021-09-24 17:28:44 +08:00
1cb4bea73c 修改QA详情关闭页面由web端控制 2021-09-24 16:37:59 +08:00
lyr
b3a491e723 【光环助手V5.3.0】专题合集-排行榜功能优化(2、3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1471 2021-09-24 15:28:37 +08:00
b583aafa25 Fixed 使用帮助无搜索结果情况下,点击反馈按钮无反应的问题 2021-09-23 18:46:51 +08:00
9709c6cbf0 【光环助手V5.3.0】光环前端优化汇总第二周 (0922测试 1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1517 2021-09-23 18:32:19 +08:00
ca81eb2ecb 【光环助手V5.3.0】游戏管理-镜像设置优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1400 2021-09-23 17:58:32 +08:00
910d886f65 【光环助手V5.3.0】通用链接内容合集-数据埋点 (二) https://git.ghzs.com/pm/halo-app-issues/-/issues/1474 2021-09-23 17:18:44 +08:00
376411c0cf 调整申请版主按钮点击逻辑 2021-09-23 17:12:44 +08:00
ad019eff69 修改申请版主弹窗REQUEST_CODE 2021-09-23 16:43:42 +08:00
3712e67594 修改通用链接详情列表滑动闪退问题 2021-09-23 16:40:52 +08:00
c98084ec39 Merge remote-tracking branch 'origin/dev-5.3.0' into dev-5.3.0 2021-09-23 16:25:46 +08:00
5a851ea99d 调整申请版主按钮点击逻辑 2021-09-23 16:25:39 +08:00
849cdb234c 调整通用链接合集图片圆角 2021-09-23 15:43:54 +08:00
9f9313b5e7 调整申请版主按钮点击逻辑 2021-09-23 15:40:12 +08:00
1888d8cfc7 修改通用链接合集列表复用问题 2021-09-23 12:09:06 +08:00
393b747f0e Updated 优化项目架构 2021-09-23 11:58:58 +08:00
d8f9a7ed7f 【光环助手V5.3.0】[安装方式管理]新增[白名单]功能https://git.ghzs.com/pm/halo-app-issues/-/issues/1264 2021-09-23 11:09:52 +08:00
7be4541f89 调整帖子/提问详情间距 2021-09-23 10:29:24 +08:00
97e87a9f32 Fixed 从原生页面回退到Flutter页面,输入框粘贴按钮点击失效 2021-09-22 19:34:56 +08:00
2d84309f04 【光环助手V5.3.0】新社区4期-详情页布局优化(0916UI测试问题6,10) https://git.ghzs.com/pm/halo-app-issues/-/issues/1500 2021-09-22 17:05:09 +08:00
f2ed7f8b72 【光环助手V5.3.0】通用链接内容合集-数据埋点(一) https://git.ghzs.com/pm/halo-app-issues/-/issues/1474 2021-09-22 16:47:31 +08:00
c839d535d8 【光环助手V5.3.0】通用链接内容合集-客户端需求(20210918测试问题5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1473 2021-09-22 11:24:37 +08:00
623e155c75 【光环助手V5.3.0】光环前端优化汇总第三周 (4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1529 2021-09-18 17:16:36 +08:00
b20a74de00 整理下载管理类方法描述 2021-09-18 15:52:11 +08:00
090b5fe04f Added 添加页面注释 2021-09-18 15:49:57 +08:00
b7dca9b652 Fixed 搜索框长按复制粘贴文字为英文的问题
Fixed 搜索结果无数据时点击反馈时无反应的问题(应该跳转到反馈页)
Fixed 搜索关键字相同时点击搜索的逻辑问题(相同关键字时不进行搜索)
2021-09-18 15:44:50 +08:00
c9402dec4e 整理下载管理类方法描述 2021-09-18 15:39:51 +08:00
6dc097f60f Fixed 状态栏颜色问题
Fixed UI调整
2021-09-18 12:01:55 +08:00
636a826583 【光环助手V5.3.0】后台优化汇总第三周(10) https://git.ghzs.com/pm/halo-app-issues/-/issues/1525 2021-09-18 10:41:25 +08:00
5c313ab7ac Fixed 解决ToolBar后退按钮适配问题
Updated 移除Flutter Debug标记
2021-09-17 18:52:58 +08:00
4aacc425a9 简单弹窗样式整理https://git.ghzs.com/halo/android/assistant-android/-/issues/39 2021-09-17 16:28:24 +08:00
lyr
c7db544684 【光环助手V5.3.0】光环前端优化汇总第三周(2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1529 2021-09-17 16:09:21 +08:00
c7833bae11 处理游戏实体数组越界问题 2021-09-17 15:53:00 +08:00
lyr
3d777781b8 【光环助手V5.3.0】新社区4期-游戏详情页埋点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1468 2021-09-17 11:57:21 +08:00
f2501eeb3b Fixed 意见反馈Q群点击无反应
Fixed 全版本点击跳转黑屏
Fixed 意见反馈Q群被写死
Fixed 搜索无结果缺省图丢失
Updated 使用Aop的形式注入Flutter Module代码代替面向接口编程形式
2021-09-16 17:41:29 +08:00
b72f9819d7 【光环助手V5.3.0】光环前端优化汇总第三周(3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1529 2021-09-16 16:59:22 +08:00
5f134fad33 【光环助手V5.3.0】新社区4期-详情页布局优化(0916UI测试问题 2,6,7,8,9,10) https://git.ghzs.com/pm/halo-app-issues/-/issues/1500 2021-09-16 16:09:36 +08:00
21cec51fad 优化首页滑动流畅度 2021-09-16 15:19:54 +08:00
048d3aa361 【光环助手V5.3.0】光环前端优化汇总第三周(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1529 2021-09-16 14:24:44 +08:00
lyr
8871d12fa8 微信分享图片改用FileProvider方式分享 2021-09-16 11:43:54 +08:00
lyr
67f931f9c8 修复游戏动态-分享图片过程中保存路径与分享路径不一致的问题 2021-09-16 11:15:57 +08:00
lyr
2fe9d6c3e1 修复游戏动态-分享图片过程中保存路径与分享路径不一致的问题 2021-09-16 11:05:51 +08:00
a662d5b90c Merge branch 'feature-issue1473' into dev-5.3.0 2021-09-16 10:52:56 +08:00
c30ec4bd87 【光环助手V5.3.0】通用链接内容合集-客户端需求 https://git.ghzs.com/pm/halo-app-issues/-/issues/1473 2021-09-16 10:49:48 +08:00
ee0a3a9d05 Updated 将Flutter调用Native方法的实现逻辑优化
Fixed 反馈页背景色不正确问题
2021-09-15 19:58:56 +08:00
094a8abfe2 Merge branch 'feature-v2signature_verifier' into 'dev-5.3.0'
提高 V2 签名公钥获取效率

See merge request halo/android/assistant-android!124
2021-09-15 11:36:57 +08:00
e1c39e90a9 提高 V2 签名公钥获取效率 2021-09-15 11:36:57 +08:00
aca3f2d2fc 【光环助手V5.3.0】曝光事件数据埋点优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1322 2021-09-15 10:02:02 +08:00
05d95259e2 Deleted 移除多余的build.gradle声明 2021-09-14 18:54:55 +08:00
c278359909 Fixed 解决Flutter模块加载慢的问题(库下载导致的问题)
Fixed 添加缺失的Flutter资源混淆声明
2021-09-14 18:40:15 +08:00
lyr
b5d8d40462 【光环助手V5.3.0】游戏搜索-数据埋点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1403 2021-09-14 18:25:35 +08:00
c1b7c380da 【光环助手V5.3.0】曝光事件数据埋点优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1322 2021-09-14 16:21:54 +08:00
e4f0ba0495 Merge branch 'cherry-pick-92941bcc' into 'dev'
修复新分类-精选-专题合集图片无法正常显示问题

See merge request halo/android/assistant-android!123
2021-09-14 15:53:12 +08:00
lyr
ccd4a479a9 修复新分类-精选-专题合集图片无法正常显示问题
(cherry picked from commit 92941bcc38)
2021-09-14 15:52:20 +08:00
lyr
92941bcc38 修复新分类-精选-专题合集图片无法正常显示问题 2021-09-14 15:49:50 +08:00
6b55875547 调整开服快速填写弹窗逻辑 2021-09-14 11:06:00 +08:00
a0947a84d9 Merge remote-tracking branch 'origin/dev' into dev-5.3.0 2021-09-14 10:33:47 +08:00
fca0e03180 【光环助手V5.3.0】曝光事件数据埋点优化 (4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1322 2021-09-14 10:31:28 +08:00
3dad7d8850 【光环助手V5.3.0】曝光事件数据埋点优化 20210913测试问题(2) 2021-09-13 18:46:31 +08:00
bc18301dc1 Fixed 修复正式环境下帮助与反馈接口报错问题
Added 添加阿里云镜像,加速镜像加载
Fixed Flutter方法注入的方法名错误问题
Added 将Flutter使用的资源加入混淆白名单
Added 添加Flutter模块相关的混淆规则
2021-09-13 18:37:08 +08:00
1ebe8eba4e 【光环助手V5.3.0】曝光事件数据埋点优化 (20210913测试问题 1~3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1322 2021-09-13 18:27:09 +08:00
lyr
3ec3388b08 【光环助手V5.3.0】游戏搜索-客户端功能优化(第8期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1402 2021-09-13 18:22:27 +08:00
71c2e8eb6b 移除WebFragment多余代码 2021-09-13 17:49:55 +08:00
009aa9f73e ROM 信息获取支持鸿蒙 2021-09-13 14:49:19 +08:00
14e38bc738 调整开服快速填写弹窗UI 2021-09-13 11:20:27 +08:00
74ffd80b10 处理评论列表卡片不存在机型信息时版本信息显示错位的问题 2021-09-12 18:08:22 +08:00
cb7a04ff09 修复长按环境标签不能保存部分页面快捷跳转的问题 2021-09-12 17:24:49 +08:00
96640ad91e 修复长按环境标签不能保存部分页面快捷跳转的问题 2021-09-12 16:44:34 +08:00
3791dfd558 Updated 使用Fresco代替Glide加载Flutter图片 2021-09-10 18:20:34 +08:00
91017caac4 Merge remote-tracking branch 'origin/dev-5.3.0' into dev-5.3.0 2021-09-10 18:13:48 +08:00
5d8720687a 【光环助手V5.3.0】曝光事件数据埋点优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1322 2021-09-10 18:11:34 +08:00
75b1234376 Merge branch 'feature-download_btn' into dev-5.3.0 2021-09-10 16:44:28 +08:00
1e866a9eab 【光环助手V5.3.0】新社区4期-详情页布局优化(调整页面边距) https://git.ghzs.com/pm/halo-app-issues/-/issues/1500 2021-09-10 16:31:14 +08:00
80e58080c4 整理 WebFragment/WebActivity 的代码https://git.ghzs.com/halo/android/assistant-android/-/issues/36 2021-09-10 16:29:00 +08:00
394036a0d0 处理首页内存泄露问题 2021-09-10 15:53:11 +08:00
2f2355f36e 首页视频封面图改用fresco加载 2021-09-10 11:37:27 +08:00
e711e30c21 Update README.md 2021-09-09 11:45:12 +08:00
e3d32057ee 统一处理列表下载按钮文案和样式(优化) https://git.ghzs.com/halo/android/assistant-android/-/issues/10 2021-09-09 11:42:18 +08:00
e42c4e595e 【光环助手V5.3.0】埋点数据问题汇总[3(2)] https://git.ghzs.com/pm/halo-app-issues/-/issues/1369 2021-09-09 09:38:17 +08:00
73d71e5dac qa详情链接增加qa_title参数 2021-09-09 09:31:01 +08:00
d6cad14e7b Merge branch 'dev' into dev-5.3.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/fragment/HomeSearchToolWrapperFragment.kt
2021-09-08 20:18:15 +08:00
lyr
9beaf93595 调整 DialogFragment 的实例化代码(优化)https://git.ghzs.com/halo/android/assistant-android/-/issues/38#note_117062 2021-09-08 18:46:17 +08:00
074610a9f0 统一处理列表下载按钮文案和样式 https://git.ghzs.com/halo/android/assistant-android/-/issues/10 2021-09-08 18:04:10 +08:00
7881edaf21 Merge remote-tracking branch 'origin/dev-5.3.0' into dev-5.3.0 2021-09-08 17:05:30 +08:00
f2643308f9 【光环助手V5.3.0】游戏详情-开服相关优化(2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1469 2021-09-08 17:05:17 +08:00
1168be9a92 更新 leakCanary 和 lottie 的依赖版本 2021-09-08 16:12:03 +08:00
c34d6141bc 【光环助手V5.3.0】游戏详情-开服相关优化(1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1469 2021-09-08 15:31:12 +08:00
e1f62e3a3a 去掉不必要的 armeabi 2021-09-08 14:55:20 +08:00
1d067dbaa2 【光环助手V5.3.0】Q&A管理-事件埋点(1(1)-(4)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1393 2021-09-08 10:44:17 +08:00
f1b6e742d9 Merge branch 'dev' into feature-flutter-feedback 2021-09-08 09:58:24 +08:00
149448c04c Deleted 移除QaActivity的startActivity方法(已弃用) 2021-09-08 09:57:13 +08:00
e388a60d43 Updated 修改跳转问题页的Hook为DirectUtils.directToQa和DirectUtils.directToQaCollection
Added 将DirectUtils加入app模块的proguard-rules.txt中
2021-09-08 09:56:16 +08:00
ea49ef2691 Updated 更新Flutter Module 2021-09-07 22:39:07 +08:00
741b2c23d2 Updated 更新Flutter Module 2021-09-07 18:40:16 +08:00
dca3542cec 停用游戏替换数量统计 2021-09-07 18:12:49 +08:00
lyr
4a37af4ce4 调整 DialogFragment 的实例化代码 https://git.ghzs.com/halo/android/assistant-android/-/issues/38 2021-09-07 17:31:49 +08:00
a2e907faeb 调整新游戏更新页面的隐藏逻辑 2021-09-07 15:28:07 +08:00
7e33243fbb 【光环助手V5.3.0】游戏详情-开服相关优化(2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1469 2021-09-07 15:04:00 +08:00
2b0abb1740 Added 添加可选优化编译选项 2021-09-07 12:49:17 +08:00
60e4f2a378 Fixed 解决接入Flutter模块后编译速度慢的问题,大大提升编译速度
Added 接口Host改为从app中读取
2021-09-07 12:28:52 +08:00
a4603213b9 修复新游戏更新页面其它游戏版本忽略更新无效的问题 2021-09-07 11:56:02 +08:00
da9ea61fbf 显示版本更新为 5.3.0 2021-09-07 11:08:33 +08:00
4ceef741ea 【光环助手V5.3.0】光环前端优化汇总第二周 (3, 4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1517 2021-09-07 11:06:21 +08:00
d323fc07f9 【光环助手V5.3.0】光环前端优化汇总第二周(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1517 2021-09-06 18:19:38 +08:00
2356e175f9 【光环助手V5.3.0】光环前端优化汇总第二周(2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1517 2021-09-06 18:00:52 +08:00
7a9c0ed8f2 修复光环插件更新没有在新游戏更新页面显示的问题 2021-09-06 17:42:51 +08:00
d406cf3fcb 【光环助手V5.3.0】新社区4期-详情页分享面板权限优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1501 2021-09-06 15:16:13 +08:00
9741cac1cf Updated 提升编译速度 2021-09-06 10:55:09 +08:00
456519e06c 优化首页滑动改变背景颜色性能问题 2021-09-03 17:01:53 +08:00
bad6b495b1 Updated 提升编译速度 2021-09-03 16:53:50 +08:00
638e0c988f 【光环助手V5.3.0】新社区4期-提问帖详情页评论区权限优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1502 2021-09-03 16:02:18 +08:00
40aaabad7d 测试环境api版本改为v5d3d0 2021-09-03 15:49:11 +08:00
46cf8cfbdc 网页保存图片到图库添加存储权限检测 2021-09-03 15:32:58 +08:00
2226bcf515 调整游戏更新页面我的版本的筛选逻辑 2021-09-03 15:22:56 +08:00
27ceb7b042 Updated 提升编译速度 2021-09-03 11:24:23 +08:00
c2226f8452 Updated 提升编译速度 2021-09-03 11:21:57 +08:00
38dcdaf8e3 修复社区 tab 选中异常问题 2021-09-03 11:15:38 +08:00
2a440e91fa 修改首页点击tab切换背景异常问题 2021-09-03 10:16:02 +08:00
2cecb9a14c 修复随机生成数组的越界问题 2021-09-02 19:05:25 +08:00
241f976866 修复返回活动页面显示异常的问题 2021-09-02 16:32:02 +08:00
560c270723 添加初始化微博 SDK 异常日志 2021-09-02 12:36:47 +08:00
5159957722 【光环助手V5.3.0】Q&A管理-前端优化需求(第三期)(1(3),2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1394 2021-09-02 11:14:32 +08:00
cfb851c23e Merge branch 'dev' into feature-flutter-feedback 2021-09-02 10:17:54 +08:00
e45218de17 微调游戏详情详情信息间距 2021-09-02 09:45:04 +08:00
0ff34bd3f7 【光环助手V5.3.0】Q&A管理-前端优化需求(第三期)(1(1)(2),3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1394 2021-09-01 17:59:11 +08:00
6bc7a9f504 Merge branch 'dev' into feature-flutter-feedback 2021-09-01 17:45:25 +08:00
7ea53f305d merge 2021-09-01 17:45:15 +08:00
lyr
4a04f6bb0f 修复开服表游戏分类筛选结果为空而导致的闪退问题 2021-09-01 12:35:46 +08:00
633b7df021 升级 QQ/微信 SDK https://git.ghzs.com/halo/android/assistant-android/-/issues/37 2021-09-01 11:47:57 +08:00
4ddaccd3f4 Updated Flutter AndroidManifest声明迁移到hook模块 2021-09-01 10:50:49 +08:00
389c20b6bf 更改游戏安装引导显示逻辑 2021-09-01 10:10:58 +08:00
20149b6041 更改游戏安装引导显示逻辑 2021-08-31 20:57:16 +08:00
2f6af6c18e Updated 优化代码 2021-08-31 18:54:41 +08:00
b764a43abe Merge remote-tracking branch 'origin/dev' into dev 2021-08-31 18:08:20 +08:00
c3fb8b9c89 修复帖子详情页底部的阴影显示问题 2021-08-31 18:08:09 +08:00
d574b09dfa 完善安装引导显示逻辑 2021-08-31 17:11:13 +08:00
7fd7197909 版本升级至 5.1.2 2021-08-31 15:12:20 +08:00
58178d2871 Merge branch 'hotfix-v5.1.1-371-crash' into 'release'
处理一系列闪退

See merge request halo/android/assistant-android!122
2021-08-31 15:09:32 +08:00
880838c263 处理一系列闪退
1. 修复文本自动填充偶发的闪退
2. 修复软键盘弹起时切换页面触发的闪退
3. 修复在后台执行下载任务时偶发的闪退
4. 修复用户发表旧视频内容在新版本个人主页浏览时的闪退
5. 修复游戏详情专区返回时偶发的闪退
2021-08-31 15:06:33 +08:00
c196d5cdf5 【光环助手V5.2.0】小米等设备第三方安装引导功能-客户端(测试1、2、4,数据埋点0830测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1410 2021-08-31 14:23:37 +08:00
c370edaa72 Merge remote-tracking branch 'origin/dev-5.2.0' into dev-5.2.0 2021-08-30 21:38:14 +08:00
0640aee554 更新游戏安装引导接口 2021-08-30 21:37:06 +08:00
8a5f11e6bd 移除测试用旧游戏更新 tab 2021-08-30 21:31:43 +08:00
92b6ebcb08 更新游戏安装引导接口 2021-08-30 21:28:49 +08:00
758c331af5 【光环助手V5.2.0】新社区3期-论坛展示-社区搜索页(20200830UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1405 2021-08-30 19:12:49 +08:00
17e5c0535d Merge branch 'hotfix-v5.1.1-indicator' into 'release'
修改首页 indicator 不显示问题

See merge request halo/android/assistant-android!121
2021-08-30 18:06:01 +08:00
66fee84b49 Merge branch 'hotfix-v5.1.1-setting' into 'release'
修复"游戏下载设置页面的自动安装游戏选项和自动关注游戏选项默认值错误"问题

See merge request halo/android/assistant-android!120
2021-08-30 18:00:20 +08:00
lyr
bbe0350f2c 修复"游戏下载设置页面的自动安装游戏选项和自动关注游戏选项默认值错误"问题 2021-08-30 17:57:19 +08:00
b31fe4b94a Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-30 17:46:45 +08:00
11b414fd29 修改首页indicator不显示问题 2021-08-30 17:45:48 +08:00
1a35b5ded0 修改首页indicator不显示问题 2021-08-30 17:35:50 +08:00
4245c1511e Merge remote-tracking branch 'origin/release' into dev-5.2.0
# Conflicts:
#	dependencies.gradle
2021-08-30 17:22:45 +08:00
989c3706dd 【光环助手V5.2.0】专题推荐图标功能优化 (20210826测试问题 3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1390 2021-08-30 17:09:17 +08:00
49500768db 修复正式环境微博分享内容不显示的问题 2021-08-30 16:28:17 +08:00
65becdac85 【光环助手V5.2.0】下载管理相关优化 (0830UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1244 2021-08-30 15:49:42 +08:00
125c78fccd 【光环助手V5.2.0】光环前端优化汇总第四周 (0827测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1454 2021-08-30 15:44:14 +08:00
lyr
58c576b950 【光环助手V5.2.0】开服表相关优化(0827测试 2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1220#note_115509 2021-08-30 14:25:53 +08:00
b08aa46992 【光环助手V5.2.0】下载管理相关优化 (0830测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1244 2021-08-30 14:20:25 +08:00
c77f0cf817 完成下载管理相关优化(20210827UI测试问题 & 0827测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1244 2021-08-30 11:44:42 +08:00
bb0378c216 【光环助手V5.2.0】游戏礼包优化(第二期)(0830测试2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1325 2021-08-30 11:26:35 +08:00
f2e7a64e99 【光环助手V5.2.0】适龄等级提示(0830测试反馈2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1397 2021-08-30 10:04:59 +08:00
759cacf933 更新游戏安装引导实体类 2021-08-27 17:32:34 +08:00
lyr
0b213253ce 【光环助手V5.2.0】开服表相关优化(0827测试 1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1220#note_115509 2021-08-27 16:11:56 +08:00
f0ab333892 【光环助手V5.2.0】首页轮播图显示背景色功能(20210826UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1321 2021-08-27 16:06:26 +08:00
lyr
7516db3a60 【光环助手V5.2.0】开服表相关优化(0827测试 1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1220#note_115509 2021-08-27 15:54:34 +08:00
lyr
29cd798ca8 【光环助手V5.2.0】开服表相关优化(0826测试 第3、4、5、6点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1220#note_115199 2021-08-27 12:00:57 +08:00
40cb902baf Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-27 11:51:07 +08:00
15bbcf3eae 完成下载管理相关优化(0826测试 2~5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1244 2021-08-27 11:49:06 +08:00
f508e103c1 【光环助手V5.2.0】适龄等级提示(20210827UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1397 2021-08-27 11:38:38 +08:00
94fa36125d Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-27 10:41:59 +08:00
1c754a6dd0 【光环助手V5.2.0】首页轮播图显示背景色功能(20210827测试问题1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1321 2021-08-27 10:41:42 +08:00
609e4a49b8 完成光环前端优化汇总第三周(0827测试 1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1449 2021-08-27 09:45:18 +08:00
98710c9542 Merge remote-tracking branch 'origin/dev-5.2.0' into dev-5.2.0 2021-08-26 18:34:33 +08:00
0e2f5fdf53 【光环助手V5.2.0】浏览器安装功能优化(0826测试、0826UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1323 2021-08-26 18:34:01 +08:00
e9ed5530d5 Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-26 18:28:36 +08:00
113f1d3ed8 【光环助手V5.2.0】新社区3期-论坛展示-头像信息(20210826UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1406 2021-08-26 18:28:26 +08:00
3fc60a57b6 完成光环前端优化汇总第四周(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1454 2021-08-26 18:18:52 +08:00
d14e09187e 完成光环前端优化汇总第三周(1) 2021-08-26 18:10:26 +08:00
bf90131841 完成开服表相关优化(0826测试第7点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1220 2021-08-26 17:22:39 +08:00
40b7a16b21 Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-26 16:26:43 +08:00
882d7273a1 【光环助手V5.2.0】首页轮播图显示背景色功能(20210826测试问题1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1321 2021-08-26 16:26:38 +08:00
6cfeddf3d4 处理首页 debug 状态闪退 2021-08-26 11:43:38 +08:00
lyr
a06e6c581d 优化开测表加载逻辑 2021-08-26 11:04:52 +08:00
bd8bda40ec 【光环助手V5.2.0】新社区3期-论坛展示-头像信息(0825 产品验收问题2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1406 2021-08-26 10:42:08 +08:00
efd81a4e0c 版本升级到 5.1.1 2021-08-26 10:22:00 +08:00
493e08ce2c Merge branch 'hotfix-v5.1.0-370-crash' into 'release'
修复 5.1.0-370 的一些闪退

See merge request halo/android/assistant-android!119
2021-08-26 10:21:23 +08:00
1906451060 修复一系列闪退问题
1. 修复因为特殊处理光遇更新判断而触发的其它下载闪退问题
2. 修复帖子视频详情页点击点赞/关注等按钮触发一键登录时的闪退问题
3. 修复下载完成点击通知栏下载完成通知偶发的闪退问题
4. 修复从首页安利墙发表新安利后点击到达评论可能触发的闪退问题
5. 修复论坛详情在页面被内存回收重建时下拉刷新的闪退问题
6. 修复游戏详情页浏览专区在页面被内存回收重建时点返回按钮偶发的闪退问题
7. 修复开测表列表不存在推荐标签时的闪退问题
2021-08-26 10:17:08 +08:00
f865e95ae1 Revert "临时简单处理光遇游戏包点击更新时会卡住的问题"
This reverts commit 86edc8b9
2021-08-25 18:23:30 +08:00
480e18b79a 完成开服表相关优化(0825测试2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1220#note_114996 2021-08-25 18:02:17 +08:00
6436bc6191 修复下载管理优化 0824测试问题 https://git.ghzs.com/pm/halo-app-issues/-/issues/1244 2021-08-25 18:00:24 +08:00
7ec7eb29e4 【光环助手V5.2.0】新社区3期-论坛展示-社区搜索页 https://git.ghzs.com/pm/halo-app-issues/-/issues/1405 2021-08-25 17:47:04 +08:00
5deb744ba3 Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-25 14:56:06 +08:00
e908939560 【光环助手V5.2.0】新社区3期-论坛展示-头像信息(0825 产品验收问题1,2,3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1406 2021-08-25 14:55:55 +08:00
e02708bb0e 【光环助手V5.2.0】浏览器安装功能优化(0825测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1323 2021-08-25 14:52:41 +08:00
4826c35a70 【光环助手V5.2.0】新社区3期-论坛展示-内容举报弹窗(0825 产品验收问题1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1421 2021-08-25 11:52:59 +08:00
c51f185438 Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-24 18:07:40 +08:00
65bd15b573 处理首页轮播图Tab切换颜色问题 2021-08-24 18:07:30 +08:00
5283254c1a Merge remote-tracking branch 'origin/dev-5.2.0' into dev-5.2.0 2021-08-24 17:41:53 +08:00
15458df982 添加UI通用组件 2021-08-24 17:41:22 +08:00
eb2228fb17 Added HaloApp添加Native方法注册入口--initFlutterDyncExtension 2021-08-24 15:15:49 +08:00
0e27e8ee3b 处理礼包详情使用说明不显示问题 2021-08-24 14:29:05 +08:00
17455efe82 应用版本更新至 5.2.0 2021-08-24 11:45:35 +08:00
e2c80cb416 Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-24 11:33:49 +08:00
a48b4db550 【光环助手V5.2.0】游戏礼包优化(第二期)(4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1325 2021-08-24 11:33:40 +08:00
1d66637b11 补充数据埋点注释 2021-08-24 10:20:07 +08:00
lyr
3e7e98d555 添加在新页面打开全屏webview的JS调用方法 2021-08-23 17:21:44 +08:00
60e542923c Updated 将hook模块集成到Flutter Module中 2021-08-23 17:13:23 +08:00
e737d16f0f 【光环助手V5.2.0】小米等设备第三方安装引导功能-数据埋点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1412 2021-08-23 16:16:22 +08:00
a04219518b Merge remote-tracking branch 'origin/dev-5.2.0' into dev-5.2.0
# Conflicts:
#	app/src/main/res/values/colors.xml
2021-08-23 15:39:20 +08:00
ce2c6bed0a 【光环助手V5.2.0】小米等设备第三方安装引导功能-客户端 https://git.ghzs.com/pm/halo-app-issues/-/issues/1410 2021-08-23 15:37:35 +08:00
84a08493e3 优化首页轮播图切换时的背景显示效果 2021-08-23 14:42:32 +08:00
3d411fa49c 优化首页轮播图显示背景色性能问题 2021-08-23 11:55:07 +08:00
c0a0c90a49 Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-23 10:58:02 +08:00
a67d41296e 【光环助手V5.2.0】适龄等级提示 https://git.ghzs.com/pm/halo-app-issues/-/issues/1397 2021-08-23 10:57:50 +08:00
25a95ddba0 Added Flutter Hook 2021-08-22 10:48:03 +08:00
fac255a27c 完成游戏更新相关 https://git.ghzs.com/pm/halo-app-issues/-/issues/1392 2021-08-21 15:27:42 +08:00
0811c8dc15 完成专题推荐图标功能优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1390 2021-08-21 15:12:04 +08:00
7537963a8e 支持url跳转视频详情 2021-08-21 14:50:33 +08:00
36f8b1de0b Merge branch 'feature-issues1244' into 'dev-5.2.0'
下载管理相关优化

See merge request halo/android/assistant-android!118
2021-08-21 10:57:45 +08:00
1d9e1bc9d8 下载管理相关优化 2021-08-21 10:57:45 +08:00
bb9fd24068 【光环助手V5.1.0】新社区2期-埋点文档(0820 产品验收问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-08-20 16:13:21 +08:00
9c044ae98b Merge branch 'dev-5.2.0' of git.ghzs.com:halo/android/assistant-android into dev-5.2.0 2021-08-20 15:25:37 +08:00
9807883d65 【光环助手V5.2.0】游戏礼包优化(第二期)(1-3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1325 2021-08-20 15:25:26 +08:00
lyr
04e410615d 开服表向上加载末尾增加开服时间 2021-08-20 11:25:42 +08:00
eda1eea2de 完成社区探索之旅(测试汇总8) https://git.ghzs.com/pm/halo-app-issues/-/issues/1285 2021-08-20 10:54:52 +08:00
lyr
c1f6ef35f2 优化开服表页面处理数据逻辑 2021-08-20 10:09:41 +08:00
lyr
b61ce1e42a 【光环助手V5.2.0】开服表相关优化(前端部分)https://git.ghzs.com/pm/halo-app-issues/-/issues/1220 2021-08-19 18:20:10 +08:00
62e60f4309 修改删除社区帖子toast文案 2021-08-19 15:50:17 +08:00
c6f544136f 测试环境api版本改为v5d2d0 2021-08-19 11:13:42 +08:00
d588315759 【光环助手V5.2.0】新社区3期-论坛展示-头像信息 https://git.ghzs.com/pm/halo-app-issues/-/issues/1406 2021-08-19 11:04:19 +08:00
b1fef73c54 【光环助手V5.1.0】新社区运营验收问题(11) https://git.ghzs.com/pm/halo-app-issues/-/issues/1442 2021-08-18 18:54:56 +08:00
c4fc31c963 【光环助手V5.1.0】新社区运营验收问题(17) https://git.ghzs.com/pm/halo-app-issues/-/issues/1442 2021-08-18 18:49:15 +08:00
85b0d0eef4 【光环助手V5.2.0】新社区3期-论坛展示-内容举报弹窗 https://git.ghzs.com/pm/halo-app-issues/-/issues/1421 2021-08-18 17:36:20 +08:00
812eb842e2 【光环助手V5.1.0】新社区运营验收问题(12) https://git.ghzs.com/pm/halo-app-issues/-/issues/1442 2021-08-18 14:43:51 +08:00
783cb95f24 对接版主删除视频评论接口 2021-08-18 11:04:14 +08:00
63b7f294c4 【光环助手V5.2.0】浏览器安装功能优化(1-3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1323 2021-08-18 10:10:48 +08:00
80c95b0f11 【光环助手V5.2.0】首页轮播图显示背景色功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1321 2021-08-17 17:23:46 +08:00
5969fa2ca5 网页跳转上传视频的论坛类型改为可选 2021-08-17 15:47:45 +08:00
0187608918 【光环助手V5.1.0】新社区运营验收问题(27) https://git.ghzs.com/pm/halo-app-issues/-/issues/1442 2021-08-17 10:57:55 +08:00
f7b155d3b4 Fixed 修复一些BUG 2021-08-17 10:36:14 +08:00
82656a7187 Deleted 移除无用的文件 2021-08-17 09:57:20 +08:00
9993824d93 Updated 将Flutter模块设为子module 2021-08-16 19:11:03 +08:00
e2fa4990bd 重构我的光环页面https://git.ghzs.com/halo/android/assistant-android/-/issues/31 2021-08-16 18:34:38 +08:00
6753d04817 Merge branch 'dev' into dev-5.2.0
# Conflicts:
#	app/build.gradle
2021-08-16 18:26:15 +08:00
9679c75f0a Added 添加自定义SearchBar 2021-08-16 16:53:28 +08:00
c203fa5b9d Updated 完成通用tabbar开发
Updated 优化项目架构
2021-08-16 16:24:40 +08:00
98531376d9 Merge remote-tracking branch 'origin/dev' into dev 2021-08-16 15:30:27 +08:00
86edc8b919 临时简单处理光遇游戏包点击更新时会卡住的问题 2021-08-16 15:30:15 +08:00
7903751d85 【光环助手V5.1.0】新社区运营验收问题(23) https://git.ghzs.com/pm/halo-app-issues/-/issues/1442 2021-08-16 14:28:35 +08:00
2620a29a2b Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-16 11:25:57 +08:00
5cc40c09dc 【光环助手V5.1.0】新社区运营验收问题(17) https://git.ghzs.com/pm/halo-app-issues/-/issues/1442 2021-08-16 11:25:46 +08:00
5c02d37852 启动事件添加应用安装来源信息 2021-08-16 11:19:04 +08:00
2e5d445d65 完成暑期好游安利大赏(0813测试汇总反馈 1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1284 2021-08-16 10:19:28 +08:00
456822f56f Added 添加通用Tabbar 2021-08-13 18:23:50 +08:00
c8bae7d89b 【光环助手V5.1.0】新社区运营验收问题(2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1442 2021-08-13 16:20:20 +08:00
a5aceb3d1f 更新微博 SDK https://git.ghzs.com/halo/android/assistant-android/-/issues/30 2021-08-13 16:13:01 +08:00
578ed5d1f1 Added 添加反馈页
Added 添加通用AppBar
Added 设置基础路由
2021-08-12 18:11:17 +08:00
3ef7343309 Merge branch 'weibo' into dev-5.2.0 2021-08-12 16:41:24 +08:00
2c98c38721 修改视频贴详情原创标签被切割 2021-08-11 23:05:33 +08:00
lyr
4f28c54591 论坛活动url增加分类id参数 2021-08-11 22:47:07 +08:00
06b5b885e9 修改视频帖详情展开按钮是否显示 2021-08-11 21:05:42 +08:00
612cc2ca9b Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-11 18:26:56 +08:00
18f7b695e5 修改发布视频帖内容来源改为必选 2021-08-11 18:26:45 +08:00
f29e2fe1de 添加简单的扩大点击区域方法 2021-08-11 18:14:56 +08:00
799c22093f 处理编译警告 2021-08-11 16:38:06 +08:00
2496c1d96e 修复全屏网页网络异常加载失败时无法返回的问题 2021-08-11 16:28:31 +08:00
8ee76af30f 优化内存占用 2021-08-11 15:53:40 +08:00
lyr
2f35442558 【光环助手V5.1.0】 0809产品测试问题(第14点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1439 2021-08-11 15:38:01 +08:00
lyr
81fa6a6233 【光环助手V5.1.0】 0809产品测试问题(第11点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1439 2021-08-11 15:10:51 +08:00
lyr
e5778d5b5f 【光环助手V5.1.0】 0809产品测试问题(第6点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1439 2021-08-10 17:39:35 +08:00
f69d607ecb Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-10 16:48:30 +08:00
79fc2e1f93 【光环助手V5.1.0】 0809产品测试问题(3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1439 2021-08-10 16:48:20 +08:00
6dfdbb9ee8 【光环助手V5.1.0】 0809产品测试问题(5)https://git.ghzs.com/pm/halo-app-issues/-/issues/1439 2021-08-10 15:55:35 +08:00
5d8f7b3f8d 模拟器游戏启动时更新金手指文件 https://git.ghzs.com/pm/halo-app-issues/-/issues/1362 2021-08-10 12:02:17 +08:00
cd4601a9c9 添加下载更新简单文件的方法 2021-08-10 12:00:04 +08:00
462a011401 提交LGLibrary 2021-08-10 09:09:59 +08:00
31d55dae14 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-09 20:03:56 +08:00
8dc9731299 【光环助手V5.1.0】新社区2期-论坛展示-提问帖详情页(0806UI测试1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1347 2021-08-09 20:03:45 +08:00
66c19c644e 【光环助手V5.1.0】 0809运营测试问题(1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1438 2021-08-09 17:24:31 +08:00
2b617e2697 完成单机模拟器-金手指功能后台(0809测试反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1362 2021-08-09 16:35:24 +08:00
3a60a497e1 更换版主修改问题提示弹窗文案 2021-08-09 16:15:18 +08:00
a9337aee63 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-09 15:52:49 +08:00
c80cd47ccc 【光环助手V5.1.0】 0803产品运营测试问题(2)(8) https://git.ghzs.com/pm/halo-app-issues/-/issues/1428 2021-08-09 15:52:38 +08:00
lyr
d9c2371488 移除冗余的资源文件 https://git.ghzs.com/halo/android/assistant-android/-/issues/33 2021-08-09 15:42:15 +08:00
096d19751a 【光环助手V5.1.0】0805产品测试问题(9)https://git.ghzs.com/pm/halo-app-issues/-/issues/1434 2021-08-09 15:15:41 +08:00
ef70119090 尝试修复 Loghub 日志上报 logstore 错乱的问题 https://github.com/aliyun/aliyun-log-android-sdk/issues/68 2021-08-09 11:56:16 +08:00
95dba71bb9 添加异步登录 JS Api 2021-08-09 10:17:16 +08:00
ec37c7a6f8 【光环助手V5.1.0】 0806产品运营测试问题(7) https://git.ghzs.com/pm/halo-app-issues/-/issues/1436 2021-08-09 09:28:17 +08:00
dcc9352301 调整 Kotlin 版本 2021-08-06 14:34:43 +08:00
c509c6bb38 添加使用快捷方式启动模拟器游戏失败的日志记录 2021-08-06 12:01:23 +08:00
4784d689f8 处理内嵌网页的一些空指针异常 2021-08-06 12:00:31 +08:00
8903a075be Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-06 11:46:37 +08:00
48d6e91b0e 【光环助手V5.1.0】0805运营测试问题(4,6,8) https://git.ghzs.com/pm/halo-app-issues/-/issues/1435 2021-08-06 11:46:27 +08:00
30865239d2 【光环助手V5.1.0】 0806产品运营测试问题(3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1436 2021-08-06 11:31:09 +08:00
8b7cd92ae8 微调 chucker 编译脚本 2021-08-06 11:21:46 +08:00
69f336553e 调整 Kotlin 版本,修复 XAPK 解压在 4.4 以下设备的闪退问题 2021-08-06 11:07:10 +08:00
ed82f96ae3 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-06 10:17:22 +08:00
8f02016a76 【光环助手V5.1.0】新社区2期-论坛展示-提问帖详情页(0806UI测试1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1347 2021-08-06 10:17:12 +08:00
c06f397d12 【光环助手V5.1.0】0805产品测试问题(9,10,12)https://git.ghzs.com/pm/halo-app-issues/-/issues/1434 2021-08-06 10:08:34 +08:00
lyr
912b7280cd 【光环助手V5.1.0】0805产品测试问题(第5点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1434 2021-08-05 17:15:48 +08:00
50f7dd2c63 【光环助手V5.1.0】0805产品测试问题(3,4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1434 2021-08-05 15:49:12 +08:00
23469543c7 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-05 14:48:14 +08:00
2d3f70dd12 【光环助手V5.1.0】 0804产品运营测试问题(1)(12) https://git.ghzs.com/pm/halo-app-issues/-/issues/1430 2021-08-05 14:48:09 +08:00
lyr
f57d19e797 【光环助手V5.1.0】 0804产品运营测试问题(1)(第10点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1430#note_112113 2021-08-05 10:48:52 +08:00
lyr
8c529f0724 【光环助手V5.1.0】新社区2期-论坛展示-信息流-提问帖评论(0804UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1344#note_111919 2021-08-05 10:19:24 +08:00
lyr
1583f1957a 完成积分体系-光能中心、光能屋UI更改 https://git.ghzs.com/pm/halo-app-issues/-/issues/1300 2021-08-04 18:44:40 +08:00
lyr
676ccb133f 【光环助手V5.1.0】 0803产品运营测试问题(2)(第3点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1428 2021-08-04 15:45:31 +08:00
489b8143a1 【光环助手V5.1.0】 0804产品运营测试问题(1) (1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1430 2021-08-04 15:06:44 +08:00
c4cf3efa21 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-04 14:26:57 +08:00
871cfd638d 【光环助手V5.1.0】新社区2期-论坛展示-帖子详情页(0804UI测试1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1346 2021-08-04 14:26:47 +08:00
lyr
1f3ae1c687 【光环助手V5.1.0】 0803产品运营测试问题(1)(第23、24点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1426 2021-08-04 14:21:55 +08:00
59eb101a48 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-04 12:14:09 +08:00
b3b8b6ba29 【光环助手V5.1.0】 0803产品运营测试问题(2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1428 2021-08-04 12:14:02 +08:00
lyr
42baaa8950 【光环助手V5.1.0】 0803产品运营测试问题(2)(第3点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1428 2021-08-04 11:07:51 +08:00
lyr
61ad70d3b8 【光环助手V5.1.0】新社区2期-论坛展示-信息流-提问帖评论(0804UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1344#note_111919 2021-08-04 10:59:35 +08:00
lyr
04252e3b91 【光环助手V5.1.0】 0803产品运营测试问题(22)https://git.ghzs.com/pm/halo-app-issues/-/issues/1426 2021-08-03 18:20:41 +08:00
lyr
b40543d7b5 【光环助手V5.1.0】 0803产品运营测试问题(16)https://git.ghzs.com/pm/halo-app-issues/-/issues/1426 2021-08-03 17:30:26 +08:00
lyr
903fa49b71 【光环助手V5.1.0】 0803产品运营测试问题(13)https://git.ghzs.com/pm/halo-app-issues/-/issues/1426 2021-08-03 16:28:08 +08:00
lyr
03ae2699c6 【光环助手V5.1.0】 0803产品运营测试问题(11)https://git.ghzs.com/pm/halo-app-issues/-/issues/1426 2021-08-03 16:09:05 +08:00
8ecc4078bb 【光环助手V5.1.0】 0803产品运营测试问题(1,20,27,31) https://git.ghzs.com/pm/halo-app-issues/-/issues/1426 2021-08-03 15:59:02 +08:00
ebaf4f02f0 【光环助手V5.1.0】新社区2期-论坛展示-论坛详情-版主成员(0802UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1345 2021-08-03 11:21:03 +08:00
e85437379a 调整金手指功能数据字段 https://git.ghzs.com/pm/halo-app-issues/-/issues/1362 2021-08-02 17:20:44 +08:00
2e9642019b 微博SDK更新到11.6 2021-08-02 17:08:58 +08:00
5a77522a04 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-02 16:18:48 +08:00
e5512604fa 修改上传图片的 type 参数 2021-08-02 16:18:39 +08:00
lyr
146a46f8be 【光环助手V5.1.0】0802产品测试问题(1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1423 2021-08-02 16:04:00 +08:00
91f33f06d3 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-02 15:59:00 +08:00
59da7b6ba6 【光环助手V5.1.0】新社区2期-视频帖发布页(0802UI测试1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1355 2021-08-02 15:58:45 +08:00
lyr
0a1ad238f8 【光环助手V5.1.0】新社区2期-论坛详情页引导(0802UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1352#note_111430 2021-08-02 15:43:24 +08:00
302e6c145c 【光环助手V5.1.0】新社区2期-论坛展示-帖子详情页(0802UI测试1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1346 2021-08-02 15:37:40 +08:00
a6bbf0dfc7 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-08-02 15:17:06 +08:00
9c3d22964c 【光环助手V5.1.0】0730产品测试问题(10,22,23,24) https://git.ghzs.com/pm/halo-app-issues/-/issues/1422 2021-08-02 15:16:56 +08:00
ab60ed8473 【光环助手V5.1.0】新社区2期-论坛展示-论坛详情-版主成员(0802UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1345 2021-08-02 14:31:07 +08:00
lyr
9a00e70cc4 【光环助手V5.1.0】0730产品测试问题(5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1422 2021-08-02 11:16:46 +08:00
lyr
35954f52c5 【光环助手V5.1.0】0730产品测试问题(1-3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1422 2021-08-02 10:58:25 +08:00
e13d80d063 【光环助手V5.1.0】0730产品测试问题(11)https://git.ghzs.com/pm/halo-app-issues/-/issues/1422 2021-08-02 10:13:56 +08:00
73ed15689d 基本完成金手指功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1362 2021-07-30 18:07:23 +08:00
lyr
65d949bade 【光环助手V5.1.0】新社区2期-推荐页引导(0729UI测试)https://git.ghzs.com/pm/halo-app-issues/-/issues/1350#note_110977 2021-07-29 18:08:01 +08:00
33d0d01051 【光环助手V5.1.0】新社区2期-帖子发布页(0729UI测试2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1354 2021-07-29 16:34:29 +08:00
9998ed0a14 【光环助手V5.1.0】新社区2期-发布页引导(帖子、提问)(0729UI测试1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1351 2021-07-29 16:15:41 +08:00
85a8a17acb Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-29 15:44:34 +08:00
4032cb8abe 【光环助手V5.1.0】新社区2期-视频帖发布页(0729UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1355 2021-07-29 15:44:18 +08:00
fc2e87063e Merge remote-tracking branch 'origin/dev' into dev 2021-07-29 14:34:37 +08:00
a63b809642 清理测试内容 2021-07-29 14:34:22 +08:00
c30048c268 正式环境接口切换到 5.0 2021-07-29 11:01:41 +08:00
956d5a39be 修复优化汇总(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1342#note_110932 2021-07-29 09:59:51 +08:00
76fd1ab7e3 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-28 20:47:40 +08:00
2c4c954c64 【光环助手V5.1.0】新社区2期-论坛展示-信息流-审核中/审核不通过(2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1343 2021-07-28 20:47:23 +08:00
aef4da961d 正式包丢失渠道后的默认渠道改为 GH_LOST 2021-07-28 17:24:17 +08:00
lyr
31e00bb681 【光环助手V5.1.0】新社区2期-埋点文档(版规说明遗漏部分) https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-28 16:50:30 +08:00
369fdd24ef 调整内容及评论投诉弹窗交互 https://git.ghzs.com/pm/halo-app-issues/-/issues/1373 2021-07-28 15:28:25 +08:00
2a57994c7f Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-28 15:21:58 +08:00
6f84b14277 处理升级gsyplayer版本报错问题 2021-07-28 15:21:52 +08:00
10ed05c8ef Merge branch 'feature-upgrade_gsyplayer' into dev
# Conflicts:
#	app/build.gradle
2021-07-28 15:05:18 +08:00
lyr
799bd1042f 【光环助手V5.1.0】新社区2期-埋点文档 https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-28 14:07:27 +08:00
6f9acab2d2 修改版主申请审核中的字段 2021-07-28 11:29:45 +08:00
lyr
387d8eb5af 优化社区-论坛页代码 2021-07-27 18:31:10 +08:00
c813c5d5ef 暂时放弃 arm64 的 SO 2021-07-27 17:35:58 +08:00
1c6df6741f 完成光环前端优化汇总第五周(3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1388 2021-07-27 16:45:11 +08:00
b54ab5f824 支持网页将图片保存至图库中 https://git.ghzs.com/pm/halo-app-issues/-/issues/1286 2021-07-27 16:31:05 +08:00
lyr
37fdf6c18e 【光环助手V5.1.0】光环前端优化汇总第五周(4)https://git.ghzs.com/pm/halo-app-issues/-/issues/1388 2021-07-27 16:00:00 +08:00
2685de9b3e Merge remote-tracking branch 'origin/dev' into dev 2021-07-27 15:17:59 +08:00
c049100f5f webView 支持选择本地图片 2021-07-27 15:16:13 +08:00
711d1f9d65 【光环助手V5.1.0】新社区2期-论坛展示-论坛详情-版主成员https://git.ghzs.com/pm/halo-app-issues/-/issues/1345 2021-07-27 15:14:11 +08:00
5d7453afec 完成浏览论坛页面时间任务功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1285 2021-07-27 11:00:21 +08:00
e4acf466ba 版主加精问题评论更换接口 2021-07-26 14:49:45 +08:00
2d66cbd29c 【光环助手V5.1.0】新社区2期-埋点文档(分享面板) https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-26 10:07:10 +08:00
8786f7d500 【光环助手V5.1.0】新社区2期-论坛展示-提问帖详情页 https://git.ghzs.com/pm/halo-app-issues/-/issues/1347 2021-07-23 18:07:13 +08:00
3d40d7a819 新增默认选中论坛首页tab的 url scheme https://git.ghzs.com/pm/halo-app-issues/-/issues/1285 2021-07-22 17:50:22 +08:00
6f7862a0f2 新增默认选中论坛首页tab的 url scheme https://git.ghzs.com/pm/halo-app-issues/-/issues/1285 2021-07-22 17:37:43 +08:00
58c6211d54 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-22 17:34:02 +08:00
d10b187a1f 视频帖详情版主修改活动标签 2021-07-22 17:33:52 +08:00
lyr
1ebf34c83a 【光环助手V5.1.0】新社区2期-埋点文档(版规说明页以及处理漏传)https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-22 16:53:01 +08:00
01e2a3c708 1.版主修改活动标签 2.审核中、审核不通过点击图片toast提示 2021-07-22 15:08:20 +08:00
lyr
c9b97552d4 【光环助手V5.1.0】新社区2期-埋点文档(论坛详情页)https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-21 17:59:30 +08:00
428f39aa86 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-21 11:13:48 +08:00
5fecb723bc 【光环助手V5.1.0】新社区2期-论坛展示-帖子详情页(1(1)(3)(4),2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1346 2021-07-21 11:13:38 +08:00
0168b0d93a 【光环助手V5.1.0】新社区2期-帖子发布页(4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1354 2021-07-21 11:09:39 +08:00
895fa510fe 【光环助手V5.1.0】新社区2期-论坛展示-视频帖详情页 https://git.ghzs.com/pm/halo-app-issues/-/issues/1348 2021-07-21 11:04:00 +08:00
0aae59a1ba 恢复网页跳转旧视频流详情页的能力 2021-07-21 10:39:11 +08:00
574a2b4dc7 完成内容举报弹窗更改 https://git.ghzs.com/pm/halo-app-issues/-/issues/1373 2021-07-21 09:25:30 +08:00
acae608966 添加跳转至个人主页定位到视频分类的 url scheme https://git.ghzs.com/pm/halo-app-issues/-/issues/1284#note_107842 2021-07-20 18:29:37 +08:00
lyr
6ca6c34f92 【光环助手V5.1.0】新社区2期-埋点文档(部分)https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-20 17:55:13 +08:00
16724a2d2e 完成部分内容举报弹窗更改(帖子、提问帖、视频帖) https://git.ghzs.com/pm/halo-app-issues/-/issues/1373 2021-07-20 16:15:54 +08:00
8b50cc561a 补充判断用户类型的逻辑 https://git.ghzs.com/pm/halo-app-issues/-/issues/1293 2021-07-20 09:23:01 +08:00
1ec1d482c4 【光环助手V5.1.0】新社区2期-埋点文档(跳出事件埋点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-19 19:49:47 +08:00
869b9d507b Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-19 16:21:14 +08:00
514fe66347 【光环助手V5.1.0】新社区2期-埋点文档 https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-19 16:21:04 +08:00
lyr
657c91a5ef 【光环助手V5.1.0】新社区2期-论坛展示-信息流-提问帖评论 https://git.ghzs.com/pm/halo-app-issues/-/issues/1344 2021-07-19 11:29:36 +08:00
82354a1156 添加从网页跳转至发视频页面的跳转 urlScheme https://git.ghzs.com/pm/halo-app-issues/-/issues/1284 2021-07-16 18:05:40 +08:00
b7619f0c93 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-16 16:38:25 +08:00
598a3ad0b6 【光环助手V5.1.0】新社区2期-埋点文档(部分) https://git.ghzs.com/pm/halo-app-issues/-/issues/1303 2021-07-16 16:38:18 +08:00
bf0be93dc9 完成"返回活动"的小浮窗功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1284 2021-07-16 15:28:54 +08:00
lyr
90a676f778 【光环助手V5.1.0】新社区2期-论坛展示-信息流-审核中/审核不通过 https://git.ghzs.com/pm/halo-app-issues/-/issues/1343 2021-07-16 10:29:50 +08:00
lyr
a675e4bbe3 【光环助手V5.1.0】光环前端优化汇总第二周(6)https://git.ghzs.com/pm/halo-app-issues/-/issues/1342 2021-07-16 10:08:01 +08:00
5eee8c6785 更改积分"返回活动"浮窗的实现方式 2021-07-15 18:11:12 +08:00
3c54e4313c Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-15 17:08:09 +08:00
67c4b76de9 【光环助手V5.1.0】新社区2期-帖子发布页(UI部分) https://git.ghzs.com/pm/halo-app-issues/-/issues/1354 2021-07-15 17:07:59 +08:00
34fd08d06a 【光环助手V5.1.0】新社区2期-视频帖发布页(UI部分) https://git.ghzs.com/pm/halo-app-issues/-/issues/1355 2021-07-15 17:07:21 +08:00
lyr
d08b95021d 暂时隐藏社区-论坛-其他福利-万能加速器(因为跳转目的地不唯一) 2021-07-15 16:12:16 +08:00
8517a2aef1 应用启动日志上报添加包名/签名等其它信息 2021-07-14 14:57:43 +08:00
lyr
cbe90141f1 修改社区-推荐引导图错位问题 2021-07-14 14:50:10 +08:00
lyr
fd43bc9426 【光环助手V5.1.0】新社区2期-论坛详情页引导 https://git.ghzs.com/pm/halo-app-issues/-/issues/1352 2021-07-14 14:48:52 +08:00
lyr
34a143b632 【光环助手V5.1.0】新社区2期-推荐页引导 https://git.ghzs.com/pm/halo-app-issues/-/issues/1350 2021-07-14 09:39:56 +08:00
d96e02eca0 完成光环前端优化汇总第二周(1~3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1342 2021-07-13 17:52:36 +08:00
lyr
398b1ae58b 【光环助手V5.1.0】新社区2期-引导页 https://git.ghzs.com/pm/halo-app-issues/-/issues/1349 2021-07-13 14:30:59 +08:00
0749205bef 更新离线已收录游戏列表 2021-07-13 14:13:56 +08:00
54ec115fee 修复判断新老用户接口问题 2021-07-13 12:37:08 +08:00
lyr
ebe7b84dc8 【光环助手V5.1.0】个性化推荐合规相关(2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1308 2021-07-13 09:38:49 +08:00
lyr
332abe66f5 【光环助手V5.1.0】光环前端优化汇总第二周(5 优化)https://git.ghzs.com/pm/halo-app-issues/-/issues/1342 2021-07-12 14:33:31 +08:00
lyr
9dccbfbd51 【光环助手V5.1.0】光环前端优化汇总第二周(5)https://git.ghzs.com/pm/halo-app-issues/-/issues/1342 2021-07-12 14:13:22 +08:00
23a8c9e6aa 临时处理 JCenter 依赖问题 2021-07-12 11:32:41 +08:00
1e4408ac6e 【光环助手V5.1.0】新社区2期-消息中心相关优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1309 2021-07-09 16:06:33 +08:00
lyr
05ece9c999 光环助手v5.0.0-新社区后台问题汇总(20210708)(8 优化) https://git.ghzs.com/pm/halo-app-issues/-/issues/1364 2021-07-09 15:18:23 +08:00
lyr
216905e455 光环助手v5.0.0-新社区APP端问题汇总(20210708)(8) https://git.ghzs.com/pm/halo-app-issues/-/issues/1364 2021-07-09 14:27:37 +08:00
a1bd88dad8 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-09 12:41:14 +08:00
16c66c707f 【光环助手V5.1.0】新社区2期-发布页引导(帖子、提问)https://git.ghzs.com/pm/halo-app-issues/-/issues/1351 2021-07-09 12:40:56 +08:00
lyr
50cdea2b03 光环助手v5.0.0-新社区APP端问题汇总(20210707)(11) https://git.ghzs.com/pm/halo-app-issues/-/issues/1360 2021-07-09 11:12:49 +08:00
95b0fda15a 版本号更新到 5.1.0 2021-07-09 10:29:32 +08:00
9c99273f81 光环助手v5.0.0-新社区APP端问题汇总(20210707)(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1360 2021-07-08 21:47:46 +08:00
8d9d36a5df 移除部分无用代码 2021-07-08 18:25:18 +08:00
lyr
b22d168e97 光环助手v5.0.0-新社区APP端问题汇总(20210706)(10 优化) https://git.ghzs.com/pm/halo-app-issues/-/issues/1358 2021-07-08 15:53:49 +08:00
lyr
1fee166e3b 光环助手v5.0.0-新社区APP端问题汇总(20210707)(13) https://git.ghzs.com/pm/halo-app-issues/-/issues/1360 2021-07-08 14:54:25 +08:00
lyr
7c098c29b2 光环助手v5.0.0-新社区APP端问题汇总(20210706)(10) https://git.ghzs.com/pm/halo-app-issues/-/issues/1358 2021-07-08 14:42:19 +08:00
ffc9dc46e2 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-08 11:19:41 +08:00
c491a4084c 修改选择活动标签抖动问题 2021-07-08 11:19:24 +08:00
lyr
0f076a03c5 光环助手v5.0.0-新社区APP端问题汇总(20210707)(11) https://git.ghzs.com/pm/halo-app-issues/-/issues/1360 2021-07-08 10:44:33 +08:00
3345ab2044 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-07 20:41:58 +08:00
5874bdd311 发布帖子/问题视频未上传完不能发布 2021-07-07 20:41:34 +08:00
lyr
4669211196 微调我的光环UI 2021-07-07 18:47:29 +08:00
4879e7f0aa Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-07 18:27:53 +08:00
f5283d386b 1.视频详情点赞按钮防重复点击实现限制为2s 2.修改插入视频时间显示错误问题 2021-07-07 18:27:44 +08:00
lyr
602333f923 光环助手v5.0.0-新社区APP端问题汇总(20210707)第6点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1360 2021-07-07 16:39:23 +08:00
e9810c129e 光环助手v5.0.0-新社区后台问题汇总(20210707)(4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1361 2021-07-07 15:22:56 +08:00
c503f15df9 光环助手v5.0.0-新社区APP端问题汇总(20210706)(13) https://git.ghzs.com/pm/halo-app-issues/-/issues/1358 2021-07-07 14:40:02 +08:00
cba1012bbd Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-07 11:47:39 +08:00
646493ae61 光环助手v5.0.0-新社区APP端问题汇总(20210706)(11) https://git.ghzs.com/pm/halo-app-issues/-/issues/1358 2021-07-07 11:47:30 +08:00
b649089ab0 更换发帖子/问题插入视频接口 2021-07-07 11:46:49 +08:00
lyr
e97fd9023e 光环助手v5.0.0-新社区APP端问题汇总(20210706)第2点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1358 2021-07-07 10:42:39 +08:00
478dd658ab 光环助手v5.0.0-新社区APP端问题汇总(20210706)(5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1358 2021-07-06 18:04:47 +08:00
b313feac01 Merge branch 'dev' of git.ghzs.com:halo/android/assistant-android into dev 2021-07-06 17:24:36 +08:00
c04b82549e 视频帖详情页全屏播放顶部增加标题 2021-07-06 17:24:23 +08:00
lyr
842e62f909 微调个人主页和新分类2.0的UI 2021-07-06 16:28:12 +08:00
lyr
51c6de0506 微调社区-论坛UI 2021-07-06 15:20:19 +08:00
lyr
d350f65c1f 修改活动详情测试环境地址 2021-07-05 18:36:49 +08:00
lyr
aaf8e28abc 光环助手v5.0.0-新社区APP端问题汇总(4)https://git.ghzs.com/pm/halo-app-issues/-/issues/1329 2021-07-05 18:28:07 +08:00
7cb921e969 选择活动标签接口增加location参数 2021-07-05 16:35:57 +08:00
lyr
3a4b41058d 光环助手V5.0.0-新社区展示功能(20200702UI测试问题、UI测试问题补充)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106840 2021-07-05 15:03:28 +08:00
lyr
26308d1852 光环助手V5.0.0-新社区其他相关改动功能(0702 产品测试问题 1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1254#note_106775 2021-07-05 14:24:34 +08:00
af54932309 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-07-05 11:51:03 +08:00
83799048ed 光环助手v5.0.0-新社区APP端问题汇总(2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1329 2021-07-05 11:50:54 +08:00
ce410ad2a0 更改网页 url 的地址添加来源 query 的实现 2021-07-05 09:30:55 +08:00
933c40458f 社区插入视频length字段的统一单位为秒 2021-07-05 09:24:10 +08:00
6ae7578281 光环助手V5.0.0-新社区展示功能(0702 产品测试问题1,3,4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-07-03 15:25:57 +08:00
lyr
72b804e26e 处理论坛信息流GIF图边框显示不对的问题 2021-07-02 18:03:48 +08:00
lyr
7e58cdc59e 修改社区-论坛Tab每次进入页面都会被切割的问题 2021-07-02 17:20:20 +08:00
lyr
d782ea90b6 光环助手V5.0.0-新社区展示功能(0701 产品测试问题 3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106529 2021-07-02 15:18:49 +08:00
lyr
efffd752f5 提交漏传资源文件 2021-07-02 14:25:20 +08:00
47f3f45fe6 修复推荐优先专题游戏没有推荐信息时简介不显示大小的问题 2021-07-02 10:30:00 +08:00
b4e12e2ec3 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-07-01 21:08:15 +08:00
2d331f6294 光环助手V5.0.0-新社区展示功能(0701 产品测试问题4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-07-01 21:08:09 +08:00
lyr
feb4137f84 光环助手V5.0.0-新社区展示功能(V5.0.0-新社区展示功能-UI测试问题汇总 7 gif没有边框问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105161 2021-07-01 18:57:45 +08:00
6a2c4a2967 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-07-01 18:16:32 +08:00
68fc5532ff 1.用户回答了问题消息通知跳转新回答详情 2.删除无用导包 2021-07-01 18:16:26 +08:00
lyr
43ae479271 光环助手V5.0.0-新社区展示功能(0630 产品测试问题 5)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106346 2021-07-01 18:12:52 +08:00
7a3ea4d939 处理版本升级时的数据库更新问题 2021-07-01 18:04:43 +08:00
lyr
1bcb343355 光环助手V5.0.0-新社区展示功能(0630 运营测试问题 4)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106346 2021-07-01 17:54:36 +08:00
1b7a601cee 处理游戏详情点击启动状态的下载按钮的滚动问题 2021-07-01 16:26:53 +08:00
lyr
8bc9544dc2 光环助手V5.0.0-新社区展示功能(0630 运营测试问题 2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106346 2021-07-01 16:03:13 +08:00
e586e65e44 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-07-01 15:47:38 +08:00
8096da5f50 光环助手V5.0.0-新社区展示功能(0701 产品测试问题1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-07-01 15:47:34 +08:00
91868fda15 微调专题游戏推荐语布局 2021-07-01 14:48:23 +08:00
lyr
a71e8824ce 光环助手V5.0.0-新社区展示功能(0629 产品测试问题 15-17)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106052 2021-07-01 11:04:28 +08:00
6cbc354921 完成前端优化汇总(16) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260 2021-06-30 18:14:50 +08:00
lyr
79e2077a3d 光环助手V5.0.0-新社区展示功能(0629 产品测试问题 14)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106052 2021-06-30 18:04:55 +08:00
lyr
6ea3ed067d 光环助手V5.0.0-新社区展示功能(V5.0.0-新社区展示功能-UI测试问题汇总 7)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105805 2021-06-30 17:06:22 +08:00
lyr
84fe33becc 光环助手V5.0.0-新社区其他相关改动功能 (0629UI问题 4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1254#note_106173 2021-06-30 16:38:25 +08:00
276f53fead Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-30 16:15:06 +08:00
0789cc6fdf 光环助手V5.0.0-新社区其他相关改动功能(0625 运营测试问题2(1)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1254 2021-06-30 16:15:01 +08:00
lyr
3a563b7bd0 光环助手V5.0.0-新社区其他相关改动功能 (0628 产品测试问题 2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1254#note_105919 2021-06-30 15:55:30 +08:00
lyr
9b8ba0c3e6 光环助手V5.0.0-新社区其他相关改动功能(20210622UI测试问题、0623 产品测试问题、0625 运营测试问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1254 2021-06-30 15:38:38 +08:00
258f054161 光环助手V5.0.0-新社区展示功能(0629 运营测试问题22) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-30 15:15:19 +08:00
258c8db0f9 光环助手V5.0.0-新社区展示功能(0629 运营测试问题23,24) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-30 11:44:16 +08:00
741d0b11af Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-29 18:47:13 +08:00
9267896b50 光环助手V5.0.0-新社区展示功能(0629 运营测试问题13) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-29 18:47:03 +08:00
85c0bd69c1 调整 VolumeObserver 入参,避免内存泄漏 2021-06-29 18:45:58 +08:00
2436507b7b Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-29 17:58:06 +08:00
1b68b07e53 光环助手V5.0.0-新社区展示功能(0629 产品测试问题8,10) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-29 17:57:55 +08:00
lyr
c4ba28de1a 光环助手V5.0.0-新社区展示功能(20200629UI测试问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_106168 2021-06-29 17:26:37 +08:00
lyr
8daa55c16a 光环助手V5.0.0-新社区展示功能 (0629 产品测试问题 第4、5点) 2021-06-29 17:09:47 +08:00
lyr
5e6c6aca13 光环助手V5.0.0-新社区展示功能(V5.0.0-新社区展示功能-UI测试问题补充 第2点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105806 2021-06-29 16:31:06 +08:00
lyr
e08ab790ee 优化新分类2.0引导UI 2021-06-29 15:59:26 +08:00
lyr
a394901cb4 光环前端优化汇总(2021年5月)(20210629UI问题补充) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260#note_106103 2021-06-29 15:34:12 +08:00
lyr
2aaa7f2795 优化社区-论坛Tab的UI 2021-06-29 15:07:10 +08:00
7b0d2a25c8 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-29 09:40:35 +08:00
e3f553a96f 光环助手V5.0.0-新社区展示功能(0628 产品测试问题4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-29 09:40:25 +08:00
lyr
809a25e3e2 光环助手V5.0.0-新社区展示功能(0628测试问题-热门论坛应该不展示已关注的论坛)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105293 2021-06-28 18:58:20 +08:00
lyr
88041d9b5f 优化社区-推荐Tab搜索框UI 2021-06-28 16:57:40 +08:00
lyr
a11d741f6f 修复社区推荐Tab和论坛详情在当前论坛列表为空时,发布新内容而未显示的问题 2021-06-28 16:44:06 +08:00
1283def6da 修复首页搜索栏嵌套滚动不灵敏的问题 2021-06-28 16:33:21 +08:00
9c621c31a2 光环助手V5.0.0-新社区展示功能(0621 产品测试问题8(11)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-28 15:54:50 +08:00
9e3f40723f 光环助手V5.0.0-新社区发布功能(0628 产品测试问题1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-28 15:13:46 +08:00
682bb9a3e7 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-28 14:53:55 +08:00
9f2d164c70 光环助手V5.0.0-新社区展示功能(0628 产品测试问题1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-28 14:53:49 +08:00
lyr
bad5130047 修复社区-推荐Tab本人新发布的视频贴时间显示不对问题 2021-06-28 14:23:23 +08:00
e3f831e0ca 修复应用内网页因为地址带特殊字符而出现的加载问题 2021-06-28 11:45:04 +08:00
a1432452f5 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-28 11:31:30 +08:00
b3cc68b7c6 修改跳转至新的问题详情和回答详情 2021-06-28 11:31:25 +08:00
lyr
cc1f5a269a 修改个人主页发布Tab-切换子tab视频还在播放的问题 2021-06-28 11:27:25 +08:00
a2892a713a Merge branch 'release' into dev-5.0.0
# Conflicts:
#	dependencies.gradle
2021-06-28 11:01:59 +08:00
lyr
c342e22ce4 Merge remote-tracking branch 'origin/dev-5.0.0' into dev-5.0.0 2021-06-28 10:02:51 +08:00
lyr
57dcbab096 光环助手V5.0.0-新社区展示功能(V5.0.0-新社区展示功能-UI测试问题补充)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105806 2021-06-28 10:02:39 +08:00
5aa4c5bcbc 光环助手V5.0.0-新社区展示功能(0625 产品测试问题3,4(2)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-28 09:58:16 +08:00
lyr
039e1fc957 光环助手V5.0.0-新社区展示功能(0625 产品测试问题 第2点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105792 2021-06-25 18:55:30 +08:00
f7b2d10543 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-25 17:24:13 +08:00
38972eca76 光环助手V5.0.0-新社区发布功能(UI测试问题汇总0621AM 9) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-25 17:24:05 +08:00
lyr
c2d853d709 【光环助手V5.0.0】提问帖相关需求(V5.0.0-新社区提问帖相关需求-UI测试问题汇总 第1点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1251#note_105291 2021-06-25 16:47:04 +08:00
lyr
239209dbf2 光环助手V5.0.0-新社区展示功能(0623 产品测试问题 第1、2、4点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105473 2021-06-25 16:05:43 +08:00
lyr
ba1f3e20d3 优化新分类2.0引导图逻辑 2021-06-25 15:02:57 +08:00
lyr
92ac62d949 光环助手V5.0.0-新社区展示功能(20210622UI测试问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105369 2021-06-25 15:00:29 +08:00
6499e3b718 修改视频贴详情用户关注按钮样式 2021-06-25 11:12:23 +08:00
5f0d2604ec Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-25 10:09:49 +08:00
5f7bb6cb49 光环助手V5.0.0-新社区发布功能(0622 产品测试问题2(2)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-25 10:09:40 +08:00
lyr
7360eef244 光环助手V5.0.0-新社区展示功能(V5.0.0-新社区展示功能-UI测试问题汇总 第1-10点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105161 2021-06-25 09:27:03 +08:00
52e6feab59 修改视频帖详情游戏标签样式 2021-06-24 20:56:09 +08:00
5f44252410 视频贴详情调整视频区域高度 2021-06-24 18:35:13 +08:00
7ae3b1cafb Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-24 18:13:49 +08:00
0fb77e79fd 光环助手V5.0.0-新社区发布功能(UI测试问题补充0624PM 1,2,3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-24 18:13:39 +08:00
lyr
d4ae878947 光环前端优化汇总(2021年5月)(第9-11点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260 2021-06-24 17:58:04 +08:00
37a2e3cc0e 光环助手V5.0.0-新社区发布功能(UI测试问题汇总4,9) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-24 17:04:21 +08:00
30595741cc Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-24 16:46:02 +08:00
11f177d572 完成视频贴详情仿bilibili交互效果 2021-06-24 16:45:51 +08:00
9e13675ca5 完成前端优化汇总(0623测试2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260#note_105557 2021-06-24 15:14:34 +08:00
144a0641b6 完成游戏专题功能优化(20210617测试问题6) 和 20210622UI测试 2021-06-24 15:13:35 +08:00
95266f6f68 【光环助手V5.0.0】提问帖相关需求(0623测试反馈2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1251 2021-06-24 11:27:56 +08:00
9ded647c0d 光环助手V5.0.0-新社区发布功能(0623 产品测试问题1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-24 10:57:49 +08:00
f566e4d5c3 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-24 10:40:31 +08:00
5df3efd087 光环助手V5.0.0-新社区展示功能(0623 产品测试问题5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-24 10:40:19 +08:00
98f4361bf0 Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-24 10:09:21 +08:00
000d1e020a 完成关于MOD游戏下载用户的相关限制(APP 接口修改) https://git.ghzs.com/pm/halo-app-issues/-/issues/1293 2021-06-24 10:07:58 +08:00
lyr
93431a7e37 光环助手V5.0.0-新社区展示功能(0622 产品测试问题 2、4、5)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105293 2021-06-23 17:59:34 +08:00
lyr
d54523cdb6 光环助手V5.0.0-新社区展示功能(0621 产品测试问题 0、1、2、5)https://git.ghzs.com/pm/halo-app-issues/-/issues/1253#note_105232 2021-06-23 15:59:03 +08:00
ed468b7c73 【光环助手V5.0.0】提问帖相关需求(0623测试反馈1,3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1251 2021-06-23 15:55:11 +08:00
bad6211bf5 光环助手V5.0.0-新社区发布功能 0622 产品测试问题 1,2(1)(3)(4)(5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-23 14:33:27 +08:00
2743d4d0de Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-22 15:43:58 +08:00
a0f5387917 光环助手V5.0.0-新社区展示功能(0621 产品测试问题4,6,7,8(1,3,4,5,7,8,9,11)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-22 15:43:49 +08:00
1abfcfdb51 abiFilters 添加 arm64 2021-06-22 14:28:42 +08:00
ecc0a75f52 光环助手V5.0.0-新社区展示功能(UI测试问题汇总10-14) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-21 16:53:21 +08:00
c98bf26337 光环助手V5.0.0-新社区发布功能(UI测试问题汇总1,3-9) https://git.ghzs.com/pm/halo-app-issues/-/issues/1252 2021-06-21 15:44:25 +08:00
187d07d02d 完成光环前端优化汇总(5, 14, 16, 17) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260 2021-06-18 17:51:59 +08:00
c47c23ad21 修复因懒加载优化而造成的下载进度更新异常问题 2021-06-18 09:46:30 +08:00
8d011ae7ef Merge branch 'hotfix-v4.9.6-337-generic_bugs' into 'release'
修复下载模拟器时会暂停其它下载任务的问题

See merge request halo/android/assistant-android!117
2021-06-17 18:38:04 +08:00
36b58383f7 版本更新至 4.9.6-338 2021-06-17 18:37:32 +08:00
e6ea1738e5 光环前端优化汇总(2021年5月)(4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260 2021-06-17 16:32:55 +08:00
70b7689ac5 修复下载模拟器时会暂停其它下载任务的问题 2021-06-17 15:18:41 +08:00
40983ecebc 光环前端优化汇总(2021年5月)(3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260 2021-06-17 14:41:35 +08:00
47b0a8d1ac 版本更新至 4.9.6-337 2021-06-17 10:43:33 +08:00
1ae63d3010 Merge branch 'hotfix-v4.9.6-336-recreate' into 'release'
修复首页和游戏详情页页面重建时的 tab 显示问题

See merge request halo/android/assistant-android!116
2021-06-17 10:39:51 +08:00
fbe73ce4da Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-16 18:43:48 +08:00
d46617237f 光环助手V5.0.0-新社区展示功能(社区搜索页的搜索结果增加论坛tab) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-16 18:43:43 +08:00
lyr
0894957d73 修改帖子再次编辑修改成功后的闪退问题 2021-06-16 17:58:15 +08:00
9b9777ae19 修复首页和游戏详情页页面重建时的 tab 显示问题 2021-06-16 16:18:55 +08:00
lyr
7f2145d0ef 论坛信息流视频在切换tab时暂停播放 2021-06-16 15:19:21 +08:00
lyr
acefbba6bf Merge remote-tracking branch 'origin/dev-5.0.0' into dev-5.0.0 2021-06-16 14:12:31 +08:00
lyr
660a091b7b 【光环助手5.0.0】一键登录相关优化(第1点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1294 2021-06-16 14:12:25 +08:00
103078d63e 修改图片预览页面点击查看帖子异常 2021-06-16 11:00:28 +08:00
lyr
178395f531 优化论坛信息流审核中视频的显示 2021-06-16 09:52:52 +08:00
lyr
8db213d040 【光环助手V5.0.0】提问帖相关需求(0615测试反馈 3)https://git.ghzs.com/pm/halo-app-issues/-/issues/1251#note_104578 2021-06-16 09:51:13 +08:00
lyr
5904d3c5c7 光环助手V5.0.0-新社区展示功能(前置说明 1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1253 2021-06-15 17:53:01 +08:00
1a511ebbad 【光环助手V5.0.0】提问帖相关需求 (0615测试反馈 1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1251 2021-06-15 17:09:04 +08:00
ef97e8cc6d 新社区插入视频后封面上传到oss 2021-06-15 16:07:21 +08:00
814cef6218 Merge branch 'hotfix-v4.9.6-336-crash' into 'release'
1.修复Xapk解压过程中获取解压文件大小时的闪退问题

See merge request halo/android/assistant-android!115
2021-06-15 11:55:02 +08:00
lyr
fd6c4836d4 1.修复Xapk解压过程中获取解压文件大小时的闪退问题
2.修复新分类2.0游戏列表时的空指针问题
3.修复新分类2.0已选分类列表的数组越界问题
2021-06-15 11:51:22 +08:00
9df138ed7c Merge branch 'hotfix-v4.9.6-336-install' into 'release'
特殊处理山寨机在后台开启使用浏览器安装时的安装 intent

See merge request halo/android/assistant-android!114
2021-06-15 11:02:37 +08:00
7b11b0e99a Merge branch 'dev-5.0.0' of git.ghzs.com:halo/android/assistant-android into dev-5.0.0 2021-06-11 17:47:24 +08:00
01034f093a 处理合并冲突 2021-06-11 17:45:52 +08:00
8e28766449 Merge branch 'feature-bbs' into dev-5.0.0
# Conflicts:
#	app/src/main/AndroidManifest.xml
#	app/src/main/java/com/gh/common/util/NewLogUtils.kt
#	app/src/main/java/com/gh/gamecenter/personalhome/UserHomeFragment.kt
#	app/src/main/java/com/gh/gamecenter/qa/dialog/MoreFunctionPanelDialog.kt
#	app/src/main/res/layout/fragment_home.xml
#	app/src/main/res/values/colors.xml
2021-06-11 17:34:03 +08:00
lyr
d06d0bd15c 一键登录设置每步超时时间为1.5秒 2021-06-11 17:04:31 +08:00
4fe4a33b80 光环前端优化汇总(2021年5月)(13) https://git.ghzs.com/pm/halo-app-issues/-/issues/1260 2021-06-11 14:55:10 +08:00
4a8e91bbff 对接视频帖加精 2021-06-11 10:09:13 +08:00
lyr
b1f6c7d55c 1.优化游戏详情顶部视频和论坛信息流视频的静音设置
2.修改个人主页发布记录的类型、点赞、评论、回答数据字段转化
2021-06-10 18:06:55 +08:00
lyr
727eeac52e 修改游戏详情顶部静音设置 2021-06-10 16:26:35 +08:00
fb26ec0c13 Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-06-10 15:45:55 +08:00
3e25619bf8 论坛修改点赞、评论、回答、收藏数据字段 2021-06-10 15:45:50 +08:00
lyr
e81fa4ff1a 论坛根据类型展示图标 2021-06-10 11:41:02 +08:00
d7d2bf2667 更换问题收藏/取消收藏接口 2021-06-10 11:16:39 +08:00
c763a0a9e6 完成选择论坛-搜索论坛功能 2021-06-10 10:28:06 +08:00
1f34f95e7c 特殊处理山寨机在后台开启使用浏览器安装时的安装 intent 2021-06-10 09:53:54 +08:00
2afb99b603 修改编辑视频帖发布按钮一直是置灰状态 2021-06-09 18:38:06 +08:00
lyr
2e09ac033b 优化视频贴类型转化 2021-06-09 18:25:27 +08:00
lyr
54747143d1 1.修改论坛详情-视频Tab无法下拉刷新问题
2.修改论坛详情-列表视频贴未显示内容问题
3.修改论坛详情-全部Tab的问答贴回答数量不对问题
2021-06-09 18:10:10 +08:00
076c98977d 1.修改问题详情评论不显示作者标签 2.修改问题详情点击顶部返回按钮无法关闭页面 2021-06-09 16:47:19 +08:00
lyr
b96104fcd9 对接社区推荐Tab的接口 2021-06-09 16:26:04 +08:00
lyr
daece9337c 修改浏览记录-帖子Item左下角对应论坛UI未显示问题 2021-06-09 14:35:13 +08:00
lyr
3547330e2a 论坛详情页-内容搜索结果增加视频帖的展示 2021-06-08 18:19:20 +08:00
4d76fb0159 Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-06-08 17:47:04 +08:00
f34a95b36f 1.更换提问、草稿、问题详情接口 2.对接视频帖评论接口 2021-06-08 17:46:56 +08:00
lyr
6e3cb7a196 1.论坛列表增加视频自动播放功能
2.论坛首页搜索适配视频贴展示
2021-06-08 17:39:06 +08:00
03f87c46ba 游戏更新相关接口添加版本和渠道 https://git.ghzs.com/pm/halo-app-issues/-/issues/1267 2021-06-08 17:08:02 +08:00
b052ba1635 移除无用的 activity 声明 2021-06-08 16:34:27 +08:00
d1183199cd 全局更改跳转视频详情的页面 https://git.ghzs.com/pm/halo-app-issues/-/issues/1254 2021-06-08 16:31:30 +08:00
31fed948f0 更换社区-推荐的接口 https://git.ghzs.com/pm/halo-app-issues/-/issues/1246 2021-06-08 15:54:44 +08:00
f1c5b80dc2 完成社区内容浏览日志上报 https://git.ghzs.com/pm/halo-app-issues/-/issues/1246 2021-06-08 15:51:10 +08:00
86f2aec9ca 修复社区内容分享日志上报丢失的问题 2021-06-08 15:28:26 +08:00
f826dc07c6 版本更新至 4.9.6 2021-06-08 10:23:08 +08:00
34670d08c0 Merge branch 'hotfix-v4.9.5-335-crash' into 'release'
Hotfix v4.9.5 335 crash

See merge request halo/android/assistant-android!113
2021-06-08 10:22:04 +08:00
5e5646468e 1. 捕抓分类2.0页面延迟操作造成的闪退异常
2. 修复首页滑动 tab 时偶发的闪退
3. 捕抓模拟器游戏延迟操作造成的闪退异常
4. 捕抓礼包详情页延迟操作造成的闪退异常
2021-06-08 10:22:04 +08:00
a218f13ccb Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-06-08 10:15:23 +08:00
1fc37571df 修改ImageUtils不能加载视频第一帧的图片 2021-06-08 10:15:12 +08:00
lyr
576f06f250 1.修改论坛详情页列表内容显示不对问题
2.修改论坛信息流左下角对应论坛图标显示不出来问题
2021-06-08 10:03:36 +08:00
3805cb52f6 优化论坛插入视频 2021-06-07 21:38:07 +08:00
lyr
f8d7377236 完成新社区-活动Tab 2021-06-07 18:45:43 +08:00
354fa13a35 优化论坛发布功能 2021-06-07 16:02:29 +08:00
3c533b896b 对接我的论坛帖子、我的收藏帖子 2021-06-05 19:18:57 +08:00
11c6618c0f Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-06-05 10:27:55 +08:00
898bf3e432 粗略完成新问题详情页面 2021-06-05 10:27:49 +08:00
lyr
0faf408762 修复新社区相关数据库迁移报错问题 2021-06-04 17:44:49 +08:00
lyr
1dbabe3cda 提交漏传文件 2021-06-04 16:19:07 +08:00
lyr
a107a19d95 完成社区-论坛Tab-官方论坛对接 2021-06-04 15:43:53 +08:00
lyr
58ea0bb51d 完善论坛信息流视频播放逻辑 2021-06-04 14:25:17 +08:00
557f22b23b rxPermission 更新至 androidX 版本 2021-06-03 16:59:40 +08:00
f40a192e82 调整带 chucker 打包脚本 2021-06-03 16:54:55 +08:00
84f3556275 Merge remote-tracking branch 'origin/release' into dev-5.0.0
# Conflicts:
#	dependencies.gradle
2021-06-03 16:47:45 +08:00
cddc2bff2b 添加简单的 Log 工具类 2021-06-03 16:38:58 +08:00
a0b8caa60a 完成5.0.0游戏专题功能优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1247 2021-06-03 16:38:12 +08:00
lyr
22cadc77f0 1.修改"社区-推荐Tab最近浏览列表首个Item未读红点已读但未消失"问题
2.修改首页底部导航栏动画不对应问题
3.修改论坛详情页关注按钮显示不全问题
2021-06-03 11:28:09 +08:00
28fb45f0b8 添加简单的 Log 工具类 2021-06-03 11:27:44 +08:00
3d7f8b3f41 Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-06-03 10:30:04 +08:00
bba326cfd9 1.收藏/取消收藏问题 2.修改我的论坛 2021-06-03 10:29:57 +08:00
lyr
f76bb7070a 优化社区-推荐Tab列表显示 2021-06-03 10:28:36 +08:00
lyr
a6a3d769bd 完成论坛详情页的视频Tab和个人主页的发布Tab的视频分类 2021-06-02 18:16:56 +08:00
ea5627b3da 区分正式包和测试包的默认渠道,避免正式包因渠道丢失而回落到测试渠道 2021-06-02 16:58:41 +08:00
d9807227ec 处理列表分割线显示异常问题 2021-06-01 09:26:26 +08:00
039203408a 版本更新至 4.9.5 2021-05-31 10:32:07 +08:00
60b325812e Merge branch 'hotfix-v4.9.4-334-crash' into 'release'
Hotfix v4.9.4 334 crash

See merge request halo/android/assistant-android!112
2021-05-31 10:29:00 +08:00
06a43f617b 处理闪退
1. 处理首页 tab 触摸时某些设备可能会闪退的问题
2. 修复游戏库刷新按钮被遮盖的问题
3. 尝试修复游戏库横向列表因恢复滚动状态而出现的闪退
4. 修复偶发的因为获取不到渠道号而触发的闪退
5. 尝试修复启动时偶发的初始化图片加载库触发的闪退
6. 修复 Android 11 首次安装 XAPK 获取权限回到页面时的闪退问题
2021-05-31 10:29:00 +08:00
5cc1cfa1a6 完成视频详情推荐列表 2021-05-29 17:17:09 +08:00
35cdd140cc Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-05-29 16:07:48 +08:00
87597dbd1f 完成帖子、问题发布功能 2021-05-29 16:07:33 +08:00
lyr
398f7b6642 1.完成首页和游戏详情的视频播放设置
2.完成个人主页的发布Tab(除视频分类)
2021-05-28 18:52:10 +08:00
85d3412fd8 版本更新到 4.9.4 2021-05-28 10:28:06 +08:00
71b8cbbef3 Merge branch 'hotfix-v4.9.3-333-crash' into 'release'
Hotfix v4.9.3 333 crash

See merge request halo/android/assistant-android!111
2021-05-28 10:26:50 +08:00
dfc0183a14 1. 处理包名检测弹窗上报日志的空指针闪退问题
2. 捕抓评论列表一键登录可能触发的闪退问题
3. 修复礼包详情页重建时的闪退问题
4. 修复视频流评论页页面重建时的闪退问题
2021-05-28 10:26:50 +08:00
lyr
f0ca0a2ab1 推荐页的浏览记录和论坛页的关注论坛增加未读状态 2021-05-27 15:44:01 +08:00
c9ffd4e5bd Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-05-26 20:45:06 +08:00
d354b07fe2 1.抽离公共评论详情页面 2.粗略完成问题详情页面UI(未对接接口) 2021-05-26 20:44:46 +08:00
lyr
71a61fdef0 粗略完成社区的推荐Tab和论坛Tab 2021-05-26 19:00:06 +08:00
156e52f619 版本升级到 4.9.3 2021-05-26 14:26:49 +08:00
252cb3825b Merge branch 'hotfix-v4.9.2-332-crash' into 'release'
Hotfix v4.9.2 332 crash

See merge request halo/android/assistant-android!110
2021-05-26 14:26:14 +08:00
2eded37321 首页社区 TAB 和首页视频 TAB 互换位置 2021-05-26 10:20:06 +08:00
075a7e4e77 处理专题详情滚到顶部空指针异常 2021-05-26 09:55:30 +08:00
0c95f911d1 捕抓插件化数据库读写异常 2021-05-26 09:43:40 +08:00
f35baf0e5b 完成[安装方式管理]新增[白名单]功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1264 2021-05-25 17:54:02 +08:00
49b74c9a37 修复包名检测弹窗的重建闪退问题 2021-05-25 14:37:31 +08:00
c4240440d1 版本更新到 4.9.2 2021-05-25 10:56:09 +08:00
e0205ec060 Merge branch 'hotfix-v4.9.1-331-crash' into 'release'
修复闪退

See merge request halo/android/assistant-android!109
2021-05-25 10:55:35 +08:00
895024aa09 1. 修复启动时初始化图片加载库可能的闪退问题
2. 修复游戏详情最新开服可能的闪退问题
3. 修复在越南/法语设备上启动会闪退的问题
2021-05-25 10:53:47 +08:00
4d64281c78 修改视频贴保存草稿功能 2021-05-24 21:20:04 +08:00
95f1692434 Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-05-24 15:51:12 +08:00
f1302dd1bb 完成视频详情顶部区域 2021-05-24 15:51:00 +08:00
fd946703a9 版本更新至 4.9.1 2021-05-24 15:01:38 +08:00
806935a81e Merge branch 'hotfix-v4.9.0-330-privacy' into 'release'
4.9.0 隐私变更更改

See merge request halo/android/assistant-android!108
2021-05-24 14:59:14 +08:00
feb30ff3a4 1. 去掉 SYSTEM_ALERT_WINDOW 权限声明
2. 完成 https://git.ghzs.com/pm/halo-app-issues/-/issues/1262 的第32点
3. 取消 WorkManager 自动初始化,关闭 Sentry 读取系统事件能力
2021-05-24 14:59:14 +08:00
lyr
fec34f1efa 提交遗漏资源文件 2021-05-24 10:45:18 +08:00
lyr
def3b55e51 完成光环助手V5.0.0-新社区其他相关改动功能(第七点UI) 2021-05-24 09:57:08 +08:00
4549f78ede 粗略完成发视频贴功能 2021-05-23 21:04:00 +08:00
3054b56f4a Merge branch 'feature-bbs' of git.ghzs.com:halo/android/assistant-android into feature-bbs 2021-05-20 14:13:28 +08:00
4cf5e0f2f4 论坛富文本支持插入视频功能 2021-05-20 14:13:22 +08:00
lyr
1a18c82f06 个人主页-根据个人信息内容设置背景的高度 2021-05-19 18:51:49 +08:00
lyr
b8fbb429f1 个人主页-根据个人信息内容设置背景的高度 2021-05-19 18:40:25 +08:00
lyr
005229fe8a 提交个人主页游戏tab改动遗漏部分 2021-05-19 18:31:25 +08:00
lyr
3a0bbbf3d0 完成个人主页游戏tab改动 2021-05-19 18:09:34 +08:00
4b851732c9 正式包暂不启用 AndResGuard (旧版本在新AGP上默认启用 V3 签名,新版本在蓝叠模拟器上无法运行) 2021-05-19 16:53:51 +08:00
lyr
3abf29fa75 微调登录页UI 2021-05-19 15:57:21 +08:00
lyr
4bb7d2a043 光环助手V4.7.0-积分体系(第2期)--光能中心(0519 运营反馈 去掉签到提醒)https://git.ghzs.com/pm/halo-app-issues/-/issues/1110#note_101733 2021-05-19 15:34:23 +08:00
lyr
e3d830235e 微调登录页UI 2021-05-19 14:59:00 +08:00
lyr
6425f3d50c 光环助手V4.9.0-优化登录功能(第3期)(0518 运营反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1206#note_101568 2021-05-19 11:11:47 +08:00
lyr
868e6d31b8 提交论坛详情页顶部UI遗漏部分 2021-05-18 15:31:29 +08:00
lyr
a687f8d877 完成论坛详情页顶部UI调整 2021-05-18 15:15:38 +08:00
e9d2c6573f 完成同步正式环境后测试问题汇总(22) https://git.ghzs.com/pm/halo-app-issues/-/issues/1262 2021-05-18 15:02:26 +08:00
05e36f11cf 处理视频流闪退问题 2021-05-18 14:57:36 +08:00
lyr
bc76e6eddb 光环助手V4.9.0-同步正式环境后测试问题汇总(14、16) https://git.ghzs.com/pm/halo-app-issues/-/issues/1262#note_101438 2021-05-18 11:59:50 +08:00
lyr
6de543261b 修改"邀请好友"正式环境地址 2021-05-18 09:15:19 +08:00
lyr
d9a8fa0a2d 光环助手V4.9.0-个人主页优化(第2期)(0517 运营测试反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1203#note_101240 2021-05-17 18:08:40 +08:00
lyr
51c88e8586 光环助手V4.9.0-优化登录功能(第3期)(0517 运营测试问题 1) 2021-05-17 17:10:12 +08:00
9e930f1b35 去掉游戏详情顶部区域自动隐藏时的动画 2021-05-17 15:34:15 +08:00
eb8fb191bb 修改视频流全屏后的显示错误问题 2021-05-17 14:27:37 +08:00
6653467259 完成首页顶部 tab 栏功能(20210517运营测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1215 2021-05-17 11:39:27 +08:00
9ec29ad367 修复因优化首页 tab 性能造成开服表页面的开测 tab 不显示的问题 2021-05-17 10:13:15 +08:00
406ac98616 激活数据上报里补充 oaid (若存在) 2021-05-15 15:12:52 +08:00
5832c75909 修复同步正式环境后测试问题汇总(5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1262 2021-05-14 11:36:59 +08:00
9d8681c50f 光环助手V4.8.0-视频优化(第1期)(0514 运营测试问题3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1107 2021-05-14 10:47:47 +08:00
lyr
9c28bf162e 新分类2.0页-侧边栏关闭手势滑动 2021-05-14 09:37:54 +08:00
3e86a40215 发提问改为富文本 2021-05-13 20:34:09 +08:00
061d5c19ed 微调首页轮播图上边距 2021-05-13 17:38:50 +08:00
1241207dd2 处理首页 tab 无数据时的回落问题 2021-05-13 15:59:30 +08:00
6a68839d0f 1完成选择活动弹窗UI 2.发布帖子、提问删除添加标签入口 2021-05-13 15:31:18 +08:00
2140c9eb40 Update README.md 2021-05-13 15:13:41 +08:00
lyr
702da08bc4 修复问题:在验证码登录页点击一键登录,然后授权电话权限后,无法弹起一键登录页 2021-05-12 18:58:18 +08:00
942af39b2d 大致完成选择论坛、选择本地视频、预览视频、发视频UI 2021-05-12 16:55:18 +08:00
lyr
a0331f0437 光环前端优化汇总(2021年5月)第6点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1260 2021-05-12 14:46:31 +08:00
8c885e38a1 完成4月光环前端优化汇总(6) https://git.ghzs.com/pm/halo-app-issues/-/issues/1236 2021-05-12 11:50:34 +08:00
acc6935608 正式环境 API 切换到 4.9.0 2021-05-12 11:47:56 +08:00
lyr
63798c94cf Merge branch 'dev' into dev-5.0.0
# Conflicts:
#	app/src/main/java/com/gh/common/util/QuickLoginHelper.kt
2021-05-10 17:06:12 +08:00
lyr
62a87d1c71 完善是否能进行一键登录的判断 2021-05-10 09:34:15 +08:00
lyr
2ba479d3ca 光环助手V4.9.0-优化登录功能(第3期)(0507 补充运营意见--增加一键登录说明弹窗 遗漏部分) https://git.ghzs.com/pm/halo-app-issues/-/issues/1206#note_100061 2021-05-08 17:29:56 +08:00
lyr
6c2ff6a94f 光环助手V4.9.0-优化登录功能(第3期)(0507 补充运营意见--增加一键登录说明弹窗) https://git.ghzs.com/pm/halo-app-issues/-/issues/1206#note_100061
(cherry picked from commit 3f5f3bf57c)
2021-05-08 16:15:54 +08:00
lyr
3f5f3bf57c 光环助手V4.9.0-优化登录功能(第3期)(0507 补充运营意见--增加一键登录说明弹窗) https://git.ghzs.com/pm/halo-app-issues/-/issues/1206#note_100061 2021-05-08 15:55:42 +08:00
2211f562c7 抽离发布帖子、回答公共代码 2021-05-08 15:52:41 +08:00
4d10ca0c6c Merge branch 'dev-4.9.0' into dev 2021-05-08 15:41:28 +08:00
c816fd87f4 Merge branch 'dev-4.9.0' into dev
# Conflicts:
#	app/src/main/res/layout/fragment_login.xml
2021-05-08 10:41:39 +08:00
lyr
547bfd98ac 个人主页-根据个人信息内容设置背景的高度 2021-05-07 11:02:37 +08:00
34ba85f099 修改网页链接全局添加from=ghzs参数 2021-05-06 15:17:00 +08:00
lyr
2d251ef453 调整"我的光环"和"个人主页"徽章标签的红点提示位置 2021-04-29 14:57:29 +08:00
7a0165375c 去掉视频预加载打印日志 2021-04-29 14:46:47 +08:00
lyr
d7c7fe8740 优化个人主页背景UI 2021-04-29 01:10:53 +08:00
295e783d4b Merge remote-tracking branch 'origin/dev-4.9.0' into dev-4.9.0 2021-04-28 23:56:57 +08:00
58dfad4123 调整实名认证解析 2021-04-28 23:56:47 +08:00
f31d8b51fa 修改礼包中心-关注tab游戏icon显示异常 2021-04-28 23:52:41 +08:00
lyr
01ea8b9834 光环助手V4.9.0-个人主页优化(第2期)(0427 产品测试问题 个人主页没有显示圆角问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1203 2021-04-28 22:51:31 +08:00
5152060515 调整实名认证结束时间判断 2021-04-28 22:32:42 +08:00
0a0d805e9d 完成防沉迷下载流程 https://git.ghzs.com/pm/halo-app-issues/-/issues/1218 2021-04-28 22:24:08 +08:00
51511c8be8 更换礼包是否被隐藏字段 2021-04-28 21:53:22 +08:00
4bbfa3e16e 修改推荐弹窗按钮点击范围 2021-04-28 21:50:30 +08:00
lyr
81c0c6ee09 Merge remote-tracking branch 'origin/dev-4.9.0' into dev-4.9.0 2021-04-28 20:48:38 +08:00
lyr
50b449ca64 光环助手V4.9.0-优化登录功能(第3期)(0428 产品测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1206#note_99487 2021-04-28 20:48:28 +08:00
8764412492 优化首页 tab 滑动性能 2021-04-28 20:30:31 +08:00
c1e011cae8 优化首页 tab 滑动性能 2021-04-28 20:29:36 +08:00
018f814a6b 更新渠道JAR 2021-04-28 20:01:54 +08:00
lyr
ef9cb24b61 个人主页的背景裁剪比例调整为1:1 2021-04-28 17:27:59 +08:00
245a4273de 完成光环前端优化汇总4月(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1236 2021-04-28 16:58:23 +08:00
lyr
94c1651510 一键登录增加错误码log 2021-04-28 16:38:07 +08:00
lyr
07f55acb3a 光环助手V4.9.0-积分体系(第4期)(0428 产品测试问题 2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1204#note_99369 2021-04-28 16:34:17 +08:00
lyr
43ee3b3488 一键登录未弹出授权页增加等待弹窗,以及防止多次点击 2021-04-28 16:33:00 +08:00
32625f59e0 Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-28 16:04:05 +08:00
e1e3aa5598 光环助手V4.9.0-游戏礼包功能优化汇总(0428测试1,3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1209 2021-04-28 16:03:58 +08:00
c5ff2cb5bd Merge remote-tracking branch 'origin/dev-4.9.0' into dev-4.9.0 2021-04-28 16:02:23 +08:00
acf02c99e7 完成首页顶部Tab栏功能(20210428测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1215 2021-04-28 16:02:14 +08:00
9a00999d9e 回退test_build.sh脚本 2021-04-28 15:41:42 +08:00
lyr
4c5b602a3b 光环助手V4.9.0-个人主页优化(第2期)(0427 产品测试问题) (0428 产品测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1203 2021-04-28 15:39:24 +08:00
cbde36f3bd 完成0420测试反馈 https://git.ghzs.com/pm/halo-app-issues/-/issues/1231 2021-04-28 15:01:39 +08:00
f4b6193a6b 处理潜在的 toast 内存泄漏问题 2021-04-28 14:32:04 +08:00
85a596766d Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-28 12:03:54 +08:00
785cfecf81 光环助手V4.9.0-游戏相关优化汇总(0428测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1211 2021-04-28 12:03:41 +08:00
0c8b98084a Merge remote-tracking branch 'origin/dev-4.9.0' into dev-4.9.0 2021-04-28 12:00:05 +08:00
87a6a3a539 游戏库接口添加版本号 2021-04-28 11:59:56 +08:00
lyr
6c50082de5 光环助手V4.9.0-个人主页优化(第2期)(20210427UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1203#note_99322 2021-04-28 11:57:43 +08:00
41195ec9d4 游戏库和搜索接口添加版本号 2021-04-28 11:49:28 +08:00
e280ea008a 升级gsyVideoPlayer版本并修改预加载 2021-04-28 11:08:04 +08:00
223646cf3d 更改专题的筛选字段为 tags 2021-04-28 11:06:47 +08:00
ab4bb79a32 首页接口补充版本信息 2021-04-28 10:16:28 +08:00
lyr
50b51e2f3c 光环助手V4.9.0-个人主页优化(第2期)(20210427UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1203#note_99322 2021-04-28 09:23:03 +08:00
lyr
1fef7d51d6 修复光能中心-兑换区-分类面板展开后缺失关闭图标问题 2021-04-28 09:15:44 +08:00
lyr
6546961f81 更新一键登录错误码提示 2021-04-27 19:10:36 +08:00
lyr
75e4f32840 光环助手V4.9.0-积分体系(第4期)(分类面板问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1204#note_99323 2021-04-27 19:01:33 +08:00
lyr
a3f3c95e19 优化:一键登录页跳转验证码登录页后,再登录成功后,增加销毁一键登录页的逻辑 2021-04-27 17:43:34 +08:00
lyr
508231d547 光环助手V4.9.0-注销功能优化(第2期)(0427 产品测试问题 1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1207#note_99285 2021-04-27 17:40:44 +08:00
8649b98032 处理分类2.0在首页的显示问题 2021-04-27 17:25:57 +08:00
d35211262f 回退 AndResGuard 2021-04-27 16:37:10 +08:00
lyr
96a5838155 光环助手V4.9.0-积分体系(第4期)(ui反馈 图1)(0427 产品测试问题 1-4)https://git.ghzs.com/pm/halo-app-issues/-/issues/1204 2021-04-27 16:35:57 +08:00
fc21799288 完成首页顶部Tab栏功能(20210426测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1215 2021-04-27 16:17:25 +08:00
lyr
3e04d77d50 优化一键登录关闭授权页的逻辑 2021-04-27 15:35:15 +08:00
lyr
35f47e363a 光环助手V4.9.0-个人主页优化(第2期)(0426 产品测试问题) (0427 产品测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1203 2021-04-27 15:27:30 +08:00
lyr
019724e9c6 光环助手V4.9.0-优化登录功能(第3期)(0426 产品测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1206#note_99181 2021-04-27 14:56:57 +08:00
70f059b4de 微调礼包中心按钮UI 2021-04-27 11:59:53 +08:00
34cd63d36d Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-27 10:43:47 +08:00
033cf6b566 光环助手V4.9.0-游戏礼包功能优化汇总(0427补充1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1209 2021-04-27 10:43:38 +08:00
513fc3be1c V4.9.0推荐弹窗功能:后台通知频率设置累计次数无效 https://jira.ghzs.com/browse/HALO-68 2021-04-27 10:43:00 +08:00
fd1273a092 更新 AndResGuard 修复在高版本 AGP 默认启用 V3 签名的问题 2021-04-27 10:25:55 +08:00
lyr
27a6f14d18 修复Jira问题63( V4.9.0 光能中心后台优化:APP端,抽奖乐园和兑换商品点击进入的页面搞反了) 2021-04-26 18:01:09 +08:00
000c7978fd 完成推荐入口优化及数据埋点(20210426测试问题2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1214 2021-04-26 17:41:35 +08:00
486c8f691c 修复自定义 tab 指示器在 tab 内容变小时会变形的问题 2021-04-26 17:39:30 +08:00
16450a7f8d 完成光环前端优化汇总(4,8) https://git.ghzs.com/pm/halo-app-issues/-/issues/1236 2021-04-26 17:30:50 +08:00
438e660449 Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-26 17:15:16 +08:00
b9bf4311cf 礼包中心-最新tab接口判断分页完毕条件改为10 2021-04-26 17:14:56 +08:00
lyr
75a324747c 光环助手V4.9.0-优化登录功能(第3期)(20210425UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1206#note_99017 2021-04-26 17:10:33 +08:00
04b579cda7 完成首页顶部Tab栏功能(20210426UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1215 2021-04-26 17:04:03 +08:00
5962a8cf08 光环助手V4.9.0-游戏礼包功能优化汇总(0425测试2,3,4,5,6,10,11,12,19) https://git.ghzs.com/pm/halo-app-issues/-/issues/1209 2021-04-26 16:53:52 +08:00
ea388a8e1b Merge remote-tracking branch 'origin/dev-4.9.0' into dev-4.9.0 2021-04-26 16:20:37 +08:00
8a98d6323a 完成合规问题前端优化汇总(5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1219 2021-04-26 16:20:28 +08:00
lyr
1b67ff5d12 光环助手V4.9.0-个人主页优化(第2期)(20210426UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1203#note_99085 2021-04-26 16:13:54 +08:00
9ee0f65e02 完成推荐入口优化和数据埋点(20210426测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1214 2021-04-26 15:56:30 +08:00
557b6fee21 完成合规问题前端优化汇总(1~4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1219 2021-04-26 15:52:34 +08:00
c90d6ec0dc 完成首页顶部Tab栏功能遗漏的曝光位置命名 https://git.ghzs.com/pm/halo-app-issues/-/issues/1215 2021-04-26 11:56:54 +08:00
lyr
8109aa58c9 光环助手V4.9.0-积分体系(第4期)UI反馈 https://git.ghzs.com/pm/halo-app-issues/-/issues/1204#note_98963 2021-04-26 09:50:38 +08:00
213e079e9d 修复首页排行榜切换 tab 时标题的闪烁问题 2021-04-26 09:20:49 +08:00
40e38e50b9 修复自滚动栏目的图标变形问题 2021-04-26 09:20:38 +08:00
b70e18af96 Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-25 19:13:11 +08:00
4c91f06d94 光环助手V4.9.0-游戏礼包功能优化汇总(20210425UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1209 2021-04-25 19:13:00 +08:00
199067cf8a 完成游戏相关优化汇总(0423测试 1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1211 2021-04-25 18:07:41 +08:00
fa01260f0b Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-25 17:40:57 +08:00
f8dac32bd6 光环助手V4.9.0-游戏相关优化汇总(20210425UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1211 2021-04-25 17:40:40 +08:00
d5641d437c 微调首页 tab 切换样式 2021-04-25 15:09:14 +08:00
lyr
c27f62e726 优化一键登录页逻辑 2021-04-25 14:33:04 +08:00
b98d4e6ec6 完成首页顶部Tab栏功能(20200423UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1215 2021-04-25 14:14:37 +08:00
a4e67cda91 光环助手V4.9.0-游戏相关优化汇总(0423测试5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1211 2021-04-25 10:21:21 +08:00
ab3616f237 Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-23 17:34:59 +08:00
bd9032c659 光环助手V4.9.0-新增[推荐弹窗]功能(0423测试,回退代码) https://git.ghzs.com/pm/halo-app-issues/-/issues/1212 2021-04-23 17:34:50 +08:00
lyr
4ded8cbfc8 微调个人主页UI 2021-04-23 16:47:00 +08:00
5a14afa71e Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-23 16:02:42 +08:00
7736ef37e5 光环助手V4.9.0-新增[推荐弹窗]功能(0423测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1212 2021-04-23 16:02:35 +08:00
lyr
40adf1938e 提交漏传文件 2021-04-23 16:00:02 +08:00
lyr
7e1f821d7a 光环助手V4.9.0-个人主页优化(第2期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1203 2021-04-23 15:42:31 +08:00
4f81996857 首页放弃 fragment 自动重建 2021-04-23 14:49:27 +08:00
328a559ef0 1.修改推荐弹窗显示规则 2.提前加载推荐弹窗数据 2021-04-23 11:42:51 +08:00
lyr
ee01512f84 光环助手V4.9.0-积分体系(第4期)(我的光环-二、收货信息) https://git.ghzs.com/pm/halo-app-issues/-/issues/1204 2021-04-22 18:41:16 +08:00
a366a87324 修复首页页面重建时选中 TAB 与重建前不一致的问题 2021-04-22 18:34:41 +08:00
3c7a1e2ae3 修复专题详情页面进入显示空白的问题 2021-04-22 18:23:08 +08:00
87c71882f5 完成光环前端优化汇总(3,5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1236 2021-04-22 18:22:44 +08:00
7fa912bc0c 首页页面重建时复用 fm 重建的底部五个 tab,避免内存泄漏 2021-04-22 17:49:50 +08:00
lyr
27dc3f73ae 一键登录页适配底部导航栏 2021-04-22 17:44:48 +08:00
be630e39cd 光环助手V4.9.0-新增[推荐弹窗]功能(UI反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1212 2021-04-22 17:06:21 +08:00
cded31298c Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-22 16:43:02 +08:00
54030fd1df 光环助手V4.9.0-包名检测弹窗优化汇总(ui反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1210 2021-04-22 16:42:51 +08:00
lyr
98c1565dfb 首页和游戏库的"猜你喜欢"专题拆分成两个接口分别获取 2021-04-22 16:42:13 +08:00
d89c2d4a70 Merge branch 'feature-issues1209' into dev-4.9.0 2021-04-22 15:28:03 +08:00
0f11f6344f 光环助手V4.9.0-游戏礼包功能优化汇总(数据埋点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1209 2021-04-22 15:27:11 +08:00
a25f265bd3 光环助手V4.9.0-游戏礼包功能优化汇总 https://git.ghzs.com/pm/halo-app-issues/-/issues/1209 2021-04-22 14:15:12 +08:00
68adc0ff23 首页页面重建时复用旧 fragment 2021-04-22 11:58:35 +08:00
ab5aa01ec5 避免首页第一个 tab 被默认选中 2021-04-22 11:58:07 +08:00
lyr
71e5f798d9 1.恢复首页的猜你喜欢专题
2.板块展示猜你喜欢专题增加是否为游戏库判断
2021-04-22 10:29:06 +08:00
2572c53305 修复首页 tab 快速滚动文字可能出现大小不一的问题 2021-04-21 18:29:19 +08:00
lyr
64b5ca8efa 首页去掉智能推荐专题(只在游戏库页展示) 2021-04-21 18:09:50 +08:00
b5ef73517f 完成游戏相关优化(3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1211 2021-04-21 17:53:24 +08:00
lyr
feb2f68778 完成 "推荐算法优化——猜你喜欢专题 第4(1)点" https://git.ghzs.com/pm/halo-app-issues/-/issues/1224 2021-04-21 16:45:57 +08:00
lyr
f0a6e79418 调整光能中心和光能屋UI 2021-04-21 16:43:36 +08:00
lyr
78699cc0e8 修复Jira问题48(V4.9.0-优化登录功能(第3期):无法打开登录界面) 2021-04-21 16:39:59 +08:00
96805537f4 基本完成首页顶部Tab栏功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1215 2021-04-21 10:19:50 +08:00
13c4be2ab0 处理 proguard 语法问题 2021-04-21 10:09:27 +08:00
lyr
c2e5e8adbc 光环助手V4.9.0-积分体系(第4期)(光能中心和光能屋UI改动) 2021-04-20 18:56:05 +08:00
c5c9a3f4d2 放弃所有 activity 重建的 config 2021-04-20 17:34:28 +08:00
8bd2fa9b3a 避免 MIUI 夜间模式切换时重建页面 2021-04-20 17:07:53 +08:00
lyr
4bd8fc4e51 1.优化光能任务悬浮图标显示逻辑
2.修复未登录状态下在光能中心登录后,刷新任务列表后列表可以无限加载问题
2021-04-19 19:02:23 +08:00
lyr
5b26165aaa 微调默认Toast样式 2021-04-19 18:55:45 +08:00
lyr
1bb4c1cc2c 光环助手V4.9.0-优化登录功能(第3期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1206 2021-04-19 18:53:21 +08:00
d38b347eb8 Merge branch 'feature-issues1215' into 'dev-4.9.0'
Feature issues1215

See merge request halo/android/assistant-android!107
2021-04-19 18:15:13 +08:00
feaf2d0bfc 完成粗糙的首页顶部Tab栏功能(细节带完善) https://git.ghzs.com/pm/halo-app-issues/-/issues/1225 2021-04-19 18:15:13 +08:00
210dcdc698 设置app支持x86架构 2021-04-19 15:31:00 +08:00
fec291156a 【光环助手】论坛相关bug汇总(0413bug反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1223 2021-04-19 11:43:03 +08:00
62bb23abc9 光环后台需求汇总(2021年4月第1周)(25) https://git.ghzs.com/pm/halo-app-issues/-/issues/1193 2021-04-19 11:41:22 +08:00
19be9e1842 支持获取上一个页面的名称 2021-04-16 17:00:31 +08:00
lyr
a5cfd147b4 微调登录页和光能中心UI 2021-04-16 16:53:37 +08:00
lyr
f15d572785 微调登录页和光能中心UI 2021-04-16 16:53:13 +08:00
5e99e8b032 光环助手V4.9.0-新增[推荐弹窗]功能(数据埋点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1212 2021-04-16 15:26:53 +08:00
af39b82da1 Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-16 11:22:19 +08:00
ba3a4ede11 光环后台需求汇总(2021年4月第1周)(17) https://git.ghzs.com/pm/halo-app-issues/-/issues/1193 2021-04-16 11:20:40 +08:00
db591d0249 完成推荐入口优化及数据埋点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1214 2021-04-16 10:25:01 +08:00
lyr
1370261b87 Merge remote-tracking branch 'origin/dev-4.9.0' into dev-4.9.0 2021-04-15 15:34:36 +08:00
lyr
3824de4719 微调登录页UI 2021-04-15 15:34:09 +08:00
lyr
6ee26fb401 微调登录页UI 2021-04-15 15:33:45 +08:00
865fe2729f Merge branch 'feature-issues1212' into dev-4.9.0 2021-04-15 15:28:20 +08:00
85c556c593 光环助手V4.9.0-新增[推荐弹窗]功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1212 2021-04-15 15:27:02 +08:00
86681b8ab1 修改包名检测弹窗进度条兼容性问题 2021-04-14 20:38:41 +08:00
5f2ce22506 完成游戏相关优化汇总(1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1211 2021-04-14 16:41:53 +08:00
dafa85a791 光环助手V4.9.0-包名检测弹窗优化汇总 https://git.ghzs.com/pm/halo-app-issues/-/issues/1210 2021-04-14 11:18:21 +08:00
lyr
9cc3a29b5a 处理登录页面底部适配问题(有些手机在有导航栏情况下位置不够) 2021-04-13 18:35:34 +08:00
lyr
d2e8a67971 处理登录页面底部适配问题(有些手机在有导航栏情况下位置不够) 2021-04-13 18:30:56 +08:00
1bd3168add 1.修改关注视频流内容重叠问题
2.修改关注视频流刷新时上传缓存视频id
2021-04-13 15:58:43 +08:00
81d81882e0 Merge branch 'dev-4.9.0' of git.ghzs.com:halo/android/assistant-android into dev-4.9.0 2021-04-13 12:01:14 +08:00
3f4e4f1a52 光环助手V4.9.0-包名检测弹窗优化汇总(自定义进度条) https://git.ghzs.com/pm/halo-app-issues/-/issues/1210 2021-04-13 12:00:50 +08:00
3845e1f3ee 完成预约事件曝光位置上报优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1221 2021-04-12 18:09:06 +08:00
6d2ae4dca5 版本号更新至 4.9.0 2021-04-12 17:31:08 +08:00
e2efa26ac0 Merge branch 'dev' into dev-4.9.0 2021-04-12 17:24:57 +08:00
70e12ebd08 光环助手V4.9.0-游戏相关优化汇总(4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1211 2021-04-12 11:13:33 +08:00
91fc511fe6 光环助手V4.9.0-新增[推荐弹窗]功能(UI部分) https://git.ghzs.com/pm/halo-app-issues/-/issues/1212 2021-04-12 09:11:36 +08:00
lyr
c5530ba307 完成组件库(第1期)测试问题(2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162#note_96797 2021-04-09 10:38:03 +08:00
67cbd9b641 完成组件库(第1期)测试问题(3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-04-09 09:45:31 +08:00
6735047e67 完成组件库(第1期)测试问题(1,4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-04-08 17:50:18 +08:00
9993bca582 处理UI组件库遗漏的细节部分(2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-04-08 15:06:16 +08:00
07258b08af 临时处理 mapping_id 写入包文件失败的问题 https://github.com/getsentry/sentry-android-gradle-plugin/issues/37 2021-04-08 10:14:34 +08:00
lyr
f8bd7787f6 更新 Loghub SDK (https://git.ghzs.com/halo/assistant-android/-/issues/28) 2021-04-07 18:05:55 +08:00
b6a3ef5faa [ 光环助手 V4.9 - 游戏顶部视频 ] 光环助手APP,游戏详情页顶部视频全屏播放优化(https://git.ghzs.com/pm/halo-app-issues/-/issues/1213) 2021-04-07 15:28:08 +08:00
lyr
730151f6ba 补全新分类2.0列表曝光遗漏步骤 2021-04-06 17:51:56 +08:00
532b98e002 修复进入游戏详情页时快速点击 tab 栏可能触发闪退的问题 2021-04-06 10:51:37 +08:00
lyr
202a26b09c 光环助手V4.8.0-光环助手UI组件库(第1期)(9) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-04-01 14:17:28 +08:00
lyr
fe1821884a 光环助手V4.8.0-光环助手UI组件库(第1期)(6,8) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-04-01 11:52:00 +08:00
eb1605cc0a 调整搜索热门标签/历史搜索区域的高度,避免在 mumu 模拟器上被裁切 2021-03-31 17:34:11 +08:00
08ad5c3455 模拟器支持 FBN 类型 2021-03-31 17:13:21 +08:00
0774525de6 修复游戏详情预览图过于模糊的问题 2021-03-31 16:01:03 +08:00
b69ebc8122 完成游戏搜索功能优化(20210331测试问题 2,3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1173 2021-03-31 15:20:42 +08:00
lyr
49f31da303 光环助手V4.8.0-新分类功能2.0(前端)(20210330测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1171#note_95153 2021-03-31 14:50:55 +08:00
66568b09d5 完成开测表功能0331补充 https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-31 14:13:01 +08:00
57a944f954 取消限制历史搜索/热门标签文字长度限制 https://git.ghzs.com/pm/halo-app-issues/-/issues/1173 2021-03-31 12:00:31 +08:00
1fb8a60b2b 正式环境切换到 4.8.0 2021-03-31 09:34:46 +08:00
489a57a379 完成游戏功能搜索优化(20210330需求补充) https://git.ghzs.com/pm/halo-app-issues/-/issues/1173 2021-03-31 09:17:16 +08:00
0aa02c186c 恢复因为压缩影响质量的新版本提示图标 2021-03-30 14:59:25 +08:00
lyr
fd463ec1e3 光环助手V4.8.0-新分类功能2.0(前端)(20210330修改) https://git.ghzs.com/pm/halo-app-issues/-/issues/1171#note_95001 2021-03-30 14:54:43 +08:00
lyr
0c16ae5f3f 解决邀请好友过程中无法保存海报的问题 2021-03-30 14:40:37 +08:00
76cca46015 修复开测表测试问题 https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-29 22:55:39 +08:00
748cacce3f Merge branch 'dev' of git.ghzs.com:halo/assistant-android into dev 2021-03-29 22:47:23 +08:00
b47985d4ff 修改游戏搜索热门搜索图标 2021-03-29 22:47:20 +08:00
lyr
9e41bd2846 光环助手V4.8.0-新分类功能2.0(前端)(20210329测试问题 5) 2021-03-29 22:32:11 +08:00
0e4b18fc5d 修复开测表手动选择日期时与自动滚动时的冲突问题 2021-03-29 22:05:50 +08:00
lyr
5594a03cee 1.修复Jira HALO-46 问题;
2.光环助手V4.8.0-新分类功能2.0(前端)(20210329测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1171#note_94892
2021-03-29 21:59:01 +08:00
lyr
59ece3be49 光环助手V4.7.0-积分体系(第2期)--个人主页(头像挂件页面相关优化-UI测试内容2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1112#note_94854 2021-03-29 21:22:16 +08:00
a7f77076a5 Merge remote-tracking branch 'origin/dev' into dev 2021-03-29 21:04:14 +08:00
6526d5b3ce 完成开测表功能(0329测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-29 21:04:07 +08:00
3a2f877d0c Merge branch 'dev' of git.ghzs.com:halo/assistant-android into dev 2021-03-29 21:00:51 +08:00
0d344e66a1 光环助手V4.8.0-游戏弹窗功能优化(0329测试) https://jira.ghzs.com/browse/HALO-1 2021-03-29 21:00:47 +08:00
d3de323c06 完成开测表功能(0329测试2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-29 20:54:34 +08:00
721d5acc1d 完成开测表功能0329测试 https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-29 18:33:15 +08:00
7069744191 完成隐私权限相关问题 https://git.ghzs.com/pm/halo-app-issues/-/issues/1192 2021-03-29 17:59:55 +08:00
lyr
b1f56d5dcd 提交遗漏资源文件 2021-03-29 17:42:07 +08:00
lyr
5aaa5bd076 光环助手V4.8.0-新分类功能2.0(前端)(20210329测试问题 1)、 (20210329UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1171#note_94764 2021-03-29 17:41:41 +08:00
lyr
7e74dee0eb 1.光环助手V4.7.0-积分体系(第2期)--光能中心(0329 产品验收问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1110#note_94783
2.光环助手V4.7.0-积分体系(第2期)--邀请好友(0329 产品验收回归)https://git.ghzs.com/pm/halo-app-issues/-/issues/1114#note_94794
2021-03-29 15:59:05 +08:00
45b8f7f82f 修复使用浏览器安装判断不准确的问题 2021-03-29 15:55:42 +08:00
7c9b8732e2 光环助手V4.8.0-游戏搜索功能优化(第7期)(0329UI补充调整) https://git.ghzs.com/pm/halo-app-issues/-/issues/1173 2021-03-29 15:24:08 +08:00
86ae96253b 去掉视频流引导动画 2021-03-29 15:11:39 +08:00
9dcc0b5587 Merge branch 'dev' of git.ghzs.com:halo/assistant-android into dev 2021-03-29 15:05:16 +08:00
9ceba793e8 修改搜索框背景 2021-03-29 15:05:13 +08:00
175cc55b75 修复开测表的备注信息上报问题 https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-29 15:03:37 +08:00
5486d1803f Merge branch 'dev' of git.ghzs.com:halo/assistant-android into dev 2021-03-29 14:51:32 +08:00
cb885f8b66 光环助手V4.8.0-游戏弹窗功能优化(0323测试2,3,4) https://jira.ghzs.com/browse/HALO-1 2021-03-29 14:51:27 +08:00
ab9f5cf7d8 完成光环助手UI组件库的2 https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-03-29 14:40:22 +08:00
7f4fafc637 Merge remote-tracking branch 'origin/dev' into dev 2021-03-29 12:01:17 +08:00
acccd2330d 修复游戏预览图过于模糊的问题 2021-03-29 12:01:00 +08:00
lyr
2745147e73 光环助手V4.7.0-积分体系(第2期)--邀请好友(0329 产品验收问题 1)https://git.ghzs.com/pm/halo-app-issues/-/issues/1114#note_94755 2021-03-29 12:00:56 +08:00
8fb0e3feaf 曝光数据添加区分浏览器安装字段,修复开测日志上报异常 2021-03-29 12:00:38 +08:00
lyr
335fa8ba39 1.调整新分类2.0UI;
2.修复新分类2.0若干显示bug
2021-03-29 11:47:52 +08:00
c739074057 修复通用列表分页刷新时偶发的闪退问题,捕抓首页游戏视频偶发的数组越界异常 2021-03-29 11:05:24 +08:00
a2569cf876 处理部分 4.7.4 遗留的空指针异常和数组越界异常 2021-03-29 10:39:11 +08:00
a81b0a1603 修复开测表游戏下载任务被删除缺没有及时更新的问题 2021-03-29 09:33:37 +08:00
lyr
76c20e4b82 修复新分类页面对象未初始化问题 2021-03-26 18:40:18 +08:00
lyr
4144cc2c4f 光环助手V4.7.0-积分体系(第2期)--光能中心(调整UI间距)https://git.ghzs.com/pm/halo-app-issues/-/issues/1110#note_94623 2021-03-26 18:24:23 +08:00
5465ff7731 Merge remote-tracking branch 'origin/dev' into dev 2021-03-26 18:05:32 +08:00
fc6dedb320 修复开测表游戏显示游戏标签时无法进行筛选的问题 2021-03-26 18:05:26 +08:00
lyr
a76b98f20c 1.光环助手V4.8.0-积分体系(第3期)--光能中心(0326 产品测试问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1146#note_94597
2.光环助手V4.7.0-积分体系(第2期)--邀请好友(0326 产品验收问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1114#note_94513
2021-03-26 17:59:07 +08:00
lyr
f05c0324fa 光环助手V4.8.0-新分类功能2.0(前端)(20210325UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1171#note_94296 2021-03-26 17:44:06 +08:00
606eb30d9f 修改图片上传超时时间20s,重试次数2次 2021-03-26 16:59:30 +08:00
aa41da022d 光环助手V4.8.0-多版本下载面板优化(第二期)(UI测试问题-5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-26 15:33:21 +08:00
b62d2c1b9e Merge branch 'dev' of git.ghzs.com:halo/assistant-android into dev 2021-03-26 15:24:26 +08:00
ba21543800 修改qa搜索icon 2021-03-26 15:24:21 +08:00
6f5b832a68 调整 R8 配置 2021-03-26 15:20:30 +08:00
eb4bbb9efa Merge remote-tracking branch 'origin/dev' into dev 2021-03-26 15:16:40 +08:00
233f91d2b9 修改热门搜索标签图片 2021-03-26 15:14:26 +08:00
1c51b2fe41 Merge branch 'release' into dev
# Conflicts:
#	dependencies.gradle
2021-03-26 15:09:26 +08:00
5123d7ff11 Merge branch 'dev-4.8.0' into dev
# Conflicts:
#	app/build.gradle
#	app/src/main/java/com/gh/common/util/PackageUtils.java
#	app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt
2021-03-26 15:01:57 +08:00
c20e06f2eb Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-26 14:55:51 +08:00
df55caa1f8 光环助手V4.8.0-游戏搜索功能优化(第7期)(20210326UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1173 2021-03-26 14:55:48 +08:00
lyr
61bdac3aa2 光环前端优化汇总(2021年2月)(UI测试问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1154#note_94518 2021-03-26 14:47:15 +08:00
d56dc53b06 完成开测表功能(0326AM UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-26 14:38:44 +08:00
18c02ad9c3 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-26 14:25:17 +08:00
8a262532e1 光环助手V4.8.0-多版本下载面板优化(第二期)(0326AM) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-26 14:25:13 +08:00
lyr
876d920251 光环助手V4.7.0-积分体系(第2期)--个人主页(头像挂件页面相关优化-UI内容 4)https://git.ghzs.com/pm/halo-app-issues/-/issues/1112#note_94511 2021-03-26 11:42:38 +08:00
1bad70a83f Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-26 10:44:46 +08:00
c04a1a5802 光环助手V4.8.0-Q&A管理优化需求(第二期)(0322测试3,6) https://jira.ghzs.com/browse/HALO-2 2021-03-26 10:44:41 +08:00
lyr
ea8c47a6d6 光环助手V4.8.0-积分体系(第3期)--光能中心(0325 产品测试问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1146#note_94377 2021-03-26 09:16:33 +08:00
53f3f48c4d 修复开测表(0325测试 4~7) https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-25 20:56:10 +08:00
lyr
706df0c22f 光环助手V4.8.0-新分类功能2.0(前端)20210325测试问题 第2点 2021-03-25 18:41:44 +08:00
lyr
74cee421f9 光环助手V4.8.0-新分类功能2.0(前端)20210325测试问题 https://git.ghzs.com/pm/halo-app-issues/-/issues/1171#note_94292 2021-03-25 18:05:48 +08:00
lyr
4b08fa56da 光环助手V4.7.0-积分体系(第2期)--消息文案梳理(新增 win_order_detail 中奖订单详情 (中奖订单详情)) https://git.ghzs.com/pm/halo-app-issues/-/issues/1113#note_94198 2021-03-25 15:50:53 +08:00
522f664f30 光环前端优化汇总(2021年2月)(0325补充1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-25 15:18:00 +08:00
87a92055a7 光环助手V4.8.0-模拟器游戏优化汇总(0325测试2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1159 2021-03-25 14:29:38 +08:00
f23aa496ae 关闭 testOnly,避免部分 vivo 设备装不了 debug 包 2021-03-25 11:33:07 +08:00
65d7322546 修复部分 vivo 设备上无法显示游戏图标圆角的问题 2021-03-25 11:32:24 +08:00
d9178f8538 调整浏览器安装提示文案 https://git.ghzs.com/pm/halo-app-issues/-/issues/1132 2021-03-25 11:18:31 +08:00
lyr
5de471d89a Merge remote-tracking branch 'origin/dev-4.8.0' into dev-4.8.0 2021-03-25 11:14:28 +08:00
lyr
63cc104e9f 光环助手V4.7.0-积分体系(第2期)--个人主页(头像挂件页面相关优化-UI内容)https://git.ghzs.com/pm/halo-app-issues/-/issues/1112#note_92945 2021-03-25 11:14:14 +08:00
f06ba9bf45 修复 XAPK 原文件后缀为 .apk.apk 时无法使用浏览器下载的问题 2021-03-25 11:11:31 +08:00
lyr
682d5a2cd4 增加判断网络状态的JS调用方法 2021-03-25 11:06:14 +08:00
76ce4e2f04 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-25 10:15:25 +08:00
54221cc976 编辑帖子插入图片成功后取消滚动到底部位置 2021-03-25 10:15:22 +08:00
79ae36c51f 修复浏览器安装端口在部分 vivo 手机被占用的问题 2021-03-24 18:33:45 +08:00
lyr
335d6787a7 意见反馈页的反馈提交都需要先登录 2021-03-24 17:21:12 +08:00
lyr
2bf9c1e4d7 提交闪退类型反馈不需要登录 2021-03-24 16:21:33 +08:00
lyr
133635c495 光环助手V4.7.0-积分体系(第2期)--光能中心(0324 ui反馈)https://git.ghzs.com/pm/halo-app-issues/-/issues/1110#note_94065 2021-03-24 15:40:00 +08:00
2aaf6d8a9c 修复开测表测试问题(0324测试 3,4,5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-24 15:26:20 +08:00
f119f6751a Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-24 15:05:11 +08:00
18f964c167 光环助手V4.8.0-视频优化(第1期)(0324 产品验收问题1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1107 2021-03-24 15:05:07 +08:00
lyr
369275225e 光环助手V4.8.0-新分类功能2.0(前端)https://git.ghzs.com/pm/halo-app-issues/-/issues/1171 2021-03-24 14:23:22 +08:00
d80daf104f Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-24 10:08:16 +08:00
71c697d596 1.修改专区热门回答图片被裁剪的问题
2.修改游戏搜索求功能标签显示问题
2021-03-24 10:08:07 +08:00
lyr
169814d6a9 光环助手V4.7.0-积分体系(第2期)--邀请好友(V4.7.0-积分体系(第2期)--邀请好友-UI测试问题-4、0319 产品验收问题 第1点) 2021-03-23 18:36:20 +08:00
lyr
52cffde739 正式发布环境隐藏个人等级入口 2021-03-23 18:11:23 +08:00
lyr
11f84b69ac 正式发布环境隐藏光能签到入口、邀请码输入框、上报光能任务 2021-03-23 18:10:36 +08:00
2c3e03bd0f 完成2月光环前端优化(12) https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-23 16:57:31 +08:00
264e103395 修复预约列表曝光下载数据没有上报的问题 2021-03-23 16:48:54 +08:00
7f4d3ffe3e 完成开测表的数据埋点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-23 16:36:19 +08:00
79b7a15f7d 增加获取 activity 栈中顶部倒数第二个元素的方法 2021-03-23 16:27:00 +08:00
638dd4ad1d 对接上传图片新错误码 https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-23 14:48:51 +08:00
lyr
04f58e036b 光环助手V4.7.0-积分体系(第2期)--光能中心(0322 产品验收问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1110 2021-03-23 14:31:07 +08:00
6624868bfe Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-23 11:43:30 +08:00
2ff83b8cc5 光环助手V4.8.0-多版本下载面板优化(第二期)(UI测试问题-4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-23 11:43:26 +08:00
lyr
cab412ab70 优化插入日程和删除日程流程 2021-03-23 11:32:11 +08:00
1a83e64f3a 完成插件跳转意见反馈的相关需求 https://git.ghzs.com/pm/halo-app-issues/-/issues/1160 2021-03-23 10:40:47 +08:00
lyr
be76fb0526 消息推送新增"兑换商品"链接类型 2021-03-23 10:28:21 +08:00
lyr
5cc25482a9 1.消息推送新增链接类型;
2.积分体系埋点补充邀请好友结果埋点
2021-03-23 10:21:53 +08:00
c683e6786c Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-22 17:01:04 +08:00
5f182eeddb 光环前端优化汇总(2021年2月)(0322补充13) https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-22 17:01:01 +08:00
3e0979fabb 完成2月光环前端优化(3,8) https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-22 16:20:51 +08:00
lyr
13685ec605 光能助手V4.8.0-积分体系(第3期)--光能屋(0317 产品验收测试 第1点)https://git.ghzs.com/pm/halo-app-issues/-/issues/1147 2021-03-22 16:04:20 +08:00
4eac5ff61c Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-22 15:36:28 +08:00
98f0cf5fc0 光环助手V4.8.0-Q&A管理优化需求(第二期)(20210319UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1156 2021-03-22 15:36:24 +08:00
lyr
cb345f49eb 光环前端优化汇总(2021年2月)第5、11点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-22 15:26:20 +08:00
ef95be60f1 修改多版本下载错位问题 2021-03-22 14:46:33 +08:00
a85cfa47e2 光环前端优化汇总(2021年2月)(0320补充1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-22 14:42:47 +08:00
66123b0ae8 为 Application 异步初始化 Fresco 超时兜底 2021-03-22 10:37:07 +08:00
cdb660b884 Gradle Transform 切换到 Kotlin 实现 2021-03-19 16:27:24 +08:00
026e4f71de Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-19 16:20:56 +08:00
01ecde0425 光环助手V4.8.0-模拟器游戏优化汇总(0319测试1-5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1159 2021-03-19 16:20:52 +08:00
lyr
f748fcbd48 光环助手V4.7.0-积分体系(第2期)--邀请好友 (0318 产品验收问题 第3点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1114 2021-03-19 15:11:25 +08:00
65464eed3d 修复使用浏览器安装询问弹窗总是弹起的问题 2021-03-19 11:42:07 +08:00
6a5d8e915c 完成数据统计需求(曝光位置补充) https://git.ghzs.com/pm/halo-app-issues/-/issues/1174 2021-03-19 09:33:22 +08:00
5fde455bcd Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-19 09:18:25 +08:00
e1e257b1d8 光环助手V4.8.0-模拟器游戏优化汇总(ui测试反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1159 2021-03-19 09:18:21 +08:00
7a87f8dc14 Merge branch 'feature-issues1134' into 'dev-4.8.0'
Feature issues1134

See merge request halo/assistant-android!106
2021-03-18 18:15:25 +08:00
3fe2b8ffcd 基本完成开测表功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1134 2021-03-18 18:15:25 +08:00
565b7b2c38 修改编辑帖子删除图片后无法点击发布按钮 2021-03-18 14:50:32 +08:00
b3bf9d862f 光环助手V4.8.0-多版本下载面板优化(第二期)(UI测试问题-3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-18 11:18:52 +08:00
c6f5ef64d5 光环助手V4.8.0-视频优化(第1期)(UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1107 2021-03-18 10:13:24 +08:00
95b21b5bb5 光环助手V4.8.0-多版本下载面板优化(第二期)(UI测试问题-2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-17 18:21:27 +08:00
0da331d109 Merge branches 'dev-4.8.0' and 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-17 16:08:18 +08:00
8c1f8833b1 光环前端优化汇总(2021年2月)(9) https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-17 16:08:11 +08:00
e53cd6dede 处理 R8 混淆造成的微信分享问题 2021-03-17 15:27:42 +08:00
fa27e172e4 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-17 15:22:33 +08:00
544f5102ea 光环助手V4.8.0-游戏搜索功能优化(第7期)(4,5,6) https://git.ghzs.com/pm/halo-app-issues/-/issues/1173 2021-03-17 15:22:28 +08:00
lyr
5d6134f0dd 光环助手V4.8.0-积分体系(第3期https://git.ghzs.com/pm/halo-app-issues/-/issues/1146)--光能中心(0315 产品测试问题) 2021-03-17 14:12:09 +08:00
e0b951e043 Merge remote-tracking branch 'origin/dev-4.8.0' into dev-4.8.0 2021-03-17 11:18:59 +08:00
f2476c84c4 完成浏览器安装(0317补充) https://git.ghzs.com/pm/halo-app-issues/-/issues/1132 2021-03-17 11:18:51 +08:00
c186c32d47 包名检测弹窗进度条降低更新频率,防止卡顿 2021-03-17 09:45:46 +08:00
lyr
194f30650e 修改兑换商品地址错误导致web无法正常返回问题 2021-03-16 16:49:06 +08:00
a475b176b4 光环助手V4.8.0-模拟器游戏优化汇总(ui测试反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1159 2021-03-16 15:27:26 +08:00
73cac4d39d 修改视频关注tab下拉刷新一直加载问题 2021-03-16 14:42:44 +08:00
93d0f30352 光环助手V4.8.0-多版本下载面板优化(第二期)(UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-16 10:41:25 +08:00
98d30d1183 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0
# Conflicts:
#	app/src/main/java/com/gh/common/util/EntranceUtils.java
2021-03-16 09:12:42 +08:00
b1d178f8df 光环前端优化汇总(2021年2月)(4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-16 09:11:45 +08:00
lyr
0550df7039 光环助手V4.8.0-积分体系(第3期)--我的光环(0315 产品测试问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1145 2021-03-15 16:37:57 +08:00
lyr
13c7b8ff1d 1.补充积分体系web入口地址;
2.增加客服跳转类型
2021-03-12 18:29:59 +08:00
d7b7633ffe 调整游戏详情提示文案 2021-03-12 12:00:19 +08:00
5e536db94e 修复使用浏览器下载功能在山寨机上的适配问题 2021-03-12 11:50:33 +08:00
55d8b6a866 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-11 17:54:57 +08:00
a2a8610083 光环助手V4.8.0-光环助手UI组件库(第1期)(7) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-03-11 17:54:53 +08:00
lyr
8d9f0adebe 修改web跳转头像挂件页方法,使用分类id来定位tab 2021-03-11 15:02:50 +08:00
lyr
e386994e4d 完成积分体系第3期:
1.光环助手V4.8.0-积分体系(第3期)--光能中心 pm/halo-app-issues#1146
2.光环助手V4.8.0-积分体系(第3期)--我的光环 一、光能明细 1、文案修改 pm/halo-app-issues#1145
3.光能助手V4.8.0-积分体系(第3期)--光能屋 四、光能明细,以及增加兑换商品、抽奖乐园入口
4.光能助手V4.8.0-积分体系埋点(第1期)- 安卓端埋点 pm/halo-app-issues#1149
5.增加web上报埋点、跳转头像挂件页的JS调用方法
2021-03-11 10:45:45 +08:00
fc5f1e9830 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-11 10:25:45 +08:00
fd17eaea00 光环助手V4.8.0-光环助手UI组件库(第1期)(4,5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-03-11 10:25:11 +08:00
8a65d6dd85 关闭测试 mapping 上传 2021-03-11 09:09:41 +08:00
8d3c609ad0 getIndentifier 调用的资源添加到 AndResGuard 白名单 2021-03-11 09:08:54 +08:00
2e71e11a09 删除无用依赖 2021-03-11 09:07:18 +08:00
lyr
b9c17bcdb8 正式发布环境隐藏个人等级入口 2021-03-10 18:53:59 +08:00
55bb1a1873 Merge branch 'feature-issues1156' into dev-4.8.0 2021-03-10 14:47:21 +08:00
54601bc083 光环助手V4.8.0-Q&A管理优化需求(第二期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1156 2021-03-10 14:45:36 +08:00
df2bb9c020 完成浏览器安装(数据埋点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1132 2021-03-09 17:54:06 +08:00
0bf297d094 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-09 15:03:27 +08:00
db8a2a06aa 光环助手V4.8.0-多版本下载面板优化(第二期)(UI相关补充0309AM) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-09 15:03:23 +08:00
44a9db7294 使用滴滴的SP优化和系统异常捕抓等插件,将插件整体搬迁至 gradle init 文件中提高开发编译速度 2021-03-09 14:45:25 +08:00
7db48b6923 Merge branch 'feature-issues1158' into dev-4.8.0 2021-03-09 11:08:12 +08:00
0a8f2d51db 光环助手V4.8.0-游戏弹窗功能优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1158 2021-03-09 11:06:20 +08:00
b06d2a479a 版本更新至 4.7.4 2021-03-09 10:56:25 +08:00
d56bd0078e Merge branch 'hotfix-4.7.3-293_crash' into 'release'
修复闪退

See merge request halo/assistant-android!105
2021-03-09 10:55:22 +08:00
7b87aadd86 修复首页列表对比差异时偶发的数组越界闪退 2021-03-08 17:26:02 +08:00
8f2da187f2 Revert "主 SP 迁移到 MMKV",原因是存储空间不足时有各种奇怪的问题 2021-03-08 15:50:44 +08:00
8291caa5e3 主 SP 迁移到 MMKV 2021-03-08 15:15:04 +08:00
e30ec540bd Merge branch 'feature-issues1157' into dev-4.8.0 2021-03-08 10:02:51 +08:00
3c4da21bf6 光环助手V4.8.0-多版本下载面板优化(第二期)(埋点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-08 10:02:00 +08:00
lyr
800260b6a4 光环前端优化汇总(2021年2月)第1、2、6、7点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1154 2021-03-05 18:23:51 +08:00
lyr
ddea202f85 Merge remote-tracking branch 'origin/dev-4.8.0' into dev-4.8.0 2021-03-05 18:17:40 +08:00
lyr
b3a786ee22 光环助手V4.8.0-xapk解压过程助手卡顿问题 https://git.ghzs.com/pm/halo-app-issues/-/issues/1155 2021-03-05 18:17:21 +08:00
332e24b874 jenkins 打包测试 mapping 上传 2021-03-05 18:16:12 +08:00
5413ebfba4 更改活跃统计的上报的 logstore https://git.ghzs.com/pm/halo-app-issues/-/issues/1115 2021-03-05 18:08:44 +08:00
7ead1c89f3 Merge branch 'dev-4.8.0' of git.ghzs.com:halo/assistant-android into dev-4.8.0 2021-03-05 17:34:13 +08:00
03300a41f7 缺省渠道改为 GH_TEST2 2021-03-05 17:33:35 +08:00
2d8698e070 缺省渠道改为 GH_TEST2 2021-03-05 17:32:48 +08:00
078b1a18a0 Merge branch 'feature-issues1159' into dev-4.8.0
# Conflicts:
#	app/src/main/java/com/gh/common/constant/Constants.java
#	app/src/main/java/com/gh/gamecenter/gamedetail/GameDetailFragment.kt
2021-03-05 16:57:42 +08:00
de1e3ba7a7 Merge branch 'feature-issues1107' into dev-4.8.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/MainActivity.java
2021-03-05 16:54:39 +08:00
a9275c83d2 光环助手V4.8.0-视频优化(第1期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1107 2021-03-05 16:52:21 +08:00
02894879e3 Merge branch 'hotfix-v4.7.2-292-crash' into 'release'
修复闪退

See merge request halo/assistant-android!104
2021-03-05 15:01:14 +08:00
56a202ae5c 版本更新至 4.7.3 2021-03-05 14:48:30 +08:00
013969a73a 修复闪退
1. 捕抓首页刷新列表时偶发的数组越界闪退
2. 提高线程池并发数量,避免安装了大量游戏的设备检查更新不及时
3. 捕抓插件化时因获取不到包名而出现的闪退
2021-03-05 14:45:46 +08:00
1a5a4ba149 完成UI组件化-常规弹窗 https://git.ghzs.com/pm/halo-app-issues/-/issues/1162 2021-03-04 14:56:23 +08:00
9bdae33655 更新大图查看库 2021-03-04 09:59:34 +08:00
be1184583b Merge branch 'feature-browser_install' into dev-4.8.0
# Conflicts:
#	app/src/main/java/com/gh/common/constant/Constants.java
2021-03-03 18:32:05 +08:00
68ee926897 基本完成使用浏览器下载功能,埋点细节待补充 https://git.ghzs.com/pm/halo-app-issues/-/issues/1132 2021-03-03 18:30:14 +08:00
4d0db8cbcc Merge branch 'dev-4.8.0' into feature-issues1159 2021-03-03 14:42:57 +08:00
59e4b6e063 光环助手V4.8.0-多版本下载面板优化(第二期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-03 14:35:36 +08:00
e74cf92033 版本更新至 4.7.2 2021-03-03 11:31:29 +08:00
811b1bbfce 修复下载完成时可能出现多个完成事件的问题 2021-03-03 10:41:02 +08:00
00c25d0d47 缺省渠道改为 test2 2021-03-03 10:39:52 +08:00
66b4b4b9f0 缺省渠道改为 test2 2021-03-03 10:38:39 +08:00
4bab47d2a6 Merge branch 'hotfix-v4.7.1-291-generic_fixes' into 'release'
Hotfix v4.7.1 291 generic fixes

See merge request halo/assistant-android!102
2021-03-03 10:06:02 +08:00
2c9567aa61 修复文章详情点击图片会产生位移的问题 2021-03-03 09:59:45 +08:00
97598dc7ec 修复下载完成时可能出现多个完成事件的问题 2021-03-03 09:58:37 +08:00
4771c79fa9 版本调整为 4.7.1 2021-03-02 15:23:29 +08:00
3458a5d7f3 Merge branch 'hotfix-v4.7.0-290_crash_and_mapping' into 'release'
Hotfix v4.7.0 290 crash and mapping

See merge request halo/assistant-android!101
2021-03-02 15:22:43 +08:00
5bc7c333d8 捕抓 vivo 6.0 以下设备获取不到部分 apk 信息时的异常 2021-03-02 15:17:57 +08:00
c7a24555a2 "关闭 R8",因未知情况 sentry 没收到包里的 mapping id 2021-03-02 15:07:33 +08:00
e19a678699 处理 fresco 版本冲突 2021-03-02 15:04:53 +08:00
795af0528f 调整 jenkins 打包脚本 2021-03-02 10:56:20 +08:00
d0b4ea8ec2 修复 base64 图片保存被覆盖问题 https://git.ghzs.com/pm/web-issues/-/issues/123 2021-03-02 10:02:08 +08:00
45861dff61 光环助手V4.8.0-模拟器游戏优化汇总 https://git.ghzs.com/pm/halo-app-issues/-/issues/1159 2021-03-02 09:21:33 +08:00
5f41463fc3 启用插件内联 access 2021-03-01 16:04:23 +08:00
89cca6dbfd 更新编译脚本 2021-03-01 15:35:06 +08:00
e43c0efdcb 版本号更改为 4.8.0 2021-03-01 15:34:40 +08:00
2dbd635b8e Merge branch 'feature-shrink_size' into 'dev-4.8.0'
引入微信的资源优化和头条的 dex 优化插件

See merge request halo/assistant-android!100
2021-03-01 15:20:07 +08:00
728d4fd8e1 引入微信的资源优化和头条的 dex 优化插件 2021-03-01 15:19:17 +08:00
48b5c7efc1 光环助手V4.8.0-多版本下载面板优化(第二期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1157 2021-03-01 10:05:35 +08:00
278dcc33be Merge remote-tracking branch 'origin/release' into dev
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/catalog/CatalogFragment.kt
#	app/src/main/java/com/gh/gamecenter/catalog/SubCatalogFragment.kt
2021-02-27 10:58:57 +08:00
87be3bed61 Merge branch 'hotfix-v4.6.1-271-generic_crash' into 'release'
Hotfix v4.6.1 271 generic crash

See merge request halo/assistant-android!98
2021-02-27 10:42:34 +08:00
078b102152 Update .gitmodules 2021-02-27 10:32:08 +08:00
4f6969a70a 完成粗糙的使用浏览器下载功能,接口与UI细节待补充 https://git.ghzs.com/pm/halo-app-issues/-/issues/1132 2021-02-26 16:48:16 +08:00
lyr
29140b6c0b 添加日程前增加是否已经添加判断 2021-02-26 16:34:53 +08:00
lyr
11bd9bed95 任务管理 - 【前端】任务列表,新增常驻任务类型,UI沿用日常任务 https://git.ghzs.com/pm/halo-app-issues/-/issues/1121#note_87359 2021-02-26 11:45:01 +08:00
997b5676dc 修改数据库升级错误 2021-02-26 09:46:22 +08:00
lyr
9b8755e035 光环助手V4.7.0-积分体系(第2期)--个人主页 - 0224产品测试问题-2(1) 2021-02-26 09:22:24 +08:00
85e97bc64d 修改包名检测弹窗按钮热区大小 2021-02-25 15:39:59 +08:00
0ea7c81ce9 光环助手V4.8.0-模拟器游戏优化汇总 https://git.ghzs.com/pm/halo-app-issues/-/issues/1159 2021-02-25 15:27:09 +08:00
951ac06948 Merge branch 'dev' of git.ghzs.com:halo/assistant-android into dev 2021-02-25 15:20:30 +08:00
92cdb6fdbb 修复低于 vivo 低于 5.1.1 版本系统的设备获取大文件APK包名会 ANR 的问题 2021-02-25 15:20:20 +08:00
lyr
cb0dd1d082 正式发布环境隐藏光能签到入口、邀请码输入框、上报光能任务 2021-02-25 15:18:06 +08:00
276655a8ec 更新打包脚本,仅正式包上传 mapping 2021-02-24 18:15:43 +08:00
df8b612188 恢复 R8 2021-02-24 18:01:30 +08:00
a550305947 Merge branch 'feature-tracker' into 'dev-4.8.0'
Merge feature tracker

See merge request halo/assistant-android!97
2021-02-24 11:49:45 +08:00
3af4dd5494 完成页面/应用可见上报功能 https://git.ghzs.com/pm/halo-app-issues/-/issues/1115 2021-02-24 11:49:45 +08:00
4d413eb1f2 关闭 R8 (Sentry 服务端暂未支持 mapping 自动上传) 2021-02-24 09:34:20 +08:00
d496ab0283 Merge branch 'release' into 'dev'
Merge hotfix changes

See merge request halo/assistant-android!96
2021-02-23 16:08:58 +08:00
b519ff6aac Merge branch 'dev-4.7.0' into 'dev'
Merge 4.7.0 changes

See merge request halo/assistant-android!95
2021-02-23 16:05:09 +08:00
8c05d2be8a 修复 5.1.1 系统的 vivo 设备安装大文件的 ANR 问题 2021-02-23 10:41:55 +08:00
23dd89198b 修复 5.1.1 系统的 vivo 设备安装大文件的 ANR 问题 2021-02-22 18:41:41 +08:00
6569ab2d33 修改模拟器不上传记录问题 2021-02-22 16:42:32 +08:00
1bead6a756 Merge branch 'hotfix-v4.6.1-271-crash' into 'release'
修改Sentry上一些闪退问题

See merge request halo/assistant-android!94
2021-02-08 16:14:13 +08:00
c0df3af298 尝试替换ConnectionPool类中的线程池,避免OutOfMemoryError: pthread_create failed 2021-02-08 09:52:08 +08:00
lyr
267363f46d 1.修复oppo手机无法启动服务问题;
2.修复新分类页面对象未初始化问题;
3.修复新分类页下载通知包名为空问题;
4.修复新分类中子分类列表为空问题;
5.修复问题反馈页游标越界问题;
6.修复个人信息编辑页获取菜单为空问题
2021-02-07 14:40:37 +08:00
44cf54aee6 1.修改WebView闪退问题
2.修改已安装列表更新数据时闪退问题
3.修改包名检测弹窗弹出闪退问题
2021-02-07 10:17:20 +08:00
lyr
322d7117f8 完成积分体系第2期 2021-02-05 17:54:31 +08:00
c8684f837a 修复闪退问题
1. 修复首页游戏库数据库更新闪退问题
2. 修复部分设备获取下载列表时的闪退问题
3. 修复重复发送设备应用列表的问题
2021-02-05 17:40:56 +08:00
9e5ecf1520 尝试解决TransactionTooLargeException异常 2021-02-05 17:03:14 +08:00
2df94dddc5 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-05 10:49:37 +08:00
1731980e88 升级fresco版本至2.4.0 2021-02-05 10:49:17 +08:00
f789f0cb73 正式环境接口改为 4.7.0 2021-02-04 20:57:44 +08:00
d043a89f3e 修复在部分设备上启动广告会闪烁的问题 2021-02-04 20:41:46 +08:00
4ab0f066df 修复在部分设备上首页广告消失过早的问题 2021-02-04 20:31:57 +08:00
096679029b Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-04 20:20:35 +08:00
2634228d21 光环助手V4.7.0-首页游戏功能强化(视频自动播放)(20210204测试问题3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1122 2021-02-04 20:20:14 +08:00
a33784221d 完成光环前端优化汇总(0203测试:2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1138 2021-02-04 20:05:34 +08:00
2ef7216bda 光环助手V4.7.0-首页游戏功能强化(视频自动播放)(20210204测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1122 2021-02-04 19:22:22 +08:00
2554fab389 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-04 18:25:49 +08:00
a4e3121489 【光环助手V_4.7.0】论坛交互优化(0204测试补充3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-04 18:25:27 +08:00
8dfde8ddd0 修復同包名遊戲安裝完成時可能誤刪錯誤遊戲的問題 2021-02-04 18:17:25 +08:00
63403c7c29 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-04 17:18:17 +08:00
aa9269aecc 【光环助手V_4.7.0】论坛交互优化(0202PM UI补充3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-04 17:17:57 +08:00
489e7105bb 添加 mapping 上传配置 (测试暂未通过) 2021-02-04 16:18:16 +08:00
8dbc407503 修复启动弹窗先于首页出现的问题 2021-02-04 16:08:56 +08:00
3e032fa540 修复 gh_version 异常造成的闪退 2021-02-04 16:07:51 +08:00
3df381b255 处理帖子是纯文字不会滚动到评论位置 2021-02-04 15:20:29 +08:00
7c59181bc6 提交LGLibrary 2021-02-04 11:59:27 +08:00
9244a65371 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-04 11:52:49 +08:00
a7b8b678f7 【光环助手V_4.7.0】论坛交互优化(0204AM补充2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-04 11:52:31 +08:00
9877d4d51e 优化包名检测弹窗弹出速度 2021-02-04 11:44:15 +08:00
32b4570738 修复下载游戏历史版本 游戏 ID 异常的问题 2021-02-04 11:04:45 +08:00
lyr
af3fdb3cfb 光环助手V4.7.0-新分类精选页功能优化_20210203测试问题_第4、5点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1123#note_89121 2021-02-04 10:47:28 +08:00
5ce992ee63 【光环助手V_4.7.0】论坛交互优化(0204AM补充1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-04 10:22:04 +08:00
ba17019428 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-04 10:00:45 +08:00
f77087907f 修改帖子详情定位到评论位置错位问题 2021-02-04 10:00:16 +08:00
3080f59ef6 Merge remote-tracking branch 'origin/dev-4.7.0' into dev-4.7.0 2021-02-04 09:52:03 +08:00
74b1f388e2 修复大图不能放大的问题 2021-02-04 09:51:53 +08:00
dcbc2fe352 还原自滚动专题优化 2021-02-04 09:37:56 +08:00
b892c58c52 【光环助手V_4.7.0】论坛交互优化(0203PM补充) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-04 09:36:21 +08:00
0a455c7b09 修改跳转游戏详情评论tab位置错误 2021-02-03 18:17:36 +08:00
7a254c4609 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-03 17:39:01 +08:00
4f08a4b9d2 光环助手V4.7.0-首页游戏功能强化(视频自动播放)(曝光) https://git.ghzs.com/pm/halo-app-issues/-/issues/1122 2021-02-03 17:29:35 +08:00
75670b7801 完成启动图功能强化(0203测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1131 2021-02-03 17:05:19 +08:00
af386f6bdc 解决禅道bug 226,229 2021-02-03 15:19:41 +08:00
ff813d8784 【光环助手V_4.7.0】论坛交互优化(0202测试补充3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-03 15:05:32 +08:00
dba87fe09c 【光环助手V_4.7.0】论坛交互优化(0202测试补充3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-03 15:02:33 +08:00
cf13003c2a 【光环助手V_4.7.0】论坛交互优化(0202PMUI补充:1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-03 14:26:27 +08:00
7fe337c557 【光环助手V_4.7.0】论坛交互优化(0202测试补充1,2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-03 11:32:53 +08:00
1902ed29c1 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-02 18:28:09 +08:00
a67927e9e7 修改包名检测弹窗显示逻辑 2021-02-02 18:27:51 +08:00
33b6835ae6 完成启动图功能强化(0202测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1131 2021-02-02 18:22:42 +08:00
1ca6a2c795 修复游戏下载红点更新问题 2021-02-02 17:36:35 +08:00
372230092a 去掉自滚动栏目的焦点 2021-02-02 17:11:54 +08:00
2ee1db1074 修复镜像游戏在已安装显示成 null 的问题 2021-02-02 17:11:16 +08:00
caabf416bb Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-02 17:01:50 +08:00
d33d0e98c9 光环助手V4.7.0-首页游戏功能强化(视频自动播放)(20210202测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1122 2021-02-02 17:01:30 +08:00
a4a029f31e 完成启动图功能强化(数据埋点) https://git.ghzs.com/pm/halo-app-issues/-/issues/1131 2021-02-02 16:49:48 +08:00
lyr
3b8d34f8c3 解决禅道问题221(【UI优化】在我的光环,界面上下滑动昵称重叠的问题) 2021-02-02 14:43:23 +08:00
2368e268bf 【光环助手V_4.7.0】论坛交互优化(0201测试反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-02 14:15:22 +08:00
6390198899 修改点击安装包解析错误弹窗的确定按钮没有删除安装包 2021-02-02 09:25:32 +08:00
4a6aef4caa javassit动态修改DiskLruCache#trimToSize 2021-02-01 23:04:43 +08:00
91529f51a3 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-01 18:54:18 +08:00
57096b2b08 首页滑动视频不跳转进度 2021-02-01 18:53:54 +08:00
40f1f57844 完成光环前端优化汇总(8,9,10,11) https://git.ghzs.com/pm/halo-app-issues/-/issues/1138 2021-02-01 18:42:36 +08:00
b9da7fbcb8 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-01 16:14:26 +08:00
7138177df2 光环前端优化汇总(2021年1月)(5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1138 2021-02-01 16:13:55 +08:00
aa4cf291dc Merge remote-tracking branch 'origin/dev-4.7.0' into dev-4.7.0 2021-02-01 16:03:34 +08:00
8f4c1651a3 Merge branch 'release' into dev-4.7.0
# Conflicts:
#	app/src/main/java/com/gh/common/exposure/ExposureManager.kt
#	app/src/main/java/com/gh/common/loghub/LoghubUtils.kt
#	app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt
#	app/src/main/java/com/gh/download/DownloadManager.java
#	app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java
#	app/src/main/java/com/gh/gamecenter/gamedetail/dialog/GameDetailMoreDialog.kt
#	app/src/main/java/com/halo/assistant/HaloApp.java
#	dependencies.gradle
#	libraries/LGLibrary
2021-02-01 15:50:53 +08:00
30a6cfd7d9 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-01 15:45:42 +08:00
c1abb977bf 【光环助手V_4.7.0】论坛交互优化(UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-01 15:45:23 +08:00
fef633e9d8 缺省渠道改为 TEST 2021-02-01 14:53:38 +08:00
5207b5675c 光环助手V4.7.0-首页游戏功能强化(视频自动播放)(20200129UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1122 2021-02-01 09:44:48 +08:00
b7059abcee Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-02-01 09:21:50 +08:00
45a84fc45c 【光环助手V_4.7.0】论坛交互优化(0128测试反馈) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-02-01 09:21:22 +08:00
cf96b00036 无网络不使用启动广告 2021-02-01 09:20:37 +08:00
49dacc472d 更新 okhttp 修复 bio==null 闪退 2021-02-01 09:19:34 +08:00
72d069ad7e 提高首页图集的滚动流畅度 2021-01-31 18:19:22 +08:00
2f49e05891 完成专题合集首页图片优化(20200129UI测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1124 2021-01-31 14:16:07 +08:00
fd2d277470 启用 R8 2021-01-29 18:51:11 +08:00
fc52694fdc webview 支持视频带声音自动播放 2021-01-29 15:51:35 +08:00
7123b3d59a 【光环助手V_4.7.0】论坛交互优化(UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-01-29 15:43:42 +08:00
7684c247bf Merge branch 'hotfix-v4.6.0-270-install_observer' into 'release'
修复下载完成状态通知问题

See merge request halo/assistant-android!92
2021-01-29 12:35:59 +08:00
f2b9d26e8a 修复下载完成状态通知问题 2021-01-29 12:29:22 +08:00
6d5d407aa8 【光环助手V_4.7.0】论坛交互优化(UI测试问题1-5) https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-01-29 10:06:05 +08:00
338de605ec 版本增加至 4.6.1 2021-01-28 18:24:54 +08:00
53930b0257 修改帖子详情底部布局 2021-01-28 18:02:15 +08:00
34d5e2cc29 光环助手V4.7.0-外部应用跳转光环助手功能优化(UI测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1130 2021-01-28 16:47:38 +08:00
591a694bdf Merge branch 'hotfix-v4.6.0-270-generic_crash' into 'release'
Hotfix v4.6.0 270 generic crash

See merge request halo/assistant-android!91
2021-01-28 16:25:02 +08:00
9fd9a4ebcc 捕抓日志上报数据库因为磁盘空间不足引起的闪退 2021-01-28 16:23:58 +08:00
f2712c3db7 将接收到安装完成事件后的操作从 DownloadService 移至 DownloadManger 2021-01-28 16:22:01 +08:00
61c2c7b218 Merge branch 'hotfix-v4.6.0-270-generic_crash' into 'release'
修复 4.6.0 的闪退

See merge request halo/assistant-android!90
2021-01-28 15:44:26 +08:00
8a54c47d9e 修复闪退问题
1. 捕抓个别 vivo 设备初始化下载证书时拿不到文件的闪退
2. 捕抓 ViewPager 和 ScrollView 在部分设备上多指操作的闪退
3. 捕抓接收商店应用跳转时链接格式不支持造成的闪退
4. 修复光环应用内更新弹窗关闭弹窗后偶发的闪退
5. 修复游戏评分列表数据更新时偶发的闪退
6. 修复下载管理已安装列表更新排序时偶发的闪退
7. 捕抓搜索历史数据库/日志上报数据库因为磁盘空间不足引起的闪退
8. 捕抓内存回收对象时因为系统缺陷导致的超时闪退
2021-01-28 15:44:26 +08:00
7f60a575a4 草稿箱恢复显示回答草稿 2021-01-28 15:16:13 +08:00
eb2dd7c6b8 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-01-28 14:45:39 +08:00
ae8433d8bd 修改首页游戏遮罩 2021-01-28 14:45:14 +08:00
7ec4ba6582 Merge branch 'hotfix-v4.6.0-270-crash' into 'release'
修改sentry上的一些闪退问题

See merge request halo/assistant-android!89
2021-01-28 14:19:11 +08:00
190434a855 完成存储权限弹窗优化(0127测试) https://git.ghzs.com/pm/halo-app-issues/-/issues/1128 2021-01-28 09:50:57 +08:00
4b82e40eb4 修复启动页在 MIUI 上的显示问题 2021-01-27 18:13:42 +08:00
d8e858ddb8 统一 toast 管理 2021-01-27 18:11:11 +08:00
9b8c8f328d 修改禅道bug 204、206、208 2021-01-27 17:47:12 +08:00
lyr
bebdbe64cd Merge remote-tracking branch 'origin/hotfix-v4.6.0-270-crash' into hotfix-v4.6.0-270-crash
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/WeiBoShareActivity.java
#	app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java
2021-01-27 17:36:34 +08:00
lyr
a0555d6ffc 1.修复由于游戏获取Apk为空导致的闪退问题;
2.修复回答编辑-上传图片时,图片路径返回为空导致的闪退问题;
3.修复绑定手机冲突时手机位数不够11位导致的闪退问题;
4.修复微博分享时icon为空导致的闪退问题;
5.修复关于页面-检查更新,更新信息返回后执行刷新页面操作,但页面已经销毁导致的闪退问题;
6.修复WebFragment(网页)下载跳转到自带浏览器,但页面还未添加到Activity导致的闪退问题
2021-01-27 17:31:46 +08:00
d6674efe4a 光环助手V4.7.0-外部应用跳转光环助手功能优化(修改数据上报) https://git.ghzs.com/pm/halo-app-issues/-/issues/1130 2021-01-27 16:09:25 +08:00
20235c6908 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-01-27 15:55:43 +08:00
bc155d580c 光环助手V4.7.0-外部应用跳转光环助手功能优化(修改数据上报) https://git.ghzs.com/pm/halo-app-issues/-/issues/1130 2021-01-27 15:55:14 +08:00
9cf852b490 1.修改视频流闪退问题
2.修改游戏详情顶部视频闪退问题
3.修改上报闪退日志闪退问题
4.修改游戏详情点击下载按钮闪退问题
5.修改我的预约页面数组越界问题
6.修改发布提问选择图片闪退问题
7.修改用户主页视频tab下拉刷新过程中滑动页面闪退问题
8.修改点击下载按钮数组越界问题
9.修改游戏详情即将被销毁点击更多操作弹窗闪退问题
10.修改Activity被销毁关闭下载模拟器弹窗闪退问题
11.修改Activity被销毁关闭游戏标签弹窗闪退问题
12.修改视频流下载游戏闪退问题
13.修改游戏详情点击分享闪退问题
14.修改分享微博闪退问题
15.修改图片预览闪退问题
2021-01-27 15:39:06 +08:00
f32bc837b4 Merge branch 'feature-issues1129' into 'dev-4.7.0'
完成更新推送弹窗新增官网下载地址 https://git.ghzs.com/pm/halo-app-issues/-/issues/1129

See merge request halo/assistant-android!88
2021-01-27 11:32:11 +08:00
36efcdb75a 完成更新推送弹窗新增官网下载地址 https://git.ghzs.com/pm/halo-app-issues/-/issues/1129 2021-01-27 11:31:26 +08:00
a232ef9d03 Merge branch 'hotfix-v4.6.0-270-gid' into 'release'
修复应用重建时 gid 为空的问题

See merge request halo/assistant-android!87
2021-01-27 10:37:19 +08:00
05b90bd5b4 修复应用重建时 gid 为空的问题 2021-01-26 17:41:25 +08:00
bc382e6f31 完成禅道bug 200、202 2021-01-26 17:04:15 +08:00
116d71bb9c Merge branch 'feature-issues1130' into 'dev-4.7.0'
Feature issues1130

See merge request halo/assistant-android!86
2021-01-26 16:17:29 +08:00
2aadb78301 Feature issues1130 2021-01-26 16:17:29 +08:00
lyr
22801846e4 Merge remote-tracking branch 'origin/dev-4.7.0' into dev-4.7.0 2021-01-26 15:31:44 +08:00
lyr
f9f6886250 优化模拟器卸载操作 2021-01-26 15:31:34 +08:00
30c8d4db02 Merge branch 'dev-4.7.0' of git.ghzs.com:halo/assistant-android into dev-4.7.0 2021-01-26 15:28:30 +08:00
08a5ea100e 光环前端优化汇总(2021年1月)(3,7) https://git.ghzs.com/pm/halo-app-issues/-/issues/1138 2021-01-26 15:28:12 +08:00
db33ed0d0d 还原进程限制代码 2021-01-26 12:00:49 +08:00
fd424b0204 将接收到安装完成事件后的操作从 DownloadService 移至 DownloadManger 2021-01-26 11:54:20 +08:00
lyr
c1bf0a628f 光环前端优化汇总(2021年1月)第1、2点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1138 2021-01-26 11:25:42 +08:00
086bf75314 复用下载线程 2021-01-25 18:24:53 +08:00
af31fdc562 Merge branch 'feature-issues1124' into 'dev-4.7.0'
完成专题合集首页图片优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1124

See merge request halo/assistant-android!85
2021-01-25 17:12:49 +08:00
99e0a2e0a2 完成专题合集首页图片优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1124 2021-01-25 17:11:56 +08:00
069d0db00e 删除无用资源和代码 2021-01-25 16:48:43 +08:00
68f1343c93 Merge branch 'feature-startup_ad' into 'dev-4.7.0'
Feature startup ad

See merge request halo/assistant-android!84
2021-01-25 12:01:28 +08:00
fbe25c9099 完成启动图功能强化 (附带冷启动速度优化) https://git.ghzs.com/pm/halo-app-issues/-/issues/1131 2021-01-25 12:01:28 +08:00
9b893bcb42 Merge branch 'feature-issues1122' into 'dev-4.7.0'
Feature issues1122

See merge request halo/assistant-android!83
2021-01-25 09:45:15 +08:00
5182d4cd8d 光环助手V4.7.0-首页游戏功能强化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1122 2021-01-25 09:45:15 +08:00
lyr
cce077de96 光环助手V4.7.0-新分类精选页功能优化 二、前端功能-第3点 pm/halo-app-issues#1123 2021-01-21 10:01:28 +08:00
lyr
03092a0ec1 光环助手V4.7.0-新分类精选页功能优化 二、前端功能-第3点 pm/halo-app-issues#1123 (漏传部分) 2021-01-21 10:01:28 +08:00
lyr
4906ecc06b 光环助手V4.7.0-新分类精选页功能优化 二、前端功能-第3点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1123#note_86465 2021-01-21 10:01:27 +08:00
lyr
7a831ce646 光环助手V4.7.0-新分类精选页功能优化 二(1、2)https://git.ghzs.com/pm/halo-app-issues/-/issues/1123 2021-01-21 10:01:27 +08:00
290a26c4e2 完善权限跳转逻辑 2021-01-20 14:21:59 +08:00
571080b1e5 Merge branch 'feature-issues1128' into 'dev-4.7.0'
Feature issues1128

See merge request halo/assistant-android!81
2021-01-20 11:36:18 +08:00
d9567138ee 完成存储权限弹窗优化(权限应用场景跳转地址暂缺) pm/halo-app-issues#1128 2021-01-20 11:36:18 +08:00
4a31f74dcb Merge branch 'hotfix-v4.6.0-270-generic_crash' into 'release'
修复一些闪退

See merge request halo/assistant-android!80
2021-01-20 11:25:11 +08:00
79cf96b161 Merge branch 'hotfix-v4.6.0-270-crash' into 'release'
1.处理个人主页由于个人信息未初始化导致的闪退;2.处理绑定手机由于ServiceId未初始化导致的闪退

See merge request halo/assistant-android!79
2021-01-20 11:23:30 +08:00
7fdd4dbf04 修复一些闪退
1. 修复部分设备获取 ROM 信息时的闪退
2. 修复启动时预约游戏弹窗页面重建时的闪退
2021-01-20 11:22:28 +08:00
lyr
8eeeb5de60 1.处理个人主页由于个人信息未初始化导致的闪退;2.处理绑定手机由于ServiceId未初始化导致的闪退 2021-01-20 10:34:19 +08:00
150109cef4 修复镜像游戏的包 id 与原游戏 id 不一时出现的按钮状态不变更问题 2021-01-19 17:10:18 +08:00
7e7cc38d6d 优化全局图片加载 2021-01-19 17:04:14 +08:00
b3df30680e 更新头条推广SDK 2021-01-19 14:56:00 +08:00
f73048d3a5 Merge branch 'release' into dev-4.7.0
# Conflicts:
#	app/src/main/java/com/gh/common/exposure/ExposureManager.kt
#	app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt
#	app/src/main/res/drawable-nodpi/splash_01.webp
2021-01-19 12:02:39 +08:00
c540c14e1c Merge branch 'hotfix-v4.6.0-270-install_status' into 'release'
修复已安装的应用下载按钮状态更新不及时的问题

See merge request halo/assistant-android!77
2021-01-18 09:21:50 +08:00
f216bf4097 Merge branch 'feature-bbs' into dev-4.7.0 2021-01-18 09:13:45 +08:00
a42bcbd160 增加问题草稿功能 2021-01-15 16:30:06 +08:00
bc6786b21e 修复已安装的应用下载按钮状态更新不及时的问题 2021-01-15 11:51:28 +08:00
47e357143c 资源图片批量转webp,删掉部分废弃代码和文件 2021-01-14 17:05:14 +08:00
74eb8ad0e8 Merge branch 'feature-reduce_memory_usage' into 'dev-4.7.0'
优化线程使用

See merge request halo/assistant-android!75
2021-01-13 17:24:18 +08:00
d2fc927ffb 优化线程管理,减少闲置线程数量 2021-01-13 17:24:18 +08:00
db4b049591 Add new gdt account 2021-01-13 15:56:57 +08:00
lyr
86db2b5688 优化模拟器游戏列表加载 2021-01-13 14:46:14 +08:00
baa1c9f9e5 Merge branch 'dev-4.7.0' into feature-bbs 2021-01-13 11:38:03 +08:00
be3a3e82af 修改游戏详情预约闪退问题 2021-01-13 11:34:12 +08:00
120ea26455 编辑帖子/回答上传图片取消加载弹窗,改为占位图 2021-01-13 11:22:40 +08:00
fc476ca889 Merge remote-tracking branch 'origin/dev' into dev 2021-01-13 09:11:59 +08:00
fc36ce6a03 更换启动引导图 https://git.ghzs.com/pm/halo-app-issues/-/issues/1136 2021-01-13 09:11:49 +08:00
0a1d330c2f 修复自动搜索页面的下载按钮复用问题 2021-01-12 15:32:53 +08:00
lyr
e5ec42576c 光环助手V4.7.0-积分体系(第2期)--积分第1期优化 第3点 https://git.ghzs.com/pm/halo-app-issues/-/issues/1127 2021-01-12 14:35:32 +08:00
lyr
b57f74a411 修改非全屏WebFragment标题栏被状态栏遮盖的问题 2021-01-12 12:00:12 +08:00
cb3884ea2e 【光环助手V_4.7.0】论坛交互优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1135 2021-01-12 10:02:30 +08:00
lyr
0cb3184e35 解决禅道问题179(【光能】光能数值的显示问题) 2021-01-11 16:39:09 +08:00
lyr
76c5009fbc 1.修复模拟器游戏页-全选删除整个列表之后由于数组越界导致的闪退问题;2.修改模拟器列表初次加载卡顿问题 2021-01-11 10:13:30 +08:00
lyr
312ec153f1 修复更新版本后模拟器游戏记录被清空问题 2021-01-08 18:39:12 +08:00
1ef79df4c5 Merge branch 'release' into 'dev'
Fix crash

See merge request halo/assistant-android!74
2021-01-08 11:11:08 +08:00
d7a809f8a6 Merge branch 'hotfix-v4.5.4-254-database' into 'release'
捕抓数据库满了的时候的异常

See merge request halo/assistant-android!73
2021-01-08 11:10:42 +08:00
ebadeeb873 捕抓数据库满了的时候的异常 2021-01-08 11:08:14 +08:00
55155ee8ae Merge branch 'release' into 'dev'
捕抓部分 SqliteFullException

See merge request halo/assistant-android!72
2021-01-08 10:26:40 +08:00
be98a6b6d6 Merge branch 'hotfix-v4.5.4-254-database' into 'release'
捕抓视频日志数据库满了的时候的异常

See merge request halo/assistant-android!71
2021-01-08 10:04:22 +08:00
e2f396f8c7 捕抓视频日志数据库满了的时候的异常 2021-01-08 10:03:26 +08:00
2a8024368a 优化通用列表对比实现,提高性能 2021-01-07 16:16:46 +08:00
0cd025b42d 更新依赖 2021-01-07 16:11:40 +08:00
lyr
d6adda78c4 修复禅道问题182(【模拟器游戏】模拟器游戏显示问题) 2021-01-07 11:56:54 +08:00
99708d7801 Merge branch 'dev-4.6.0' into 'dev'
Feature 4.6.0

See merge request halo/assistant-android!70
2021-01-07 10:00:38 +08:00
584986a9d5 Merge branch 'release' into dev-4.6.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt
2021-01-07 09:55:42 +08:00
507da05841 Merge remote-tracking branch 'origin/hotfix-v4.5.4-254-crash' into release
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/simulatorgame/SimulatorGameListFragment.kt
2021-01-07 09:52:22 +08:00
72a8fe4764 将下载文件夹的名字从 gh-download 改成 gh-files,避免被华为手机管家清理 2021-01-07 09:30:30 +08:00
lyr
f9f23f6324 WebFragment和光能屋-顶部栏适配小米型号手机 2021-01-06 18:31:38 +08:00
e2964f93c7 完成曝光数据统计优化(20210106测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1087 2021-01-06 18:04:30 +08:00
cb2a9a3ca0 修改模拟器游戏下载完成后数据上传错误 2021-01-06 17:43:38 +08:00
lyr
ea68941bb9 修改模拟器列表页由于复用产生的错误点击问题 2021-01-06 14:58:15 +08:00
lyr
b598d331d4 修复光能任务列表的空指针错误 2021-01-06 14:33:41 +08:00
lyr
d7b876bfed 1.修复未安装QQ情况下分享图片闪退问题;2.修复缺少专题ID时进入专题合集页面闪退问题;3.修复由于"Fragment未添加到Activity时"进入个人主页闪退问题;4.修复文章编辑页-上传图片时,由于返回的文件路径为空导致创建图片文件失败的闪退问题;5.修复模拟器游戏页由于数组越界导致的闪退问题;6.修复进入WebFragment(即网页)时,由于获取参数为空导致的闪退问题 2021-01-06 10:53:00 +08:00
lyr
6aca60080a 修复光能中心底部和透明导航栏重叠问题 2021-01-06 10:22:07 +08:00
59d76688b9 优化全局预览图->大图的显示 2021-01-06 09:53:03 +08:00
8e5e677228 完成曝光数据统计优化(20201230测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1087 2021-01-05 17:41:00 +08:00
dd1bfcaddd 正式接口切换到 4.6.0,测试接口更改 host 2021-01-05 15:47:02 +08:00
f4c66e1ab7 Merge branch 'hotfix-4.5.4-crash' into 'release'
修改sentry闪退问题

See merge request halo/assistant-android!66
2021-01-05 15:44:44 +08:00
6ebdf6e42a 1.修改选择头像闪退问题
2.修改视频评论闪退问题
3.修改模拟游戏列表闪退问题
4.尝试修改5.0系统手机找不到vector资源文件问题
5.修改用户信息修改页面闪退问题
2021-01-05 15:44:44 +08:00
4c01dd442b Merge branch 'hotfix-v4.5.4-254-generic_crash' into release
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/category/CategoryDirectoryFragment.kt
2021-01-05 15:17:57 +08:00
ac226e3301 修复闪退
1. 修复旧分类页偶发的空指针闪退
2. 修复多进程判断偶发的空指针闪退
3. 捕抓调用关闭 WebView 安全浏览 API 闪退异常
4. 捕抓通用列表刷新时多线程读写造成的数组越界
2021-01-05 15:14:34 +08:00
lyr
569f1b8cf1 微调"光能中心"UI 2021-01-05 09:38:17 +08:00
lyr
46f5da88a6 光环助手V4.6.0-积分体系(第1期)--光能屋 20201230UI测试 https://git.ghzs.com/pm/halo-app-issues/-/issues/1062#note_83290 和 光环助手V4.6.0-新增[光能中心-订单管理] 1231-补充1 https://git.ghzs.com/pm/halo-app-issues/-/issues/1061#note_83483 2021-01-04 18:36:10 +08:00
f5b876b018 Merge branch 'hotfix-v4.5.4-254-generic_crash' into 'release'
修复闪退

See merge request halo/assistant-android!63
2021-01-04 18:12:34 +08:00
c5df856023 修复闪退
1. 修复部分机器获取 rom 名字时的闪退
2. 修复下载管理偶发的闪退
3. 修复上报安装应用列表偶发的闪退
4. 修复回答详情数据异常时点击收藏的闪退
2021-01-04 18:05:38 +08:00
lyr
4f775847dc 还原"我的光环"页面,点击右上角便签可进入新的"我的光环"页面 2021-01-04 14:35:23 +08:00
lyr
f53710fdf5 光环助手V4.6.0-新增[光能中心-任务管理] 1230测试 https://git.ghzs.com/pm/halo-app-issues/-/issues/1063#note_83291 2021-01-04 11:26:16 +08:00
80c56def08 Merge branch 'release' into 'dev-4.6.0'
Fix crash

See merge request halo/assistant-android!62
2020-12-31 18:19:27 +08:00
a1d88d999e Merge branch 'hotfix-v4.5.4-254-intent_crash' into 'release'
捕抓跳转外部浏览器 intent 异常

See merge request halo/assistant-android!61
2020-12-31 18:18:52 +08:00
fbc6f6adaa Merge branch 'hotfix-4.5.4-crash' into 'release'
修改sentry闪退问题

See merge request halo/assistant-android!59
2020-12-31 18:17:28 +08:00
e7c55b2467 捕抓跳转外部浏览器 intent 异常 2020-12-31 18:15:50 +08:00
2c45bb1da9 1.处理更换头像挂件闪退问题
2.添加游戏投稿选择文件失败toast提示
2020-12-31 18:09:51 +08:00
173825dc74 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-31 09:15:54 +08:00
a63e28809b 修改禅道问题65 2020-12-31 09:15:26 +08:00
0eb8cb6e66 修复卸载应用时下载安装按钮状态变更可能不及时的问题 2020-12-30 21:22:18 +08:00
e1514e2b25 Merge branch 'release' into dev-4.6.0 2020-12-30 18:15:47 +08:00
bef0da821b 去掉下载管理-已安装列表的多线程读写 2020-12-30 18:14:53 +08:00
54741729f3 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-30 18:09:00 +08:00
e2640c22f8 修改论坛信息流图片计数标签显示规则 2020-12-30 18:08:38 +08:00
2f16d5ba99 修复游戏详情页提示弹窗的弹出异常 2020-12-30 17:48:56 +08:00
1d5301f887 修复我的关注页的取消关注列表更新问题,修复在部分设备上的游戏详情页触摸切换tab不灵敏问题 2020-12-30 17:24:52 +08:00
cc09c702f7 Merge branch 'release' into dev-4.6.0 2020-12-30 16:50:43 +08:00
6b2a88766e 修复下载管理-已安装列表的闪退问题 2020-12-30 16:49:48 +08:00
lyr
0eb629fe67 1.修复漏上报"下载游戏"、"玩游戏"、"分享游戏详情"光能任务的问题;2.前端取消上报"注册"和"登录"光能任务 2020-12-30 15:29:56 +08:00
44c398c9fb Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-30 15:17:32 +08:00
96122c5919 【光环助手V4.6.0】论坛发布流程优化(1229测试反馈2) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-30 15:17:13 +08:00
bd4c438036 修复前端测试汇总(20201229测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1098 2020-12-30 15:04:38 +08:00
adc8648f5a 完成曝光数据统计优化(20201229测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1087 2020-12-30 11:34:05 +08:00
8eb3922a33 【光环助手V4.6.0】论坛发布流程优化(201230-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-30 11:03:59 +08:00
30743bb015 Merge remote-tracking branch 'origin/release' into dev-4.6.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/servers/add/AddKaiFuActivity.kt
#	app/src/main/java/com/gh/gamecenter/servers/patch/PatchKaifuActivity.kt
#	app/src/main/java/com/gh/gamecenter/video/upload/view/UploadVideoActivity.kt
#	dependencies.gradle
#	libraries/LGLibrary
2020-12-30 10:38:11 +08:00
853f51ad0e Merge branch 'hotfix-v4.5.4-254-generic_crash' into 'release'
处理闪退

See merge request halo/assistant-android!57
2020-12-30 10:30:15 +08:00
763aad99ee 1. 修复视频编辑封面页偶发的初始化异常闪退
2. 修复我的游戏评论数据变更时的数组越界闪退
3. 修复部分设备跳转查看应用使用情况时的闪退
2020-12-30 10:28:03 +08:00
2ed2317b02 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-29 19:47:39 +08:00
0663f3eb2b 【光环助手V4.6.0】论坛发布流程优化(1229测试反馈1,2,3,5,6) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-29 19:47:20 +08:00
11a2eeae7a 修复帖子评论详情父评论点赞不同步的问题 2020-12-29 18:21:40 +08:00
lyr
8c2619bb22 Merge remote-tracking branch 'origin/dev-4.6.0' into dev-4.6.0 2020-12-29 17:13:07 +08:00
lyr
46320fe07d 光环助手V4.6.0-积分体系(第1期)--光能中心 20201229UI测试-图1/2 https://git.ghzs.com/pm/halo-app-issues/-/issues/1065#note_82979 和 光能助手V4.6.0-积分体系(第1期)-- 我的光环优化 20201229UI测试 https://git.ghzs.com/pm/halo-app-issues/-/issues/1066#note_82978 2020-12-29 17:12:54 +08:00
1ee933b115 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-29 17:12:51 +08:00
1d9152ca1a 完成禅道问题56,66 2020-12-29 17:12:34 +08:00
lyr
81ebf21bb9 光环前端优化汇总(2020年12月)20201229补充分类精选页问题 https://git.ghzs.com/pm/halo-app-issues/-/issues/1098#note_82895 2020-12-29 16:17:15 +08:00
dd4bf98f28 补充记录曝光位置页面 https://git.ghzs.com/pm/halo-app-issues/-/issues/1087 2020-12-29 15:59:15 +08:00
ba3a06da43 完成光环前端优化汇总(20201226测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1098 2020-12-29 15:12:53 +08:00
6fe096383c 更新依赖库 2020-12-29 15:10:32 +08:00
d16f99958f 【光环助手V4.6.0】论坛发布流程优化(201226-UI测试问题汇总2-4) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-29 15:05:19 +08:00
5fa3aa42dc Merge remote-tracking branch 'origin/hotfix-4.5.4-254-crash' into release
# Conflicts:
#	libraries/LGLibrary
2020-12-29 14:20:50 +08:00
lyr
f4f28a2daa 解决禅道问题139(【光能中心】兑换区--“前往光能屋查看更多”悬浮窗出现机制) 2020-12-29 12:55:56 +08:00
3c1cd14bdc Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-29 11:52:47 +08:00
6dcc251312 光环助手V4.6.0-游戏预约功能(第三期)(1226测试1) https://git.ghzs.com/pm/halo-app-issues/-/issues/1082 2020-12-29 11:52:29 +08:00
f692aa4bff 修复曝光数据统计优化(20201228测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1087 2020-12-29 11:14:44 +08:00
7cde55ebe0 1.修改webview页面闪退问题
2.修改已安装列表闪退问题
3.修改通知权限弹窗闪退问题
4.修改Activity已关闭后web页面延迟alert而导致的闪退问题
5.修改点击视频流更多按钮闪退问题
6.修改AppUncaughtHandler捕获异常后关闭所有Activity闪退问题
7.修改一些数组越界问题
2020-12-29 10:43:35 +08:00
lyr
94eba08af4 解决禅道问题127(【光能中心】商品分类重复显示问题)、135(【光能屋】滑动界面,光能屋模块的背景问题)、139(【光能中心】兑换区--“前往光能屋查看更多”悬浮窗出现机制) 2020-12-29 10:18:14 +08:00
2bf207661c 补充安全隐患排查的更改 https://git.ghzs.com/pm/halo-app-issues/-/issues/1093 2020-12-29 10:03:21 +08:00
2fff7f60c2 完成前端优化汇总(20201225测试问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1098 2020-12-28 17:51:28 +08:00
lyr
1b3c93ebb5 解决禅道问题133(【手机登录】多次点击第三方登录会弹出多个登录界面)、135(【光能屋】滑动界面,光能屋模块的背景问题) 2020-12-28 17:13:06 +08:00
lyr
5b529b044e 光环助手V4.6.0-积分体系(第1期)--光能中心(2020-12-28 产品测试APP端问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1065#note_82696 和 光环助手V4.6.0-积分体系(第1期)--光能屋(2020-12-28 产品测试APP端问题)https://git.ghzs.com/pm/halo-app-issues/-/issues/1062#note_82698 2020-12-28 16:10:39 +08:00
91f417f479 Merge branch 'hotfix-v4.5.4-254-generic_crash' into 'release'
处理简单闪退

See merge request halo/assistant-android!55
2020-12-28 16:03:56 +08:00
fc0bf595bd 1. 修复偶发的点击安装按钮空指针闪退
2. 修复停留在微信登录页面时下载完成触发的闪退
3. 修复游戏详情页面自定义栏目展开按钮在部分设备上的数组越界闪退
4. 修复分类详情列表页面偶发的空指针闪退
5. 修复游戏管理游戏下载页面的数组越界闪退
6. 修复游戏评论回复页面偶发的空指针闪退
7. 修复通用评论页(视频、答案和文章)列表偶发的空指针闪退
8. 修复问题详情页面偶发的空指针闪退
9. 修复历史修改版本页面偶发的空指针闪退
10. 修复新增开服页面偶发的空指针闪退
11. 修复修改开服页面偶发的空指针闪退
12. 修复视频合集页面偶发的空指针闪退
13. 修复上传视频页面偶发的空指针闪退
14. 修复全局页面点返回键偶发的闪退
15. 修复反馈页面偶发的空指针闪退
16. 修复微博分享页面偶发的空指针闪退
17. 修复游戏新闻搜索页面偶发的空指针闪退
18. 修复全局下载进度更新偶发的闪退
2020-12-28 15:58:32 +08:00
lyr
c0f6499577 光环助手V4.6.0-积分体系(第1期)--光能中心 20201225UI测试 https://git.ghzs.com/pm/halo-app-issues/-/issues/1065#note_82546 和 光环助手V4.6.0-积分体系(第1期)--光能屋 20201225UI测试 https://git.ghzs.com/pm/halo-app-issues/-/issues/1062#note_82549 2020-12-28 14:32:12 +08:00
b9bef384f1 还原正常安装 Intent 2020-12-28 11:37:02 +08:00
58bfae2fdb 【光环助手V4.6.0】论坛首页信息流UI展示规则优化(201228-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1052 2020-12-28 11:04:40 +08:00
d2c2fff884 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-28 09:46:23 +08:00
ab178c47b5 【光环助手V4.6.0】论坛发布流程优化(遗留UI问题) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-28 09:46:04 +08:00
40be004376 适配登录错误码 https://git.ghzs.com/pm/halo-app-issues/-/issues/1095 2020-12-27 11:57:09 +08:00
0b501c9ce1 下载管理"安装/继续下载"补充权限申请 2020-12-27 10:56:12 +08:00
78b233c506 预览长图默认显示顶部区域 2020-12-26 15:31:08 +08:00
a6e799bb9a 【光环助手V4.6.0】论坛首页信息流UI展示规则优化(201225-UI测试问题汇总3) https://git.ghzs.com/pm/halo-app-issues/-/issues/1052 2020-12-26 14:41:54 +08:00
b65992099a Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-26 14:09:35 +08:00
3d1a5f52bf debug环境开启严格模式 2020-12-26 14:09:15 +08:00
82d0d5745c 【光环助手V4.6.0】论坛发布流程优化(201226-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-26 14:07:47 +08:00
fe7968cb32 Merge branch 'feature-issues1087' into 'dev-4.6.0'
https://git.ghzs.com/pm/halo-app-issues/-/issues/1087

See merge request halo/assistant-android!53
2020-12-26 11:49:59 +08:00
94c503af74 完成部分曝光统计优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1087 2020-12-26 11:49:59 +08:00
bdd9815ffc Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-25 17:31:41 +08:00
693acceca8 光环助手V4.6.0-游戏预约功能(第三期)(201222-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1082 2020-12-25 17:31:23 +08:00
lyr
90971bc299 Merge remote-tracking branch 'origin/dev-4.6.0' into dev-4.6.0 2020-12-25 16:45:07 +08:00
lyr
e5b3613348 光能助手V4.6.0-积分体系(第1期)-- 我的光环优化 - 20201225UI测试 https://git.ghzs.com/pm/halo-app-issues/-/issues/1066#note_82491 2020-12-25 16:44:52 +08:00
652ca8f69c 1.修改帖子图片计数标签 2.修改帖子提交按钮 2020-12-25 16:43:07 +08:00
f15e351c1e Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-25 16:21:02 +08:00
47c81c3dac 【光环助手V4.6.0】论坛首页信息流UI展示规则优化(201225-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1052 2020-12-25 16:20:32 +08:00
7453a61e4f Merge remote-tracking branch 'origin/dev-4.6.0' into dev-4.6.0 2020-12-25 15:57:42 +08:00
911f6397e8 处理合并冲突 2020-12-25 15:54:52 +08:00
lyr
8d21a4f774 修复光能模块若干bug 2020-12-25 15:53:02 +08:00
991c54b680 Merge remote-tracking branch 'origin/release' into dev-4.6.0
# Conflicts:
#	app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerViewModel.kt
#	dependencies.gradle
2020-12-25 15:47:51 +08:00
48dcb5089b Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-25 15:40:31 +08:00
461efe7101 【光环助手V4.6.0】论坛发布流程优化(201224-UI测试问题汇总) https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-25 15:40:13 +08:00
lyr
0735161a20 光环前端优化汇总(2020年12月)7/8 https://git.ghzs.com/pm/halo-app-issues/-/issues/1098 2020-12-24 16:53:44 +08:00
093c1e2b15 【光环助手V4.6.0】论坛首页信息流UI展示规则优化(1224需求说明) https://git.ghzs.com/pm/halo-app-issues/-/issues/1052 2020-12-24 16:36:01 +08:00
7d0e02c899 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-24 16:08:22 +08:00
8294913f04 【光环助手V4.6.0】论坛发布流程优化201223-UI测试问题汇总1-9 https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-24 16:07:56 +08:00
lyr
e811c4f90b 增加web页跳转光能屋的JS调用方法;优化光能模块 2020-12-24 11:27:38 +08:00
lyr
ff6c4c2de9 光能值最多显示9999+ 2020-12-24 09:23:02 +08:00
lyr
136761d2f7 光能模块web页的url增加"from=ghzs",以此标志是从助手跳转 2020-12-23 18:18:17 +08:00
9374fc5264 将部分数据库操作移动到工作线程 2020-12-23 18:11:27 +08:00
lyr
324aaa5056 统一修改光能模块命名 2020-12-23 18:03:51 +08:00
f22afbd819 修复横向专题推荐图标复用问题 2020-12-23 17:47:22 +08:00
e149231cb2 完成对上报 IMEI 和 ANDROID_ID 的简单转码 https://git.ghzs.com/pm/halo-app-issues/-/issues/1093 2020-12-23 17:12:23 +08:00
lyr
9c8155ddf8 1.添加跳转光能中心的JS调用方法;2.客服通知增加"订单中心"和"光能记录"类型 2020-12-23 17:07:23 +08:00
dd95419a36 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-23 15:03:49 +08:00
870b10dd13 【光环助手V4.6.0】论坛首页信息流UI展示规则优化(201222-UI测试问题汇总1-7) https://git.ghzs.com/pm/halo-app-issues/-/issues/1052 2020-12-23 15:02:53 +08:00
lyr
637b426649 优化光能模块 2020-12-23 14:13:54 +08:00
lyr
fdbb16b45f 修复光能模块若干bug 2020-12-23 10:11:25 +08:00
lyr
29bc098dcf Merge branch 'feature-guangneng' into dev-4.6.0 2020-12-22 18:05:24 +08:00
lyr
b2433cf13a 光环助手V4.6.0-积分体系(第1期)--光能中心(首页部分)https://git.ghzs.com/pm/halo-app-issues/-/issues/1065 和 光环助手V4.6.0-积分体系(第1期)--光能屋(首页部分)https://git.ghzs.com/pm/halo-app-issues/-/issues/1062 2020-12-22 17:15:32 +08:00
e908e23bb2 sentry 事件别名去掉编译时间 2020-12-22 17:02:07 +08:00
1a4dc827b5 Merge branch 'dev-4.6.0' of git.ghzs.com:halo/assistant-android into dev-4.6.0 2020-12-22 16:27:31 +08:00
9fd5e65fa2 添加测试用打包脚本 2020-12-22 16:25:56 +08:00
5405dcd30e 更新 compileSDK版本至30 2020-12-22 16:08:40 +08:00
5c35f7fe5d 完成镜像游戏上报标记字段 https://git.ghzs.com/pm/halo-app-issues/-/issues/1085 2020-12-22 14:54:46 +08:00
fc907a398f 完成光环前端优化汇总(12月)(1,2,4,6) https://git.ghzs.com/pm/halo-app-issues/-/issues/1098 2020-12-22 11:02:50 +08:00
1b8dc6eba0 优化ImageContainerView 2020-12-22 10:26:38 +08:00
c17a36c866 修改大家都在玩分割线不显示问题 2020-12-21 18:31:48 +08:00
a29cf832f1 修复详情页大家都在玩推荐图标显示问题 2020-12-21 18:05:53 +08:00
c9a628a5e9 修改提问、发帖子论坛图标不显示问题 2020-12-21 17:45:07 +08:00
4002f138bb Merge branch 'feature-issues1082' into dev-4.6.0 2020-12-21 15:09:15 +08:00
48fdb38902 光环助手V4.6.0-游戏预约功能(第三期)https://git.ghzs.com/pm/halo-app-issues/-/issues/1082 2020-12-21 15:07:53 +08:00
38a3120ea1 添加应用内游戏详情url拦截 https://git.ghzs.com/pm/halo-app-issues/-/issues/1103 2020-12-21 14:33:55 +08:00
c0e370dfd2 修复横向专题的热门推荐图标显示问题 2020-12-21 14:31:31 +08:00
80a2e4f336 修复点击预览图片position错误问题 2020-12-17 17:24:19 +08:00
9f5940c6f6 【光环助手V4.6.0】论坛首页信息流UI展示规则优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1052 2020-12-17 16:33:14 +08:00
d01fda44b3 版本号改为 4.6.0 2020-12-15 09:44:59 +08:00
2020033bc0 测试环境API版本改为v4d6d0 2020-12-11 09:29:34 +08:00
dc2c8e590c Merge branch 'feature-bbs_publish' into dev-4.6.0 2020-12-11 09:19:20 +08:00
b115db51e9 【光环助手V4.6.0】论坛发布流程优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1086 2020-12-10 18:22:54 +08:00
lyr
7d194c7078 光能助手V4.6.0-积分体系(第1期)-- 我的光环优化 https://git.ghzs.com/pm/halo-app-issues/-/issues/1066 2020-12-08 10:31:13 +08:00
5719 changed files with 218766 additions and 134639 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

1
.gitignore vendored
View File

@ -7,5 +7,6 @@ local.properties
captures/
build/
release-app/
test-app/
scripts/apk-channel/
app/src/test/java/com/gh/gamecenter

43
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,43 @@
stages:
- analysis
- sendmail
## 代码检查
sonarqube_analysis:
tags:
- offline-test
stage: analysis
image: sonarsource/sonar-scanner-cli:latest
dependencies: [] #禁止传递来的artifact
script:
## 获取项目的一级组和二级组和项目名作为projectKey例如projectKey=platform-backend-eci-monitor
- group=`echo $CI_PROJECT_PATH | sed 's#/#-#g'`
- sonar-scanner
-Dsonar.host.url=http://sonarqube-server.sonarqube:9000/
-Dsonar.login=be43de7264ce4c4766eb0c020373c3e74e6df257
-Dsonar.jacoco.reportPaths=target/jacoco.exec
-Dsonar.projectKey=$group
-Dsonar.projectName=$CI_PROJECT_PATH
-Dsonar.sourceEncoding=UTF-8
-Dsonar.exclusions=**/vendor/**,**/errcode/**
-Dsonar.gitlab.project_id=$CI_PROJECT_ID
-Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA
-Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
-Dsonar.gitlab.ci_merge_request_iid=$CI_MERGE_REQUEST_IID
-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 run -e PROJECTKEY=$group -e EMAIL=$GITLAB_USER_EMAIL --name send-email --rm hub.shanqu.cc/platform/send-sonar-report:latest
only:
- dev

8
.gitmodules vendored
View File

@ -1,4 +1,10 @@
[submodule "libraries/LGLibrary"]
path = libraries/LGLibrary
url = git@gitlab.ghzs.com:android/common-library.git
url = git@git.shanqu.cc:android/common-library.git
branch = master
[submodule "vspace-bridge"]
path = vspace-bridge
url = git@git.shanqu.cc:cwzs/android/vspace-bridge.git
[submodule "module_common/src/debug/assets/assistant-android-mock"]
path = module_common/src/debug/assets/assistant-android-mock
url = git@git.shanqu.cc:halo/android/assistant-android-mock.git

View File

@ -1,69 +1,66 @@
# 光环助手Android客户端
### APK打包配置
### 概述
* 使用[ApkChannelPackage](https://github.com/ltlovezh/ApkChannelPackage)的方案
* 打包命令,视情况使用:
光环助手Android客户端目前使用 Kotlin 作为主要开发语言,以 MVVM 作为参考架构模式进行开发
> 打包Tinker基准包`./scripts/tinker_release_base.sh`
### 约束
> 以Tinker基准包打渠道包`./scripts/tinker_release_channel.sh`
为编写易读易维护且较健壮的代码,可参考以下约束
> 以Tinker基准包打补丁包`./scripts/tinker_release_patch.sh`
1. 尽量将逻辑代码放置于 ViewModel 中View 中只执行 UI 操作
2. 尽量使 View 在被销毁之后仍能恢复状态,处理方式可参考 [保存界面状态](https://developer.android.com/topic/libraries/architecture/saving-states)
3. 尽量参考原有文件结构及命名规范,即以 大模块 - 小模块 的形式生成包关系
4. 遵循最小改动原则,在提交代码前务必先检查变动的代码,尽量以可控的变动规模来构成一个 commit ,以便日后追踪问题
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!
### 混淆配置
### 公用部分
* 配置文件Android默认配置+proguard-rules.txt等
* 参考libraries下每个项目独立的配置文件`proguard-project.txt`
本项目使用 LiveData 实现了一个简单通用的基础列表分页功能,具体可见 `ListFragment`, `ListViewModel` 等类,理想情况下只需少量代码即可新建一个简单分页列表
### apk大小优化
### 首次拉取项目代码
* 限制resConfig资源集
* 开启ShrinkResources
* 开启混淆使用minifyEnabled(仅在release开启
* pngquant对png压缩、png/jpg->webp(未尝试)
`git clone -b dev git@git.shanqu.cc:halo/android/assistant-android.git --recursive`
### git 版本管理
本项目使用简化版的 git flow 来管理分支,细节请看 [光环安卓简单 git 规范](https://git.ghzs.com/halo/android/assistant-android/-/wikis/%E5%85%89%E7%8E%AF%E5%AE%89%E5%8D%93%E7%AE%80%E5%8D%95-git-%E8%A7%84%E8%8C%83)
### API 环境配置
本项目使用 Build Variants 来切换 API 环境
* internal 为测试环境
* publish 为正式环境
### 图片资源配置
* 新增图片资源时,默认只添加最高规格的 xxxhdpi 文件
* 新增图片资源时,需要将其转换为 .webp 格式 (包括含透明图层的图片默认质量为90%) (转换后体积变大的文件除外)
### 第三方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`` 配置
### 拉取代码步骤
### 混淆配置
1. 拉取主项目代码: `git clone -b dev git@gitlab.ghzhushou.com:halo/assistant-android.git`
2. 初始化公用类库: `bash ./scripts/submodules_init.sh`
* 本项目使用了微信的 [AndResGuard](https://github.com/shwenzhang/AndResGuard) 作为资源混淆压缩方案,新增需要使用 `getIdentifier` 获取的资源文件时需要添加至白名单
* 本项目默认使用 R8 作为混淆工具,往 proguard-rules.txt 添加 proguard 新配置项时请检查可用性(如语法等)
### submodule管理方式(只拉取master)
### APK打包配置
* 提交代码需要cd到submodule文件夹去做修改
* 更新远端代码,`bash ./scripts/submodules_update.sh`
> 打内部测试包:`./scripts/test_build.sh`
> 打邮件测试包:`./scripts/jenkins_build.sh`
### TODO
* GSON 序列化用统一一个, GsonUtil fromJson
* CleanApkAdapter 转化字符串size工具函数 比如SpeedUtils
* getString 解决 字符串hardcode问题
* ~~Adapter 里面clicklistener 用接口传参将点击操作委托给controller~~
* ~~Adapter ViewHolder的功能部分重写到ViewHolder类本身~~
* ~~activity 统一入口未完成(外部入口相关)去除多余activity使用统一toolbar~~
* ~~release / debug compile不同的类库不需要再做什么开关~~
* ~~Toolbar分离有图形按钮/没有图形按钮~~
### TODO Since 3.1
- 解决 Utils 工具类引发的内存泄漏问题
- 把原有 EventBus 的消息 Type 统一到一个文件内
- 将实现细节从 View(Fragment、Activity) 剥离并以 MVVM 结构改造
- ~~将 ListViewModel 所对应的 ListRepository 合并到 ListViewModel 中~~
- 依照光环助手界面功能以大模块 - 小模块的方式去修改包结构,包内文件建议以包名摘要作为前缀
- ~~使用 RxJava 的 Debounce 和 Map 操作优化搜索触发机制 参考资料:[1](https://proandroiddev.com/building-an-autocompleting-edittext-using-rxjava-f69c5c3f5a40),[2](https://medium.com/@kurtisnusbaum/rxandroid-basics-part-2-6e877af352)~~
- ~~把 ListViewModel 的数据结构类型转换方式换为抽象方法,让继承的类实现,避免出现无响应的问题~~
- ~~rxjava2 如果接口返回为空 会发生异常:java.lang.NullPointerException: Null is not a valid element (答案编辑) 解决方法->com.gh.gamecenter.retrofit.Response~~
- constraintLayout 1.1.2 导致布局出现异常(问题编辑标签选择弹窗)
- 搞清楚 GameManager 的用途,看能不能去掉
- 重构一下 MainActivity
* 把原有 EventBus 的消息 Type 统一一个文件内
* 将实现细节从 View(Fragment、Activity) 剥离并以 MVVM 结构改造
* 重构 MainActivity

View File

@ -1,27 +1,17 @@
// 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'
// apkChannelPackage
apply plugin: 'channel'
apply plugin: 'AndResGuard'
import groovy.xml.XmlUtil
//apply from: 'tinker-support.gradle'
android {
androidExtensions {
experimental = true
}
dataBinding {
enabled = true
}
viewBinding {
enabled = true
buildFeatures {
viewBinding true
dataBinding true
}
compileOptions {
@ -36,19 +26,31 @@ android {
dexOptions {
// jumboMode = true
javaMaxHeapSize "4g"
preDexLibraries true
maxProcessCount 8
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
kapt {
useBuildCache = true
javacOptions {
// 增加注解处理器的最大错误次数,默认为 100
option("-Xmaxerrs", 500)
}
}
defaultConfig {
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
javaCompileOptions {
annotationProcessorOptions {
arguments = [eventBusIndex: 'com.gh.EventBusIndex']
}
}
ndk {
abiFilters "armeabi-v7a"
// 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
@ -68,29 +70,13 @@ android {
/**
* 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", "MTA_APPKEY", "\"${MTA_APPKEY}\""
buildConfigField "String", "TD_APPID", "\"${TD_APPID}\""
buildConfigField "String", "LETO_APPID", "\"${LETO_APPID}\""
buildConfigField "String", "TTAD_APPID", "\"${TTAD_APPID}\""
buildConfigField "String", "DOUYIN_CLIENTKEY", "\"${DOUYIN_CLIENTKEY}\""
buildConfigField "String", "DOUYIN_CLIENTSECRET", "\"${DOUYIN_CLIENTSECRET}\""
buildConfigField "String", "MIPUSH_APPID", "\"${MIPUSH_APPID}\""
buildConfigField "String", "MIPUSH_APPKEY", "\"${MIPUSH_APPKEY}\""
buildConfigField "String", "MEIZUPUSH_APPID", "\"${MEIZUPUSH_APPID}\""
buildConfigField "String", "MEIZUPUSH_APPKEY", "\"${MEIZUPUSH_APPKEY}\""
resValue "string", "huawei_push_appid", "appid=${HUAWEI_PUSH_APPID}"
/**
* Build Time 供区分 jenkins 打包时间用
*/
buildConfigField "long", "BUILD_TIME", "0"
}
// gradle 2.2以上默认同时启用v1和v2优先用于Android N
@ -105,6 +91,12 @@ android {
}
}
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.name)
}
}
buildTypes {
debug {
debuggable true
@ -131,92 +123,67 @@ android {
}
}
// Ignore useless variant
variantFilter { variant ->
def names = variant.flavors*.name
def isDebugType = variant.buildType.name == "debug"
if ((names.contains("tea")) && isDebugType) {
setIgnore(true)
}
}
flavorDimensions("env")
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']
}
gdt {
java.srcDirs = ['src/main/java', 'src/gdt/java']
}
}
productFlavors {
// publish release host
publish {
dimension "env"
buildConfigField "String", "API_HOST", "\"${API_HOST}\""
buildConfigField "String", "SENSITIVE_API_HOST", "\"${SENSITIVE_API_HOST}\""
buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\""
buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\""
buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\""
}
// internal test dev host
internal {
dimension "env"
versionNameSuffix "-debug"
buildConfigField "String", "API_HOST", "\"${DEV_API_HOST}\""
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}\""
}
buildConfigField "String", "SENSITIVE_API_HOST", "\"${DEV_API_HOST}\""
// publish release host
publish {
dimension "env"
buildConfigField "String", "UMENG_APPKEY", "\"${DEV_UMENG_APPKEY}\""
buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${DEV_UMENG_MESSAGE_SECRET}\""
buildConfigField "String", "BUGLY_APPID", "\"${DEV_BUGLY_APPID}\""
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 {
dimension "env"
buildConfigField "String", "API_HOST", "\"${API_HOST}\""
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}\""
buildConfigField "String", "SENSITIVE_API_HOST", "\"${SENSITIVE_API_HOST}\""
buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\""
buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\""
buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\""
}
gdt {
dimension "env"
buildConfigField "String", "API_HOST", "\"${API_HOST}\""
buildConfigField "String", "SENSITIVE_API_HOST", "\"${SENSITIVE_API_HOST}\""
buildConfigField "String", "UMENG_APPKEY", "\"${UMENG_APPKEY}\""
buildConfigField "String", "UMENG_MESSAGE_SECRET", "\"${UMENG_MESSAGE_SECRET}\""
buildConfigField "String", "BUGLY_APPID", "\"${BUGLY_APPID}\""
manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase())
}
}
}
// apkChannelPackage
channel {
//多渠道包的输出目录默认为new File(project.buildDir,"channel")
baseOutputDir = new File(project.buildDir, "channel")
//多渠道包的命名规则,默认为:${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}
apkNameFormat = '${appName}-${versionName}-${versionCode}-${flavorName}-${buildType}'
}
rebuildChannel {
// baseDebugApk = 已有Debug APK
// baseReleaseApk = 已有Release APK
// //默认为new File(project.buildDir, "rebuildChannel/debug")
// debugOutputDir = Debug渠道包输出目录
// //默认为new File(project.buildDir, "rebuildChannel/release")
// releaseOutputDir = Release渠道包输出目录
}
repositories {
flatDir {
dirs 'libs', 'libs/aars'
@ -226,139 +193,88 @@ 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')
testImplementation 'junit:junit:4.12'
debugImplementation "com.squareup.leakcanary:leakcanary-android:${leakcanary}"
debugImplementation "com.facebook.stetho:stetho:${stetho}"
debugImplementation "com.facebook.stetho:stetho-okhttp3:${stetho}"
debugImplementation "com.squareup.okhttp3:logging-interceptor:${okHttp}"
debugImplementation "com.gu.android:toolargetool:${toolargetool}"
debugImplementation "com.github.nichbar:WhatTheStack:$whatTheStack"
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:${core}"
implementation "androidx.fragment:fragment:${fragment}"
implementation "androidx.multidex:multidex:${multiDex}"
implementation "androidx.appcompat:appcompat:${appCompat}"
implementation "androidx.cardview:cardview:${cardView}"
implementation "androidx.fragment:fragment-ktx:${fragment}"
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}"
kapt "androidx.room:room-compiler:${room}"
implementation "com.google.android.material:material:${material}"
implementation "com.kyleduo.switchbutton:library:${switchButton}"
implementation "com.facebook.fresco:fresco:${fresco}"
implementation "com.facebook.fresco:animated-gif:${fresco}"
implementation "com.facebook.fresco:animated-drawable:${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.sina.weibo.sdk:core:${weiboSDK}"
// bugly with tinker support
// implementation "com.tencent.bugly:crashreport_upgrade:${buglyTinkerSupport}"
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.shuyu:gsyVideoPlayer-java:$gsyVideo", {
implementation("com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-java:$gsyVideo", {
exclude module: "gsyvideoplayer-androidvideocache"
exclude group: "tv.danmaku.ijk.media"
})
implementation "com.shuyu:GSYVideoPlayer-exo2:$gsyVideo"
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.ethanhua:skeleton:${skeleton}"
implementation "io.supercharge:shimmerlayout:${shimmerlayout}"
implementation "com.tencent.mm.opensdk:wechat-sdk-android-without-mta:${mta}"
implementation "com.walkud.rom.checker:RomChecker:${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.bytedance.ies.ugc.aweme:opensdk-china-external:$bytedanceAweme"
// implementation "com.bytedance.ies.ugc.aweme:opensdk-common:$bytedanceAweme"
implementation "com.aliyun.dpa:oss-android-sdk:${oss}"
implementation "com.airbnb.android:lottie:$lottie"
teaImplementation "com.bytedance.applog:RangersAppLog-Lite-cn:${bytedanceApplog}"
implementation "net.lingala.zip4j:zip4j:${zip4j}"
implementation "io.sentry:sentry-android:$sentry"
implementation "com.github.hsiafan:apk-parser:${apkParser}"
implementation "org.nanohttpd:nanohttpd:${nanohttpd}"
implementation("com.github.piasy:BigImageViewer:$bigImageViewer", {
exclude group: 'com.squareup.okhttp3'
implementation "com.lg:easyfloat:${easyFloat}"
implementation "io.github.florent37:shapeofview:${shapeOfView}"
implementation "com.lg:apksig:${apksig}"
implementation "com.lg:gid:${gid}"
compileOnly "com.github.axen1314.lancet:lancet-base:${lancet_version}"
kapt "com.alibaba:arouter-compiler:$arouterVersion"
implementation project(':vspace-bridge:vspace')
implementation (project(':module_common')) {
exclude group: 'androidx.swiperefreshlayout'
exclude group: 'com.github.bumptech.glide'
})
implementation "com.github.PhilJay:MPAndroidChart:${chart}"
implementation project(':libraries:LGLibrary')
// implementation project(':libraries:MTA')
implementation project(':libraries:QQShare')
// implementation project(':libraries:TalkingData')
// implementation project(':libraries:UmengPush')
// implementation project(':libraries:WechatShare')
// implementation project(':libraries:im')
implementation project(':libraries:Matisse')
}
implementation(project(':module_login')) {
exclude group: 'androidx.swiperefreshlayout'
}
implementation(project(':module_setting_compose')) {
exclude group: 'androidx.swiperefreshlayout'
}
// 默认不接入光能模块,提高编译速度
// debugImplementation(project(':module_energy')) {
// exclude group: 'androidx.swiperefreshlayout'
// }
}
File propFile = file('sign.properties')
if (propFile.exists()) {
@ -417,6 +333,100 @@ if (propFile.exists()) {
// }.each { t -> t.dependsOn generateMetaJson }
//}
andResGuard {
mappingFile = null
use7zip = true
useSign = true
// 打开这个开关会keep住所有资源的原始路径只混淆资源的名字
keepRoot = false
// 设置这个值会把arsc name列混淆成相同的名字减少string常量池的大小
fixedResName = "arg"
// 打开这个开关会合并所有哈希值相同的资源,但请不要过度依赖这个功能去除去冗余资源
mergeDuplicatedRes = true
whiteList = [
"R.drawable.icon",
"R.drawable.ic_bar_back",
"R.drawable.toolbar_search_icon",
"R.drawable.bg_notification_answer_style_1",
"R.drawable.bg_notification_answer_style_2",
"R.drawable.bg_notification_article_style_1",
"R.drawable.bg_notification_article_style_2",
"R.drawable.bg_notification_feedback_style_1",
"R.drawable.bg_notification_feedback_style_2",
"R.drawable.bg_notification_gift_style_1",
"R.drawable.bg_notification_gift_style_2",
"R.drawable.bg_notification_login_style_1",
"R.drawable.bg_notification_login_style_2",
"R.drawable.bg_notification_question_style_1",
"R.drawable.bg_notification_question_style_2",
"R.drawable.bg_notification_rating_style_1",
"R.drawable.bg_notification_rating_style_2",
"R.drawable.bg_notification_reserve_game_style_1",
"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_recommend_activity",
"R.drawable.ic_recommend_discount",
"R.drawable.ic_recommend_function",
"R.drawable.ic_recommend_gift",
"R.drawable.ic_recommend_role",
"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",
"R.id.vote",
"R.id.watermark_hint",
"R.id.watermark_sb",
"R.id.bottomShareIv",
"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",
"R.drawable.suggest_type_game_question",
"R.drawable.suggest_type_game_collect",
"R.drawable.suggest_type_function_suggest",
"R.drawable.suggest_type_article_collect",
"R.drawable.suggest_type_copyright",
"R.drawable.news_comment_detail_read",
"R.drawable.news_comment_detail_comment",
"R.drawable.news_comment_detail_share",
"R.drawable.ic_libao",
"R.drawable.ic_link",
"R.drawable.concern_message_icon",
"R.drawable.reuse_blank_hint",
"R.drawable.ic_concern",
"R.drawable.concern_down",
"R.drawable.concern_up",
"R.drawable.ic_libao_more",
"R.drawable.ic_libao_delete",
"R.drawable.ic_dialog_close",
"R.drawable.occupy2",
"R.drawable.kc_checkbox_unselect",
"R.drawable.kc_checkbox_select",
"R.drawable.ic_type_unselect",
"R.drawable.ic_type_selected",
"R.drawable.suggest_add_pic_icon",
"R.drawable.icon_pic_add",
"R.drawable.ask_search_input_delete",
"R.drawable.suggest_pic_delete"
]
compressFilePattern = [
"*.png",
"*.jpg",
"*.jpeg",
"*.gif",
]
sevenzip {
artifact = 'com.tencent.mm:SevenZip:1.2.20'
}
}
project.afterEvaluate {
def variants = null
@ -448,36 +458,46 @@ project.afterEvaluate {
if (manifestFile == null || !manifestFile.exists()) {
return
}
String[] configChanges = [
"density",
"fontScale",
"keyboard",
"keyboardHidden",
"layoutDirection",
"locale",
"mcc",
"mnc",
"navigation",
"orientation",
"screenLayout",
"screenSize",
"smallestScreenSize",
"touchscreen",
"uiMode"]
def parser = new XmlSlurper(false, true)
def manifest = parser.parse(manifestFile)
def app = manifest.'application'[0]
app.'activity'.each { act ->
String value = act.attributes()['android:configChanges']
if (value == null || value.isEmpty()) {
value = "keyboardHidden|orientation|screenSize|screenLayout|density|fontScale|locale"
if (value == null) value = ""
configChanges.eachWithIndex { config, index ->
if (index != configChanges.length - 1) {
value += config + "|"
} else {
value += config
}
}
act.attributes()['androidconfigChanges'] = value
} else {
String[] valueSplit = value.split("\\|")
if (!valueSplit.contains("keyboardHidden")) {
value += "|keyboardHidden"
}
if (!valueSplit.contains("orientation")) {
value += "|orientation"
}
if (!valueSplit.contains("screenSize")) {
value += "|screenSize"
}
if (!valueSplit.contains("screenLayout")) {
value += "|screenLayout"
}
if (!valueSplit.contains("density")) {
value += "|density"
}
if (!valueSplit.contains("fontScale")) {
value += "|fontScale"
}
if (!valueSplit.contains("locale")) {
value += "|locale"
println configChanges
configChanges.eachWithIndex { config, index ->
if (!valueSplit.contains(config)) {
value += ("|" + config)
}
}
act.attributes()['android:configChanges'] = value
}

Binary file not shown.

Binary file not shown.

View File

@ -1,245 +1,43 @@
# 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:
# inline getter method
-allowaccessmodification
# 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 *;
#}
# TODO Dicard sourceFile in final release build but remain in internal build.
-renamesourcefileattribute SourceFile
# Keep Attribute
-keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod,SourceFile,LineNumberTable
#--------- 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.** { *; }
# OrmLite
-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>;
}
### 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 com.gh.gamecenter.home.gamecollection.* {*;}
# 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 * 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
# TODO What's this ?
-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.** { *; }
### 视频相关
-keep class com.shuyu.gsyvideoplayer.video.* { *; }
-dontwarn com.shuyu.gsyvideoplayer.video.**
-keep class com.shuyu.gsyvideoplayer.video.base.** { *; }
-keep class com.shuyu.gsyvideoplayer.video.base.* { *; }
-dontwarn com.shuyu.gsyvideoplayer.video.base.**
-keep class com.shuyu.gsyvideoplayer.utils.** { *; }
-keep class com.shuyu.gsyvideoplayer.utils.* { *; }
-dontwarn com.shuyu.gsyvideoplayer.utils.**
-keep class tv.danmaku.ijk.** { *; }
-keep class tv.danmaku.ijk.* { *; }
-dontwarn tv.danmaku.ijk.**
-keep public class * extends android.view.View{
*** get*();
@ -249,23 +47,22 @@
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.* {*;}
### TEA
-keep class com.gh.gamecenter.TeaHelper { *; }
-keep class com.gyf.immersionbar.* {*;}
-dontwarn com.gyf.immersionbar.**
### EasyFloat
-keep class com.lzf.easyfloat.* {*;}
-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.**{*;}
### dokit
-keep class com.didichuxing.** {*;}
-keep class com.alibaba.sdk.android.**{*;}
-keep class com.ut.**{*;}
-keep class com.ta.**{*;}
# 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(...);
}
-keep class com.gh.gamecenter.GdtHelper { *; }
-keep class com.gh.gamecenter.TeaHelper { *; }

View File

@ -1,38 +0,0 @@
package com.gh.gamecenter;
import android.app.Application;
import com.facebook.stetho.Stetho;
import com.facebook.stetho.okhttp3.StethoInterceptor;
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) {
// init stetho
Stetho.initializeWithDefaults(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);
builder.addNetworkInterceptor(new StethoInterceptor());
return builder;
}
}

View File

@ -0,0 +1,26 @@
package com.gh.gamecenter.provider
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.utils.SPUtils
import com.leon.channel.helper.ChannelReaderUtil
class ChannelProviderImp : ChannelProvider {
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
}
}

View File

@ -1,75 +0,0 @@
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.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 {
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"
@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 {
GDTAction.init(application, "1110680399", "f5ddaafbf520d7d7385499232a408d0a")
}
}
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()
}
}
// TODO 确认开启的渠道条件
private fun shouldUseGdtHelper(): Boolean {
return true
//
// val channel = HaloApp.getInstance().channel
// return !(TextUtils.isEmpty(channel) || channel.contains("GDT".toLowerCase(Locale.CHINA)))
}
}

View File

@ -3,6 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.gh.gamecenter">
<queries>
<package android:name="com.gh.gamecenter" />
</queries>
<!-- 允许应用程序访问网络连接 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 允许应用程序写入外部存储如SD卡上写文件 -->
@ -13,30 +16,27 @@
<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连接状态 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 允许应用程序打开系统窗口,显示其他应用程序 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 创建快捷方式的权限 -->
<!-- 允许应用程序改变网络连接状态 -->
<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"
tools:ignore="ProtectedPermissions" />
<!-- bugly with tinker -->
<!-- <uses-permission android:name="android.permission.READ_LOGS" />-->
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!--可选,穿山甲提供“获取地理位置权限”和“不给予地理位置权限,开发者传入地理位置参数”两种方式上报用户位置,两种方式均可不选,添加位置权限或参数将帮助投放定位广告-->
<!--请注意:无论通过何种方式提供给穿山甲用户地理位置,均需向用户声明地理位置权限将应用于穿山甲广告投放,穿山甲不强制获取地理位置信息-->
<!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<!-- 如果有视频相关的广告且使用textureView播放请务必添加否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
@ -47,15 +47,45 @@
com.shuyu.gsyvideoplayer.armv7a,
com.shuyu.gsyvideoplayer.x86,
com.shuyu.gsy.base,
shuyu.com.androidvideocache,
com.google.android.exoplayer2,
tv.danmaku.ijk.media.exo2,
pl.droidsonroids.gif" />
pl.droidsonroids.gif,
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"
@ -72,14 +102,18 @@
android:largeHeap="true"
android:resizeableActivity="true"
android:theme="@style/AppCompatTheme.APP"
tools:replace="android:allowBackup"
tools:replace="android:name,android:allowBackup"
tools:targetApi="n">
<meta-data
android:name="io.sentry.auto-init"
android:value="false" />
<!--android:launchMode = "singleTask"-->
<!-- 不让 sentry 读取系统事件 -->
<meta-data
android:name="io.sentry.breadcrumbs.system-events"
android:value="false" />
<activity
android:name="com.gh.gamecenter.SplashScreenActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
@ -106,7 +140,6 @@
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<!--android:theme = "@android:style/Theme.Black.NoTitleBar.Fullscreen" 退出时屏幕抖动 -->
<activity
android:name="com.gh.gamecenter.ImageViewerActivity"
android:theme="@style/Theme.Transparent" />
@ -135,10 +168,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" />
@ -164,6 +193,10 @@
android:name="com.gh.gamecenter.WebActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.SingletonWebActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.FullScreenWebActivity"
android:screenOrientation="portrait" />
@ -202,18 +235,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"
@ -236,11 +257,6 @@
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"
@ -254,11 +270,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" />
@ -280,22 +291,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" />
@ -312,14 +311,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" />
@ -336,10 +327,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" />
@ -361,14 +348,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" />
@ -397,10 +376,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" />
@ -410,14 +385,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" />
@ -451,10 +418,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" />
@ -469,7 +432,7 @@
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.qa.editor.VideoActivity"
android:name="com.gh.gamecenter.qa.editor.LocalMediaActivity"
android:screenOrientation="portrait" />
<activity
@ -503,7 +466,11 @@
<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:theme="@style/Theme.Transparent"
android:windowSoftInputMode="adjustNothing" />
@ -542,14 +509,6 @@
android:name=".video.poster.PosterClipActivity"
android:screenOrientation="portrait" />
<activity
android:name=".forum.select.ForumSelectActivity"
android:screenOrientation="portrait" />
<activity
android:name=".forum.follow.ForumMyFollowActivity"
android:screenOrientation="portrait" />
<activity
android:name=".forum.detail.ForumDetailActivity"
android:screenOrientation="portrait" />
@ -558,6 +517,10 @@
android:name=".forum.moderator.ModeratorListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".forum.moderator.ApplyModeratorActivity"
android:screenOrientation="portrait" />
<activity
android:name=".video.label.VideoLabelActivity"
android:screenOrientation="portrait" />
@ -579,10 +542,6 @@
android:screenOrientation="portrait"
android:theme="@style/TransparentStatusBarAndNavigationBar" />
<activity
android:name=".personalhome.excellentcomments.ExcellentCommentsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".simulatorgame.SimulatorGameActivity"
android:screenOrientation="portrait" />
@ -603,6 +562,70 @@
android:name=".forum.search.ForumOrUserSearchActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.questions.draft.QuestionDraftActivity"
android:screenOrientation="portrait" />
<activity
android:name=".servers.GameServerTestActivity"
android:screenOrientation="portrait" />
<activity
android:name=".category2.CategoryV2Activity"
android:screenOrientation="portrait" />
<activity
android:name=".personal.DeliveryInfoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.editor.PreviewVideoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.video.publish.VideoPublishActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.video.detail.ForumVideoDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".video.videomanager.VideoDraftActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.questions.newdetail.NewQuestionDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.editor.FullScreenVideoActivity"
android:theme="@style/AppFullScreenTheme" />
<activity
android:name=".forum.list.ForumListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".qa.answer.detail.SimpleAnswerDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".game.commoncollection.detail.CommonCollectionDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".gamecollection.detail.GameCollectionDetailActivity"
android:screenOrientation="portrait" />
<activity
android:name=".gamecollection.detail.GameCollectionPosterActivity"
android:screenOrientation="portrait" />
<activity
android:name=".home.skip.PackageSkipActivity"
android:screenOrientation="portrait" />
<!-- &lt;!&ndash; 使用小米/华为推送弹窗功能提高推送成功率&ndash;&gt;-->
<!-- <activity-->
<!-- android:name="com.gh.gamecenter.PushProxyActivity"-->
@ -611,6 +634,7 @@
<!-- android:theme="@android:style/Theme.Translucent" />-->
<activity
android:exported="true"
android:name="com.gh.gamecenter.SkipActivity"
android:theme="@style/Theme.AppCompat.Light.Fullscreen.Transparent">
<intent-filter>
@ -631,12 +655,79 @@
</activity>
<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.gamecenter.teenagermode.TeenagerModeActivity"
android:screenOrientation="portrait" />
<activity
android:name=".gamecollection.publish.GameCollectionEditActivity"
android:screenOrientation="portrait" />
<activity
android:name=".gamecollection.choose.ChooseGamesActivity"
android:screenOrientation="portrait" />
<activity
android:name=".gamecollection.choose.AddGamesActivity"
android:screenOrientation="portrait" />
<activity
android:name=".gamecollection.mine.MyGameCollectionActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.gamecollection.square.GameCollectionSquareActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.gh.gamecenter.gamecollection.tag.GameCollectionTagSelectActivity"
android:screenOrientation="portrait" />
<activity
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="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="${applicationId}.douyinapi.DouYinEntryActivity"-->
@ -654,6 +745,24 @@
android:resource="@xml/provider_paths" />
</provider>
<provider
android:name="com.gh.gamecenter.provider.GhContentProvider"
android:authorities="${applicationId}.provider"
android:enabled="true"
android:exported="true" />
<!-- <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"
android:exported="false">
@ -677,48 +786,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

File diff suppressed because it is too large Load Diff

View File

@ -1,758 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>隐私政策</title>
<style>
* {
margin: 0;
padding: 0;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.page {
padding: 0 10px;
}
.date p {
margin-bottom: 6px;
}
p {
font-family: "SourceHanSansSC-regular" !important;
color: #101010;
font-size: 14px;
font-weight: normal;
margin-bottom: 6px;
word-break: break-all;
}
b {
font-weight: 700;
font-size: 14px;
}
.points {
margin: 14px 0;
}
.points p {
margin-bottom: 6px;
}
.introduce p {
margin-bottom: 6px;
}
.content p b {
margin: 6px 0;
display: block;
}
.link-text {
color: rgb(19, 131, 235);
cursor: pointer;
}
.link-text a {
color: rgb(19, 131, 235);
cursor: pointer;
text-decoration: none;
}
.left-indent {
margin-left: 20px;
}
.page-title {
font-weight: bold;
font-size: 16px;
text-align: center;
margin: 20px 0 10px 0;
}
.red-style {
color: red;
}
.bold-font {
font-weight: bold;
}
span.bold {
font-weight: bold;
}
.link-text {
color: #005ad0;
text-decoration: underline;
}
</style>
</head>
<body>
<div class="page">
<div class="page-title">欢迎您使用光环助手!</div>
<div class="introduce">
<p>
为了向您提供游戏预约、论坛互动交流等相关服务,受制于手机系统限制,我们会申请您的设备信息权限;
</p>
<p>为了让您正常使用游戏下载和论坛功能,我们会申请您的储存权限;</p>
<p>以下为完整《隐私权限政策》</p>
<p>
光环助手(简称“我们”)深知个人信息对您的重要性,我们将依据《中华人民共和国网络安全法》、《信息安全技术
个人信息安全规范》GB/T
35273-2017以及其他相关法律法规和技术规范收集和使用您的个人信息以帮助我们向您提供更优质的产品和/或服务,
保护您的个人信息及隐私安全。我们制定本“隐私指引”并特别提示:希望您在使用光环助手及相关服务前仔细阅读并理解本隐私政策,以便做出适当的选择。
</p>
<p>
下文将帮您详细了解我们如何收集、使用、存储、传输、共享、转让(如适用)与保护个人信息;帮您了解查询、访问、删除、更正、撤回授权个人信息的方式。其中,
<b>
有关您个人信息权益的条款重要内容我们已用加粗形式提示,请特别关注。
</b>
</p>
</div>
<div class="points">
<p><b>1.我们处理个人信息的法律依据</b></p>
<p><b>2.我们如何共享、转让、公开披露个人信息</b></p>
<p><b>3.我们如何收集和使用个人信息</b></p>
<p><b>4.我们如何存储个人信息</b></p>
<p><b>5.我们如何保护个人信息的安全</b></p>
<p><b>6.管理您的个人信息</b></p>
<p><b>7.未成年人使用条款</b></p>
<p><b>8.隐私政策的修订和通知</b></p>
<p><b>9.联系我们</b></p>
</div>
<div class="content">
<p><b>1.我们处理个人信息的法律依据</b></p>
<p>
如果您是中华人民共和国大陆地区的用户,我们将依据《中华人民共和国网络安全法》、《信息安全技术
个人信息安全规范》GB/T
35273-2017以及其他相关法律法规收集和使用您的个人信息为您提供产品或服务。
</p>
<p>
我们通常只会在征得您同意的情况下收集您的个人信息。
在某些情况下,我们可能还会基于法律义务或者履行合同之必需向您收集个人信息,或者可能需要个人信息来保护您的重要利益或其他人的利益。
</p>
<p><b>2.我们如何共享、转让、公开披露个人信息</b></p>
<p class="title margintop"><b>2.1第三方SDK接入说明</b></p>
<p>
为保障光环助手App相关功能的实现与应用安全稳定的运行我们会接入由第三方提供的软件开发包SDK实现相关功能。
<br />
我们会对合作方获取有关信息的软件工具开发包SDK进行严格的安全检测并与授权合作伙伴约定严格的数据保护措施令其按照我们的委托目的、服务说明、本隐私权政策以及其他任何相关的保密和安全措施来处理个人信息。
<br />
<span class="red-style">
下方为整个光环助手
<span class="bold">所有版本</span>
内接入的所有信息收集类第三方SDK的权限说明因隐私政策会因光环助手版本迭代而新接入SDK或停止合作部分SDK方便照顾
<span class="bold">所有版本</span>
的用户查看自己SDK第三方权限说明。
<br />
我们对涉及用户信息使用的SDK相关情况进行了逐项列举具体如下
</span>
</p>
<p class="margintop red-style bold-font"><b>1数据统计类</b></p>
<p>1.头条推广</p>
<p>
SDK官网
<span class="link-text">
https://ad.oceanengine.com/openapi/index.html
</span>
</p>
<p>SDK包名com.bytedance</p>
<p>企业主体:北京有竹居网络技术有限公司</p>
<p>使用目的:用于广告流量统计相关服务</p>
<p>
收集信息类型设备品牌、型号、软件系统相关信息、安卓oaid、无线网SSID名称、WiFi路由器MAC地址、设备MAC地址、IMEI、地理位置
</p>
<p>
隐私政策链接:
<span class="link-text">
https://ad.oceanengine.com/openapi/register/protocol.html?rid=vo25p8sfqde
</span>
</p>
<p>2.talkingdata统计</p>
<p>
SDK官网
<span class="link-text">http://www.talkingdata.com/</span>
</p>
<p>SDK包名com.tendcloud</p>
<p>企业主体:北京腾云天下科技有限公司</p>
<p>使用目的:用于统计数据和效果分析,以便为用户提供更好的服务</p>
<p>收集信息类型:设备信息、网络信息、位置信息、应用信息</p>
<p>
隐私政策链接:
<span class="link-text">
http://www.talkingdata.com/privacy.jsp?languagetype=zh_cn
</span>
</p>
<p>3.腾讯MTA</p>
<p>
SDK官网
<span class="link-text">https://mta.qq.com/mta/</span>
</p>
<p>SDK包名com.tencent</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的:用于统计数据和效果分析</p>
<p>
收集信息类型Mac地址、唯一设备识别码IMEI、android
ID、IDFA、OPENUDID、GUID/SIM卡IMSI信息、地理位置信息
</p>
<p>
隐私政策链接:
<span class="link-text">
https://mta.qq.com/mta/ctr_index/protocol_v2/
</span>
</p>
<p>4.腾讯广点通</p>
<p>
SDK官网
<span class="link-text">https://developers.e.qq.com/</span>
</p>
<p>SDK包名com.tencent</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的:用于广告流量统计相关服务</p>
<p>
收集信息类型:
个人常用设备信息IMEI、AndroidID、位置信息IP地址、软件版本号
</p>
<p>
隐私政策链接:
<span class="link-text">https://e.qq.com/optout.html</span>
</p>
<p class="margintop red-style bold-font"><b>2社交登录类</b></p>
<p>5.微信登录分享</p>
<p>
SDK官网
<span class="link-text">https://open.weixin.qq.com/</span>
</p>
<p>SDK包名com.tencent.mm.opensdk</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的:用于支持微信登录、分享</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、硬件型号、操作系统类型、软件信息软件版本号、浏览器类型、IP地址、服务日志信息、通讯日志信息
</p>
<p>
隐私政策链接:
<span class="link-text">https://privacy.tencent.com/</span>
</p>
<p>6.QQ登录分享</p>
<p>
SDK官网
<span class="link-text">https://connect.qq.com/</span>
</p>
<p>SDK包名com.tentcent</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的用于支持QQ登录、分享</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、IMSI、ICCID、序列号、设备型号、操作系统版本、软件信息软件版本号、浏览器类型、网络信息、IP地址、服务日志信息、通讯日志信息 
</p>
<p>
隐私政策链接:
<span class="link-text">
https://wiki.connect.qq.com/qq互联sdk隐私保护声明
</span>
</p>
<p>7.微博登录分享</p>
<p>
SDK官网
<span class="link-text">http://open.weibo.com/authentication</span>
</p>
<p>SDK包名com.sina.weibo.sdk</p>
<p>企业主体:北京微梦创科网络技术有限公司</p>
<p>使用目的:用于支持微博登录、分享</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、IMSI、ICCID、序列号、网络信息、应用列表硬件型号、操作系统类型、软件信息软件版本号、浏览器类型、IP地址、服务日志信息、通讯日志信息
</p>
<p>
隐私政策链接:
<span class="link-text">https://open.weibo.com/wiki/开发者协议</span>
</p>
<p>8.头条抖音登录</p>
<p>
SDK官网
<span class="link-text">https://open.douyin.com/platform</span>
</p>
<p>SDK包名com.bytedance.sdk</p>
<p>企业主体:北京字节跳动科技有限公司</p>
<p>使用目的:用于支持抖音登录</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、硬件型号、操作系统类型、软件信息软件版本号、浏览器类型、IP地址、服务日志信息、通讯日志信息
</p>
<p>
隐私政策链接:
<span class="link-text">
https://www.douyin.com/agreements/?id=6773901168964798477
</span>
</p>
<p class="margintop red-style bold-font"><b>3推送通知类</b></p>
<p>9.友盟推送</p>
<p>
SDK官网
<span class="link-text">https://www.umeng.com/push</span>
</p>
<p>SDK包名com.umeng</p>
<p>企业主体:北京友盟网络科技有限公司</p>
<p>使用目的:用于游戏相关信息的提醒通知</p>
<p>
收集信息类型Mac地址、唯一设备识别码IMEI、android
ID、IDFA、OPENUDID、GUID/SIM卡IMSI信息、地理位置信息
</p>
<p>
隐私政策链接:
<span class="link-text">
https://www.umeng.com/page/policy?spm=a213m0.14063960.0.0.7f626e72hx3nnv
</span>
</p>
<p class="margintop red-style bold-font"><b>4其他功能类</b></p>
<p>10.阿里云反爬虫</p>
<p>
SDK官网
<span class="link-text">https://www.aliyun.com/product/antibot</span>
</p>
<p>SDK包名com.alibaba.wireless</p>
<p>企业主体:阿里巴巴网络技术有限公司</p>
<p>使用目的为APP提供网络应用安全防护</p>
<p>
收集信息类型设备相关信息例如设备型号、操作系统版本、设备设置、唯一设备标识符等软硬件特征信息、设备所在位置相关信息例如IP地址、GPS位置以及能够提供相关信息的Wi-Fi接入点、蓝牙和基站等传感器信息
</p>
<p>
隐私政策链接:
<span class="link-text">
http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.81.b7574832gmk0vr
</span>
</p>
<p>11.腾讯bugly</p>
<p>
SDK官网
<span class="link-text">https://bugly.qq.com/v2/</span>
</p>
<p>SDK包名com.tencent.bugly</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的APP异常上报</p>
<p>
收集信息类型:设备及应用信息。如:设备名称、设备识别符、硬件型号、操作系统版本、应用程序版本
</p>
<p>
隐私政策链接:
<span class="link-text">https://bugly.qq.com/v2/contract</span>
</p>
<p>12.阿里云文件上传</p>
<p>
SDK官网
<span class="link-text">https://www.alibabacloud.com/zh</span>
</p>
<p>SDK包名com.alibaba.sdk.android</p>
<p>SDK包名com.alibaba.sdk.android</p>
<p>企业主体:阿里巴巴网络技术有限公司</p>
<p>使用目的:用于支持用户上传视频等相关内容</p>
<p>
收集信息类型设备相关信息例如设备型号、操作系统版本、设备设置、唯一设备标识符等软硬件特征信息、设备所在位置相关信息例如IP地址、GPS位置以及能够提供相关信息的Wi-Fi接入点、蓝牙和基站等传感器信息
</p>
<p>
隐私政策链接:
<span class="link-text">
http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.81.b7574832gmk0vr
</span>
</p>
<p>13.阿里云日志上传</p>
<p>
SDK官网
<span class="link-text">https://www.alibabacloud.com/zh</span>
</p>
<p>SDK包名com.aliyun.sls.android.sdk</p>
<p>企业主体:阿里巴巴网络技术有限公司</p>
<p>
使用目的:通过网络日志分析这些信息以便更及时响应您的帮助请求,以及用于改进服务
</p>
<p>
收集信息类型设备相关信息例如设备型号、操作系统版本、设备设置、唯一设备标识符等软硬件特征信息、设备所在位置相关信息例如IP地址、GPS位置以及能够提供相关信息的Wi-Fi接入点、蓝牙和基站等传感器信息
</p>
<p>
隐私政策链接:
<span class="link-text">
http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.81.b7574832gmk0vr
</span>
</p>
<p>14.容联七陌</p>
<p>
SDK官网
<span class="link-text">https://www.7moor.com/developer</span>
</p>
<p>SDK包名com.m7.imkfsdk</p>
<p>企业主体:北京七陌科技有限公司</p>
<p>使用目的:用于提供对应在线客服功能</p>
<p>
收集信息类型:设备相关信息(设备名称、设备型号、硬件序列号、操作系统和应用程序版本及类型、语言设置、分辨率、移动终端随机存储内存、摄像头/相册、通讯录权限等)
</p>
<p>
隐私政策链接:
<span class="link-text">
http://m.7moor.com/72/57/p5077783560e807/
</span>
</p>
<p><b>2.2 共享您的个人信息</b></p>
<p>
1我们不会与任何公司、组织和个人共享您的个人信息但以下情况除外
</p>
<p>
2事先获得您的明确授权或同意
获得您的明确同意后,我们会与其他方共享您的个人信息;
</p>
<p>
3在法定情形下的共享
根据适用的法律法规、法律程序、政府的强制命令或司法裁定而需共享您的个人信息;
</p>
<p>
4在法律要求或允许的范围内为了保护光环助手及其用户或社会公众的利益、财产或安全免遭损害而有必要提供您的个人信息给第三方
</p>
<p>
5与我们的关联公司共享
您的个人信息可能会在我们的关联公司之间共享。我们会对共享的个人信息进行匿名化处理,且这种共享受本指引所声明目的的约束。关联公司如要改变个人信息的处理目的,将再次征求您的授权同意。
</p>
<p><b>2.3转让</b></p>
<p>
1我们不会转让您的个人信息给任何其他第三方除非征得您的明确同意。
</p>
<p>
2随着我们业务的持续发展我们将有可能进行合并、收购、资产转让您的个人信息有可能因此而被转移。在发生前述变更时我们将按照法律法规及不低于本隐私政策所载明的安全标准要求继受方保护您的个人信息否则我们将要求继受方重新征得您的授权同意。
</p>
<p><b>2.4披露</b></p>
<p>
1我们不会公开披露您的信息除非遵循国家法律法规规定或者获得您的同意。我们公开披露您的个人信息会采用符合行业内标准的安全保护措施。
</p>
<p>
2基于法律、法律程序、诉讼或政府主管部门强制性要求的情况下我们可能会向有权机关披露您的个人信息。但我们保证在上述情况发生时我们会要求披露请求方必须出具与之相应的有效法律文件并对被披露的信息采取符合法律和业界标准的安全防护措施。
</p>
<p>
3对违规账号、欺诈行为进行处罚公告时我们会披露相关账号的信息。
</p>
<p><b>2.5依法豁免征得同意共享、转让、公开披露的个人信息</b></p>
<p>
请您理解,在下列情形中,根据法律法规及国家标准,我们共享、转让、公开披露您的个人信息无需征得您的授权同意:
</p>
<p>1与国家安全、国防安全直接相关的</p>
<p>2与公共安全、公共卫生、重大公共利益直接相关的</p>
<p>3与犯罪侦查、起诉、审判和判决执行等直接相关的</p>
<p>
4出于维护您或其他个人的生命、财产等重大合法权益但又很难得到本人同意的
</p>
<p>5您自行向社会公众公开的个人信息</p>
<p>
6从合法公开披露的信息中收集个人信息的如合法的新闻报道、政府信息公开等渠道。
</p>
<p><b>3.我们如何收集和使用个人信息</b></p>
<p>
我们会遵循正当、合法、必要的原则,出于本指引所述的以下目的,收集和使用您在使用服务过程中主动提供或因使用产品或服务而产生的个人信息。
</p>
<p>
我们收集和使用的您的个人信息类型包括两种:第一种:我们产品或服务的核心业务功能所必需的信息:此类信息为产品或服务正常运行的必备信息,您须授权我们收集。如您拒绝提供,您将无法正常使用我们的功能,以"仅浏览(游客身份)"
的状态体验;第二种:我们产品或服务的附加业务功能可能需要收集的信息:此信息为非核心业务功能所需的信息,您可以选择是否授权我们收集。如您拒绝提供,将导致附加业务功能无法实现或无法达到我们拟达到的效果,但不影响您对核心业务功能的正常使用。
</p>
<p>
如果我们要将您的个人信息用于本指引未载明的其它用途,或基于特定目的将收集而来的信息用于其他目的,我们将以合理的方式向您告知,并在使用前再次征得您的同意。
</p>
<p><b>3.1实现产品或服务的基本功能</b></p>
<p>
1手机管理和内容资源下载功能。为实现手机管理及手机内容资源下载的基本功能我们会通过手机系统的公用接口收集经过MD5算法加密的国际移动设备身份码IMEI和网络设备地址MAC以及手机型号、手机系统版本号、系统编号、系统ID号、屏幕分辨率、上网类型、手机中软件的名称、版本号、版本名、包名、软件使用时间和频率、软件崩溃信息、设备和软件相关的信息。这些信息是提供服务所必须收集的基础信息如您拒绝提供上述权限将可能导致您无法使用我们的服务。
</p>
<p>
2软件升级管理功能。为实现手机软件下载、安装、升级、卸载软件管理功能在您使用产品时我们会采集您手机中已安装软件的软件名称、版本号、版本名、软件包名信息并上传到我们的服务器进行软件版本比对。发现有更新的版本我们会提示您升级相应的软件。上述软件信息为实现此功能所必需不涉及您个人身份敏感信息。
</p>
<p>
3过滤无法使用的软件功能。为了过滤您手机无法使用的软件我们会收集您手机的手机型号、手机系统版本号、系统版本号、屏幕分辨率信息并依据这些信息排除您手机无法使用的软件以保证您在光环助手下载的软件都可安装使用。
</p>
<p><b>3.2关于获取手机设备信息的说明</b></p>
<p>
1为方便区分每个用户的个人信息等本软件需获取用户的手机设备信息用于游戏主动预约、论坛互动交流后进行推送等用户相关的行为
</p>
<p>
2为了保障软件与服务的安全运行我们会收集您的硬件型号、操作系统版本号、国际移动设备识别码、唯一设备标识符、网络设备硬件地址、IP
地址、WLAN接入点、蓝牙、基站、软件版本号、网络接入方式、类型、状态、网络质量数据、操作、使用、服务日志。
</p>
<p>
3为了预防恶意程序及安全运营所必需我们会收集安装的应用信息或正在运行的进程信息、应用程序的总体运行、使用情况与频率、应用崩溃情况、总体安装使用情况、性能数据、应用来源。
</p>
<p>
4我们可能使用您的账户信息、设备信息、服务日志信息以及我们关联公司、合作方在获得您授权或依法可以共享的信息用于判断账户安全、进行身份验证、检测及防范安全事件。
</p>
<p>5具体会发生获取手机设备信息场景如下说明</p>
<p class="left-indent">
1 首次启动光环助手
<b></b>
2 游戏列表/游戏详情/资讯文章详情/搜索结果页-预约功能
<b></b>
3 礼包中心/礼包详情-领取功能
<b></b>
4 评论详情-发送评论功能
<b></b>
5 回答/问题详情-我来回答功能
<b></b>
6 问答首页-提问功能
<b></b>
7 个人主页-发文章功能
<b></b>
8 帖子草稿/我的草稿-编辑功能
<b></b>
9 游戏投稿功能
<b></b>
10视频投稿-上传视频功能
<b></b>
11游戏详情-关注游戏功能
</p>
<p><b>3.3帮助您成为我们的在线用户</b></p>
<p>1注册账号/登录账号</p>
<p>
a.当您注册、登录我们相关服务时,您可以通过手机号创建账号,并且您可以完善相关的网络身份识别信息(头像、昵称、密码),收集这些信息是为了帮助您完成注册。您还可以根据自身需求选择填写性别、生日、地区及个人介绍来完善您的信息。
</p>
<p>
b.您也可以使用第三方账号登录并使用,您将授权我们获取您在第三方平台注册的公开信息(头像、昵称以及您授权的其他信息),用于与光环助手账号绑定,使您可以直接登录并使用本产品和相关服务。
</p>
<p>2认证用户</p>
<p>
a.在您使用身份认证的功能或服务时,根据相关法律法规,您可能需要提供您的真实身份信息(真实姓名、身份证号码、电话号码)以完成实名验证。
</p>
<p>
b.这些信息属于个人敏感信息,您可以拒绝提供,但您将可能无法获得相关服务,但不影响其他功能与服务的正常使用。
</p>
<p><b>3.4搜索</b></p>
<p>
1您使用“光环助手”的搜索服务时我们会收集您的搜索关键字信息、日志记录。
</p>
<p>
2为了提供高效的搜索服务部分前述信息会暂时存储在您的本地存储设备之中并可向您展示搜索结果内容、搜索历史记录。
</p>
<p><b>3.5预约游戏</b></p>
<p>
当您使用游戏预约、游戏开测提醒功能时,您可以根据需要是否填写手机号。如您拒绝提供,仅会使您无法接收该预约游戏的短信快速提醒功能,但并不影响您正常使用产品与服务的其他。
</p>
<p><b>3.6游戏时长统计</b></p>
<p>
您可以授权我们使用应用使用记录访问权限,我们会获取您使用某款游戏应用的使用时长,以便于提供游戏时长展示服务以及对应的大数据统计分析。
</p>
<p><b>3.7信息发布功能</b></p>
<p>
1注册成为光环用户后可在光环平台上发布提问、帖子、视频并对别人的提问作出回答或邀请其他用户回答您还可以对别人的回答、帖子和视频的评论作出回复、赞同、感谢。
</p>
<p>
2上述功能基于相册图片库/视频库)的图片/视频访问及上传的附加服务,我们会请求您授权相机、照片、麦克风权限,您可以使用该功能上传您的照片/图片/视频,以实现发布照片/图片/视频的功能、与其他用户进行照片/图片分享等功能。如您拒绝提供该权限和内容的,仅会使您无法使用该功能,但并不影响您正常使用产品与/或服务的其他功能。
</p>
<p>
3您发布内容、评论、提问或回答时我们将收集您发布的信息并展示您的昵称、头像、发布内容。
</p>
<p>
4用户因使用我们的产品或者服务而被我们收集的信息例如其他用户发布的信息中可能含有您的部分信息在评论、留言、发布图文、音视频中涉及到与您相关的信息
</p>
<p><b>3.8浏览、关注与收藏功能</b></p>
<p>1您可浏览的内容包括问答、评论、专栏、文章。</p>
<p>
2在浏览的过程中您还可以关注您感兴趣的用户、专栏、问题、收藏并收藏上述内容。
</p>
<p>
3为此
我们可能会收集您使用时的设备信息,如设备型号、唯一设备标识符、操作系统、分辨率、电信运营商等软硬件信息。
我们还可能收集您的浏览器类型,以此来为您提供信息展示的最优方案。
</p>
<p>
4此外在您使用浏览和收藏功能的过程中我们会自动收集您使用的详细情况并作为有关的
网络日志保存,包括但不限于您输入的搜索关键词信息和点击的链接。
</p>
<p>
5您浏览和发布的内容及评论信息您上传的图片信息、您的交易信息、您使用的语言、访问的日期和时间、及您请求的网页记录、操作系统、软件版本号、登录
IP 信息。
</p>
<p>
6在此过程中
我们会收集您的浏览记录,浏览记录包括您浏览的问答、主页、文章、专栏,
您可以自主删除浏览记录。
</p>
<p><b>3.9互动交流</b></p>
<p>
1您主动关注您感兴趣的账号、内容、视频并与之进行互动进行浏览、评论、收藏、点赞或分享内容时我们会收集您关注的账号并向您展示您关注账号发布内容。
</p>
<p>
2您使用推荐通讯录好友功能时我们会请求通讯录权限并将通讯录中的信息进行高强度加密算法处理后用于向您推荐通信录中的好友。通讯录信息属于个人敏感信息拒绝提供该信息仅会使您无法使用上述功能但不影响您正常使用“光环助手”及相关服务的其他功能。
</p>
<p><b>3.10收集、使用个人信息目的变更</b></p>
<p>
1请您了解随着我们业务的发展可能会对“光环助手”的功能和提供的服务有所调整变化。
</p>
<p>
2原则上当新功能或服务与我们当前提供的功能或服务相关时收集与使用的个人信息将与原处理目的具有直接或合理关联。
</p>
<p>
3在与原处理目的无直接或合理关联的场景下我们收集、使用您的个人信息会再次进行告知并征得您的同意。
</p>
<p><b>3.11依法豁免征得同意收集和使用的个人信息</b></p>
<p>
请您理解,在下列情形中,根据法律法规及相关国家标准,我们收集和使用您的个人信息无需征得您的授权同意:
</p>
<p>1与国家安全、国防安全直接相关的</p>
<p>2与公共安全、公共卫生、重大公共利益直接相关的</p>
<p>3与犯罪侦查、起诉、审判和判决执行等直接相关的</p>
<p>
4出于维护个人信息主体或其他个人的生命、财产等重大合法权益但又很难得到本人同意的
</p>
<p>5所收集的您的个人信息是您自行向社会公众公开的</p>
<p>
6从合法公开披露的信息中收集的您的个人信息的如合法的新闻报道、政府信息公开等渠道
</p>
<p>7根据您的要求签订或履行合同所必需的</p>
<p>
8用于维护软件及相关服务的安全稳定运行所必需的例如发现、处置软件及相关服务的故障
</p>
<p>9为合法的新闻报道所必需的</p>
<p>
10学术研究机构基于公共利益开展统计或学术研究所必要且对外提供学术研究或描述的结果时对结果中所包含的个人信息进行去标识化处理的。
</p>
<p>11法律法规规定的其他情形。</p>
<p>
特别提示您注意,如信息无法单独或结合其他信息识别到您的个人身份,其不属于法律意义上您的个人信息;当您的信息可以单独或结合其他信息识别到您的个人身份时或我们将无法与任何特定个人信息建立联系的数据与其他您的个人信息结合使用时,这些信息在结合使用期间,将作为您的个人信息按照本隐私政策处理与保护。
</p>
<p><b>4.我们如何存储个人信息</b></p>
<p><b>4.1 存储地点</b></p>
<p>
1我们依照法律法规的规定将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。
</p>
<p>
2目前我们不会将上述信息传输至境外如果我们向境外传输我们将会遵循相关国家规定或者征求您的同意。
</p>
<p><b>4.2存储期限</b></p>
<p>
1我们仅在为提供“光环助手”及服务之目的所必需的期间内保留您的个人信息您发布的信息、评论、点赞及相关信息在您未撤回、删除或未注销账号期间我们会保留相关信息。
</p>
<p>
2超出必要期限后我们将对您的个人信息进行删除或匿名化处理但法律法规另有规定的除外。
</p>
<p><b>5.我们如何保护个人信息的安全</b></p>
<p>
1我们非常重视您个人信息的安全将努力采取合理的安全措施包括技术方面和管理方面来保护您的个人信息防止您提供的个人信息被不当使用或未经授权的情况下被访问、公开披露、使用、修改、损坏、丢失或泄漏。
</p>
<p>
2我们会使用不低于行业同行的加密技术、匿名化处理及相关合理可行的手段保护您的个人信息并使用安全保护机制防止您的个人信息遭到恶意攻击。
</p>
<p>
3我们会建立专门的安全部门、安全管理制度、数据安全流程保障您的个人信息安全。我们采取严格的数据使用和访问制度确保只有授权人员才可访问您的个人信息并适时对数据和技术进行安全审计。
</p>
<p>
4尽管已经采取了上述合理有效措施并已经遵守了相关法律规定要求的标准但请您理解由于技术的限制以及可能存在的各种恶意手段在互联网行业即便竭尽所能加强安全措施也不可能始终保证信息百分之百的安全我们将尽力确保您提供给我们的个人信息的安全性。
</p>
<p>
5您知悉并理解您接入我们的服务所用的系统和通讯网络有可能因我们可控范围外的因素而出现问题。因此我们强烈建议您采取积极措施保护个人信息的安全包括但不限于使用复杂密码、定期修改密码、不将自己的账号密码及相关个人信息透露给他人。
</p>
<p>
6我们会制定应急处理预案并在发生用户信息安全事件时立即启动应急预案努力阻止这些安全事件的影响和后果扩大。一旦发生用户信息安全事件泄露、丢失我们将按照法律法规的要求及时向您告知安全事件的基本情况和可能的影响、我们已经采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施。我们将及时将事件相关情况以推送通知、邮件、信函、短信及相关形式告知您难以逐一告知时我们会采取合理、有效的方式发布公告。同时我们还将按照相关监管部门要求上报用户信息安全事件的处置情况。
</p>
<p>
7您一旦离开“光环助手”及相关服务浏览或使用其他网站、服务及内容资源我们将没有能力和直接义务保护您在光环助手及相关服务之外的软件、网站提交的任何个人信息无论您登录、浏览或使用上述软件、网站是否基于“光环助手”的链接或引导。
</p>
<p><b>6.管理您的个人信息</b></p>
<p>
我们非常重视您对个人信息的管理,并尽全力保护您的隐私,对于您个人信息的查询、访问、修改、删除、撤回同意授权、注销账号、投诉举报以及设置隐私功能的相关权利,以使您有能力保障您的隐私和信息安全。
</p>
<p><b>6.1 访问、删除、更正您的个人信息</b></p>
<p>1访问个人账号信息</p>
<p>a. 您可以查询、访问您的头像、用户名、简介、性别、生日、地区</p>
<p>b.您可以在光环助手的“个人中心”中进行查询、访问。</p>
<p>2查询访问、更正、取消您关注账号、查询访问粉丝、访客信息</p>
<p>a.进入“关注”在关注列表中查询、访问、取消关注您关注的账号。</p>
<p>
3查询访问、更改、删除您的收藏、点赞、浏览记录、阅读历史记录、搜索历史历史记录
</p>
<p>
a.点击“我的”—点击“我的收藏”、
“我的点赞”、或“浏览历史”进入查询访问、删除;
</p>
<p>b.点击搜索栏—删除搜索“历史记录”</p>
<p>c.您可以通过点击“系统设置”—点击“清理缓存”。</p>
<p>4投诉举报</p>
<p>a.您可按照我们公示的制度进行投诉或举报。</p>
<p>
b.如果您认为您的个人信息权利可能受到侵害,或者发现侵害个人信息权利的线索(例如:认为我们收集您的个人信息违反法律规定或者双方约定),“我的”—“基础功能”—“用户反馈”,进入用户反馈界面与我们联系。
</p>
<p>c.我们核查后会及时反馈您的投诉与举报。</p>
<p>5访问隐私政策</p>
<p>
a.您可以在注册页面,或者在登录个人账号“设置”—“关于”查看本隐私政策的全部内容
</p>
<p>
b.请您了解,本隐私政策中所述的“光环助手”及相关服务可能会根据您所使用的手机型号、系统版本、软件应用程序版本、移动客户端等因素而有所不同。最终的产品和服务以您所使用的“光环助手”软件及相关服务为准。
</p>
<p>6停止运营向您告知</p>
<p>
a.如我们停止运营,我们将及时停止收集您个人信息的活动,将停止运营的通知以逐一送达或公告的形式通知您,并对所持有的您的个人信息进行删除或匿名化处理。
</p>
<p><b>6.2 注销您的个人账号</b></p>
<p>
如需要注销个人账户,可前往光环助手,我的光环> 设置 > 账号与安全
账号安全中心
注销账号,进行注销操作。请您注意,如果您选择注销光环助手账户,那么您的光环助手账号将不可被使用且相关账号信息将被删除,包括所发布的所有内容,包括:提问、回答、社区文章、评论、关注的人等均会被清空;您将无法再通过光环助手账号登录光环助手的服务(但不会影响您使用无需账号登录即可使用的服务和功能)
</p>
<p>
当您注销账户后除法律法规要求我们保存相关信息的情况外我们将停止为您提供相应的产品或服务并在60个工作日内删除或匿名化您的个人信息。
</p>
<p><b>7.未成年人条款</b></p>
<p>
a.若您是未满18周岁的未成年人在使用“光环助手”及相关服务前应在您的父母或其他监护人监护、指导下共同阅读并同意本隐私政策。
</p>
<p>
b.我们根据国家相关法律法规的规定保护未成年人的个人信息,只会在法律允许、父母或其他监护人明确同意或保护未成年人所必要的情况下收集、使用、储存、共享、转让或披露未成年人的个人信息;如果我们发现在未事先获得可证实的父母同意的情况下收集了未成年人的个人信息,则会设法尽快删除相关信息。
</p>
<p>
c.若您是未成年人的监护人,当您对您所监护的未成年人的个人信息有相关疑问时,请通过公司本隐私政策公示的联系方式与我们联系。
</p>
<p><b>8.隐私政策的修订和通知</b></p>
<p>
1为了给您提供更好的服务光环助手及相关服务将不时更新与变化我们会适时对本隐私政策进行修订这些修订构成本隐私政策的一部分并具有等同于本隐私政策的效力未经您明确同意我们不会削减您依据当前生效的本隐私政策所应享受的权利。
</p>
<p>
2本隐私政策更新后我们会在光环助手发出更新版本并在更新后的条款生效前通过公告或其他适当的方式提醒您更新的内容以便您及时了解本隐私政策的最新版本。
</p>
<p><b>9.联系我们</b></p>
<p>
如果您对我们的隐私政策及对您个人信息的处理有任何疑问、意见、建议、或投诉,请通过以下方式与我们联系
</p>
<p>广州加兔网络科技有限公司</p>
<p>注册地址广州市番禺区市桥街丹山村青云一街2号229房</p>
<p>在线客服QQ350473523</p>
<p>信息保护事务联系电话020-85526920</p>
<p>在一般情况下我们会在15个工作日内对您的请求予以答复</p>
</div>
</div>
</body>
</html>

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,493 +0,0 @@
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>光环助手软件许可及服务协议</title>
</head>
<style>
* {
margin: 0;
padding: 0;
font-size: 14px;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
body {
margin: 10px;
}
.top {
margin-left: 0;
margin-right: 0;
padding: 10px 0 10px 0;
}
.title {
font-weight: 700;
}
p {
font-size: 14px;
word-break: break-all;
}
.bold {
font-weight: 700;
}
.margintop {
margin-top: 10px;
}
.left-indent {
margin-left: 20px;
}
.red-style {
color: red;
}
.bold-font {
font-weight: bold;
}
span.bold {
font-weight: bold;
}
.link-text {
color: #005ad0;
text-decoration: underline;
}
</style>
<body>
<h3 class="top">光环助手软件许可及服务协议</h3>
<h5 class="title">首部及导言</h5>
<p>欢迎使用光环助手软件许可及服务</p>
<p>
各位用户在使用光环助手前,请您务必审慎阅读、并充分理解本协议中的各项条款,
<span class="bold">
特别是免除或者限制责任的条款,以及开通或使用某项服务的单独协议,并选择接受或不接受。
</span>
除非您已阅读并接受本协议所有条款,否则您无权下载、安装或使用本软件及相关服务。您的下载、安装、使用、登录等行为即视为您已阅读并同意上述协议的约束。
</p>
<p>如果您未满18周岁请在法定监护人的陪同下阅读本协议及其他上述协议。</p>
<h5 class="title margintop">一、权利声明</h5>
<p>
“光环助手”的一切知识产权,以及与“光环助手”相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图像、图表、色彩、界面设计、版面框架、有关数据、附加程序、印刷材料或电子文档等均为光环助手所有,受著作权法和国际著作权条约以及其他知识产权法律法规的保护。
</p>
<h5 class="title margintop">二、软件使用规范</h5>
<p>
2.1
本软件是基于Android安卓系统手机、平板电脑(PAD)等设备开发的一款软件,提供注册登录、手机游戏管理、游戏推荐、文章阅读等功能
</p>
<p>2.2 软件的下载、安装和使用</p>
<p>
本软件为免费软件,用户可以非商业性、无限制数量地从光环授权的渠道下载、安装及使用本软件。
</p>
<p>
<span class="bold">
如果您从未经光环授权的第三方获取本软件或与本软件名称相同的安装程序,光环无法保证该软件能够正常使用,并对因此给您造成的损失不予负责。
</span>
</p>
<p>2.3 软件的复制、分发和传播</p>
<p>
本产品以学习、研究交流为目的。用户可以非商业性、无限制数量地复制、分发和传播本软件产品。但必须保证每一份复制、分发和传播都是完整和真实的,
包括所有有关本软件产品的软件、电子文档, 版权和商标,亦包括本协议。
</p>
<p>2.4 软件的更新</p>
<p>
为了改善用户体验、完善服务内容,光环将不断努力开发新的服务,并为您不时提供软件更新(这些更新可能会采取软件替换、修改、功能强化、版本升级等形式)。为了保证本软件及服务的安全性和功能的一致性,光环有权不经向您特别通知而对软件进行更新,或者对软件的部分功能效果进行改变或限制。本软件新版本发布后,旧版本的软件可能无法使用。光环不保证旧版本软件继续可用及相应的客户服务,请您随时核对并下载最新版本。
</p>
<h5 class="title margintop">三、用户使用须知</h5>
<p>3.1 您理解并同意:</p>
<p>
为了向您提供有效的服务,本软件会利用您移动通讯终端的处理器和带宽等资源。本软件使用过程中可能产生数据流量的费用,用户需自行向运营商了解相关资费信息,并自行承担相关费用.
</p>
<p>3.2 您理解并同意:</p>
<p>
由本软件进行收录、推荐并提供下载、升级服务的第三方软件,由第三方享有一切合法权利,光环并不能识别用户利用本软件下载、安装的第三方软件是否有合法来源。
<span class="bold">
因第三方软件引发的任何纠纷,由该第三方负责解决,光环不承担任何责任。
</span>
同时光环不对第三方软件或技术提供客服支持,若用户需要获取支持,请与该软件或技术提供商联系,若您为有关软件的权利人,不愿本软件为您的软件提供用户下载、安装、使用的服务,也可按本协议约定的联系方式联系我们,我们将会积极配合进行处理。
</p>
<p>3.3 您理解并同意:</p>
<p>
<span class="bold">
如果因您不正当使用本软件造成了不良影响,或因使用本软件造成的包括但不限于数据异常等问题,均由使用者自行承担,光环团队不对任意类型的使用结果承担责任;
</span>
</p>
<p>3.4 您理解并同意:</p>
<p>
本软件不含任何破坏用户移动通讯设备数据和获取用户隐私信息的恶意代码,不会泄露用户的个人信息和隐私;
</p>
<p>3.5 您理解并同意:</p>
<p>
<span class="bold">
对于包括但不限于互联网网络故障、计算机故障、手机故障或病毒、信息损坏或丢失、计算机系统问题,或其它任何基于不可抗力原因而产生的损失,光环团队不承担任何责任。
</span>
</p>
<p>3.6 您理解并同意:</p>
<p>光环发布、收录的文章均不代表光环立场。</p>
<p>3.7 您理解并同意:</p>
<p>
为实现软件包括但不限于集中展示、下载、安装、卸载等游戏管理功能以及文章优先推荐功能,本软件会检测用户手机中已安装游戏的包名、版本号、版本名、游戏名称信息。除征得用户明确同意和法律明确规定外,光环不会向第三方泄露任何的用户信息
</p>
<p>3.8 您理解并同意:</p>
<p>
用户应在遵守法律及本协议的前提下使用本软件。用户无权实施包括但不限于下列行为:
</p>
3.8.1 不得删除或者改变本软件上的所有权利管理电子信息
<br />
3.8.2 不得故意避开或者破坏著作权人为保护本软件著作权而采取的技术措施;
<br />
3.8.3 用户不得利用本软件误导、欺骗他人;
<br />
3.8.4
违反国家规定,对计算机信息系统功能进行删除、修改、增加、干扰,造成计算机信息系统不能正常运行;
<br />
3.8.5 未经允许,进入计算机信息网络或者使用计算机信息网络资源;
<br />
3.8.6 未经允许,对计算机信息网络功能进行删除、修改或者增加;
<br />
3.8.7
未经允许,对计算机信息网络中存储、处理或者传输的数据和应用程序进行删除、修改或者增加;
<br />
3.8.8 破坏本软件系统或网站的正常运行,故意传播计算机病毒等破坏性程序;
<br />
3.8.9 其他任何危害计算机信息网络安全的行为。
<br />
<p>3.9 您理解并同意:</p>
<p>
本软件经过详细的测试,但不能保证与所有的软硬件系统完全兼容,不能保证本软件完全没有错误。如果出现不兼容及软件错误的情况,用户可通过各反馈途径将情况告知光环团队,获得技术支持。如果无法解决兼容性问题,用户可以删除本软件。
</p>
<h5 class="title margintop">四、争议解决处理</h5>
<p>
本《协议》的解释、效力及纠纷的解决,适用于中华人民共和国法律。若用户和光环助手之间发生任何纠纷或争议,首先应友好协商解决,协商不成的,用户在此完全同意将纠纷或争议提交光环助手所在地法院管辖
</p>
<p class="title margintop"><b>五、第三方SDK接入说明</b></p>
<p>
为保障光环助手App相关功能的实现与应用安全稳定的运行我们会接入由第三方提供的软件开发包SDK实现相关功能。
<br />
我们会对合作方获取有关信息的软件工具开发包SDK进行严格的安全检测并与授权合作伙伴约定严格的数据保护措施令其按照我们的委托目的、服务说明、本隐私权政策以及其他任何相关的保密和安全措施来处理个人信息。
<br />
<span class="red-style">
下方为整个光环助手
<span class="bold">所有版本</span>
内接入的所有信息收集类第三方SDK的权限说明因隐私政策会因光环助手版本迭代而新接入SDK或停止合作部分SDK方便照顾
<span class="bold">所有版本</span>
的用户查看自己SDK第三方权限说明。
<br />
我们对涉及用户信息使用的SDK相关情况进行了逐项列举具体如下
</span>
</p>
<p class="margintop red-style bold-font"><b>1数据统计类</b></p>
<p>1.头条推广</p>
<p>
SDK官网
<span class="link-text">
https://ad.oceanengine.com/openapi/index.html
</span>
</p>
<p>SDK包名com.bytedance</p>
<p>企业主体:北京有竹居网络技术有限公司</p>
<p>使用目的:用于广告流量统计相关服务</p>
<p>
收集信息类型设备品牌、型号、软件系统相关信息、安卓oaid、无线网SSID名称、WiFi路由器MAC地址、设备MAC地址、IMEI、地理位置
</p>
<p>
隐私政策链接:
<span class="link-text">
https://ad.oceanengine.com/openapi/register/protocol.html?rid=vo25p8sfqde
</span>
</p>
<p>2.talkingdata统计</p>
<p>
SDK官网
<span class="link-text">http://www.talkingdata.com/</span>
</p>
<p>SDK包名com.tendcloud</p>
<p>企业主体:北京腾云天下科技有限公司</p>
<p>使用目的:用于统计数据和效果分析,以便为用户提供更好的服务</p>
<p>收集信息类型:设备信息、网络信息、位置信息、应用信息</p>
<p>
隐私政策链接:
<span class="link-text">
http://www.talkingdata.com/privacy.jsp?languagetype=zh_cn
</span>
</p>
<p>3.腾讯MTA</p>
<p>
SDK官网
<span class="link-text">https://mta.qq.com/mta/</span>
</p>
<p>SDK包名com.tencent</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的:用于统计数据和效果分析</p>
<p>
收集信息类型Mac地址、唯一设备识别码IMEI、android
ID、IDFA、OPENUDID、GUID/SIM卡IMSI信息、地理位置信息
</p>
<p>
隐私政策链接:
<span class="link-text">
https://mta.qq.com/mta/ctr_index/protocol_v2/
</span>
</p>
<p>4.腾讯广点通</p>
<p>
SDK官网
<span class="link-text">https://developers.e.qq.com/</span>
</p>
<p>SDK包名com.tencent</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的:用于广告流量统计相关服务</p>
<p>
收集信息类型:
个人常用设备信息IMEI、AndroidID、位置信息IP地址、软件版本号
</p>
<p>
隐私政策链接:
<span class="link-text">https://e.qq.com/optout.html</span>
</p>
<p class="margintop red-style bold-font"><b>2社交登录类</b></p>
<p>5.微信登录分享</p>
<p>
SDK官网
<span class="link-text">https://open.weixin.qq.com/</span>
</p>
<p>SDK包名com.tencent.mm.opensdk</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的:用于支持微信登录、分享</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、硬件型号、操作系统类型、软件信息软件版本号、浏览器类型、IP地址、服务日志信息、通讯日志信息
</p>
<p>
隐私政策链接:
<span class="link-text">https://privacy.tencent.com/</span>
</p>
<p>6.QQ登录分享</p>
<p>
SDK官网
<span class="link-text">https://connect.qq.com/</span>
</p>
<p>SDK包名com.tentcent</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的用于支持QQ登录、分享</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、IMSI、ICCID、序列号、设备型号、操作系统版本、软件信息软件版本号、浏览器类型、网络信息、IP地址、服务日志信息、通讯日志信息 
</p>
<p>
隐私政策链接:
<span class="link-text">
https://wiki.connect.qq.com/qq互联sdk隐私保护声明
</span>
</p>
<p>7.微博登录分享</p>
<p>
SDK官网
<span class="link-text">http://open.weibo.com/authentication</span>
</p>
<p>SDK包名com.sina.weibo.sdk</p>
<p>企业主体:北京微梦创科网络技术有限公司</p>
<p>使用目的:用于支持微博登录、分享</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、IMSI、ICCID、序列号、网络信息、应用列表硬件型号、操作系统类型、软件信息软件版本号、浏览器类型、IP地址、服务日志信息、通讯日志信息
</p>
<p>
隐私政策链接:
<span class="link-text">https://open.weibo.com/wiki/开发者协议</span>
</p>
<p>8.头条抖音登录</p>
<p>
SDK官网
<span class="link-text">https://open.douyin.com/platform</span>
</p>
<p>SDK包名com.bytedance.sdk</p>
<p>企业主体:北京字节跳动科技有限公司</p>
<p>使用目的:用于支持抖音登录</p>
<p>
收集信息类型个人常用设备信息MAC地址、IMEI、AndroidID、硬件型号、操作系统类型、软件信息软件版本号、浏览器类型、IP地址、服务日志信息、通讯日志信息
</p>
<p>
隐私政策链接:
<span class="link-text">
https://www.douyin.com/agreements/?id=6773901168964798477
</span>
</p>
<p class="margintop red-style bold-font"><b>3推送通知类</b></p>
<p>9.友盟推送</p>
<p>
SDK官网
<span class="link-text">https://www.umeng.com/push</span>
</p>
<p>SDK包名com.umeng</p>
<p>企业主体:北京友盟网络科技有限公司</p>
<p>使用目的:用于游戏相关信息的提醒通知</p>
<p>
收集信息类型Mac地址、唯一设备识别码IMEI、android
ID、IDFA、OPENUDID、GUID/SIM卡IMSI信息、地理位置信息
</p>
<p>
隐私政策链接:
<span class="link-text">
https://www.umeng.com/page/policy?spm=a213m0.14063960.0.0.7f626e72hx3nnv
</span>
</p>
<p class="margintop red-style bold-font"><b>4其他功能类</b></p>
<p>10.阿里云反爬虫</p>
<p>
SDK官网
<span class="link-text">https://www.aliyun.com/product/antibot</span>
</p>
<p>SDK包名com.alibaba.wireless</p>
<p>企业主体:阿里巴巴网络技术有限公司</p>
<p>使用目的为APP提供网络应用安全防护</p>
<p>
收集信息类型设备相关信息例如设备型号、操作系统版本、设备设置、唯一设备标识符等软硬件特征信息、设备所在位置相关信息例如IP地址、GPS位置以及能够提供相关信息的Wi-Fi接入点、蓝牙和基站等传感器信息
</p>
<p>
隐私政策链接:
<span class="link-text">
http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.81.b7574832gmk0vr
</span>
</p>
<p>11.腾讯bugly</p>
<p>
SDK官网
<span class="link-text">https://bugly.qq.com/v2/</span>
</p>
<p>SDK包名com.tencent.bugly</p>
<p>企业主体:深圳市腾讯计算机系统有限公司</p>
<p>使用目的APP异常上报</p>
<p>
收集信息类型:设备及应用信息。如:设备名称、设备识别符、硬件型号、操作系统版本、应用程序版本
</p>
<p>
隐私政策链接:
<span class="link-text">https://bugly.qq.com/v2/contract</span>
</p>
<p>12.阿里云文件上传</p>
<p>
SDK官网
<span class="link-text">https://www.alibabacloud.com/zh</span>
</p>
<p>SDK包名com.alibaba.sdk.android</p>
<p>SDK包名com.alibaba.sdk.android</p>
<p>企业主体:阿里巴巴网络技术有限公司</p>
<p>使用目的:用于支持用户上传视频等相关内容</p>
<p>
收集信息类型设备相关信息例如设备型号、操作系统版本、设备设置、唯一设备标识符等软硬件特征信息、设备所在位置相关信息例如IP地址、GPS位置以及能够提供相关信息的Wi-Fi接入点、蓝牙和基站等传感器信息
</p>
<p>
隐私政策链接:
<span class="link-text">
http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.81.b7574832gmk0vr
</span>
</p>
<p>13.阿里云日志上传</p>
<p>
SDK官网
<span class="link-text">https://www.alibabacloud.com/zh</span>
</p>
<p>SDK包名com.aliyun.sls.android.sdk</p>
<p>企业主体:阿里巴巴网络技术有限公司</p>
<p>
使用目的:通过网络日志分析这些信息以便更及时响应您的帮助请求,以及用于改进服务
</p>
<p>
收集信息类型设备相关信息例如设备型号、操作系统版本、设备设置、唯一设备标识符等软硬件特征信息、设备所在位置相关信息例如IP地址、GPS位置以及能够提供相关信息的Wi-Fi接入点、蓝牙和基站等传感器信息
</p>
<p>
隐私政策链接:
<span class="link-text">
http://terms.aliyun.com/legal-agreement/terms/suit_bu1_ali_cloud/suit_bu1_ali_cloud201902141711_54837.html?spm=a2c4g.11186623.J_9220772140.81.b7574832gmk0vr
</span>
</p>
<p>14.容联七陌</p>
<p>
SDK官网
<span class="link-text">https://www.7moor.com/developer</span>
</p>
<p>SDK包名com.m7.imkfsdk</p>
<p>企业主体:北京七陌科技有限公司</p>
<p>使用目的:用于提供对应在线客服功能</p>
<p>
收集信息类型:设备相关信息(设备名称、设备型号、硬件序列号、操作系统和应用程序版本及类型、语言设置、分辨率、移动终端随机存储内存、摄像头/相册、通讯录权限等)
</p>
<p>
隐私政策链接:
<span class="link-text">http://m.7moor.com/72/57/p5077783560e807/</span>
</p>
<h5 class="title margintop">六、关于获取手机设备信息的说明</h5>
<div>
1为方便区分每个用户的个人信息等本软件需获取用户的手机设备信息用于游戏主动预约、论坛互动交流后进行推送等用户相关的行为
<br />
2为了保障软件与服务的安全运行我们会收集您的硬件型号、操作系统版本号、国际移动设备识别码、唯一设备标识符、网络设备硬件地址、IP
地址、WLAN接入点、蓝牙、基站、软件版本号、网络接入方式、类型、状态、网络质量数据、操作、使用、服务日志。
<br />
3为了预防恶意程序及安全运营所必需我们会收集安装的应用信息或正在运行的进程信息、应用程序的总体运行、使用情况与频率、应用崩溃情况、总体安装使用情况、性能数据、应用来源。
<br />
4我们可能使用您的账户信息、设备信息、服务日志信息以及我们关联公司、合作方在获得您授权或依法可以共享的信息用于判断账户安全、进行身份验证、检测及防范安全事件。
<br />
5具体会发生获取手机设备信息场景如下说明
<br />
<p class="left-indent">
1) 首次启动光环助手
<br />
2) 游戏列表/游戏详情/资讯文章详情/搜索结果页-预约功能
<br />
3) 礼包中心/礼包详情-领取功能
<br />
4) 评论详情-发送评论功能
<br />
5) 回答/问题详情-我来回答功能
<br />
6) 问答首页-提问功能
<br />
7) 个人主页-发文章功能
<br />
8) 帖子草稿/我的草稿-编辑功能
<br />
9) 游戏投稿功能
<br />
10) 视频投稿-上传视频功能
<br />
11) 游戏详情-关注游戏功能
</p>
</div>
<h5 class="title margintop">七、其他</h5>
<p>
7.1
本协议所有条款的标题仅为阅读方便,本身并无实际涵义,不能作为本协议涵义解释的依据。
<br />
7.2
如果本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,或违反任何适用的法律,则该条款被视为删除,但本协议的其余条款仍应有效并且有约束力。
<br />
7.3
光环有权随时根据有关法律、法规的变化以及公司经营状况和经营策略的调整等修改本协议。修改后的协议会在软件设置内发布。
当发生有关争议时,以最新的协议文本为准。如果不同意改动的内容,用户可以自行删除本软件。如果用户继续使用本软件,则视为您接受本协议的变动。
<br />
<span class="bold">
7.4 光环在法律允许的最大范围内对本协议拥有解释权与修改权。
</span>
</p>
</body>
</html>

View File

@ -1,128 +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.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 io.sentry.core.Sentry;
public class AppUncaughtHandler implements UncaughtExceptionHandler {
private Context mContext;
public AppUncaughtHandler(Context context) {
// 获取系统默认的UncaughtException处理器
mContext = context;
}
@Override
public void uncaughtException(Thread thread, Throwable ex) {
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
Utils.toast(mContext.getApplicationContext(), "\"光环助手\"发生错误");
Looper.loop();
}
});
saveLocalLog(mContext, ex);
Sentry.captureException(ex);
restart(mContext);
}
public static void restart(final Context context) {
// 防止重复奔溃导致助手一直重启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,362 +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.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.util.DialogUtils;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.EntranceUtils;
import com.gh.common.util.ExtensionsKt;
import com.gh.common.util.MtaHelper;
import com.gh.common.util.PackageInstaller;
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 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 {
// global dialog key
public final static String DOWNLOAD_HIJACK = "hijack";
public final static String LOGIN_EXCEPTION = "loginException";
public final static String PLUGGABLE = "plugin";
@NonNull
protected String mEntrance;
private boolean mIsExistLogoutDialog;
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);
}
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().getName().equals(SplashScreenActivity.class.getName())) {
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(this).getDownloadEntityByUrl(xapkUrl);
PackageInstaller.install(this, downloadEntity, false);
SPUtils.setString(Constants.SP_XAPK_UNZIP_ACTIVITY, "");
SPUtils.setString(Constants.SP_XAPK_URL, "");
}
}
}
@SuppressWarnings("ConstantConditions")
@Override
public void setContentView(View view) {
if (BuildConfig.DEBUG || BuildConfig.BUILD_TIME != 0) {
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);
}
}
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 (BuildConfig.FLAVOR.equals("internal")) {
envText = "测试环境";
tv.setBackground(ContextCompat.getDrawable(this, R.color.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);
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())) {
DialogUtils.showPluginDialog(this, () -> {
if (FileUtils.isEmptyFile(showDialog.getPath())) {
toast(R.string.install_failure_hint);
} else {
PackageInstaller.uninstall(BaseActivity.this, showDialog.getPath());
}
});
} 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");
DialogUtils.showAlertDialog(this, "你的账号已在另外一台设备登录"
, StringUtils.buildString("", model, "")
, "知道了", "重新登录"
, null
, () -> 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();
}
}
}
}
@Override
protected void onResume() {
super.onResume();
}
/**
* 此回调可用于确认当前 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;
}
}

View File

@ -1,133 +0,0 @@
package com.gh.base;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.gh.base.adapter.FragmentAdapter;
import com.gh.base.fragment.BaseFragment_TabLayout;
import com.gh.common.view.TabIndicatorView;
import com.gh.gamecenter.R;
import com.google.android.material.tabs.TabLayout;
import com.lightgame.view.NoScrollableViewPager;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import butterknife.BindView;
/**
* Created by khy on 15/03/18.
*/
public abstract class BaseActivity_TabLayout extends ToolBarActivity implements ViewPager.OnPageChangeListener {
public static final String PAGE_INDEX = "PAGE_INDEX";
@BindView(R.id.activity_tab_layout)
protected TabLayout mTabLayout;
@BindView(R.id.activity_view_pager)
protected NoScrollableViewPager mViewPager;
@BindView(R.id.activity_tab_indicator)
protected TabIndicatorView mTabIndicatorView;
protected List<Fragment> mFragmentsList;
protected List<String> mTabTitleList;
protected int mCheckedIndex = 0;
protected abstract void initFragmentList(List<Fragment> fragments);
protected abstract void initTabTitleList(List<String> tabTitleList);
protected int provideIndicatorWidth() {
return 20;
}
protected View provideTabView(int position, String tabTitle) {
return null;
}
@Override
protected int getLayoutId() {
return R.layout.activity_tablayout_viewpager;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
List<Fragment> fragments = getSupportFragmentManager().getFragments();
if (fragments != null) {
for (Fragment fragment : fragments) {
fragment.onActivityResult(requestCode, resultCode, data);
}
}
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent() != null) mCheckedIndex = getIntent().getIntExtra(PAGE_INDEX, 0);
mTabTitleList = new ArrayList<>();
initTabTitleList(mTabTitleList);
mFragmentsList = new ArrayList<>(restoreFragments());
if (mFragmentsList.isEmpty() || mFragmentsList.size() != mTabTitleList.size()) {
mFragmentsList.clear();
initFragmentList(mFragmentsList);
}
mViewPager.setOffscreenPageLimit(mFragmentsList.size());
mViewPager.addOnPageChangeListener(this);
mViewPager.setAdapter(new FragmentAdapter(getSupportFragmentManager(), mFragmentsList, mTabTitleList));
mViewPager.setCurrentItem(mCheckedIndex);
mTabLayout.setupWithViewPager(mViewPager);
mTabIndicatorView.setupWithTabLayout(mTabLayout);
mTabIndicatorView.setupWithViewPager(mViewPager);
mTabIndicatorView.setIndicatorWidth(provideIndicatorWidth());
for (int i = 0; i < mTabLayout.getTabCount(); i++) {
TabLayout.Tab tab = mTabLayout.getTabAt(i);
if (tab == null) continue;
String tabTitle = tab.getText() != null ? tab.getText().toString() : "";
View tabView = provideTabView(i, tabTitle);
if (tabView == null)
tabView = BaseFragment_TabLayout.createDefaultTabCustomView(tabTitle);
tab.setCustomView(tabView);
}
BaseFragment_TabLayout.initTabStyle(mTabLayout, mCheckedIndex);
}
private ArrayList<Fragment> restoreFragments() {
String tag = "android:switcher:" + mViewPager.getId() + ":";
ArrayList<Fragment> fragments = new ArrayList<>();
int childCount = mTabTitleList.size();
for (int index = 0; index < childCount; index++) {
Fragment fragment = getSupportFragmentManager().findFragmentByTag(tag + index);
if (fragment != null) {
fragments.add(fragment);
}
}
return fragments;
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
}

View File

@ -1,5 +1,6 @@
package com.gh.base
import android.animation.ObjectAnimator
import android.annotation.SuppressLint
import android.app.Activity
import android.content.ClipboardManager
@ -9,213 +10,589 @@ import android.os.Bundle
import android.text.TextUtils
import android.view.View
import android.webkit.JavascriptInterface
import android.widget.CheckBox
import android.widget.FrameLayout
import android.widget.TextView
import butterknife.OnClick
import androidx.lifecycle.Observer
import com.gh.common.util.DialogUtils
import com.gh.common.util.MtaHelper
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.MyVideoEntity
import com.gh.gamecenter.qa.answer.edit.AnswerEditActivity
import com.gh.gamecenter.qa.editor.GameActivity
import com.gh.gamecenter.qa.editor.InsertAnswerWrapperActivity
import com.gh.gamecenter.qa.editor.InsertArticleWrapperActivity
import com.gh.gamecenter.qa.editor.VideoActivity
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.qa.editor.*
import com.gh.gamecenter.qa.entity.AnswerEntity
import com.gh.gamecenter.qa.entity.ArticleEntity
import com.gh.gamecenter.qa.entity.EditorInsertEntity
import com.gh.gamecenter.video.poster.PosterEditActivity
import com.gh.gamecenter.video.upload.UploadManager
import com.google.gson.JsonObject
import com.halo.assistant.HaloApp
import com.lightgame.utils.Util_System_Keyboard
import com.lightgame.utils.Utils
import com.lightgame.view.CheckableImageView
import kotterknife.bindView
import io.reactivex.disposables.Disposable
import org.json.JSONArray
import org.json.JSONObject
import java.io.File
abstract class BaseRichEditorActivity : ToolBarActivity() {
// TODO: 移动到module_bbs模块
abstract class BaseRichEditorActivity<VM : BaseRichEditorViewModel> : ToolBarActivity(),
KeyboardHeightObserver, UploadVideoListener {
val mRichEditor by bindView<RichEditor>(R.id.rich_editor)
val mDraftBtn by bindView<TextView>(R.id.draft_btn)
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 val mEditorParagraph by bindView<CheckableImageView>(R.id.editor_paragraph)
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 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 mEditorInsertDetail by bindView<View>(R.id.editor_insert_detail)
private lateinit var mEditorTextNumTv: TextView
private lateinit var mEditorFont: CheckableImageView
private lateinit var mEditorLink: CheckableImageView
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
private var mAgreePostPic: Boolean = false
private var mGuideDisposable: Disposable? = null
protected lateinit var mViewModel: VM
protected var mIsKeyBoardShow = false
private var mKeyboardHeightProvider: KeyboardHeightProvider? = null
private var mMaxUploadVideoGuideCount = 2
val FILE_HOST = "file:///"
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
DialogUtils.fixWebViewKeyboardNotWorking(this)
if (resultCode != Activity.RESULT_OK) return
var insertData: EditorInsertEntity? = null
val insertData: EditorInsertEntity?
when (requestCode) {
INSERT_ANSWER_CODE -> {
val answer = data?.getParcelableExtra<AnswerEntity>(AnswerEntity::class.java.simpleName)
if (answer != null) insertData = EditorInsertEntity.transform(answer)
val answer =
data?.getParcelableExtra<AnswerEntity>(AnswerEntity::class.java.simpleName)
if (answer != null) {
mRichEditor.focusEditor()
insertData = EditorInsertEntity.transform(answer)
mRichEditor.insertCustomStyleLink(insertData)
}
}
INSERT_ARTICLE_CODE -> {
val article = data?.getParcelableExtra<ArticleEntity>(ArticleEntity::class.java.simpleName)
if (article != null) insertData = EditorInsertEntity.transform(article)
val article =
data?.getParcelableExtra<ArticleEntity>(ArticleEntity::class.java.simpleName)
if (article != null) {
mRichEditor.focusEditor()
insertData = EditorInsertEntity.transform(article)
mRichEditor.insertCustomStyleLink(insertData)
}
}
INSERT_GAME_CODE -> {
val game = data?.getParcelableExtra<GameEntity>(GameEntity::class.java.simpleName)
if (game != null) insertData = EditorInsertEntity.transform(game)
if (game != null) {
mRichEditor.focusEditor()
insertData = EditorInsertEntity.transform(game)
mRichEditor.insertCustomStyleLink(insertData)
}
}
VideoActivity.INSERT_VIDEO_CODE -> {
val video = data?.getParcelableExtra<MyVideoEntity>(MyVideoEntity::class.java.simpleName)
if (video != null) mRichEditor.insertCustomVideo(video)
return
INSERT_GAME_COLLECTION_CODE -> {
val gameCollectionEntity =
data?.getParcelableExtra<GamesCollectionEntity>(GamesCollectionEntity::class.java.simpleName)
if (gameCollectionEntity != null) {
mRichEditor.focusEditor()
insertData = EditorInsertEntity.transform(gameCollectionEntity)
mRichEditor.insertCustomStyleLink(insertData)
}
}
REQUEST_CODE_IMAGE -> {
if (data != null) mViewModel.uploadPic(data)
}
INSERT_MEDIA_VIDEO_CODE -> {
val localVideoList =
data?.getParcelableArrayListExtra<LocalVideoEntity>(LocalVideoEntity::class.java.name)
?: arrayListOf()
if (localVideoList.isNotEmpty()) {
mRichEditor.focusEditor()
uploadVideo(localVideoList)
}
}
REQUEST_CODE_IMAGE_CROP -> {
val imagePath = data?.getStringExtra(CropImageActivity.RESULT_CLIP_PATH)
if (!imagePath.isNullOrEmpty()) {
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)
}
}
}
mRichEditor.insertCustomStyleLink(insertData)
closeExtendedKeyboard()
AppExecutor.uiExecutor.executeWithDelay(Runnable {
Util_System_Keyboard.showSoftKeyboard(this)
}, 100)
}
@SuppressLint("AddJavascriptInterface")
private fun uploadVideo(localVideoList: ArrayList<LocalVideoEntity>) {
mViewModel.localVideoList.addAll(localVideoList)
runOnIoThread {
localVideoList.forEach {
if (it.poster.startsWith("http")) {
runOnUiThread {
mRichEditor.focusEditor()
mRichEditor.insertPlaceholderVideo(it.id, it.poster)
}
} else {
val videoThumbnail = BitmapUtils.getVideoThumbnail(it.filePath)
val filePath = "${cacheDir.absolutePath}${File.separator}${it.id}.webp"
BitmapUtils.saveBitmap(videoThumbnail, filePath)
it.poster = filePath
runOnUiThread {
mRichEditor.focusEditor()
mRichEditor.insertPlaceholderVideo(it.id, "$FILE_HOST${it.poster}")
}
}
}
mViewModel.uploadVideo()
}
}
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)
mRichEditor.setPadding(20, 15, 20, 15)
findView()
onRichClick()
mViewModel = provideViewModel()
mViewModel.setUploadVideoListener(this)
mKeyboardHeightProvider = KeyboardHeightProvider(this)
mRichEditor.post { mKeyboardHeightProvider?.start() }
mRichEditor.enableForceDark(DarkModeUtils.isDarkModeOn(this))
// 防止个别手机在Js里无法获取粘贴内容
mRichEditor.addJavascriptInterface(OnPasteListener(), "onPasteListener")
mRichEditor.addJavascriptInterface(OnCursorChangeListener(), "OnCursorChangeListener")
mRichEditor.addJavascriptInterface(OnEditorTextChangeListener(), "OnEditorTextChangeListener")
mRichEditor.addJavascriptInterface(
OnEditorTextChangeListener(),
"OnEditorTextChangeListener"
)
mRichEditor.addJavascriptInterface(OnVideoListener(), "onVideoListener")
mRichEditor.addJavascriptInterface(
OnQuoteCountChangeListener(),
"OnQuoteCountChangeListener"
)
mRichEditor.setInputEnabled(true)
mRichEditor.setPadding(16, 12, 16, 12)
mDraftBtn.text = if (this is AnswerEditActivity) {
"回答草稿"
} else "帖子草稿"
mRichEditor.setOnTouchListener { _, _ ->
if (mIsExtendedKeyboardShow) {
closeExtendedKeyboard()
Util_System_Keyboard.showSoftKeyboard(this)
//是否消费事件根据mRichEditor是否含有焦点决定mRichEditor没有焦点则不消费事件
mRichEditor.hasFocus()
} else false
}
mOriginalCb.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
mOriginalTipsContainer.alpha = 0f
mOriginalTipsContainer.visibility = View.VISIBLE
ObjectAnimator.ofFloat(mOriginalTipsContainer, "alpha", 0f, 1f).setDuration(200).start()
}
}
observeData()
}
@OnClick(R.id.editor_image, R.id.editor_font, R.id.editor_link, R.id.editor_paragraph,
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)
fun onRichClick(view: View) {
when (view.id) {
R.id.editor_font -> {
mEditorFont.isChecked = !mEditorFont.isChecked
mEditorParagraph.isChecked = false
mEditorLink.isChecked = false
mEditorFontContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorParagraphContainer.visibility = if (!mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = if (!mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorInsertDetail.visibility = mEditorFontContainer.visibility
private fun observeData() {
mViewModel.chooseImagesUpload.observe(this, Observer {
mRichEditor.focusEditor()
for (key in it.keys) {
mRichEditor.insertPlaceholderImage(key)
}
R.id.editor_paragraph -> {
mEditorParagraph.isChecked = !mEditorParagraph.isChecked
mEditorFont.isChecked = false
mEditorLink.isChecked = false
mEditorParagraphContainer.visibility = if (mEditorParagraph.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = if (!mEditorParagraph.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = if (!mEditorParagraph.isChecked) View.VISIBLE else View.GONE
mEditorInsertDetail.visibility = mEditorParagraphContainer.visibility
})
mViewModel.chooseImagesUploadSuccess.observe(this, Observer {
val jsonArray = JSONArray()
for (key in it.keys) {
val jsonObject = JSONObject()
jsonObject.put("id", key)
jsonObject.put("url", it[key])
jsonArray.put(jsonObject)
}
R.id.editor_link -> {
mEditorLink.isChecked = !mEditorLink.isChecked
mEditorFont.isChecked = false
mEditorParagraph.isChecked = false
mEditorLinkContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorParagraphContainer.visibility = if (!mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = if (!mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorInsertDetail.visibility = mEditorLinkContainer.visibility
}
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()
mRichEditor.replacePlaceholderImage(jsonArray.toString())
})
}
if (mEditorFontStrikeThrough.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-删除线")
override fun onKeyboardHeightChanged(height: Int, orientation: Int) {
mIsKeyBoardShow = height > 0
if (height > 0) {
closeExtendedKeyboard()
}
}
fun closeExtendedKeyboard() {
mEditorInsertDetailContainer.visibility = View.GONE
mEditorFont.isChecked = false
mEditorLink.isChecked = false
mIsExtendedKeyboardShow = false
}
protected fun controlEditorInsertContainerEnabled(isEnabled: Boolean) {
mEditorFont.isEnabled = isEnabled
}
private fun onRichClick() {
mEditorFont.setOnClickListener {
controlEditorFontContainer()
}
mEditorLink.setOnClickListener {
controlEditorLinkContainer()
}
mEditorFontBold.setOnClickListener {
mEditorFontBold.isChecked = !mEditorFontBold.isChecked
mRichEditor.setBold()
if (mEditorFontBold.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-加粗")
}
}
mEditorFontItalic.setOnClickListener {
mEditorFontItalic.isChecked = !mEditorFontItalic.isChecked
mRichEditor.setItalic()
if (mEditorFontItalic.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-斜体")
}
}
mEditorFontStrikeThrough.setOnClickListener {
mEditorFontStrikeThrough.isChecked = !mEditorFontStrikeThrough.isChecked
mRichEditor.setStrikeThrough()
if (mEditorFontStrikeThrough.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-删除线")
}
}
mEditorFontUnderline.setOnClickListener {
mEditorFontUnderline.isChecked = !mEditorFontUnderline.isChecked
mRichEditor.setUnderline()
if (mEditorFontUnderline.isChecked) {
MtaHelper.onEvent(mtaEventName(), "文字样式", "文字样式-下滑线")
}
}
mEditorParagraphH1.setOnClickListener {
if (mEditorParagraphH1.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-1级标题")
mRichEditor.setHeading(1)
}
mEditorParagraphH1.isChecked = !mEditorParagraphH1.isChecked
}
mEditorParagraphH2.setOnClickListener {
if (mEditorParagraphH2.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-2级标题")
mRichEditor.setHeading(2)
}
mEditorParagraphH2.isChecked = !mEditorParagraphH2.isChecked
}
mEditorParagraphH3.setOnClickListener {
if (mEditorParagraphH3.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-3级标题")
mRichEditor.setHeading(3)
}
mEditorParagraphH3.isChecked = !mEditorParagraphH3.isChecked
}
mEditorParagraphH4.setOnClickListener {
if (mEditorParagraphH4.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-4级标题")
mRichEditor.setHeading(4)
}
mEditorParagraphH4.isChecked = !mEditorParagraphH4.isChecked
}
mEditorParagraphQuote.setOnClickListener {
if (mEditorParagraphQuote.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-引用")
mRichEditor.setBlockquote()
}
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
}
chooseImage()
NewLogUtils.logChooseMedia(
"view_media",
if (mtaEventName() == "提问帖") "提问帖" else "帖子",
"图片"
)
}
findViewById<View>(R.id.uploadVideoGuideClose).setOnClickListener {
hideUploadVideoGuide()
if (mGuideDisposable != null && !mGuideDisposable!!.isDisposed) {
mGuideDisposable!!.dispose()
mGuideDisposable = null
}
}
findViewById<View>(R.id.originalTipsClose).setOnClickListener {
val animator = ObjectAnimator.ofFloat(mOriginalTipsContainer, "alpha", 1f, 0f).setDuration(200)
animator.doOnEnd {
mOriginalTipsContainer.visibility = View.GONE
}
animator.start()
}
}
private fun chooseVideo() {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-视频")
val videoCount = mViewModel.quoteCountEntity.videoCount
if (videoCount >= MAX_MEDIA_COUNT) {
toast(R.string.answer_edit_max_video_hint)
return
}
try {
PermissionHelper.checkStoragePermissionBeforeAction(this,
object : EmptyCallback {
override fun onCallback() {
val maxChooseCount = if (videoCount + 3 <= MAX_MEDIA_COUNT) 3 else MAX_MEDIA_COUNT - videoCount
startActivityForResult(
LocalMediaActivity.getIntent(
this@BaseRichEditorActivity,
LocalMediaActivity.ChooseType.VIDEO,
maxChooseCount,
if (mtaEventName() == "提问帖") "发提问帖" else "发帖子"
), INSERT_MEDIA_VIDEO_CODE
)
NewLogUtils.logChooseMedia(
"view_media",
if (mtaEventName() == "提问帖") "提问帖" else "帖子",
"视频"
)
}
})
} catch (e: Exception) {
toast(R.string.media_image_hint)
e.printStackTrace()
}
}
private fun chooseImage() {
MtaHelper.onEvent(mtaEventName(), "插入图片", "插入图片")
val imageCount = mViewModel.quoteCountEntity.imageCount
if (imageCount >= MAX_MEDIA_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 intent = LocalMediaActivity.getIntent(
this@BaseRichEditorActivity,
LocalMediaActivity.ChooseType.IMAGE,
maxChooseCount,
if (mtaEventName() == "提问帖") "发提问帖" else "发帖子"
)
startActivityForResult(intent, REQUEST_CODE_IMAGE)
}
})
} catch (e: Exception) {
toast(R.string.media_image_hint)
e.printStackTrace()
}
}
private fun controlEditorFontContainer() {
mEditorFont.isChecked = !mEditorFont.isChecked
mEditorLink.isChecked = false
val isShouldDelay = if (mEditorFont.isChecked) {
Util_System_Keyboard.hideSoftKeyboard(this)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility =
if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorParagraphContainer.visibility =
if (mEditorFont.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = View.GONE
mTagsContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorFont.isChecked
}, if (isShouldDelay) 200 else 0L)
}
private fun controlEditorLinkContainer() {
mEditorLink.isChecked = !mEditorLink.isChecked
mEditorFont.isChecked = false
val isShouldDelay = if (mEditorLink.isChecked) {
Util_System_Keyboard.hideSoftKeyboard(this)
true
} else {
Util_System_Keyboard.showSoftKeyboard(this)
false
}
mEditorInsertDetailContainer.postDelayed({
mEditorInsertDetailContainer.visibility =
if (mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorLinkContainer.visibility = if (mEditorLink.isChecked) View.VISIBLE else View.GONE
mEditorFontContainer.visibility = View.GONE
mEditorParagraphContainer.visibility = View.GONE
mTagsContainer.visibility = View.GONE
mIsExtendedKeyboardShow = mEditorLink.isChecked
}, if (isShouldDelay) 200 else 0L)
}
override fun handleBackPressed(): Boolean {
if (mIsExtendedKeyboardShow) {
closeExtendedKeyboard()
return true
}
return super.handleBackPressed()
}
override fun onResume() {
super.onResume()
mKeyboardHeightProvider?.setKeyboardHeightObserver(this)
}
override fun onPause() {
super.onPause()
mKeyboardHeightProvider?.setKeyboardHeightObserver(null)
}
//视频上传功能引导
fun showUploadVideoGuide() {
mUploadVideoGuideContainer.postDelayed({
val count = SPUtils.getInt(getVideoGuideKey(), 0)
if (count >= mMaxUploadVideoGuideCount) return@postDelayed
mUploadVideoGuideContainer.alpha = 0f
mUploadVideoGuideContainer.visibility = View.VISIBLE
mUploadVideoGuideContainer.animate().alpha(1f).setDuration(200).start()
mGuideDisposable = countDownTimer(3) { finish, _ ->
if (finish) {
hideUploadVideoGuide()
}
}
R.id.editor_paragraph_h1 -> {
if (mEditorParagraphH1.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-1级标题")
mRichEditor.setHeading(1)
}
mEditorParagraphH1.isChecked = !mEditorParagraphH1.isChecked
}
R.id.editor_paragraph_h2 -> {
if (mEditorParagraphH2.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-2级标题")
mRichEditor.setHeading(2)
}
mEditorParagraphH2.isChecked = !mEditorParagraphH2.isChecked
}
R.id.editor_paragraph_h3 -> {
if (mEditorParagraphH3.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-3级标题")
mRichEditor.setHeading(3)
}
mEditorParagraphH3.isChecked = !mEditorParagraphH3.isChecked
}
R.id.editor_paragraph_h4 -> {
if (mEditorParagraphH4.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-4级标题")
mRichEditor.setHeading(4)
}
mEditorParagraphH4.isChecked = !mEditorParagraphH4.isChecked
}
R.id.editor_paragraph_quote -> {
if (mEditorParagraphQuote.isChecked) {
mRichEditor.formatBlock()
} else {
MtaHelper.onEvent(mtaEventName(), "段落样式", "段落样式-引用")
mRichEditor.setBlockquote()
}
mEditorParagraphQuote.isChecked = !mEditorParagraphQuote.isChecked
}
R.id.editor_link_answer -> {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-回答")
startActivityForResult(InsertAnswerWrapperActivity.getIntent(this), INSERT_ANSWER_CODE)
}
R.id.editor_link_article -> {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-文章")
startActivityForResult(InsertArticleWrapperActivity.getIntent(this), INSERT_ARTICLE_CODE)
}
R.id.editor_link_game -> {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-游戏")
startActivityForResult(GameActivity.getIntent(this, GameActivity.INSERT_GAME_TITLE), INSERT_GAME_CODE)
}
R.id.editor_link_video -> {
MtaHelper.onEvent(mtaEventName(), "插入链接", "插入链接-视频")
startActivityForResult(VideoActivity.getIntent(this), VideoActivity.INSERT_VIDEO_CODE)
}
SPUtils.setInt(getVideoGuideKey(), count + 1)
}, 1000)
}
fun hideUploadVideoGuide() {
val animate = mUploadVideoGuideContainer.animate().alpha(0f).setDuration(200)
animate.doOnEnd {
mUploadVideoGuideContainer.visibility = View.GONE
}
animate.start()
}
override fun onDestroy() {
super.onDestroy()
mKeyboardHeightProvider?.close()
val path = mViewModel.currentUploadingVideo?.filePath
if (path != null && UploadManager.isUploading(path)) {
UploadManager.cancelTask(path)
}
if (mGuideDisposable != null && !mGuideDisposable!!.isDisposed) {
mGuideDisposable!!.dispose()
mGuideDisposable = null
}
}
@ -237,6 +614,7 @@ abstract class BaseRichEditorActivity : ToolBarActivity() {
mEditorFontBold.isChecked = elements.contains(ELEMENT_NAME_BOLD)
mEditorFontItalic.isChecked = elements.contains(ELEMENT_NAME_ITALIC)
mEditorFontStrikeThrough.isChecked = elements.contains(ELEMENT_NAME_STRIKE)
mEditorFontUnderline.isChecked = elements.contains(ELEMENT_NAME_UNDERLINE)
mEditorParagraphH1.isChecked = elements.contains(ELEMENT_PARAGRAPH_H1)
mEditorParagraphH2.isChecked = elements.contains(ELEMENT_PARAGRAPH_H2)
mEditorParagraphH3.isChecked = elements.contains(ELEMENT_PARAGRAPH_H3)
@ -250,11 +628,12 @@ abstract class BaseRichEditorActivity : ToolBarActivity() {
@JavascriptInterface
fun onPaste() {
val clipboard =
HaloApp.getInstance().application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
HaloApp.getInstance().application.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clipText = clipboard.text.toString()
if (!TextUtils.isEmpty(clipText)) {
// 替换换行符号否则 插入失败
val text = clipText.replace("[ ]".toRegex(), "&nbsp;").replace("[\r\n]".toRegex(), "<br/>")
val text = clipText.replace("[ ]".toRegex(), "&nbsp;")
.replace("[\r\n]".toRegex(), "<br/>")
mBaseHandler.post { mRichEditor.insertHtml(text) }
}
}
@ -264,16 +643,120 @@ abstract class BaseRichEditorActivity : ToolBarActivity() {
@JavascriptInterface
fun onTextChange(count: Int) {
val num = if (count > MAX_INPUT_TEXT_NUM) MAX_INPUT_TEXT_NUM - count else count
mEditorTextNumTv.text = num.toString()
mEditorTextNumTv.post {
mEditorTextNumTv.text = num.toString()
mViewModel.quoteCountEntity.textCount = num
}
}
}
private inner class OnQuoteCountChangeListener {
@JavascriptInterface
fun onQuoteCountChange(
imageCount: Int,
articleCount: Int,
answerCount: Int,
videoCount: Int,
gameCount: Int
) {
mEditorTextNumTv.post {
mViewModel.quoteCountEntity.apply {
this.imageCount = imageCount
this.articleCount = articleCount
this.answerCount = answerCount
this.videoCount = videoCount
this.gameCount = gameCount
}
}
}
}
private inner class OnVideoListener {
@JavascriptInterface
fun showDeleteDialog(id: String) {
DialogHelper.showDialog(this@BaseRichEditorActivity, "提示", "确定删除吗?", "确定", "取消", {
runOnUiThread {
mRichEditor.delPlaceholderVideo(id)
mViewModel.deleteVideo(id)
}
})
}
@JavascriptInterface
fun updatePoster(id: String, videoId: String, url: String) {
mViewModel.id = id
mViewModel.videoId = videoId
val videoEntity = VideoEntity(url = url)
val intent =
PosterEditActivity.getIntentByVideo(this@BaseRichEditorActivity, videoEntity)
startActivityForResult(intent, REQUEST_CODE_IMAGE_CROP)
}
@JavascriptInterface
fun deleteUploadingVideo(id: String) {
mViewModel.deleteVideo(id)
}
@JavascriptInterface
fun reUploadVideo(id: String) {
val video = mViewModel.uploadVideoErrorList.find { it.id == id }
if (video != null) {
mViewModel.localVideoList.add(video)
mViewModel.uploadVideoErrorList.remove(video)
mViewModel.uploadVideo()
}
}
}
override fun insertPlaceholderVideo(id: String, poster: String) {
mRichEditor.insertPlaceholderVideo(id, poster)
}
override fun updateVideoProgress(id: String, progress: String) {
mRichEditor.updateVideoProgress(id, progress)
}
override fun videoUploadFinished(id: String, url: String, msg: JsonObject) {
try {
val obj = JSONObject()
obj.put("poster", msg.get("poster").asString)
obj.put("url", msg.get("url").asString)
obj.put("duration", RichEditor.formatVideoDuration(msg.get("length").asLong))
obj.put("id", msg.get("_id").asString)
obj.put("status", "pending")
mRichEditor.videoUploadFinished(id, url, obj.toString())
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
override fun changePoster(id: String, poster: String) {
mRichEditor.changePoster(id, poster)
}
override fun videoUploadFailed(id: String) {
mRichEditor.videoUploadFailed(id)
}
open fun getSelectedLabel(): Int = 0
open fun onActivityDialogResult(requestCode: Int, resultCode: Int, data: Intent?) {}
abstract fun mtaEventName(): String
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))
}
companion object {
const val ELEMENT_NAME_BOLD = " b "
const val ELEMENT_NAME_ITALIC = " i "
const val ELEMENT_NAME_STRIKE = " strike "
const val ELEMENT_NAME_UNDERLINE = " u "
const val ELEMENT_PARAGRAPH_H1 = " h1 "
const val ELEMENT_PARAGRAPH_H2 = " h2 "
const val ELEMENT_PARAGRAPH_H3 = " h3 "
@ -283,6 +766,13 @@ abstract class BaseRichEditorActivity : ToolBarActivity() {
const val INSERT_ANSWER_CODE = 411
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 REQUEST_CODE_IMAGE = 120
const val INSERT_MEDIA_VIDEO_CODE = 121
const val REQUEST_CODE_IMAGE_CROP = 122
}
}

View File

@ -0,0 +1,448 @@
package com.gh.base
import android.app.Application
import android.content.Intent
import android.graphics.Bitmap
import android.media.ThumbnailUtils
import android.provider.MediaStore
import android.text.TextUtils
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MediatorLiveData
import androidx.lifecycle.MutableLiveData
import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment
import com.gh.gamecenter.core.runOnUiThread
import com.gh.gamecenter.R
import com.gh.gamecenter.common.utils.*
import com.gh.gamecenter.core.utils.*
import com.gh.gamecenter.entity.ErrorEntity
import com.gh.gamecenter.entity.LocalVideoEntity
import com.gh.gamecenter.entity.QuoteCountEntity
import com.gh.gamecenter.qa.BbsType
import com.gh.gamecenter.common.retrofit.Response
import com.gh.gamecenter.retrofit.RetrofitManager
import com.gh.gamecenter.retrofit.service.ApiService
import com.gh.gamecenter.video.upload.OnUploadListener
import com.gh.gamecenter.video.upload.UploadManager
import com.google.gson.JsonObject
import com.lightgame.utils.Utils
import com.zhihu.matisse.Matisse
import com.zhihu.matisse.internal.utils.PathUtils
import io.reactivex.disposables.Disposable
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 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
val mapImages = HashMap<String, String>()
val localVideoList = ArrayList<LocalVideoEntity>()
val uploadVideoErrorList = ArrayList<LocalVideoEntity>()
var currentUploadingVideo: LocalVideoEntity? = null
var type: String = "" //游戏论坛game_bbs 官方论坛official_bbs
private var mUploadVideoListener: UploadVideoListener? = null
val TITLE_MIN_LENGTH = 6
val MIN_TEXT_LENGTH = 6
val MAX_TEXT_LENGTH = 10000
val FILE_HOST = "file:///"
var id = ""//视频标记
var videoId = ""//更改封面视频id
val quoteCountEntity = QuoteCountEntity()//数据上报用
fun setUploadVideoListener(uploadVideoListener: UploadVideoListener) {
this.mUploadVideoListener = uploadVideoListener
}
//检查图片是否符合规则并上传图片
fun uploadPic(data: Intent) {
val uris = Matisse.obtainResult(data)
val pictureList = ArrayList<String>()
for (uri in uris) {
val picturePath = PathUtils.getPath(getApplication(), uri)
if (picturePath != null) {
if (File(picturePath).length() > ImageUtils.getUploadFileMaxSize()) {
val count = ImageUtils.getUploadFileMaxSize() / 1024 / 1024
val application: Application = getApplication()
Utils.toast(
getApplication(),
application.getString(R.string.pic_max_hint, count)
)
continue
}
Utils.log("picturePath = $picturePath")
pictureList.add(picturePath)
} else {
Utils.log("picturePath is null")
}
}
if (pictureList.size == 0) return
val imageType = when (getRichType()) {
RichType.ARTICLE -> UploadImageUtils.UploadType.community_article
RichType.QUESTION -> UploadImageUtils.UploadType.question
else -> UploadImageUtils.UploadType.poster
}
uploadImageSubscription = UploadImageUtils.compressAndUploadImageList(
imageType,
pictureList,
false,
object : UploadImageUtils.OnUploadImageListListener {
override fun onProgress(total: Long, progress: Long) {}
override fun onCompressSuccess(imageUrls: List<String>) {
val chooseImageMd5Map = LinkedHashMap<String, String>()
imageUrls.forEach {
chooseImageMd5Map[MD5Utils.getUrlMD5(it)] = ""
}
uploadingImage.add(chooseImageMd5Map)
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] ?: ""
}
chooseImagesUploadSuccess.postValue(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)] = ""
}
//value为空会删除PlaceholderImage
chooseImagesUploadSuccess.postValue(map)
for (error in errorMap.values) {
if (error is HttpException && error.code() == 403) {
Utils.toast(getApplication(), errorSize.toString() + "张违规图片上传失败")
return
}
}
Utils.toast(getApplication(), errorSize.toString() + "张图片上传失败")
}
}
override fun onError(errorMap: Map<String, Exception>) {
val errorSize = errorMap.size
if (errorSize > 0) {
val map = LinkedHashMap<String, String>()
for (key in errorMap.keys) {
map[MD5Utils.getUrlMD5(key)] = ""
}
//value为空会删除PlaceholderImage
chooseImagesUploadSuccess.postValue(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 (errorSize == 1) {
Utils.toast(getApplication(), "图片上传失败")
} else {
Utils.toast(getApplication(), errorSize.toString() + "张图片上传失败")
}
}
})
}
fun uploadPoster(picturePath: String) {
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("封面上传中...", true))
uploadImageSubscription =
UploadImageUtils.compressAndUploadImage(
UploadImageUtils.UploadType.poster,
picturePath,
false,
object : UploadImageUtils.OnUploadImageListener {
override fun onSuccess(imageUrl: String) {
patchVideoPoster(imageUrl)
}
override fun onError(e: Throwable?) {
handleUploadPosterResult(true)
}
override fun onProgress(total: Long, progress: Long) {
}
})
}
private fun patchVideoPoster(poster: String) {
if (id.isEmpty() || videoId.isEmpty()) return
val map = hashMapOf("poster" to poster, "type" to getVideoType())
mApi.patchInsertVideo(videoId, map.toRequestBody())
.compose(observableToMain())
.subscribe(object : Response<ResponseBody>() {
override fun onResponse(response: ResponseBody?) {
super.onResponse(response)
mUploadVideoListener?.changePoster(id, poster)
handleUploadPosterResult(false)
}
override fun onFailure(e: HttpException?) {
super.onFailure(e)
handleUploadPosterResult(true)
}
})
}
private fun handleUploadPosterResult(isFailure: Boolean = false) {
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("封面上传中...", false))
if (isFailure) {
ToastUtils.showToast("封面更改失败")
}
id = ""
videoId = ""
}
fun deleteVideo(id: String) {
if (localVideoList.isNotEmpty()) {
val video = localVideoList.find { it.id == id }
if (video != null) {
if (UploadManager.isUploading(video.filePath)) {
UploadManager.cancelTask(video.filePath)
}
localVideoList.remove(video)
}
}
if (uploadVideoErrorList.isNotEmpty()) {
val video = uploadVideoErrorList.find { it.id == id }
if (video != null) {
uploadVideoErrorList.remove(video)
}
}
if (currentUploadingVideo?.id == id) {
currentUploadingVideo = null
uploadVideo()
}
}
fun uploadVideo() {
if (currentUploadingVideo != null) return
if (localVideoList.isEmpty()) return
currentUploadingVideo = localVideoList[0]
UploadManager.createUploadTask(currentUploadingVideo?.filePath
?: "", object : OnUploadListener {
override fun onProgressChanged(
uploadFilePath: String,
currentSize: Long,
totalSize: Long,
speed: Long
) {
runOnUiThread {
val percent = (currentSize * 100 / totalSize.toFloat()).roundTo(1)
currentUploadingVideo?.id?.let {
mUploadVideoListener?.updateVideoProgress(it, percent.toString())
}
}
}
override fun onUploadSuccess(uploadFilePath: String, url: String) {
if (currentUploadingVideo != null) {
postVideoPosterAndInfo(uploadFilePath, url)
}
}
override fun onUploadFailure(uploadFilePath: String, errorMsg: String) {
uploadVideoFailure()
}
})
}
private fun postVideoPosterAndInfo(uploadFilePath: String, url: String) {
val localVideoPoster =
getApplication<Application>().cacheDir.absolutePath + File.separator + System.currentTimeMillis() + ".jpg"
try {
val bmp = ThumbnailUtils.createVideoThumbnail(
uploadFilePath,
MediaStore.Images.Thumbnails.MINI_KIND
)
// bmp 可能为空
FileOutputStream(localVideoPoster).use { out ->
bmp?.compress(Bitmap.CompressFormat.PNG, 100, out)
}
} catch (e: java.lang.Exception) {
e.printStackTrace()
ToastUtils.showToast("视频封面操作失败")
uploadVideoFailure()
return
}
uploadImageSubscription =
UploadImageUtils.compressAndUploadImage(
UploadImageUtils.UploadType.poster,
localVideoPoster,
false,
object : UploadImageUtils.OnUploadImageListener {
override fun onSuccess(imageUrl: String) {
postVideoInfo(url, imageUrl)
}
override fun onError(e: Throwable?) {
uploadVideoFailure()
}
override fun onProgress(total: Long, progress: Long) {
}
})
}
private fun postVideoInfo(url: String, poster: String) {
val map = HashMap<String, Any>().apply {
put("poster", poster)
put("url", url)
put("format", currentUploadingVideo?.format ?: "")
put("size", currentUploadingVideo?.size ?: 0)
put("length", (currentUploadingVideo?.duration ?: 0) / 1000)
put("type", getVideoType())
}
val requestBody = map.toRequestBody()
mApi.insertVideo(requestBody)
.compose(observableToMain())
.subscribe(object : Response<JsonObject>() {
override fun onResponse(response: JsonObject?) {
super.onResponse(response)
if (response != null) {
uploadVideoSuccess(poster, url, response)
}
}
override fun onFailure(e: HttpException?) {
super.onFailure(e)
uploadVideoFailure()
}
})
}
private fun uploadVideoSuccess(poster: String, url: String, data: JsonObject) {
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("封面上传中...", false))
currentUploadingVideo?.let {
mUploadVideoListener?.changePoster(it.id, poster)
mUploadVideoListener?.videoUploadFinished(it.id, url, data)
UploadManager.cancelTask(it.filePath)
localVideoList.remove(it)
}
currentUploadingVideo = null
uploadVideo()
}
private fun uploadVideoFailure() {
processDialog.postValue(WaitingDialogFragment.WaitingDialogData("封面上传中...", false))
currentUploadingVideo?.let {
runOnUiThread {
mUploadVideoListener?.videoUploadFailed(it.id)
}
uploadVideoErrorList.add(it)
localVideoList.remove(it)
UploadManager.cancelTask(it.filePath)
}
currentUploadingVideo = null
uploadVideo()
}
fun checkIsAllUploadedAndToast(): Boolean {
if (localVideoList.isNotEmpty() || uploadVideoErrorList.isNotEmpty()) {
ToastUtils.showToast("视频未上传完成,视频内容保存失败")
return false
}
return true
}
private fun getVideoType(): String {
return when (type) {
BbsType.GAME_BBS.value -> {
when (getRichType()) {
RichType.ARTICLE -> BbsType.GAME_BBS_ARTICLE_INSERT.value
RichType.QUESTION -> BbsType.GAME_BBS_QUESTION_INSERT.value
else -> ""
}
}
BbsType.OFFICIAL_BBS.value -> {
when (getRichType()) {
RichType.ARTICLE -> BbsType.OFFICIAL_BBS_ARTICLE_INSERT.value
RichType.QUESTION -> BbsType.OFFICIAL_BBS_QUESTION_INSERT.value
else -> ""
}
}
else -> ""
}
}
abstract fun getRichType(): RichType
}
interface UploadVideoListener {
/**
* 插入视频占位图
*/
fun insertPlaceholderVideo(id: String, poster: String)
/**
* 更新视频进度条
*/
fun updateVideoProgress(id: String, progress: String)
/**
* 上传视频完成
*/
fun videoUploadFinished(id: String, url: String, msg: JsonObject)
/**
* 更换封面图
*/
fun changePoster(id: String, poster: String)
/**
* 上传失败
*/
fun videoUploadFailed(id: String)
}
enum class RichType {
ARTICLE,
QUESTION,
ANSWER
}

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,77 +0,0 @@
package com.gh.base;
import android.app.Activity;
import android.app.Application.ActivityLifecycleCallbacks;
import android.os.Bundle;
import com.gh.common.notifier.Notifier;
import com.gh.common.util.DataUtils;
import com.gh.download.DownloadManager;
import com.halo.assistant.HaloApp;
import com.lightgame.utils.AppManager;
/**
* 1、写点针对生命周期的统计代码
* 2、写点通用的逻辑
* 3、接口解耦
*
* @author CsHeng
* @Date 09/05/2017
* @Time 6:22 PM
*/
public class GHActivityLifecycleCallbacksImpl implements ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
AppManager.getInstance().addActivity(activity);
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
CurrentActivityHolder.getActivitySet().add(activity);
if (HaloApp.isUserAcceptPrivacyPolicy(activity)) {
DataUtils.onResume(activity);
//FIXME 这里应该只是部分Activity需要
try {
// 初始化gameMap
DownloadManager.getInstance(activity).initGameMap();
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void onActivityPaused(Activity activity) {
CurrentActivityHolder.getActivitySet().remove(activity);
if (HaloApp.isUserAcceptPrivacyPolicy(activity)) {
DataUtils.onPause(activity);
}
}
@Override
public void onActivityStopped(Activity activity) {
Notifier.hide();
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
}
@Override
public void onActivityDestroyed(Activity activity) {
if (activity.isFinishing()) {
AppManager.getInstance().finishActivity(activity);
}
}
}

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(application).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

@ -0,0 +1,96 @@
package com.gh.base
import android.app.Activity
import android.app.Application
import android.os.Bundle
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.SplashScreenActivity
import com.gh.gamecenter.common.utils.PackageFlavorHelper
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.vspace.VHelper
import com.halo.assistant.HaloApp
// TODO移动到对应的模块
class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks {
override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
// do nothing
}
override fun onActivityStarted(activity: Activity) {
GlobalActivityManager.currentActivity = activity
}
override fun onActivityResumed(activity: Activity) {
// 判断是否需要显示或隐藏返回小浮窗
if (FloatingBackViewManager.getType().isNotEmpty()) {
if ((activity::class.java.name == "EnergyCenterActivity")
&& FloatingBackViewManager.getType() == FloatingBackViewManager.TYPE_TASK
) {
FloatingBackViewManager.disableBackView()
} else if (!shouldShowActivityBackView(activity)
&& FloatingBackViewManager.getType() == FloatingBackViewManager.TYPE_ACTIVITY
) {
FloatingBackViewManager.disableBackView()
} else {
FloatingBackViewManager.showBackView(activity)
}
}
if (HaloApp.isUserAcceptPrivacyPolicy(activity)) {
// FIXME 这里应该只是部分Activity需要
try {
// 初始化gameMap
if (activity !is SplashScreenActivity) {
DownloadManager.getInstance().initGameMap()
}
} catch (e: Exception) {
e.printStackTrace()
}
}
if (PackageFlavorHelper.IS_TEST_FLAVOR && activity is AppCompatActivity) {
DarkModeSwitchHelper.showDarkModeSwitchFloatingView(activity)
}
if (activity is AppCompatActivity && activity !is SplashScreenActivity) {
VHelper.showFeedbackDialogIfLastSuccessfulLaunchedGameExitUnexpectedly(activity)
}
}
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)
}
override fun onActivityPaused(activity: Activity) {
FloatingBackViewManager.dismissBackView()
if (PackageFlavorHelper.IS_TEST_FLAVOR && activity is AppCompatActivity) {
DarkModeSwitchHelper.dismissDarkModeSwitchFloatingView()
}
}
override fun onActivityStopped(activity: Activity) {
// do nothing
}
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {
// do nothing
}
override fun onActivityDestroyed(activity: Activity) {
// do nothing
}
}

View File

@ -0,0 +1,14 @@
package com.gh.base
import android.app.Activity
import java.lang.ref.WeakReference
object GlobalActivityManager {
private var mCurrentActivityWeakRef: WeakReference<Activity>? = null
var currentActivity: Activity?
get() = mCurrentActivityWeakRef?.get()
set(activity) {
mCurrentActivityWeakRef = WeakReference<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,262 +0,0 @@
package com.gh.base;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
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.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProviders;
import com.gh.common.util.DisplayUtils;
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, Toolbar.OnMenuItemClickListener {
@Nullable
private PackageViewModel mPackageViewModel;
protected View mToolbarContainer;
protected Toolbar mToolbar;
protected TextView mTitleTv;
@Nullable
private TextView mDownloadCountHint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStatusBarDarkMode(true, this);
initToolbar();
if (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);
if (mToolbar != null) {
// setSupportActionBar(mToolbar); // 替换actionBar后 toolBar无法控制
mToolbar.setNavigationIcon(provideNavigationIcon());
mToolbar.setNavigationOnClickListener(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);
}
@Override
public void setNavigationTitle(@StringRes int res) {
setNavigationTitle(getString(res));
}
/**
* 重写此方法以将标题靠左显示
*/
public boolean showToolbarAtLeft() {
return false;
}
@Override
public void setToolbarMenu(int res) {
if (mToolbar == null) return;
mToolbar.inflateMenu(res);
mToolbar.setOnMenuItemClickListener(this);
if (showDownloadMenu()) {
createDownloadMenu(res);
}
Menu menu = mToolbar.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));
}
}
}
// 限制标题实际宽度 防止标题挡住toolbar menu按钮
if (menu.size() > 2 && mTitleTv != null) {
ViewGroup.LayoutParams layoutParams = mTitleTv.getLayoutParams();
if (layoutParams instanceof RelativeLayout.LayoutParams) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) layoutParams;
if (showToolbarAtLeft()) {
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
params.addRule(RelativeLayout.CENTER_VERTICAL);
params.setMargins(DisplayUtils.dip2px(55), 0, DisplayUtils.dip2px(48 * menu.size()), 0);
} else {
params.setMargins(DisplayUtils.dip2px(90), 0, DisplayUtils.dip2px(90), 0);
}
mTitleTv.setLayoutParams(params);
}
} else {
if (showToolbarAtLeft()) {
ViewGroup.LayoutParams layoutParams = mTitleTv.getLayoutParams();
if (layoutParams instanceof RelativeLayout.LayoutParams) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) layoutParams;
params.addRule(RelativeLayout.CENTER_VERTICAL);
params.setMargins(DisplayUtils.dip2px(55), 0, DisplayUtils.dip2px(48 * menu.size()), 0);
mTitleTv.setLayoutParams(params);
}
}
}
}
private void createDownloadMenu(int res) {
if (res != R.menu.menu_download) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_download, mToolbar.getMenu());
}
if (mPackageViewModel != null) {
updateDownloadCountHint(mPackageViewModel.getFilterSameUpdateLiveData().getValue());
}
View downloadMenuView = mToolbar.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(getApplicationContext()).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 (showDownloadMenu() && mPackageViewModel != null) {
updateDownloadCountHint(mPackageViewModel.getFilterSameUpdateLiveData().getValue());
}
}
@Override
public MenuItem getMenuItem(int res) {
if (mToolbar == null) return null; //后续页面做好判断
return mToolbar.getMenu().findItem(res);
}
public void clearMenu() {
if (mToolbar != null) {
mToolbar.getMenu().clear();
}
}
public Menu getMenu() {
return mToolbar.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,80 +0,0 @@
package com.gh.base.fragment;
import android.app.Dialog;
import android.os.Bundle;
import android.view.KeyEvent;
import com.gh.common.util.ClickUtils;
import com.gh.gamecenter.R;
import com.lightgame.utils.RuntimeUtils;
import com.lightgame.utils.Utils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
/**
* @author CsHeng
* @Date 17/05/2017
* @Time 4:30 PM
*/
public class BaseDialogFragment extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Dialog dialog = new Dialog(getActivity(), R.style.DialogWindowTransparent);
dialog.setCanceledOnTouchOutside(false);
dialog.setOnKeyListener((dialog1, keyCode, event) -> {
if (keyCode == KeyEvent.KEYCODE_BACK && !ClickUtils.isFastDoubleClick()) {
return onBack();
}
return false;
});
dialog.setCancelable(false);
return dialog;
}
public void toast(@StringRes int res) {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED))
toast(getString(res));
}
public void toast(String msg) {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED))
Utils.toast(getContext(), msg);
}
public void toastLong(@StringRes int msg) {
toastLong(getString(msg));
}
public void toastLong(String msg) {
RuntimeUtils.getInstance().toastLong(getContext(), msg);
}
public boolean onBack() {
return false;
}
@Override
public void show(@NonNull FragmentManager manager, @Nullable String tag) {
Fragment fragment = manager.findFragmentByTag(tag);
if (fragment != null) {
FragmentTransaction transaction = manager.beginTransaction();
transaction.show(fragment);
transaction.commit();
} else {
super.show(manager, tag);
}
}
}

View File

@ -1,123 +0,0 @@
package com.gh.base.fragment
import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import butterknife.BindView
import com.gh.base.adapter.FragmentAdapter
import com.gh.common.view.TabIndicatorView
import com.gh.gamecenter.R
import com.google.android.material.tabs.TabLayout
import com.lightgame.view.NoScrollableViewPager
import java.util.*
abstract class BaseLazyTabFragment : BaseLazyFragment(), ViewPager.OnPageChangeListener {
@BindView(R.id.fragment_tab_layout)
lateinit var mTabLayout: TabLayout
@BindView(R.id.fragment_view_pager)
lateinit var mViewPager: NoScrollableViewPager
@BindView(R.id.fragment_tab_indicator)
lateinit var mTabIndicatorView: TabIndicatorView
var mFragmentsList: MutableList<Fragment> = arrayListOf()
var mTabTitleList: MutableList<String> = arrayListOf()
var mCheckedIndex = 0
abstract fun initFragmentList(fragments: MutableList<Fragment>)
abstract fun initTabTitleList(tabTitleList: MutableList<String>)
protected open fun provideIndicatorWidth(): Int {
return 20
}
protected open fun provideTabView(position: Int, tabTitle: String?): View? {
return null
}
override fun getLayoutId(): Int {
return R.layout.fragment_tablayout_viewpager
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
val fragments = childFragmentManager.fragments
if (fragments != null) {
for (fragment in fragments) {
fragment.onActivityResult(requestCode, resultCode, data)
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (arguments != null) mCheckedIndex = requireArguments().getInt(PAGE_INDEX, 0)
}
open fun providePagerAdapter(): PagerAdapter? {
return null
}
override fun onFragmentFirstVisible() {
super.onFragmentFirstVisible()
mTabTitleList.clear()
mFragmentsList.clear()
initTabTitleList(mTabTitleList)
mFragmentsList.addAll(restoreFragments())
if (mFragmentsList.isEmpty() || mFragmentsList.size != mTabTitleList.size) {
mFragmentsList.clear()
initFragmentList(mFragmentsList)
}
mViewPager.offscreenPageLimit = mFragmentsList.size
mViewPager.addOnPageChangeListener(this)
mViewPager.adapter = providePagerAdapter()
?: FragmentAdapter(childFragmentManager, mFragmentsList, mTabTitleList)
mViewPager.currentItem = mCheckedIndex
mTabLayout.setupWithViewPager(mViewPager)
mTabIndicatorView.setupWithTabLayout(mTabLayout)
mTabIndicatorView.setupWithViewPager(mViewPager)
mTabIndicatorView.setIndicatorWidth(provideIndicatorWidth())
for (i in 0 until mTabLayout.tabCount) {
val tab = mTabLayout.getTabAt(i) ?: continue
val tabTitle = if (tab.text != null) tab.text.toString() else ""
var tabView = provideTabView(i, tabTitle)
if (tabView == null) tabView = BaseFragment_TabLayout.createDefaultTabCustomView(tabTitle)
tab.customView = tabView
}
BaseFragment_TabLayout.initTabStyle(mTabLayout, mCheckedIndex)
}
private fun restoreFragments(): ArrayList<Fragment> {
val tag = "android:switcher:${mViewPager.id}:"
val fragments = ArrayList<Fragment>()
val childCount = mTabTitleList.size
for (index in 0 until childCount) {
val fragment = childFragmentManager.findFragmentByTag("$tag$index")
if (fragment != null) {
fragments.add(fragment)
}
}
return fragments
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
override fun onPageSelected(position: Int) {}
override fun onPageScrollStateChanged(state: Int) {}
companion object {
const val PAGE_INDEX = "PAGE_INDEX"
}
}

View File

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

View File

@ -1,54 +0,0 @@
package com.gh.common
import android.os.Handler
import android.os.Looper
import com.gh.common.AppExecutor.ioExecutor
import com.gh.common.AppExecutor.lightWeightIoExecutor
import com.gh.common.AppExecutor.uiExecutor
import io.reactivex.schedulers.Schedulers
import java.util.concurrent.Executor
import java.util.concurrent.Executors
/**
* APP 线程池管理类
*
* [ioExecutor] 是一个最大线程数固定的线程池,较为繁重的 IO 任务可以交给它
* [uiExecutor] 是主线程的包裹,需要切换至主线程执行可以用它
* [lightWeightIoExecutor] 是一个单线程的线程池,轻量级且需要保证同一线程的 IO 任务可以交给它
*
*/
object AppExecutor {
@JvmStatic
val uiExecutor by lazy { MainThreadExecutor() }
@JvmStatic
val lightWeightIoExecutor by lazy { Executors.newSingleThreadExecutor() }
@JvmStatic
val ioExecutor = Executors.newCachedThreadPool() // 用 by lazy 可能影响初始化速度
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

@ -3,37 +3,54 @@ package com.gh.common
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.util.Base64
import android.webkit.JavascriptInterface
import androidx.annotation.Keep
import androidx.appcompat.app.AppCompatActivity
import com.gh.base.CurrentActivityHolder
import com.gh.common.constant.Constants
import androidx.fragment.app.FragmentActivity
import com.gh.common.util.*
import com.gh.common.view.dsbridge.CompletionHandler
import com.gh.common.util.LogUtils
import com.gh.gamecenter.BuildConfig
import com.gh.gamecenter.ImageViewerActivity
import com.gh.gamecenter.LoginActivity
import com.gh.gamecenter.WebActivity
import com.gh.gamecenter.entity.Badge
import com.gh.gamecenter.common.callback.BiCallback
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.entity.NotificationUgc
import com.gh.gamecenter.common.loghub.LoghubUtils
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.CurrentActivityHolder
import com.gh.gamecenter.core.utils.DisplayUtils
import com.gh.gamecenter.core.utils.MtaHelper
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.energy.EnergyBridge
import com.gh.gamecenter.entity.MtaEvent
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.gh.gamecenter.security.BindPhoneActivity
import com.gh.gamecenter.user.LoginTag
import com.gh.gamecenter.user.UserRepository
import com.gh.gamecenter.help.QaFeedbackDialogFragment
import com.gh.gamecenter.login.entity.Badge
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.setting.compose.activity.ComposeAboutActivity
import com.gh.gamecenter.setting.compose.activity.ComposeBindPhoneActivity
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.JSONObject
import retrofit2.HttpException
import java.io.BufferedOutputStream
import java.io.File
import java.io.FileOutputStream
import java.util.*
import kotlin.collections.ArrayList
class DefaultJsApi(var context: Context) {
class DefaultJsApi(var context: Context, val entrance: String = "") {
private var mLoginHandler: CompletionHandler<Any>? = null
@JavascriptInterface
fun isGhzs(msg: Any): String {
@ -64,8 +81,12 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun login(msg: Any) {
val intent = LoginActivity.getIntent(context, "浏览器")
context.startActivity(intent)
if (SPUtils.getBoolean(Constants.SP_HAS_GET_PHONE_INFO) || NetworkUtils.isOpenMobileData(context)) {
QuickLoginHelper.startLogin(context, "浏览器")
} else {
val intent = LoginActivity.getIntent(context, "浏览器")
context.startActivity(intent)
}
}
@JavascriptInterface
@ -92,7 +113,7 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun getAppVersionCode(msg: Any): Int {
return PackageUtils.getVersionCode()
return PackageUtils.getGhVersionCode()
}
@JavascriptInterface
@ -108,35 +129,39 @@ class DefaultJsApi(var context: Context) {
wechatLoginInfoMap["access_token"] = jsonContent.getString("access_token")
wechatLoginInfoMap["refresh_token"] = jsonContent.getString("refresh_token")
RetrofitManager.getInstance(HaloApp.getInstance().application)
.api
.postBindWechat(wechatLoginInfoMap.createRequestBody())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : BiResponse<ResponseBody>() {
override fun onSuccess(data: ResponseBody) {
handler.complete(true)
}
WechatBindHelper.bindWechat(wechatLoginInfoMap, object : BiCallback<Boolean, Boolean> {
override fun onFirst(first: Boolean) {
EnergyBridge.postEnergyTask("bind_wechat")
handler.complete(true)
}
override fun onFailure(exception: Exception) {
handler.complete(false)
if (exception is HttpException) {
ErrorHelper.handleError(HaloApp.getInstance().application, exception.response().errorBody()?.string())
}
}
})
override fun onSecond(second: Boolean) {
handler.complete(false)
}
})
LoginHelper.unregisterCallback()
}
override fun onLoginFailure(loginType: LoginTag, error: String) {
handler.complete(false)
LoginHelper.unregisterCallback()
}
})
}
}
@JavascriptInterface
fun refreshWechatBindData(msg: Any) {
WechatBindHelper.getWechatConfig(null)
}
@JavascriptInterface
fun copyText(msg: Any) {
msg.toString().copyTextAndToast()
runOnUiThread {
msg.toString().copyTextAndToast()
}
}
@JavascriptInterface
@ -172,7 +197,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))
}
@ -198,6 +223,7 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun updateRegulationTestStatus(msg: Any) {
if (msg.toString().toLowerCase(Locale.getDefault()) == "pass") {
EnergyBridge.postEnergyTask("finish_etiquette_exam")
SPUtils.setString(Constants.SP_REGULATION_TEST_PASS_STATUS, "pass")
}
}
@ -215,22 +241,36 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun showIncompatibleVersionDialog(msg: Any) {
DialogUtils.showLowVersionDialog(context)
DialogHelper.showUpgradeDialog(context)
}
@JavascriptInterface
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)
}
@JavascriptInterface
fun inviteFriends(event: Any) {
val inviteEvent = event.toString().toObject() ?: InviteFriendsEvent()
val context = CurrentActivityHolder.getCurrentActivity()
if ("poster" == inviteEvent.type) {
ImageViewerActivity.base64Image = inviteEvent.poster.run {
if (this.startsWith("data:image/png;base64")) this.split(",")[1] else this
}
MessageShareUtils.getInstance(context).shareInviteFriends(context, inviteEvent.way)
} else {
ShareUtils.getInstance(context).shareInviteFriends(context, inviteEvent.url, inviteEvent.way)
}
}
@JavascriptInterface
fun bindPhone(msg: Any) {
val intent = BindPhoneActivity.getNormalIntent(context, false)
val intent = ComposeBindPhoneActivity.getNormalIntent(context, false)
context.startActivity(intent)
}
@ -243,7 +283,7 @@ class DefaultJsApi(var context: Context) {
@JavascriptInterface
fun logoutExitWebViewAndRedirectToLogin() {
UserRepository.getInstance(context).logout()
UserRepository.getInstance().logout()
if (context is Activity) {
AppExecutor.uiExecutor.executeWithDelay(Runnable {
context.ifLogin("内部网页")
@ -254,7 +294,152 @@ 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) {
EnergyBridge.postEnergyTask("wear_badge")
}
@JavascriptInterface
fun startEnergyCenter(msg: Any) {
context.startActivity(EnergyBridge.getEnergyCenterIntent(context))
}
@JavascriptInterface
fun startEnergyHouse(msg: Any) {
context.startActivity(EnergyBridge.getEnergyHouseIntent(context, null))
}
@JavascriptInterface
fun showQaFeedbackDialog(msg: Any) {
QaFeedbackDialogFragment.show(context as AppCompatActivity, msg.toString())
}
@JavascriptInterface
fun getMetaObject(msg: Any): String {
return LogUtils.getMetaObject().toString()
}
@JavascriptInterface
fun getLaunchId(msg: Any): String {
return Tracker.launchId
}
@JavascriptInterface
fun getSessionId(msg: Any): String {
return Tracker.sessionId
}
@JavascriptInterface
fun postLogEvent(event: Any) {
val logEvent = event.toString().toObject() ?: LogEvent()
debugOnly {
Utils.log("LogUtils->${logEvent.jsonString}")
}
LoghubUtils.log(logEvent.jsonString, logEvent.logStore, false)
}
@JavascriptInterface
fun startAvatarBorderPage(msg: Any) {
context.startActivity(AvatarBorderActivity.getIntent(context, msg.toString()))
}
@JavascriptInterface
fun isNetworkConnected(): Boolean {
return NetworkUtils.isNetworkConnected(context)
}
@JavascriptInterface
fun isWifiConnected(): Boolean {
return NetworkUtils.isWifiConnected(context)
}
@JavascriptInterface
fun enableBackToActivity(msg: Any) {
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()
runOnUiThread {
(context as? FragmentActivity)?.checkStoragePermissionBeforeAction {
runOnIoThread {
val base64String = base64StringData.replace("data:image/png;base64", "")
tryWithDefaultCatch {
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)
bos.flush()
bos.close()
ImageUtils.saveImageToFile(imageFile, "", true)
}
}
}
}
}
@JavascriptInterface
fun loginWithCallback(msg: Any, handler: CompletionHandler<Any>) {
mLoginHandler = handler
login(msg)
}
fun onLogin() {
mLoginHandler?.complete(true)
mLoginHandler = null
}
@JavascriptInterface
fun openInNewFullWebview(url: Any) {
runOnUiThread { DirectUtils.directToFullScreenWebPage(context, url.toString(), true, entrance) }
}
@JavascriptInterface
fun startGameCollectionSquareBrowseTask(event: Any) {
val browseTimeEvent = event.toString().toObject() ?: BrowseTaskEvent()
GameCollectionSquareBrowseTaskHelper.enableBrowseTimeCount(
browseTimeEvent.timeout.toInt(),
browseTimeEvent.isFinished == "true"
)
}
@JavascriptInterface
fun checkUpdateGhzs(msg: Any) {
context.startActivity(ComposeAboutActivity.getIntent(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 entrance
}
@Keep
@ -263,4 +448,25 @@ class DefaultJsApi(var context: Context) {
@Keep
internal data class ImageShareEvent(var image: String = "", var type: String = "")
@Keep
internal data class InviteFriendsEvent(
var type: String = "",
var way: String = "",
var url: String = "",
var poster: String = ""
)
@Keep
internal data class LogEvent(var jsonString: String = "", var logStore: String = "")
@Keep
internal data class BrowseTaskEvent(var timeout: String = "", var isFinished: String = "")
@Keep
data class GameActivityEvent(
var gameId: String = "",
var activityTitle: String = "",
var activityId: String = "",
var platform: String = ""
)
}

View File

@ -5,20 +5,32 @@ import android.content.Intent
import android.net.Uri
import android.text.TextUtils
import android.util.Base64
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
import com.gh.common.util.DirectUtils.directToGameServerCalendar
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.DirectUtils.directToVideoDetail
import com.gh.common.util.GsonUtils.gson
import com.gh.gamecenter.core.utils.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.common.constant.EntranceConsts
import com.gh.gamecenter.common.entity.CommunityEntity
import com.gh.gamecenter.common.entity.LinkEntity
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.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
@ -28,6 +40,14 @@ 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")
@ -38,13 +58,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))
@ -55,7 +91,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")
@ -63,9 +99,7 @@ object DefaultUrlHandler {
}
"inurl" -> {
intent = Intent(context, WebActivity::class.java)
intent.putExtra(EntranceUtils.KEY_URL, uri.getQueryParameter("url"))
context.startActivity(intent)
DirectUtils.directToWebView(context, uri.getQueryParameter("url") ?: "", entrance)
}
"outurl" -> {
@ -82,6 +116,8 @@ object DefaultUrlHandler {
}
"question" -> DirectUtils.directToQuestionDetail(context, id, entrance, "文章链接")
"real_name" -> DirectUtils.directToRealName(context)
"community" -> {
val community = CommunityEntity()
community.id = id
@ -120,11 +156,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") ?: ""
@ -135,15 +172,29 @@ 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")
DirectUtils.directToHomeActivity(context, id, if (position.isNullOrEmpty()) -1 else position.toInt(), entrance, "")
val subtype = uri.getQueryParameter("sub_type") ?: ""
DirectUtils.directToHomeActivity(
context,
id,
subtype,
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") ?: ""
@ -151,7 +202,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)) {
@ -159,45 +210,64 @@ object DefaultUrlHandler {
} else {
id
}
directToVideoDetail(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_SINGLE -> {
EntranceConsts.HOST_VIDEO_DETAIL -> {
DirectUtils.directToVideoDetail(context, id, entrance, path)
}
EntranceConsts.HOST_VIDEO_SINGLE -> {
val referer = uri.getQueryParameter("referer") ?: ""
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 -> {
EntranceConsts.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 -> {
EntranceConsts.HOST_COMMUNITY_COLUMN_DETAIL -> {
val community = CommunityEntity()
community.id = uri.getQueryParameter("community_id") ?: ""
community.name = uri.getQueryParameter("community_name") ?: ""
@ -205,42 +275,42 @@ object DefaultUrlHandler {
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)) {
@ -254,60 +324,186 @@ 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 -> {
DirectUtils.directToGameRatingDetail(context, uri.getQueryParameter(EntranceUtils.KEY_GAME_ID), uri.getQueryParameter(EntranceUtils.KEY_COMMENT_ID), EntranceUtils.ENTRANCE_BROWSER)
EntranceConsts.HOST_GAME_RATING_DETAIL -> {
DirectUtils.directToGameRatingDetail(
context,
uri.getQueryParameter(EntranceConsts.KEY_GAME_ID),
uri.getQueryParameter(EntranceConsts.KEY_COMMENT_ID),
EntranceConsts.ENTRANCE_BROWSER
)
}
EntranceUtils.HOST_FORUM -> {
DirectUtils.directToForum(context)
EntranceConsts.HOST_FORUM -> {
val position = uri.getQueryParameter(EntranceConsts.KEY_POSITION)?.toInt()
DirectUtils.directToForum(context, position ?: 0)
}
EntranceUtils.HOST_SUGGESTION -> {
val platform = uri.getQueryParameter(EntranceUtils.KEY_PLATFORM)
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
context.startActivity(
VideoPublishActivity.getIntent(
context,
communityEntity,
gameEntity,
activityLabelEntity,
forumType,
disableForumSelection = false,
isFromCommunityActivity = true,
entrance,
""
)
)
}
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 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 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, 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())
}
else -> DialogUtils.showLowVersionDialog(context)
EntranceConsts.HOST_HELP_DETAIL -> {
var url = uri.getQueryParameter("url")
if (!url.isNullOrEmpty()) {
context.startActivity(WebActivity.getIntent(context, url, false))
} else {
url = if (EnvHelper.isDevEnv) {
Constants.HELP_ADDRESS_DEV
} else {
Constants.HELP_ADDRESS
}
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()
)
)
}
}
EntranceConsts.HOST_GAME_COLLECTION_DETAIL -> {
DirectUtils.directToGameCollectionDetail(context, id, entrance)
}
EntranceConsts.HOST_GAME_COLLECTION_SQUARE -> {
DirectUtils.directToGameCollectionSquare(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 -> {
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) {
@ -344,24 +540,43 @@ object DefaultUrlHandler {
return true
}
// 处理内部页面逻辑
if (transformNormalScheme(context, url, entrance)) {
return true
}
if ("http" != uri.scheme && "https" != uri.scheme) return true
return false
}
@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") ?: ""
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]
@ -372,11 +587,15 @@ object DefaultUrlHandler {
DirectUtils.directToAnswerDetail(context, answerId, entrance, "")
}
}
contains("communities") && contains("article") -> {
((contains("bbs")) && contains("article") ||
(contains("communities")) && contains("article")) -> {
var communityId = ""
var type = ""
var typeId = ""
val split = replace("/communities", "").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
@ -390,15 +609,20 @@ object DefaultUrlHandler {
typeId = text
}
}
if ("articles" == type) {
if ("articles" == type || "article" == type) {
DirectUtils.directToCommunityArticle(
context, typeId, communityId,
entrance, "文章链接")
context, typeId, communityId,
entrance, "文章链接"
)
}
}
contains("article") -> {
val articleId = split("/")[2].replace(".html", "")
DirectUtils.directToArticle(context, articleId, entrance)
if (entrance == "隐私政策") {
DirectUtils.directToArticle(context, articleId, true, entrance)
} else {
DirectUtils.directToArticle(context, articleId, entrance)
}
}
contains("columns") -> {
val columnsId = split("/")[3]
@ -406,14 +630,84 @@ object DefaultUrlHandler {
val name = uri.getQueryParameter("communityName") ?: ""
DirectUtils.directToCommunityColumn(context, CommunityEntity(id, name), columnsId, entrance, "")
}
contains("zone") -> {
contains("zone") && split("/").size > 2 -> {
val gameId = split("/")[2]
DirectUtils.directGameZone(context, gameId, url, entrance)
}
else -> return false
}
}
return true
}
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,15 +2,17 @@ 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.gamecenter.common.loghub.LoghubUtils
import com.gh.gamecenter.common.utils.doOnMainProcessOnly
import com.gh.gamecenter.common.utils.tryCatchInRelease
import com.gh.common.videolog.VideoRecordUtils
import com.gh.download.DownloadDataHelper
import com.gh.gamecenter.entity.TimeEntity
import com.gh.gamecenter.retrofit.Response
import com.gh.gamecenter.common.retrofit.Response
import com.gh.gamecenter.core.runOnUiThread
import com.gh.gamecenter.retrofit.RetrofitManager
import com.halo.assistant.HaloApp
import io.reactivex.schedulers.Schedulers
import kotlin.concurrent.fixedRateTimer
object FixedRateJobHelper {
@ -34,19 +36,23 @@ object FixedRateJobHelper {
fixedRateTimer("Global-Fixed-Rate-Timer", initialDelay = 100, period = CHECKER_PERIOD) {
// 时间校对10分钟一次
if ((mExecuteCount * CHECKER_PERIOD) % TIME_PERIOD == 0L) {
RetrofitManager.getInstance(HaloApp.getInstance().application).api.time
.subscribeOn(AppExecutor.cachedScheduler)
.subscribe(object : Response<TimeEntity>() {
override fun onResponse(response: TimeEntity?) {
val serverTime = response?.time
serverTime?.let { timeDeltaBetweenServerAndClient = it * 1000 - System.currentTimeMillis() }
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()
}
})
}
})
}
// 提交曝光数据
if ((mExecuteCount * CHECKER_PERIOD) % EXPOSURE_PERIOD == 0L) {
ExposureManager.commitSavedExposureEvents(true)
runOnUiThread {
ExposureManager.commitSavedExposureEvents(true)
}
}
// 分片检测下载进度
@ -59,7 +65,9 @@ object FixedRateJobHelper {
// 提交普通 loghub 数据
if ((mExecuteCount * CHECKER_PERIOD) % LOGHUB_PERIOD == 0L) {
LoghubUtils.commitSavedLoghubEvents()
runOnUiThread {
LoghubUtils.commitSavedLoghubEvents(true)
}
}
// 更新游戏屏蔽信息

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(HaloApp.getInstance().application).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(mApplication).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,122 +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.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() }
}
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.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.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.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.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.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.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.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.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.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.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.entity.GameEntity
import com.gh.vspace.VHelper
class ValidateVSpaceHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
VHelper.validateVSpaceBeforeAction(context, gameEntity, true) {
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.entity.GameEntity
class VersionNumberHandler : ChainHandler() {
override fun handleRequest(context: Context, gameEntity: GameEntity) {
DialogUtils.showVersionNumberDialog(context, gameEntity) {
if (hasNext()) {
getNext()?.handleRequest(context, gameEntity)
} else {
processEndCallback?.invoke(null)
}
}
}
}

View File

@ -1,66 +1,75 @@
package com.gh.common.constant;
import android.content.Context;
import android.annotation.SuppressLint;
import android.content.SharedPreferences;
import android.os.Build;
import android.preference.PreferenceManager;
import android.text.TextUtils;
import com.gh.common.util.GsonUtils;
import androidx.annotation.Nullable;
import com.gh.gamecenter.common.utils.DarkModeUtils;
import com.gh.gamecenter.common.utils.EnvHelper;
import com.gh.gamecenter.common.constant.Constants;
import com.gh.gamecenter.core.utils.GsonUtils;
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.core.utils.SPUtils;
import com.gh.gamecenter.entity.GameGuidePopupEntity;
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.Response;
import com.gh.gamecenter.common.eventbus.EBReuse;
import com.gh.gamecenter.entity.SimulatorEntity;
import com.gh.gamecenter.entity.VSetting;
import com.gh.gamecenter.common.retrofit.BiResponse;
import com.gh.gamecenter.common.retrofit.Response;
import com.gh.gamecenter.retrofit.RetrofitManager;
import com.gh.vspace.VHelper;
import com.halo.assistant.HaloApp;
import com.lightgame.utils.Utils;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONException;
import org.json.JSONObject;
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;
public class Config {
public static final String API_HOST = BuildConfig.API_HOST;
public static final String SENSITIVE_API_HOST = BuildConfig.SENSITIVE_API_HOST;
/**
* 需要配置的请使用{@link PreferenceManager#getDefaultSharedPreferences(Context)}
*/
// 这个 API_HOST 在测试包里会随着选择的环境切换,正式包里会一直保持正式 host
public static final String API_HOST = EnvHelper.getHost();
public static final String NEW_API_HOST = EnvHelper.getNewHost();
public static final String VAPI_HOST = EnvHelper.getVHost();
// Third-Party confs
public static final String WECHAT_APPID = BuildConfig.WECHAT_APPID;
public static final String WECHAT_SECRET = BuildConfig.WECHAT_SECRET;
public static final String TENCENT_APPID = BuildConfig.TENCENT_APPID;
public static final String WEIBO_APPKEY = BuildConfig.WEIBO_APPKEY;
public static final String MIPUSH_APPID = BuildConfig.MIPUSH_APPID;
public static final String MIPUSH_APPKEY = BuildConfig.MIPUSH_APPKEY;
public static final String MTA_APPKEY = BuildConfig.MTA_APPKEY;
public static final String TALKINGDATA_APPID = BuildConfig.TD_APPID;// TalkingData
public static final String UMENG_APPKEY = BuildConfig.UMENG_APPKEY;
public static final String UMENG_MESSAGE_SECRET = BuildConfig.UMENG_MESSAGE_SECRET;
public static final String BUGLY_APPID = BuildConfig.BUGLY_APPID;
public static final String LETO_APPID = BuildConfig.LETO_APPID;
public static final String TTAD_APPID = BuildConfig.TTAD_APPID;
public static final String DOUYIN_CLIENTKEY = BuildConfig.DOUYIN_CLIENTKEY;
public static final String DOUYIN_CLIENTSECRET = BuildConfig.DOUYIN_CLIENTSECRET;
public static final String QUICK_LOGIN_APPID = BuildConfig.QUICK_LOGIN_APPID;
public static final String QUICK_LOGIN_APPKEY = BuildConfig.QUICK_LOGIN_APPKEY;
// http://www.ghzs666.com/article/${articleId}.html
public static final String URL_ARTICLE = "http://www.ghzs666.com/article/"; // ghzs/ghzs666 统一
public static final String PATCHES = "patches";
public static final String DEFAULT_CHANNEL = "GH_TEST";
private static String SETTINGS_KEY = "settingsKey";
private static final String SETTINGS_KEY = "settingsKey";
private static SettingsEntity mSettingsEntity;
private static NewSettingsEntity mNewSettingsEntity;
private static NewSettingsEntity.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";
@ -70,6 +79,8 @@ public class Config {
public static final int VIDEO_PAGE_SIZE = 21; // 视频列表大多都是一行3个
public static boolean isShow() {
if (SPUtils.getBoolean(Constants.SP_TEENAGER_MODE)) return false;
if (getPreferences().getBoolean(FIX_DOWNLOAD_KEY, false)) return true;
if (!isExistDownloadFilter()) return false;
@ -84,13 +95,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) {
@ -116,6 +120,17 @@ public class Config {
return false;
}
/**
* 是否启用畅玩游戏
*/
public static boolean isVGameEnabled() {
if (getSettings() == null) {
return false;
}
return !"off".equals(getSettings().getGameSmooth());
}
public static boolean isShowPlugin(String gameId) {
SharedPreferences preferences = getPreferences();
@ -181,11 +196,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
@ -203,6 +222,64 @@ public class Config {
return mSettingsEntity;
}
//新模拟器
@Nullable
public static SimulatorEntity getNewSimulatorEntitySetting() {
if (mNewSimulatorEntity != null) {
return mNewSimulatorEntity;
} else if (mNewSettingsEntity != null && mNewSettingsEntity.getSimulator() != null) {
return mNewSettingsEntity.getSimulator();
} else {
return null;
}
}
@Nullable
public static NewSettingsEntity.NightMode getNightModeSetting() {
if (mNightModeSetting != null) {
return mNightModeSetting;
} else if (mNewSettingsEntity != null && mNewSettingsEntity.getNightMode() != null) {
return mNewSettingsEntity.getNightMode();
} else {
return null;
}
}
@Nullable
public static NewSettingsEntity getNewSettingsEntity() {
if (mNewSettingsEntity == null) {
try {
String json = SPUtils.getString(Constants.SP_NEW_SETTINGS);
if (!TextUtils.isEmpty(json)) {
mNewSettingsEntity = GsonUtils.fromJson(json, NewSettingsEntity.class);
}
} catch (Exception e) {
e.printStackTrace();
}
}
return mNewSettingsEntity;
}
@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;
}
private static boolean isExistDownloadFilter() {
if (getSettings() == null || getSettings().getDownload() == null || getSettings().getDownload().size() == 0) {
return false;
@ -225,40 +302,18 @@ public class Config {
}
public static SharedPreferences getPreferences() {
return PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication());
}
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();
if (mDefaultSharedPreferences == null) {
mDefaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(HaloApp.getInstance().getApplication());
}
return mDefaultSharedPreferences;
}
@SuppressLint("CheckResult")
public static void getGhzsSettings() {
String channel = HaloApp.getInstance().getChannel();
RetrofitManager.getInstance(HaloApp.getInstance().getApplication())
.getSensitiveApi().getSettings(PackageUtils.getVersionName(), channel)
RetrofitManager.getInstance()
.getApi().getSettings(PackageUtils.getGhVersionName(), channel)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Response<SettingsEntity>() {
@ -275,8 +330,94 @@ public class Config {
if (!getPreferences().getBoolean(Config.FIX_DOWNLOAD_KEY, false) && Config.isShow()) {
getPreferences().edit().putBoolean(Config.FIX_DOWNLOAD_KEY, true).apply();
}
EventBus.getDefault().post(new EBReuse("Refresh"));
if (!SPUtils.getBoolean(Constants.SP_TEENAGER_MODE)) {
EventBus.getDefault().post(new EBReuse("Refresh"));
}
}
});
RetrofitManager.getInstance()
.getApi().getNewSettings(Build.MANUFACTURER, Build.MODEL, channel, Build.VERSION.SDK_INT, BuildConfig.VERSION_NAME)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BiResponse<NewSettingsEntity>() {
@Override
public void onSuccess(NewSettingsEntity data) {
mNewSettingsEntity = data;
if (mNightModeSetting != null) {
mNewSettingsEntity.setNightMode(mNightModeSetting);
}
SPUtils.setString(Constants.SP_NEW_SETTINGS, GsonUtils.toJson(data));
}
});
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));
}
});
}
if (mNightModeSetting == null && mNewSimulatorEntity == null) {
RetrofitManager.getInstance()
.getNewApi().getNewSettings(PackageUtils.getGhVersionName(), channel)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BiResponse<NewSettingsEntity>() {
@Override
public void onSuccess(NewSettingsEntity data) {
mNightModeSetting = data.getNightMode();
mNewSimulatorEntity = data.getSimulator();
if (HaloApp.getInstance().isNewForThisVersion && mNightModeSetting != null && mNightModeSetting.getInstall()) {
DarkModeUtils.INSTANCE.updateFollowSystemDarkModeToSp(true);
DarkModeUtils.INSTANCE.updateAppDarkModeStatusToSp(true);
DarkModeUtils.INSTANCE.initDarkMode();
}
if (mNewSettingsEntity != null) {
mNewSettingsEntity.setSimulator(mNewSimulatorEntity);
mNewSettingsEntity.setNightMode(mNightModeSetting);
SPUtils.setString(Constants.SP_NEW_SETTINGS, GsonUtils.toJson(data));
}
}
});
}
RetrofitManager.getInstance()
.getApi().getGameGuidePopup(Build.MANUFACTURER, Build.VERSION.RELEASE, Build.MODEL, channel, BuildConfig.VERSION_NAME)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BiResponse<GameGuidePopupEntity>() {
@Override
public void onSuccess(GameGuidePopupEntity data) {
mGameGuidePopupEntity = data;
}
});
String manufacturer = Build.MANUFACTURER.toUpperCase(Locale.CHINA);
if (manufacturer.equals("OPPO") || manufacturer.equals("VIVO")) {
RetrofitManager.getInstance().getNewApi().getBrowserHintUrl(manufacturer)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BiResponse<ResponseBody>() {
@Override
public void onSuccess(ResponseBody data) {
try {
JSONObject jsonObject = new JSONObject(data.string());
if (!TextUtils.isEmpty(jsonObject.getJSONObject("data").getString("link"))) {
SPUtils.setString(Constants.SP_BROWSER_HINT_URL, jsonObject.getJSONObject("data").getString("link"));
}
} catch (JSONException | IOException e) {
e.printStackTrace();
}
}
});
}
}
}

View File

@ -1,211 +0,0 @@
package com.gh.common.constant;
import com.gh.common.util.PackageUtils;
import com.halo.assistant.HaloApp;
public class Constants {
public static final int SEND_NEWS_FEEDBACK = 0x126;
public static final int SEND_COMMENT_FEEDBACK = 0x127;
public final static int LIST_FOOTER_ITEM = 1;
public final static int LIST_HEAD_ITEM = 1;
public final static int NOT_NETWORK_CODE = 504; // 没有网络的状态码(应该是这个吧!)
public static final String USER_TOKEN_KEY = "userTokenKey";
public static final String USER_INFO_KEY = "userInfoKey";
public static final String WELCOME_DIALOG_ID = "welcome_dialog_id";
public static final String WELCOME_DIALOG_LINK_TITLE = "welcome_dialog_link_title";
public static final String DEVICE_KEY = "deviceKey";
public static final String HAS_REQUESTED_NOTIFICATION_PERMISSIONS = "has_requested_notification_permissions";
public static final String SHOULD_SHOW_VIDEO_MOBILE_WARNING = "should_show_video_mobile_warning";
public static final String GAME_DETAIL_COME_IN = "game_detail_come_in"; // 从游戏详情进入
public static final String XPOSED_INSTALLER_PACKAGE_NAME = "de.robv.android.xposed.installer";
public static final String EB_QUIT_LOGIN = "quit_login";
// 用于避免历史下载掺和到普通下载状态的 ID 修饰符
public static final String GAME_ID_DIVIDER = ":";
// 用于避免历史下载影响到部分依赖名字作为数据更新条件的修饰符
public static final String GAME_NAME_DECORATOR = " ";
// 游戏详情进入时的自定义栏目标签是否已经默认展开过一次的标记
public static final String SP_HAS_EXPANDED_GAME_DETAIL_TAGS = "has_expanded_game_detail_tags";
// 游戏详情进入时的自定义栏目标签是否已经显示过一次展开更多的浮窗提示
public static final String SP_HAS_SHOWN_EXPANDED_GAME_DETAIL_TAGS_HINT = "has_shown_expanded_game_detail_tags_hint";
// 最近显示的弹窗信息
public static final String SP_LAST_OPENING_ID = "last_opening_dialog_id";
public static final String SP_LAST_OPENING_TIME = "last_opening_dialog_time";
// 游戏图标和图标角标
public static final String RAW_GAME_ICON = "raw_game_icon";
public static final String GAME_ICON_SUBSCRIPT = "game_icon_subscript";
public static final String EXTRA_DOWNLOAD_TYPE = "extra_download_type";
public static final String SILENT_UPDATE = "静默更新";
public static final String SIMULATOR_DOWNLOAD = "下载模拟器";
public static final String SIMULATOR_GAME = "simulator_game";
public static final String SIMULATOR_DOWNLOAD_START_TIME = "simulator_download_start_time";
public static final String LAST_GHZS_UPDATE_FILE_SIZE = "last_ghzs_update_file_size";
// 新用户首次启动光环的时间
public static final String SP_INITIAL_USAGE_TIME = "initial_usage_time";
public static final String SP_IMEI = "imei";
public static final String SP_ANDROID_ID = "android_id";
//引导设置 “通知管理” 引导弹窗
public static final String SP_SHOWED_NOTIFICATION_LOGIN = "show_notification_login_hint";
public static final String SP_SHOWED_NOTIFICATION_QUESTION = "show_notification_question_hint";
public static final String SP_SHOWED_NOTIFICATION_ANSWER = "show_notification_answer_hint";
public static final String SP_SHOWED_NOTIFICATION_ARTICLE = "show_notification_article_hint";
public static final String SP_SHOWED_NOTIFICATION_VIDEO = "show_notification_video_hint";
public static final String SP_SHOWED_NOTIFICATION_RATING = "show_notification_rating_hint";
public static final String SP_SHOWED_NOTIFICATION_GIFT = "show_notification_gift_hint";
public static final String SP_SHOWED_NOTIFICATION_RESERVE_GAME = "show_notification_reserve_game_hint";
public static final String SP_SHOWED_NOTIFICATION_FEEDBACK = "show_notification_feedback_hint";
// 新版本 也要触发一次“通知管理” 引导弹窗
public static final String SP_SHOWED_NOTIFICATION_NEW_VERSION = "show_notification_new_version";
// 今天是否已经触发了 “通知管理” 引导弹窗
public static final String SP_IS_SHOWED_NOTIFICATION_TODAY = "show_is_notification_today";
// v4.0.0已废弃,标记安装的游戏为已玩过弹窗最多取消2次 (https://gitlab.ghzs.com/pm/halo-app-issues/issues/722 调整为版本相关) (不是常量了也放这里好像有点奇怪)
public static final String SP_MARK_INSTALLED_GAME = "mark_installed_game" + PackageUtils.getVersionName();
// 标记安装的游戏为已玩过弹窗(个人主页最多弹一次)
public static final String SP_MARK_INSTALLED_GAME_USER_HOME = "mark_installed_game_user_home" + PackageUtils.getVersionName();
// 标记安装的游戏为已玩过弹窗(我的游戏最多弹一次)
public static final String SP_MARK_INSTALLED_GAME_MY_GAME = "mark_installed_game_my_game" + PackageUtils.getVersionName();
//视频详情滑动引导
public static final String SP_SHOW_SLIDE_GUIDE = "show_slide_guide";
//视频详情点击引导
public static final String SP_SHOW_CLICK_GUIDE = "show_click_guide";
//视频详情双击点赞引导
public static final String SP_SHOW_DOUBLE_CLICK_GUIDE = "show_double_click_guide";
//顶部视频声音状态,重启恢复
public static final String SP_TOP_VIDEO_VOICE = "top_video_voice";
//我的光环提醒设置已读
public static final String SP_ADDONS_FUNCS_HAVE_READ = "addons_funcs_have_read";
//视频非wifi提醒只提醒一次重启恢复
public static final String SP_NON_WIFI_TIPS = "non_wifi_tips";
//首页视频最新tab提示
public static final String SP_HOME_NEW_VIDEO_TIPS = "home_new_video";
//游戏设备弹窗提示
public static final String SP_DEVICE_REMIND = "device_remind";
//是否是第一次弹出游戏设备弹窗提示
public static final String SP_FIRST_DEVICE_REMIND = "first_device_remind";
//游戏设备弹窗不再提示
public static final String SP_NO_REMIND_AGAIN = "no_remind_again";
//游戏详情过滤标签数据
public static final String SP_FILTER_TAGS = "filter_tags";
//实名认证弹窗分类数据
public static final String SP_AUTH_DIALOG = "auth_dialog";
//顶部视频进度保存,重启恢复
public static final String SP_TOP_VIDEO_SCHEDULE = "top_video_schedule";
//我的光环小红点提示
public static final String SP_GH_RED_POINT_REMIND = "gh_red_point_remind";
//论坛首页引导
public static final String SP_FORUM_GUIDE = "forum_guide";
//礼仪考试开启状态
public static final String SP_REGULATION_TEST_LAST_REMIND_TIME = "regulation_test_last_remind_time";
public static final String SP_REGULATION_TEST_STATUS = "regulation_test_status";
public static final String SP_REGULATION_TEST_PASS_STATUS = "regulation_test_pass_status";
//相同设备号,每一种第三方登录方式登录后弹出绑定手机页面的次数
public static final String SP_QQ_SHOW_BIND_PHONE_TIME = "qq_show_bind_phone_time" + HaloApp.getInstance().getGid();
public static final String SP_WECHAT_SHOW_BIND_PHONE_TIME = "wechat_show_bind_phone_time" + HaloApp.getInstance().getGid();
public static final String SP_WEIBO_SHOW_BIND_PHONE_TIME = "weibo_show_bind_phone_time" + HaloApp.getInstance().getGid();
public static final String SP_DOUYIN_SHOW_BIND_PHONE_TIME = "douyin_show_bind_phone_time" + HaloApp.getInstance().getGid();
//隐私政策是否有更新
public static final String SP_PRIVACY_CURRENT_MD5 = "sp_privacy_current_md5";
public static final String SP_PRIVACY_MINE_MD5 = "sp_privacy_mine_md5";
public static final String SP_PRIVACY_SETTING_MD5 = "sp_privacy_setting_md5";
public static final String SP_PRIVACY_MD5 = "sp_privacy_md5";
public static final String SP_IS_USER_ACCEPTED_PRIVACY_STATEMENT = "has_user_accepted_privacy_statement";
public static final String SP_BRAND_NEW_USER = "brand_new_user";
//包名检测是否点击不再提示
public static final String SP_PACKAGE_CHECK = "package_check";
public static final String SP_XAPK_UNZIP_ACTIVITY = "xapk_unzip_activity";
public static final String SP_XAPK_URL = "xapk_url";
//手机号码匹配规则
public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
public static final String REGEX_ACCOUNT = "^[a-zA-Z_]\\w{5,17}$";
public static final String REGEX_PASSWORD = "^[a-zA-Z]\\w{5,31}$";
//输入规则
public static final String INPUT_RULE = "0123456789abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ_";
// 微信绑定地址
public static final String WECHAT_BIND_ADDRESS_DEV = "https://resource.ghzs.com/page/wechat_dev/index.html#/";
public static final String WECHAT_BIND_ADDRESS = "https://resource.ghzs.com/page/wechat_pro/index.html#/";
// 礼仪考试地址
public static final String REGULATION_TEST_ADDRESS_DEV = "https://static-web.ghzs.com/etiquette-dev/index.html#/";
public static final String REGULATION_TEST_ADDRESS = "https://static-web.ghzs.com/etiquette/index.html#/";
// 徽章中心
public static final String BADGE_ADDRESS_DEV = "https://static-web.ghzs.com/badge-dev/index.html#/";
public static final String BADGE_ADDRESS = "https://static-web.ghzs.com/badge/index.html#/";
// 徽章详情
public static final String BADGE_DETAIL_ADDRESS_DEV = "https://static-web.ghzs.com/badge-dev/index.html#/badgedetail";
public static final String BADGE_DETAIL_ADDRESS = "https://static-web.ghzs.com/badge/index.html#/badgedetail";
// 分享个人主页地址
public static final String SHARE_USER_HOME_ADDRESS_DEV = "https://static-web.ghzs.com/ghzs-userhome-dev/index.html#/";
public static final String SHARE_USER_HOME_ADDRESS = "https://static-web.ghzs.com/ghzs-userhome/index.html#/";
// 腾讯企点地址
public static final String TENCENT_QIDIAN_ADDRESS = "https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2355094296&fid=457&key=c76dcb2e3d582b6ffbfb5bb22cde85ff&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true";
//版规声明
public static final String FORUM_REGULATIONS_NEWS_ID = "5f4db9cc34d44d01b92fd670";
//帮助内容详情
public static final String HELP_ADDRESS_DEV = "https://static-web.ghzs.com/ghzs_help_dev/help.html?content=";
public static final String HELP_ADDRESS = "https://static-web.ghzs.com/ghzs_help/help.html?content=";
// 注销页面
public static final String LOGOUT_ADDRESS_DEV = "https://static-web.ghzs.com/ghzs_help_dev/help.html?content=5f6b1f02786564003944a693";
public static final String LOGOUT_ADDRESS = "https://static-web.ghzs.com/ghzs_help/help.html?content=5f534111b1f72909fc225672";
//最少需要多少数据才能上传
public static final int DATA_AMOUNT = 20;
//游戏 cd间隔
public static final int GAME_CD = 5 * 60 * 1000;
//新闻 cd间隔
public static final int NEWS_CD = 10 * 60 * 1000;
//platform cd间隔
public static final int PLATFORM_CD = 10 * 60 * 1000;
//update cd间隔
public static final int UPDATE_CD = 5 * 60 * 1000;
//搜索 cd间隔
public static final int SEARCH_CD = 5 * 60 * 1000;
//评论 cd间隔
public static final int COMMENT_CD = 60 * 1000;
//我的光环功能分组 cd间隔
public static final int ADDONS_CD = 10 * 60 * 1000;
//已收录包名更新 cd间隔
public static final int PACKAGES_CD = 60 * 1000;
public static final String[] REPORT_LIST = new String[]{"垃圾广告营销", "恶意攻击谩骂", "淫秽色情信息", "违法有害信息", "其它"};
public static final String ENTRANCE_UNKNOWN = "(unknown)";
public static final String DEFAULT_TEXT_WRAPPER = "###";
// 触发了安装事件的标记
public static final String MARK_ALREADY_TRIGGERED_INSTALLATION = "triggered_installation";
// 标记下载重试标记(值为任务已下载大小,为空表示需要重试)
public static final String MARK_RETRY_DOWNLOAD = "retry_download";
}

View File

@ -0,0 +1,187 @@
package com.gh.common.databind
import android.os.Build
import android.text.Editable
import android.text.Html
import android.text.TextWatcher
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.widget.EditText
import android.widget.LinearLayout
import android.widget.PopupWindow
import androidx.core.content.ContextCompat
import androidx.databinding.BindingAdapter
import androidx.recyclerview.widget.LinearLayoutManager
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.servers.add.AddKaiFuPopupAdapter
import java.text.SimpleDateFormat
import java.util.*
object AddKaiFuBindingAdapter {
private var popupWindow: BugFixedPopupWindow? = null
@JvmStatic
@BindingAdapter("addKaiFuView", "clickListener")
fun addKaiFuView(
view: LinearLayout,
list: List<ServerCalendarEntity?>?,
listener: OnViewClickListener<*>?
) {
if (list == null) return
view.removeAllViews()
view.addView(LayoutInflater.from(view.context).inflate(R.layout.kaifu_new_add_item_title, null))
for (i in list.indices) {
val inflate = LayoutInflater.from(view.context).inflate(R.layout.kaifu_add_item, null)
val binding = KaifuAddItemBinding.bind(inflate)
binding.clickListener = listener
binding.entity = list[i]
binding.position = i
binding.isCloseBottom = list.size - 1 == i
view.addView(inflate)
binding.kaifuAddFirstName.setOnFocusChangeListener { _, hasFocus ->
if (hasFocus) {
binding.kaifuAddFirstName.hint = ""
if (binding.kaifuAddFirstName.text.isNullOrEmpty()) {
showPopupOption(binding.kaifuAddFirstName) {
binding.kaifuAddFirstName.setText(it)
binding.kaifuAddFirstName.setSelection(it.length)
}
}
} else {
binding.kaifuAddFirstName.hint = "点击填写"
}
}
binding.kaifuAddServerName.setOnFocusChangeListener { _, hasFocus ->
if (hasFocus) {
binding.kaifuAddServerName.hint = ""
} else {
binding.kaifuAddServerName.hint = "点击填写"
}
}
binding.kaifuAddFirstName.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(
s: CharSequence?,
start: Int,
count: Int,
after: Int
) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (!s.isNullOrEmpty()) {
popupWindow?.dismiss()
}
}
override fun afterTextChanged(s: Editable?) {
}
})
if (i == list.size - 1) {
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)
}
}
}
@JvmStatic
@BindingAdapter("addKaiFuTime", "addKaiFuPosition")
fun addKaiFuTime(view: EditText, time: Long, position: Int) {
if (time == 0L) {
view.hint = "点击选择"
view.setText("")
} else {
val pattern = "yyy-MM-dd HH:mm"
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+"))
)
}
}
}
@JvmStatic
@BindingAdapter("kaiFuTextColor", "kaiFuTextPosition")
fun kaiFuTextColor(view: EditText, dataMark: Int, position: Int) {
if (dataMark == 1 && view.id == R.id.kaifu_add_time || dataMark == 2 && view.id == R.id.kaifu_add_first_name || dataMark == 3 && view.id == R.id.kaifu_add_server_name || dataMark == 4) {
view.setTextColor(ContextCompat.getColor(view.context, R.color.theme_red))
view.setHintTextColor(ContextCompat.getColor(view.context, R.color.theme_red))
} else if (position == 0) {
view.setTextColor(ContextCompat.getColor(view.context, R.color.hint))
view.setHintTextColor(ContextCompat.getColor(view.context, R.color.hint))
} else {
view.setTextColor(ContextCompat.getColor(view.context, R.color.text_title))
view.setHintTextColor(ContextCompat.getColor(view.context, R.color.hint))
}
}
@JvmStatic
private fun showPopupOption(view: View, callback: (text: String) -> Unit) {
val inflater = LayoutInflater.from(view.context)
val mainBinding = LayoutPopupContainerBinding.inflate(inflater)
popupWindow = BugFixedPopupWindow(
mainBinding.root,
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
val windowPos = IntArray(2)
val anchorLoc = IntArray(2)
// 获取锚点View在屏幕上的左上角坐标位置
view.getLocationOnScreen(anchorLoc)
val anchorHeight = view.height
// 获取屏幕的高宽
val screenHeight = view.context.resources.displayMetrics.heightPixels
popupWindow?.let { popupWindow ->
// 测量contentView
popupWindow.contentView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED)
val windowHeight = popupWindow.contentView.measuredHeight
// 判断需要向上弹出还是向下弹出显示
val isNeedShowUp = screenHeight - anchorLoc[1] - anchorHeight < windowHeight
windowPos[1] = if (isNeedShowUp) {
anchorLoc[1] - windowHeight
} else anchorLoc[1] + anchorHeight
LayoutAddKaifuPopupBinding.inflate(inflater, mainBinding.container, false).apply {
root.layoutParams = root.layoutParams.apply {
width = view.width + 16F.dip2px()
}
popupRv.adapter = AddKaiFuPopupAdapter(
root.context,
arrayListOf("安卓混服", "硬核专服", "官方专服", "官方渠道服", "腾讯QQ服", "腾讯微信服")
) {
callback.invoke(it)
popupWindow.dismiss()
}
popupRv.layoutManager = LinearLayoutManager(root.context)
mainBinding.container.addView(root)
}
popupWindow.isTouchable = true
popupWindow.inputMethodMode = PopupWindow.INPUT_METHOD_NEEDED
popupWindow.isOutsideTouchable = true
popupWindow.animationStyle = R.style.popwindow_option_anim_style
// 设置偏移
windowPos[1] = windowPos[1] - 12F.dip2px()
windowPos[0] = anchorLoc[0] - 11F.dip2px()
popupWindow.showAtLocation(view, Gravity.TOP or Gravity.START, windowPos[0], windowPos[1])
}
}
}

View File

@ -10,64 +10,74 @@ import android.text.style.ForegroundColorSpan;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
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.dialog.ReserveDialogFragment;
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.ReservationHelper;
import com.gh.common.view.DownloadProgressBar;
import com.gh.common.view.DrawableView;
import com.gh.common.view.DownloadButton;
import com.gh.common.view.GameIconView;
import com.gh.download.DownloadManager;
import com.gh.download.dialog.DownloadDialog;
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.databinding.KaifuAddItemBinding;
import com.gh.gamecenter.common.baselist.LoadStatus;
import com.gh.gamecenter.common.callback.OnViewClickListener;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.common.utils.ImageUtils;
import com.gh.gamecenter.common.utils.DarkModeUtils;
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.common.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.common.eventbus.EBReuse;
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;
@ -75,10 +85,8 @@ import com.lightgame.utils.Utils;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
/**
* Created by khy on 12/02/18.
@ -86,22 +94,18 @@ import java.util.Locale;
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;
@ -121,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;
@ -129,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);
});
@ -157,77 +160,10 @@ public class BindingAdapters {
}
// 如果超过10000则转换为1.0W
@BindingAdapter("transSimpleCount")
public static void transSimpleCount(TextView view, int count) {
view.setText(NumberUtils.transSimpleCount(count));
}
@BindingAdapter({"addKaiFuView", "clickListener"})
public static void addKaiFuView(LinearLayout view, List<ServerCalendarEntity> list, OnViewClickListener listener) {
if (list == null) return;
view.removeAllViews();
view.addView(LayoutInflater.from(view.getContext()).inflate(R.layout.kaifu_add_item_title, null));
for (int i = 0; i < list.size(); i++) {
View inflate = LayoutInflater.from(view.getContext()).inflate(R.layout.kaifu_add_item, null);
KaifuAddItemBinding binding = KaifuAddItemBinding.bind(inflate);
binding.setClickListener(listener);
binding.setEntity(list.get(i));
binding.setPosition(i);
binding.setIsCloseBottom(list.size() - 1 == i);
view.addView(inflate);
binding.kaifuAddName.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
binding.kaifuAddName.setHint("");
} else {
binding.kaifuAddName.setHint("点击填写");
}
});
binding.kaifuAddRemark.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
binding.kaifuAddRemark.setHint("");
} else {
binding.kaifuAddRemark.setHint("点击填写");
}
});
}
}
@BindingAdapter({"addKaiFuTime", "addKaiFuPosition"})
public static void addKaiFuTime(EditText view, Long time, Integer position) {
if (time == 0) {
view.setHint("点击选择");
view.setText("");
} else {
String pattern;
if (position == 0) {
pattern = "yyy-MM-dd HH:mm +";
} else {
pattern = "yyy-MM-dd HH:mm";
}
SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.CHINA);
view.setText(format.format(time * 1000));
}
}
@BindingAdapter({"kaiFuTextColor", "kaiFuTextPosition"})
public static void kaiFuTextColor(EditText view, Integer dataMark, Integer position) {
if (dataMark == 1 && view.getId() == R.id.kaifu_add_time
|| dataMark == 2 && view.getId() == R.id.kaifu_add_name
|| dataMark == 3 && view.getId() == R.id.kaifu_add_remark
|| dataMark == 4 && (view.getId() == R.id.kaifu_add_time || view.getId() == R.id.kaifu_add_name)) {
view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.red));
view.setHintTextColor(ContextCompat.getColor(view.getContext(), R.color.red));
} else if (position == 0) {
view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.hint));
view.setHintTextColor(ContextCompat.getColor(view.getContext(), R.color.hint));
} else {
view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.title));
view.setHintTextColor(ContextCompat.getColor(view.getContext(), R.color.hint));
}
}
@BindingAdapter("textColorFromString")
public static void textColorFromString(TextView tv, String hexString) {
if (TextUtils.isEmpty(hexString)) return;
@ -238,7 +174,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("visibleGone")
public static void showHide(View view, Boolean show) {
if (show != null && show) {
view.setVisibility(View.VISIBLE);
@ -247,7 +182,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("goneIf")
public static void goneIf(View view, Boolean gone) {
if (gone != null && gone) {
view.setVisibility(View.GONE);
@ -259,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());
}
@ -267,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());
}
@ -275,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);
@ -289,7 +219,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("messageUnread")
public static void setMessageUnread(TextView view, int unreadCount) {
if (unreadCount < 100) {
view.setText(String.valueOf(unreadCount));
@ -298,7 +227,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("serverTypePadding")
public static void setServerTypePadding(TextView view, String serverType) {
int paddRight = 0;
if (TextUtils.isEmpty(serverType)) {
@ -316,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)) {
@ -326,19 +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("articleType")
public static void setGameIcon(View view, GameEntity gameEntity) {
if (gameEntity != null && view instanceof GameIconView) {
((GameIconView) view).displayGameIcon(gameEntity.getIcon(), gameEntity.getIconSubscript());
}
}
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);
@ -347,7 +277,6 @@ public class BindingAdapters {
}
}
@BindingAdapter("liBaoBtn")
public static void setLiBaoBtn(TextView view, String status) {
if (TextUtils.isEmpty(status)) return;
switch (status) {
@ -412,14 +341,16 @@ 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,
@Nullable String entrance,
@Nullable String location) {
// 恢复DialogFragment
restoreDialogFragment(progressBar);
// 判断是否显示按钮
if (gameEntity != null
&& Config.isShowDownload(gameEntity.getId())
@ -433,52 +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;
}
}
PackageCheckDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity.getPackageDialog(), () -> {
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));
});
});
});
});
});
final RegionSetting.GameH5Download gameH5Download = RegionSettingHelper.getGameH5DownloadByGameId(gameEntity.getId());
if (gameH5Download != null) {
DialogUtils.showGameH5DownloadDialog(v.getContext(), gameEntity, gameH5Download);
} else {
CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> {
DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> {
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);
}
}
}
break;
case LAUNCH_OR_OPEN:
@ -497,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(
@ -511,19 +472,27 @@ public class BindingAdapters {
case INSTALL_PLUGIN:
case INSTALL_NORMAL:
if (gameEntity.getApk().size() == 1) {
DownloadEntity downloadEntity = DownloadManager.getInstance(progressBar.getContext()).getDownloadEntityByUrl(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:
CheckLoginUtils.checkLogin(progressBar.getContext(), "", () -> {
ReserveDialogFragment dialogFragment = ReserveDialogFragment.getInstance(gameEntity, () -> {
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(), () -> {
LogUtils.logReservation(gameEntity, traceEvent);
updateReservation(progressBar, gameEntity);
});
});
dialogFragment.show(((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager(), "reserve");
});
break;
case RESERVED:
@ -550,8 +519,10 @@ public class BindingAdapters {
HistoryHelper.insertGameEntity(gameEntity);
}
Intent i = new Intent(WebActivity.getIntentForWebGame(progressBar.getContext(), linkEntity.getLink(), gameEntity.getName(), isPlay, linkEntity.getCloseButton()));
progressBar.getContext().startActivity(i);
GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> {
Intent i = new Intent(WebActivity.getIntentForWebGame(progressBar.getContext(), linkEntity.getLink(), gameEntity.getName(), isPlay, linkEntity.getCloseButton()));
progressBar.getContext().startActivity(i);
});
break;
case UPDATING:
Utils.toast(progressBar.getContext(), "正在加急更新版本,敬请后续留意");
@ -563,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;
}
@ -581,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);
}
}
@ -599,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);
@ -614,7 +585,7 @@ public class BindingAdapters {
// 显示下载过程状态
if (gameEntity.getApk().size() == 1) {
DownloadEntity downloadEntity = DownloadManager.getInstance(progressBar.getContext()).getDownloadEntityByUrl(gameEntity.getApk().get(0).getUrl());
DownloadEntity downloadEntity = DownloadManager.getInstance().getDownloadEntitySnapshot(gameEntity);
if (downloadEntity != null) {
progressBar.setProgress((int) (downloadEntity.getPercent() * 10));
switch (downloadEntity.getStatus()) {
@ -625,23 +596,27 @@ public class BindingAdapters {
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:
case hijack:
case notfound:
case uncertificated:
case unqualified:
case unavailable:
case banned:
break;
default:
break;
@ -650,6 +625,18 @@ public class BindingAdapters {
}
}
/**
* 当页面完全重建时若存在重建的DialogFragment则需要手动恢复该DialogFragment之前配置的回调(因为DialogFragment重建时只会从arguments中获取之前的配置内容
* 而arguments无法传递回调)或者dismiss该DialogFragment
*/
private static void restoreDialogFragment(DownloadButton progressBar) {
GamePermissionDialogFragment gamePermissionDialogFragment =
((GamePermissionDialogFragment) ((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager().findFragmentByTag(GamePermissionDialogFragment.class.getName()));
if (gamePermissionDialogFragment != null) {
gamePermissionDialogFragment.dismissAllowingStateLoss();
}
}
/*private static void download(DownloadProgressBar progressBar, GameEntity gameEntity, ExposureEvent traceEvent, @Nullable String entrance, @Nullable String location, View v) {
if (gameEntity.getApk().size() == 1) {
ApkEntity apk = gameEntity.getApk().get(0);
@ -668,28 +655,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 = "更新";
@ -701,8 +688,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,
@ -713,25 +698,66 @@ 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;
ArrayList<TagStyleEntity> tagStyle = new ArrayList<>();
TestEntity test = gameEntity.getTest();
if (test != null
// 这个判断用于开测表列表
&& !"type_tag".equals(test.getGameTag())) {
if ("custom".equals(test.getGameTag())) {
TagStyleEntity typeTag = new TagStyleEntity();
if (!TextUtils.isEmpty(test.getText())) {
typeTag.setName(test.getText() != null ? test.getText() : "");
} else {
typeTag.setName(test.getType() != null ? test.getType() : "");
}
typeTag.setBackground("E8F3FF");
typeTag.setColor("1383EB");
tagStyle.add(typeTag);
} else {
TagStyleEntity typeTag = new TagStyleEntity();
boolean isDarkModeOn = DarkModeUtils.INSTANCE.isDarkModeOn(layout.getContext());
typeTag.setName(test.getType() != null ? test.getType() : "");
typeTag.setBackground("1AFFA142");
typeTag.setColor(isDarkModeOn ? "EB9238" : "FFA142");
tagStyle.add(typeTag);
TagStyleEntity timeTag = new TagStyleEntity();
timeTag.setName(GameViewUtils.getGameTestDate(test.getStart()));
timeTag.setBackground("1A06CEA8");
timeTag.setColor(isDarkModeOn ? "07A385" : "06CEA8");
tagStyle.add(timeTag);
}
} else {
tagStyle = gameEntity.getTagStyle();
}
GameViewUtils.setLabelList(layout.getContext(), layout, tagStyle);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void setVideoDetailGameTags(LinearLayout layout, GameEntity gameEntity) {
try {
ArrayList<TagStyleEntity> tagStyle = new ArrayList<>();
TestEntity test = gameEntity.getTest();
if (test != null) {
if (test != null
// 这个判断用于开测表列表
&& !"type_tag".equals(test.getGameTag())) {
TagStyleEntity typeTag = new TagStyleEntity();
typeTag.setName(test.getType() != null ? test.getType() : "");
typeTag.setBackground("FFF3E0");
@ -746,20 +772,18 @@ public class BindingAdapters {
} else {
tagStyle = gameEntity.getTagStyle();
}
GameViewUtils.setLabelList(layout.getContext(), layout, tagStyle);
GameViewUtils.setLabelList(layout.getContext(), layout, tagStyle, 4);
} catch (Exception e) {
e.printStackTrace();
}
}
@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; // 默认显示
if (isShowPlatform && game.getApk().size() > 0) {
@ -772,7 +796,6 @@ public class BindingAdapters {
}
@BindingAdapter({"setCommunityImage", "setCommunityVideoImage"})
public static void setCommunityImage(SimpleDraweeView imageView, List<String> images, List<CommunityVideoEntity> videos) {
if (videos.size() > 0) {
CommunityVideoEntity videoEntity = videos.get(0);
@ -786,11 +809,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 {
@ -798,7 +820,6 @@ public class BindingAdapters {
}
}
@BindingAdapter({"setGameTags", "setMaxGameTags"})
public static void setGameTags(TextView view, List<TagStyleEntity> tags, int maxTags) {
if (tags == null) {
view.setText("");
@ -827,7 +848,6 @@ public class BindingAdapters {
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);
@ -835,7 +855,7 @@ public class BindingAdapters {
view.setText(count + "");
} else {
view.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.text_999999));
view.setTextColor(ContextCompat.getColor(view.getContext(), R.color.text_subtitleDesc));
view.setText("-");
}
}

View File

@ -0,0 +1,100 @@
package com.gh.common.dialog
import android.app.Activity
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import com.gh.common.util.DirectUtils
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
class ApplyModeratorDialogFragment : BaseDialogFragment() {
private lateinit var binding: DialogApplyModeratorBinding
private var mGroupNumber = ""
private var mGroupKey = ""
private var mParentTag = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requireArguments().run {
mGroupNumber = getString(KEY_GROUP_NUMBER) ?: ""
mGroupKey = getString(KEY_GROUP_KEY) ?: ""
mParentTag = getString(EntranceConsts.KEY_PARENT_TAG) ?: ""
}
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = DialogApplyModeratorBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val startText = "版主考核群:"
val text = "$startText$mGroupNumber\n感谢你对论坛建设的支持\n请加入版主考核群并联系群主进行版主资格考核"
binding.desTv.text = SpanBuilder(text)
.click(
requireContext(),
startText.length,
startText.length + mGroupNumber.length,
R.color.theme_font,
true
) {
DirectUtils.directToQqGroup(
requireContext(),
mGroupKey
)
}
.build()
binding.desTv.movementMethod = CustomLinkMovementMethod.getInstance()
binding.confirmTv.setOnClickListener {
dismissAllowingStateLoss()
activity?.supportFragmentManager?.findFragmentByTag(mParentTag)
?.onActivityResult(REQUEST_CODE, Activity.RESULT_OK, null)
}
}
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_GROUP_NUMBER = "group_number"
const val KEY_GROUP_KEY = "group_key"
const val REQUEST_CODE = 1103
@JvmStatic
fun show(
activity: AppCompatActivity,
number: String,
key: String,
tag: String
) {
ApplyModeratorDialogFragment().apply {
arguments = Bundle().apply {
putString(KEY_GROUP_NUMBER, number)
putString(KEY_GROUP_KEY, key)
putString(EntranceConsts.KEY_PARENT_TAG, tag)
}
}.show(
activity.supportFragmentManager,
ApplyModeratorDialogFragment::class.java.name
)
}
}
}

View File

@ -1,66 +0,0 @@
package com.gh.common.dialog
import android.content.DialogInterface
import android.os.Bundle
import android.view.KeyEvent
import android.view.View
import com.gh.common.util.MtaHelper
import com.lightgame.dialog.BaseDialogFragment
import java.util.concurrent.atomic.AtomicBoolean
/**
* 对 dialog 操作进行 MTA 事件记录的 dialog fragment
*/
abstract class BaseTrackableDialogFragment : BaseDialogFragment() {
abstract fun getEvent(): String
abstract fun getKey(): String
open fun getValue(): String = ""
// 区分此 dialog 是点击 dialog 外部取消的还是点击返回取消的
private val mIsCanceledByClickOutsideOfDialog = AtomicBoolean(true)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
if (getEvent().isEmpty()) {
throw IllegalStateException("需要提供非空的 Event 来供 MTA 进行事件记录")
}
if (getKey().isEmpty()) {
throw IllegalStateException("需要提供非空的 Key 来供 MTA 进行事件记录")
}
onEvent("出现弹窗")
dialog?.setCanceledOnTouchOutside(true)
dialog?.setOnKeyListener { _, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
mIsCanceledByClickOutsideOfDialog.set(false)
onEvent("点击返回")
}
false
}
}
fun onEvent(value: String) {
if (trackWithBasicDeviceInfo()) {
MtaHelper.onEventWithBasicDeviceInfo(getEvent(), getKey(), value)
} else {
MtaHelper.onEvent(getEvent(), getKey(), value)
if (getValue().isNotEmpty()) {
MtaHelper.onEvent(getEvent(), value, getValue())
}
}
}
override fun onCancel(dialog: DialogInterface) {
super.onCancel(dialog)
if (mIsCanceledByClickOutsideOfDialog.get()) {
onEvent("点击空白")
}
}
open fun trackWithBasicDeviceInfo() = false
}

View File

@ -14,27 +14,31 @@ 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.common.util.CheckLoginUtils
import com.gh.common.util.DialogUtils
import com.gh.common.util.GsonUtils
import com.gh.common.util.SPUtils
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.UserInfoEditActivity
import com.gh.gamecenter.WebActivity
import com.gh.gamecenter.ShellActivity
import com.gh.gamecenter.common.callback.ConfirmListener
import com.gh.gamecenter.common.constant.EntranceConsts
import com.gh.gamecenter.core.utils.GsonUtils
import com.gh.gamecenter.core.utils.SPUtils
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.user.UserViewModel
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 gameId: String,
val listener: ConfirmListener
) :
Dialog(context, R.style.GhAlertDialog) {
private lateinit var view: View
private lateinit var detailedDesTv: TextView
@ -56,7 +60,7 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
detailedDesTv.paint.isAntiAlias = true
detailedDesTv.setOnClickListener {
context.startActivity(WebActivity.getIntentByUrl(context, authDialogEntity.link))
DirectUtils.directToWebView(context, authDialogEntity.link)
}
when (authDialogEntity.level) {
@ -120,8 +124,10 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
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()
@ -134,10 +140,17 @@ class CertificationDialog(context: Context, private val authDialogEntity: AuthDi
val currentActivity = AppManager.getInstance().currentActivity() ?: return
AvoidOnResultManager.getInstance(currentActivity as AppCompatActivity)
.startForResult(UserInfoEditActivity.getIntent(context, UserViewModel.TYPE_ID_CARD), object : Callback {
.startForResult(
ShellActivity.getIntent(
context,
ShellActivity.Type.REAL_NAME_INFO,
).apply {
putExtra(EntranceConsts.KEY_GAME_ID, gameId)
}, 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()
@ -150,7 +163,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.判断是否需要弹出认证弹窗接口
@ -166,7 +179,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

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,31 @@ 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.setting.compose.activity.ComposeGameDownloadSettingActivity
import com.google.gson.reflect.TypeToken
import com.halo.assistant.fragment.SettingsFragment.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 +53,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(ComposeGameDownloadSettingActivity.AUTO_INSTALL_SP_KEY, true)
if (autoInstall) {
dismiss()
}
@ -60,39 +63,49 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
companion object {
fun showDeviceRemindDialog(context: Context, gameEntity: GameEntity) {
val datas = SPUtils.getString(Constants.SP_DEVICE_REMIND)
if (datas.isNotEmpty()) {
val pair = shouldShowDeviceRemindDialog(gameEntity)
if (pair.first) {
val dialog = DeviceRemindDialog(context, pair.second!!, gameEntity)
dialog.show()
}
}
}
fun shouldShowDeviceRemindDialog(gameEntity: GameEntity): Pair<Boolean, DeviceDialogEntity?> {
val datas = SPUtils.getString(Constants.SP_DEVICE_REMIND)
if (datas.isNotEmpty()) {
val type = object : TypeToken<List<DeviceDialogEntity>>() {}.type
val entitys = GsonUtils.gson.fromJson<List<DeviceDialogEntity>>(datas, type)
val entities = GsonUtils.gson.fromJson<List<DeviceDialogEntity>>(datas, type)
//1.判断设备是否匹配
val entity = entitys.find { it.manufacturer.toLowerCase().startsWith(Build.MANUFACTURER.toLowerCase()) }
?: return
val entity =
entities.find { it.manufacturer.toLowerCase().startsWith(Build.MANUFACTURER.toLowerCase()) }
?: return Pair(false, null)
//2.判断游戏不含剔除标签
gameEntity.tagStyle.forEach {
if (entity.excludeTags.contains(it.name)) {
return
return Pair(false, null)
}
}
//3.不再弹出提示判断
val isNoRemindAgain = SPUtils.getBoolean(Constants.SP_NO_REMIND_AGAIN, false)
if (isNoRemindAgain) return
val dialog = DeviceRemindDialog(context, entity, gameEntity)
dialog.show()
if (isNoRemindAgain) return Pair(false, null)
return Pair(true, entity)
}
return Pair(false, null)
}
}
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
@ -123,36 +136,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(context).addObserver(dataWatcher)
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)
@ -161,13 +174,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
}
}
@ -178,7 +191,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
@ -200,7 +215,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() {
@ -215,7 +230,7 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
class LooperHandle(val mAdapter: BannerAdapter) : Handler() {
private val mWeakReference: WeakReference<BannerAdapter> = WeakReference(mAdapter)
override fun handleMessage(msg: Message?) {
override fun handleMessage(msg: Message) {
val adapter = mWeakReference.get()
adapter?.scrollToNextPage()
adapter?.startScroll()
@ -228,6 +243,6 @@ class DeviceRemindDialog(context: Context, val entity: DeviceDialogEntity, val g
disposable!!.dispose()
disposable = null
}
DownloadManager.getInstance(context).removeObserver(dataWatcher)
DownloadManager.getInstance().removeObserver(dataWatcher)
}
}

View File

@ -1,5 +1,6 @@
package com.gh.common.dialog
import android.app.Dialog
import android.graphics.Paint
import android.os.Bundle
import android.util.TypedValue
@ -8,66 +9,84 @@ import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
import androidx.core.content.ContextCompat
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.DisplayUtils
import com.gh.common.util.MtaHelper
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 kotlinx.android.synthetic.main.dialog_game_off_service.*
// 游戏关闭下载弹窗
class GameOffServiceDialogFragment
// : BaseTrackableDialogFragment()
:BaseDialogFragment() {
class GameOffServiceDialogFragment : BaseDialogFragment() {
private var mDialog: GameEntity.Dialog? = null
private var mBinding: DialogGameOffServiceBinding? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mDialog = requireArguments().getParcelable(KEY_DIALOG)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.dialog_game_off_service, null)
return DialogGameOffServiceBinding
.inflate(inflater)
.apply { mBinding = this }
.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mDialog?.run {
titleTv.text = title
contentTv.text = HtmlCompat.fromHtml(content, HtmlCompat.FROM_HTML_MODE_LEGACY)
for (site in sites) {
val siteTv = TextView(context)
siteTv.layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT).apply {
topMargin = DisplayUtils.dip2px(12f)
}
siteTv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f)
siteTv.setTextColor(ContextCompat.getColor(requireContext(), R.color.theme_font))
siteTv.text = site.text
siteTv.paintFlags = siteTv.paintFlags or Paint.UNDERLINE_TEXT_FLAG
siteTv.setOnClickListener {
// MtaHelper.onEvent("游戏下载状态按钮", getKey(), site.text)
DirectUtils.directToWebView(requireContext(), site.url, "(关闭下载弹窗)")
mBinding?.run {
mDialog?.run {
titleTv.text = title
contentTv.text = HtmlCompat.fromHtml(content, HtmlCompat.FROM_HTML_MODE_LEGACY)
okTv.setOnClickListener {
dismissAllowingStateLoss()
}
container.addView(siteTv)
// 过滤内容为空的元素
val notEmptySite = sites.filter { it.text.isNotBlank() }
notEmptySite.forEachIndexed { index, site ->
val siteTv = TextView(context)
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(requireContext()))
siteTv.text = site.text
siteTv.paintFlags = siteTv.paintFlags or Paint.UNDERLINE_TEXT_FLAG
siteTv.setOnClickListener {
// MtaHelper.onEvent("游戏下载状态按钮", getKey(), site.text)
DirectUtils.directToWebView(requireContext(), site.url, "(关闭下载弹窗)")
dismissAllowingStateLoss()
}
container.addView(siteTv)
}
}
}
}
// override fun getEvent(): String {
// return "游戏下载状态按钮"
// }
//
// override fun getKey(): String {
// return "查看详情弹窗"
// }
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return super.onCreateDialog(savedInstanceState).apply { setCanceledOnTouchOutside(true) }
}
companion object {
const val KEY_DIALOG = "dialog"
@JvmStatic
fun getInstance(dialog: GameEntity.Dialog) = GameOffServiceDialogFragment().apply {
mDialog = dialog
arguments = Bundle().apply {
putParcelable(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,172 @@
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.WebActivity
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
import splitties.bundle.put
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 {
put(KEY_DATA, privacyPolicyEntity)
}
privacyDialogFragment.show(
activity.supportFragmentManager,
NewPrivacyPolicyDialogFragment::class.java.name
)
}
}
}

View File

@ -1,127 +0,0 @@
package com.gh.common.dialog
import android.annotation.SuppressLint
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}_点击立即开启")
dismiss()
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)
startActivity(intent)
} else {
PermissionHelper.toPermissionSetting(requireActivity())
}
}
closeIv.setOnClickListener {
dismiss()
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

@ -1,30 +1,46 @@
package com.gh.common.dialog
import android.animation.ValueAnimator
import android.content.Context
import android.content.pm.PackageInfo
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.LinearInterpolator
import android.widget.LinearLayout
import android.widget.RelativeLayout
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
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.PackageDialogEntity
import com.gh.gamecenter.eventbus.EBPackage
import com.halo.assistant.HaloApp
import com.lightgame.adapter.BaseRecyclerAdapter
import com.lightgame.dialog.BaseDialogFragment
import com.lightgame.download.DataWatcher
import com.lightgame.download.DownloadEntity
import com.lightgame.download.DownloadStatus
import io.reactivex.disposables.Disposable
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
@ -33,6 +49,7 @@ import org.greenrobot.eventbus.ThreadMode
/**
* 包名检测弹窗
*/
// TODO 将 gameEntity 放到 argument 里再取出,避免重建时为空
class PackageCheckDialogFragment : BaseDialogFragment() {
private lateinit var binding: FragmentPackageCheckBinding
@ -40,12 +57,40 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
private val mDuration = 3000
private var mDisposable: Disposable? = null
private var mAdapter: PackageCheckAdapter? = null
var packageDialogEntity: PackageDialogEntity? = null
var callBack: DialogUtils.ConfirmListener? = null
private var mAllInstalledPackages = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0)
var gameEntity: GameEntity? = null
var callBack: ConfirmListener? = null
private val dataWatcher = object : DataWatcher() {
override fun onDataChanged(downloadEntity: DownloadEntity) {
val packageName = downloadEntity.packageName
val detectionObjects = gameEntity?.packageDialog?.detectionObjects
if (DownloadStatus.add == downloadEntity.status || DownloadStatus.done == downloadEntity.status) {
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)
)
}
}
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
EventBus.getDefault().register(this)
gameEntity?.let {
LogUtils.uploadPackageCheck("pkg_check_pop_click", "出现弹窗", it, "", "", "", "")
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
@ -55,7 +100,7 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
packageDialogEntity?.let {
gameEntity?.packageDialog?.let {
changeParams(it.detectionObjects.size)
binding.packageRv.layoutManager = LinearLayoutManager(requireContext())
@ -67,8 +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) {
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)
@ -88,6 +147,10 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
binding.cancelTv.text = "我知道了"
binding.noRemindAgainCb.visibility = View.GONE
}
"OPTIONAL_CURRENT_HINT" -> {
binding.cancelTv.text = "我知道了"
binding.noRemindAgainCb.visibility = View.VISIBLE
}
else -> {
binding.cancelTv.text = "我知道了"
binding.noRemindAgainCb.visibility = View.VISIBLE
@ -95,7 +158,9 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
}
initListener(it)
}
checkPackage()
binding.root.post {
checkPackage()
}
}
private fun changeParams(size: Int) {
@ -107,15 +172,27 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
private fun initListener(entity: PackageDialogEntity) {
binding.downloadBtn.setOnClickListener {
if (binding.noRemindAgainCb.isChecked) {
SPUtils.setBoolean(Constants.SP_PACKAGE_CHECK, true)
saveRecord(entity)
}
val isAllPackageInstalled = isAllPackageInstalled(entity)
val isAllPackageInstalled = isAllPackageInstalled(mAllInstalledPackages, entity)
if (isAllPackageInstalled) {
callBack?.onConfirm()
dismissAllowingStateLoss()
} else {
val packageLink = entity.links.find { it.buttonLink }
var packageLink = getNotInstalledLink(entity)
if (packageLink == null) {
packageLink = entity.links.find { it.buttonLink }
}
if (packageLink != null) {
LogUtils.uploadPackageCheck(
"pkg_check_pop_click",
"点击前往下载",
gameEntity,
packageLink.text,
packageLink.title,
"",
""
)
DirectUtils.directToLinkPage(requireContext(), packageLink, "包名检测弹窗", "")
}
}
@ -126,22 +203,26 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
callBack?.onConfirm()
}
if (binding.noRemindAgainCb.isChecked) {
SPUtils.setBoolean(Constants.SP_PACKAGE_CHECK, true)
saveRecord(entity)
LogUtils.uploadPackageCheck("pkg_check_pop_click", "不再提示", gameEntity, "", "", "", "")
}
dismissAllowingStateLoss()
}
}
private fun saveRecord(entity: PackageDialogEntity) {
if (entity.level == "OPTIONAL_CURRENT_HINT") {
SPUtils.setBoolean("${Constants.SP_PACKAGE_CHECK}:${gameEntity?.id}", true)
} else {
SPUtils.setBoolean("${Constants.SP_PACKAGE_CHECK}:${gameEntity?.packageDialog?.id}", true)
}
}
private fun checkPackage() {
var index = 0
mTotalWidth = (DisplayUtils.getScreenWidth() - 108f.dip2px()).toFloat()
mDisposable = rxTimer(1) {
val width = (mTotalWidth / mDuration) * it
val params = binding.progressView.layoutParams as RelativeLayout.LayoutParams
params.width = width.toInt()
binding.progressView.layoutParams = params
packageDialogEntity?.detectionObjects?.let { objects ->
gameEntity?.packageDialog?.detectionObjects?.let { objects ->
if (objects.isNotEmpty()) {
val averageTime = if (objects.size == 1) {
mDuration
@ -159,24 +240,50 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
if (it >= mDuration) {
mDisposable?.dispose()
binding.downloadBtn.isEnabled = true
binding.progressText.text = "检测完成"
binding.progressView.background = ContextCompat.getDrawable(requireContext(), R.drawable.package_check_complete_bg)
binding.downloadBtn.background = R.drawable.bg_notification_open_btn_style_2.toDrawable()
}
}
val animator = ValueAnimator.ofInt(0, 100)
animator.duration = mDuration.toLong()
animator.interpolator = LinearInterpolator()
animator.addUpdateListener {
binding.progressBar.progress = it.animatedValue as Int
}
animator.start()
}
private fun getNotInstalledLink(packageDialogEntity: PackageDialogEntity): LinkEntity? {
val links = LinkedHashSet<LinkEntity>()
packageDialogEntity.detectionObjects.forEach { obj ->
if (!checkDetectionsInstalled(mAllInstalledPackages, obj.packages)) {
obj.assignDownload.forEach {
links.add(packageDialogEntity.links[it])
}
}
}
var link: LinkEntity? = null
if (links.size > 1) {
link = links.find { it.buttonLink } ?: links.toList()[0]
} else if (links.size == 1) {
link = links.toList()[0]
}
return link
}
override fun onStart() {
super.onStart()
val width = requireContext().resources.displayMetrics.widthPixels - 60F.dip2px()
val height = ViewGroup.LayoutParams.WRAP_CONTENT
dialog?.window?.setLayout(width, height)
dialog?.setCanceledOnTouchOutside(true)
requireDialog().window?.setLayout(width, height)
requireDialog().setCanceledOnTouchOutside(true)
DownloadManager.getInstance().addObserver(dataWatcher)
}
override fun onResume() {
super.onResume()
packageDialogEntity?.let {
if (isAllPackageInstalled(it)) {
mAllInstalledPackages = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0)
gameEntity?.packageDialog?.let {
if (isAllPackageInstalled(mAllInstalledPackages, it)) {
callBack?.onConfirm()
dismissAllowingStateLoss()
}
@ -189,26 +296,30 @@ class PackageCheckDialogFragment : BaseDialogFragment() {
if (mDisposable?.isDisposed == false) {
mDisposable?.dispose()
}
LogUtils.uploadPackageCheck("pkg_check_pop_click", "关闭弹窗", gameEntity, "", "", "", "")
DownloadManager.getInstance().removeObserver(dataWatcher)
}
//安装、卸载事件
@Subscribe(threadMode = ThreadMode.MAIN)
fun onEventMainThread(busFour: EBPackage) {
if ("安装" == busFour.type || "卸载" == busFour.type) {
mAllInstalledPackages = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0)
mAdapter?.notifyDataSetChanged()
}
}
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() {
index++
notifyDataSetChanged()
notifyItemChanged(index)
}
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
@ -216,22 +327,15 @@ 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) {
var isAllInstalled = false
entity.packages.forEach { packageName ->
val isInstalled = PackageUtils.getInstalledPackages(context, 0).find { it.packageName == packageName } != null
if (isInstalled) {
isAllInstalled = true
return@forEach
}
}
val isAllInstalled = checkDetectionsInstalled(mAllInstalledPackages, entity.packages)
if (isAllInstalled) {
holder.binding.statusTv.text = "已安装"
holder.binding.statusTv.setTextColor(ContextCompat.getColor(context, R.color.theme_font))
} else {
holder.binding.statusTv.text = "未安装"
holder.binding.statusTv.setTextColor(ContextCompat.getColor(context, R.color.text_FF4147))
holder.binding.statusTv.setTextColor(ContextCompat.getColor(context, R.color.theme_red))
}
holder.binding.statusTv.visibility = View.VISIBLE
} else {
@ -241,60 +345,77 @@ 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, packageDialogEntity: PackageDialogEntity?, callBack: DialogUtils.ConfirmListener) {
fun show(activity: AppCompatActivity, gameEntity: GameEntity, callBack: ConfirmListener) {
val packageDialogEntity = gameEntity.packageDialog
if (packageDialogEntity == null) {
callBack.onConfirm()
return
}
if (isAllPackageInstalled(packageDialogEntity)) {
val allInstalledPackages = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0)
if (isAllPackageInstalled(allInstalledPackages, packageDialogEntity)) {
callBack.onConfirm()
return
}
val isChoose = SPUtils.getBoolean(Constants.SP_PACKAGE_CHECK, false)
val isChoose = SPUtils.getBoolean("${Constants.SP_PACKAGE_CHECK}:${packageDialogEntity.id}", false)
if (packageDialogEntity.level == "OPTIONAL_HINT" && isChoose) {
callBack.onConfirm()
return
}
var dialogFragment = activity.supportFragmentManager.findFragmentByTag(PackageCheckDialogFragment::class.java.simpleName) as? PackageCheckDialogFragment
val isCurrentGameChoose = SPUtils.getBoolean("${Constants.SP_PACKAGE_CHECK}:${gameEntity.id}", false)
if (packageDialogEntity.level == "OPTIONAL_CURRENT_HINT" && isCurrentGameChoose) {
callBack.onConfirm()
return
}
if (!activity.lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) return
var dialogFragment =
activity.supportFragmentManager.findFragmentByTag(PackageCheckDialogFragment::class.java.name) as? PackageCheckDialogFragment
if (dialogFragment == null) {
dialogFragment = PackageCheckDialogFragment()
dialogFragment.packageDialogEntity = packageDialogEntity
dialogFragment.gameEntity = gameEntity
dialogFragment.callBack = callBack
dialogFragment.show(activity.supportFragmentManager, PackageCheckDialogFragment::class.java.simpleName)
dialogFragment.show(activity.supportFragmentManager, PackageCheckDialogFragment::class.java.name)
} else {
dialogFragment.packageDialogEntity = packageDialogEntity
dialogFragment.gameEntity = gameEntity
dialogFragment.callBack = callBack
val transaction: FragmentTransaction = activity.supportFragmentManager.beginTransaction()
transaction.show(dialogFragment)
transaction.commit()
}
}
fun isAllPackageInstalled(packageDialogEntity: PackageDialogEntity): Boolean {
var isAllInstalled = true
val isPackagesInstall: (ArrayList<String>) -> Boolean = { packages ->
var isPackagesInstalled = false
packages.forEach {packageName->
val isInstalled = PackageUtils.getInstalledPackages(HaloApp.getInstance().application, 0).find { it.packageName == packageName } != null
if (isInstalled) {
isPackagesInstalled = true
return@forEach
}
private fun checkDetectionsInstalled(
allInstalledPackages: List<PackageInfo>,
packages: ArrayList<String>
): Boolean {
var isPackagesInstalled = false
packages.forEach { packageName ->
val isInstalled = allInstalledPackages.find { it.packageName == packageName } != null
if (isInstalled) {
isPackagesInstalled = true
return@forEach
}
isPackagesInstalled
}
return isPackagesInstalled
}
fun isAllPackageInstalled(
allInstalledPackages: List<PackageInfo>,
packageDialogEntity: PackageDialogEntity
): Boolean {
var isAllInstalled = true
packageDialogEntity.detectionObjects.forEach loop@{ obj ->
if (!isPackagesInstall(obj.packages)) {
if (!checkDetectionsInstalled(allInstalledPackages, obj.packages)) {
isAllInstalled = false
return isAllInstalled
}

View File

@ -1,155 +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.DirectUtils.directToExternalBrowser
import com.gh.common.util.dip2px
import com.gh.common.view.CustomLinkMovementMethod
import com.gh.gamecenter.R
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) {
directToExternalBrowser(context!!, context!!.getString(R.string.privacy_policy_url))
}
}, 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) {
directToExternalBrowser(requireContext(), requireContext().getString(R.string.disclaimer_url))
}
}, 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,195 @@
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
import splitties.bundle.put
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 {
put(KEY_DATA, privacyPolicyEntity)
}
privacyDialogFragment.show(
activity.supportFragmentManager,
PrivacyPolicyDialogFragment::class.java.name
)
}
}
}

View File

@ -1,17 +1,18 @@
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
@ -23,8 +24,11 @@ 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()
binding.title.text = resources.getString(R.string.dialog_reserve_title, mReserveList.size).fromHtml()
binding.more.visibility = if (mReserveList.size > 4) {
View.VISIBLE
@ -51,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()
@ -74,8 +79,13 @@ class ReserveDialog : BaseDialogFragment() {
}
companion object {
const val RESERVE_LIST = "reserve_list"
@JvmStatic
fun getInstance(reserveList: List<SimpleGameEntity>) = ReserveDialog().apply { mReserveList = reserveList }
fun getInstance(reserveList: List<SimpleGameEntity>) = ReserveDialog().apply {
arguments = Bundle()
arguments?.putParcelableArrayList(RESERVE_LIST, ArrayList(reserveList))
}
}
}

View File

@ -1,379 +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
// 预约弹窗
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
private var mSuccessCallback: 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)
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)
mSuccessCallback?.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 {
this.mGame = gameEntity
this.mGameId = gameEntity.id
this.mGameName = gameEntity.name ?: ""
this.mSuccessCallback = 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(getApplication()).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(getApplication()).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,29 +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? = "",
val gameName: String? = "",
val gameVersion: String? = "",
val sequence: Int? = 0,
val platform: String? = "",
val downloadType: String? = "",
val downloadCompleteType: String? = "",
// 下载地址的 host 和 path
var host: String? = "",
var path: String? = "",
// 统计启动弹窗相关数据用的 (ugly)
@SerializedName("dialog_id")
var welcomeDialogId: String? = "",
@SerializedName("link_title")
var welcomeDialogLinkTitle: String? = ""
) : Parcelable

View File

@ -2,52 +2,190 @@ 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.common.constant.Constants
import com.gh.gamecenter.common.entity.ExposureEntity
import com.gh.gamecenter.common.exposure.meta.Meta
import com.gh.gamecenter.common.exposure.meta.MetaUtil
import com.gh.gamecenter.common.utils.getFirstElementDividedByDivider
import com.gh.gamecenter.entity.GameEntity
import kotlinx.android.parcel.Parcelize
import com.lightgame.download.DownloadEntity
import com.lightgame.utils.Utils
import kotlinx.parcelize.IgnoredOnParcel
import kotlinx.parcelize.Parcelize
import java.util.*
@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 {
var payload: ExposureEntity,
var source: List<ExposureSource>,
var eTrace: List<ExposureEvent>? = arrayListOf(),
var event: ExposureType,
val meta: Meta = MetaUtil.getMeta(),
var time: Int = TimeUtil.currentTime(),
var timeInMillisecond: Long = System.currentTimeMillis(),
@PrimaryKey
var id: String = UUID.randomUUID().toString(),
) : Parcelable {
@Transient
@IgnoredOnParcel
var next: ExposureEvent? = null
@Transient
@IgnoredOnParcel
var flags = 0
private fun initExposureEventData(
gameEntity: GameEntity?,
source: List<ExposureSource>,
eTrace: List<ExposureEvent>? = null,
event: ExposureType = ExposureType.EXPOSURE
) {
this.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,
isAdData = gameEntity?.adIconActive ?: eTrace?.firstOrNull()?.payload?.isAdData ?: false
)
this.id = UUID.randomUUID().toString()
this.timeInMillisecond = System.currentTimeMillis()
this.time = TimeUtil.currentTime()
this.source = source
this.eTrace = eTrace
this.event = event
this.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
}
}
fun recycle() {
if (inUse()) {
Utils.log(
EXPOSURE_EVENT_LOG_TAG,
"This ExposureEvent $this cannot be recycled because it is still in use."
)
return
}
recycleUnchecked()
}
private fun recycleUnchecked() {
this.flags = FLAG_IN_USE
synchronized(sPoolSync) {
if (sPoolSize < EXPOSURE_EVENT_MAX_POOL_SIZE) {
next = sPool
sPool = this
sPoolSize++
Utils.log(EXPOSURE_EVENT_LOG_TAG, "This ExposureEvent $this Recycled")
}
}
}
private fun inUse(): Boolean {
return flags == FLAG_IN_USE
}
companion object {
private val sPoolSync = Any()
private var sPool: ExposureEvent? = null
private var sPoolSize: Int = 0
private const val EXPOSURE_EVENT_MAX_POOL_SIZE: Int = 300
private const val FLAG_IN_USE = 1
private const val EXPOSURE_EVENT_LOG_TAG = "ExposureEvent"
// TODO 建一个 exposureEvent 池规避反复生成对象
@JvmStatic
fun createEvent(gameEntity: GameEntity?, source: List<ExposureSource>, eTrace: List<ExposureEvent>? = null, event: ExposureType = ExposureType.EXPOSURE): ExposureEvent {
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(Constants.GAME_ID_DIVIDER),
gameName = gameEntity?.name?.removeSuffix(Constants.GAME_NAME_DECORATOR),
gameVersion = gameEntity?.gameVersion,
sequence = gameEntity?.sequence,
platform = gameEntity?.platform,
downloadType = gameEntity?.downloadType,
downloadCompleteType = gameEntity?.downloadCompleteType,
// ugly
welcomeDialogId = gameEntity?.welcomeDialogId ?: eTrace?.firstOrNull()?.payload?.welcomeDialogId,
welcomeDialogLinkTitle = gameEntity?.welcomeDialogTitle ?: eTrace?.firstOrNull()?.payload?.welcomeDialogLinkTitle),
source = source,
eTrace = eTrace,
event = event).apply { gameEntity?.exposureEvent = this }
synchronized(sPoolSync) {
if (sPool != null) {
val exposureEvent = sPool
sPool = exposureEvent?.next
exposureEvent?.next = null
exposureEvent?.flags = 0
sPoolSize--
exposureEvent?.initExposureEventData(gameEntity, source, eTrace, event)
Utils.log(
EXPOSURE_EVENT_LOG_TAG,
"ExposureEvent 对象 $this 正在被循环使用, 当前对象池数量还有 $sPoolSize"
)
return exposureEvent!!
}
}
Utils.log(
EXPOSURE_EVENT_LOG_TAG,
"new ExposureEvent 对象"
)
val exposureEvent = ExposureEvent(
payload = ExposureEntity(),
source = source,
eTrace = eTrace,
event = event
)
exposureEvent.initExposureEventData(gameEntity, source, eTrace, event)
return exposureEvent
}
@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

@ -11,26 +11,32 @@ import io.reactivex.functions.Consumer
*/
class ExposureListener(var fragment: Fragment, var exposable: IExposable) : RecyclerView.OnScrollListener() {
var throttleBus: ExposureThrottleBus? = null
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 onFragmentResumed(fm: FragmentManager, f: Fragment) {
throttleBus = ExposureThrottleBus(Consumer { commitExposure(it) }, Consumer(Throwable::printStackTrace))
}
override fun onFragmentPaused(fm: FragmentManager, f: Fragment) {
object : FragmentManager.FragmentLifecycleCallbacks() {
override fun onFragmentPaused(fm: FragmentManager, f: Fragment) {
if (fragment == f) {
visibleState?.let { commitExposure(it) }
throttleBus?.clear()
throttleBus.clear()
}
}
override fun onFragmentViewDestroyed(fm: FragmentManager, f: Fragment) {
override fun onFragmentViewDestroyed(fm: FragmentManager, f: Fragment) {
if (fragment == f) {
fragment.fragmentManager?.unregisterFragmentLifecycleCallbacks(this)
}
}, false)
}
}, false
)
}
/**
@ -43,8 +49,9 @@ class ExposureListener(var fragment: Fragment, var exposable: IExposable) : Recy
if (layoutManager == null) layoutManager = recyclerView.layoutManager as LinearLayoutManager
layoutManager?.run {
visibleState = ExposureThrottleBus.VisibleState(findFirstVisibleItemPosition(), findLastVisibleItemPosition())
throttleBus?.postVisibleState(visibleState!!)
visibleState =
ExposureThrottleBus.VisibleState(findFirstVisibleItemPosition(), findLastVisibleItemPosition())
throttleBus.postVisibleState(visibleState!!)
}
}

View File

@ -1,15 +1,11 @@
package com.gh.common.exposure
import com.aliyun.sls.android.sdk.model.LogGroup
import com.gh.common.exposure.time.TimeUtil
import com.gh.common.util.toJson
import com.gh.common.util.tryWithDefaultCatch
import com.aliyun.sls.android.producer.Log
import com.gh.gamecenter.BuildConfig
import com.gh.loghub.LgLOG
import com.gh.loghub.LoghubHelper
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.lightgame.utils.Utils
import java.util.concurrent.Executors
/**
* A handful tool for committing logs to aliyun loghub.
@ -22,48 +18,22 @@ import java.util.concurrent.Executors
*/
object ExposureManager {
private const val ENDPOINT = "cn-qingdao.log.aliyuncs.com"
private const val PROJECT = "ghzs"
private const val STORE_SIZE = 100
private const val LOG_STORE = BuildConfig.EXPOSURE_REPO
private val loghubHelper = LoghubHelper.getInstance()
// exposureCache 用来过滤掉具有相同 id 的曝光事件,避免重复发送事件
private val exposureSet by lazy { hashSetOf<ExposureEvent>() }
private val exposureExecutor by lazy { Executors.newSingleThreadExecutor() }
private val exposureCache by lazy { FixedSizeLinkedHashSet<String>(300) }
private val exposureDao by lazy { ExposureDatabase.buildDatabase(HaloApp.getInstance().application).logHubEventDao() }
@JvmStatic
fun init() {
loghubHelper.init(HaloApp.getInstance().application, ENDPOINT, PROJECT, LOG_STORE) { TimeUtil.currentTimeMillis() }
exposureExecutor.execute {
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}")
}
}
@ -71,86 +41,53 @@ 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()
// uploadLogGroup 是一个异步方法LoghubHelper 里面实现了重传功能,所以这里交给它就好了
loghubHelper.uploadLogGroup(buildLogGroup(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 buildLogGroup(eventList: List<ExposureEvent>): LogGroup {
val logGroup = LogGroup("sls android", "no ip")
eventList.forEach { logGroup.PutLog(buildLog(it)) }
return logGroup
private fun uploadExposures(eventList: List<ExposureEvent>, forced: Boolean) {
eventList.forEach {
LoghubHelper.uploadLog(buildLog(it), LOG_STORE, forced)
it.recycle()
}
}
private fun buildLog(event: ExposureEvent): LgLOG {
val log = LgLOG(TimeUtil.currentTime())
log.PutContent("id", event.id)
log.PutContent("payload", event.payload.toJson())
log.PutContent("event", event.event.toString())
log.PutContent("source", eliminateMultipleBrackets(event.source.toJson()))
log.PutContent("meta", event.meta.toJson())
log.PutContent("e-traces", if (event.eTrace != null) {
eliminateMultipleBrackets(event.eTrace?.toJson() ?: "")
} else "")
log.PutTime(event.time)
return log
}
internal 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())
}
}
private fun buildLog(event: ExposureEvent) = Log().apply {
putContent("id", event.id)
putContent("payload", event.payload.toJson())
putContent("event", event.event.toString())
putContent("source", eliminateMultipleBrackets(event.source.toJson()))
putContent("meta", event.meta.toJson())
putContent("real_millisecond", event.timeInMillisecond.toString())
putContent(
"e-traces", if (event.eTrace != null) {
eliminateMultipleBrackets(event.eTrace?.toJson() ?: "")
} else ""
)
logTime = event.time.toLong()
}
}

View File

@ -2,8 +2,8 @@ package com.gh.common.exposure
import android.os.Parcelable
import androidx.annotation.Keep
import kotlinx.android.parcel.Parcelize
import kotlinx.parcelize.Parcelize
@Keep
@Parcelize
data class ExposureSource(var k: String, var v: String = ""): Parcelable
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

@ -2,81 +2,138 @@ package com.gh.common.exposure
import android.text.TextUtils
import com.g00fy2.versioncompare.Version
import com.gh.common.constant.Constants
import com.gh.common.util.PackageUtils
import com.gh.common.util.toObject
import com.gh.gamecenter.common.utils.FixedSizeLinkedHashSet
import com.gh.gamecenter.common.utils.toObject
import com.gh.gamecenter.entity.ApkEntity
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.manager.PackagesManager
import com.halo.assistant.HaloApp
import java.util.*
import com.lightgame.download.DownloadEntity
object ExposureUtils {
private val mDownloadCompleteTraceEventIdSet = FixedSizeLinkedHashSet<String>(3)
@JvmStatic
fun logADownloadExposureEvent(entity: GameEntity,
platform: String?,
traceEvent: ExposureEvent?,
downloadType: DownloadType): ExposureEvent {
fun logADownloadExposureEvent(
entity: GameEntity,
platform: String?,
traceEvent: ExposureEvent?,
downloadType: DownloadType
): ExposureEvent {
val gameEntity = entity.clone()
gameEntity.id = if (entity.id.contains(Constants.GAME_ID_DIVIDER)) {
entity.id.split(Constants.GAME_ID_DIVIDER).toTypedArray()[0]
gameEntity.id = if (entity.id.contains(DownloadEntity.GAME_ID_DIVIDER)) {
entity.id.split(DownloadEntity.GAME_ID_DIVIDER).toTypedArray()[0]
} else {
entity.id
}
gameEntity.gameVersion = entity.getApk().elementAtOrNull(0)?.version ?: gameEntity.gameVersion
gameEntity.gameVersion = entity.getApk().elementAtOrNull(0)?.version
?: gameEntity.gameVersion
gameEntity.platform = platform
gameEntity.downloadType = downloadType.toString()
val exposureEvent = ExposureEvent.createEvent(gameEntity = gameEntity,
source = traceEvent?.source ?: ArrayList(),
eTrace = ExposureTraceUtils.appendTrace(traceEvent),
event = ExposureType.DOWNLOAD)
ExposureManager.log(exposureEvent)
val exposureEvent = ExposureEvent.createEvent(
gameEntity = gameEntity,
source = traceEvent?.source ?: ArrayList(),
eTrace = ExposureTraceUtils.appendTrace(traceEvent),
event = ExposureType.DOWNLOAD
)
if (!TextUtils.isEmpty(entity.id)) {
ExposureManager.log(exposureEvent)
}
return exposureEvent
}
@JvmStatic
fun logADownloadCompleteExposureEvent(entity: GameEntity,
platform: String?,
trace: String?,
host: String? = "unknown",
path: String? = "unknown",
downloadType: DownloadType) {
fun logADownloadCompleteExposureEvent(
entity: GameEntity,
platform: String?,
trace: String?,
host: String? = "unknown",
path: String? = "unknown",
downloadType: DownloadType
) {
val gameEntity = entity.clone()
gameEntity.platform = platform
gameEntity.downloadCompleteType = downloadType.toString()
val traceEvent = trace?.toObject<ExposureEvent>()
val exposureEvent = ExposureEvent.createEvent(gameEntity = gameEntity,
source = traceEvent?.source ?: ArrayList(),
eTrace = ExposureTraceUtils.appendTrace(traceEvent),
event = ExposureType.DOWNLOAD_COMPLETE)
if (TextUtils.isEmpty(entity.id)) return
// 避免生成 trace 相同的下载完成事件,根据日志看下载完成的同一秒有可能生成两条
if (mDownloadCompleteTraceEventIdSet.contains(traceEvent?.id)) {
return
}
traceEvent?.payload?.gameId?.let { mDownloadCompleteTraceEventIdSet.add(it) }
val exposureEvent = ExposureEvent.createEvent(
gameEntity = gameEntity,
source = traceEvent?.source ?: ArrayList(),
eTrace = ExposureTraceUtils.appendTrace(traceEvent),
event = ExposureType.DOWNLOAD_COMPLETE
)
exposureEvent.payload.host = host
exposureEvent.payload.path = path
ExposureManager.log(exposureEvent)
ExposureManager.commitSavedExposureEvents(forced = true)
ExposureManager.commitSavedExposureEvents(forcedUpload = true)
}
@JvmStatic
fun getDownloadType(apkEntity: ApkEntity, gameId: String): DownloadType {
return if (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.getVersionByPackage(apkEntity.packageName))) {
DownloadType.UPDATE
} else {
DownloadType.DOWNLOAD
}
}
} else {
if (!TextUtils.isEmpty(apkEntity.ghVersion)) {
DownloadType.PLUGIN_DOWNLOAD
} else {
DownloadType.UPDATE
}
fun getDownloadType(apkEntity: ApkEntity, gameId: String, isVGame: Boolean): DownloadType {
return when {
isVGame -> getVGameDownloadType(apkEntity, gameId)
PackageUtils.isInstalled(
HaloApp.getInstance().application,
apkEntity.packageName
) -> 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
}
}
/**
* 为游戏实体添加位置序号和上层专题 id (若存在)
*/
@JvmStatic
fun updateExposureInfo(
gameList: List<GameEntity>?,
subjectId: String? = null,
containerId: String? = null,
containerType: String? = null
) {
gameList?.let {
for ((index, game) in it.withIndex()) {
game.sequence = index
game.subjectId = subjectId
game.containerId = containerId
game.containerType = containerType
}
} else {
DownloadType.DOWNLOAD
}
}
@ -87,6 +144,10 @@ object ExposureUtils {
PLUGIN_UPDATE,
PLUGIN_DOWNLOAD
PLUGIN_DOWNLOAD,
FUN_DOWNLOAD,
FUN_UPDATE
}
}

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 imei: String? = "",
val model: String? = "",
val manufacturer: String? = "",
val android_id: 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,207 +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.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
fun refreshMeta() {
m = Meta(mac = "",
imei = getIMEI(),
model = getModel(),
manufacturer = getManufacturer(),
android_id = getAndroidId(),
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 = RomIdentifier.getRom().name + "" + RomIdentifier.getRom().versionName)
}
fun getMeta(): Meta {
if (m == null) {
refreshMeta()
}
return m!!
}
private fun getChannel(): String? {
if (TextUtils.isEmpty(channel)) {
channel = if (ChannelReaderUtil.getChannel(application) != null) ChannelReaderUtil.getChannel(application) else ""
}
return 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 (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 ?: ""
}
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

@ -5,17 +5,46 @@ 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) {
@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>
) {
@Keep
data class ChannelControl(
@SerializedName("game_category")
var gameCategory: String,
@SerializedName("effect")
var effect: Boolean)
@SerializedName("game_category")
var gameCategory: String,
@SerializedName("effect")
var effect: Boolean
)
@Keep
data 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,// 按钮文案
)
data 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,25 +1,26 @@
package com.gh.common.filter
import android.annotation.SuppressLint
import com.gh.common.AppExecutor
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.common.constant.Constants
import com.gh.gamecenter.core.utils.SPUtils
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.R
import com.gh.gamecenter.entity.GameEntity
import com.gh.gamecenter.retrofit.BiResponse
import com.gh.gamecenter.common.retrofit.BiResponse
import com.gh.gamecenter.retrofit.RetrofitManager
import com.halo.assistant.HaloApp
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Function
import io.reactivex.schedulers.Schedulers
object RegionSettingHelper {
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 const val SP_SETTING = "region_setting"
@ -32,6 +33,12 @@ 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 }
@JvmStatic
fun filterGame(list: List<GameEntity>?): ArrayList<GameEntity> {
if (list == null) return arrayListOf()
@ -59,28 +66,33 @@ 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, 3000) {
debounceActionWithInterval(R.string.app_name, 5000) {
// 使用默认的 Schdulers.io() 可能会触发 OOM
RetrofitManager.getInstance(HaloApp.getInstance().application)
.sensitiveApi
.getRegionSetting(HaloApp.getInstance().channel)
.subscribeOn(AppExecutor.cachedScheduler)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(object : BiResponse<RegionSetting>() {
override fun onSuccess(data: RegionSetting) {
updateSettingsInMemory(data)
SPUtils.setString(SP_SETTING, data.toJson())
}
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())
}
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)
}
})
}
})
}
}
@ -88,6 +100,8 @@ object RegionSettingHelper {
mFilterGameIdSet = data.filterGameIdSet
mDisplayMirrorIfoGameIdSet = data.mirrorGameIdSet
mChannelControl = data.channelControl
mGameH5DownloadList = data.gameH5DownloadList
mGameSpecialDownloadInfoList = data.gameSpecialDownloadInfoList
}
/**

View File

@ -6,6 +6,7 @@ import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import androidx.room.migration.Migration
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
@ -15,16 +16,30 @@ 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], version = 7, exportSchema = false)
@TypeConverters(CountConverter::class,
CommunityConverter::class,
TimeConverter::class,
AnswerUserConverter::class,
ThumbnailConverter::class,
TagStyleListConverter::class,
StringArrayListConverter::class,
CommunityVideoConverter::class,
UserConverter::class)
@Database(
entities = [AnswerEntity::class, ArticleEntity::class, NewsEntity::class, HistoryGameEntity::class, MyVideoEntity::class, GamesCollectionEntity::class],
version = 11,
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,
ActivityLabelListConverter::class
)
abstract class HistoryDatabase : RoomDatabase() {
@ -33,6 +48,7 @@ abstract class HistoryDatabase : RoomDatabase() {
abstract fun newsDao(): NewsHistoryDao
abstract fun gameDao(): GameDao
abstract fun videoHistoryDao(): VideoHistoryDao
abstract fun gamesCollectionDao(): GamesCollectionDao
companion object {
@ -69,14 +85,64 @@ abstract class HistoryDatabase : RoomDatabase() {
}
}
val MIGRATION_7_8: Migration = object : Migration(7, 8) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("Alter TABLE ArticleEntity add images TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE ArticleEntity add imagesInfo TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE AnswerEntity add imagesInfo TEXT NOT NULL DEFAULT ''")
}
}
val MIGRATION_8_9: Migration = object : Migration(8, 9) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("Alter TABLE ArticleEntity add des TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE ArticleEntity add url TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE ArticleEntity add videoInfo TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE ArticleEntity add poster TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE ArticleEntity add length INTEGER NOT NULL DEFAULT 0")
database.execSQL("Alter TABLE ArticleEntity add status TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE ArticleEntity add content TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE ArticleEntity add questions TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE AnswerEntity add des TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE AnswerEntity add url TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE AnswerEntity add videoInfo TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE AnswerEntity add poster TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE AnswerEntity add length INTEGER NOT NULL DEFAULT 0")
database.execSQL("Alter TABLE AnswerEntity add status TEXT NOT NULL DEFAULT ''")
database.execSQL("Alter TABLE AnswerEntity add content TEXT NOT NULL DEFAULT ''")
}
}
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)"
)
}
}
val MIGRATION_10_11: Migration = object : Migration(10, 11) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("Alter TABLE GamesCollectionEntity add activityTags TEXT DEFAULT ''")
}
}
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)
.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)
.build()
}
}

View File

@ -1,10 +1,10 @@
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.qa.entity.AnswerDetailEntity
import com.gh.gamecenter.qa.entity.AnswerEntity
@ -24,6 +24,15 @@ object HistoryHelper {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.articleDao().addArticle(articleEntity) } }
}
fun insertGamesCollectionEntity(gamesCollectionDetailEntity: GamesCollectionDetailEntity) {
val gamesCollectionEntity = convertGamesCollectionDetailToGamesCollection(gamesCollectionDetailEntity)
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.gamesCollectionDao().addGamesCollection(gamesCollectionEntity)
}
}
}
@JvmStatic
fun insertGameEntity(gameEntity: GameEntity) {
val historyGameEntity = convertGameEntityToHistoryGameEntity(gameEntity)
@ -44,10 +53,9 @@ object HistoryHelper {
historyGame.brief = updateEntity.brief
historyGame.des = ""
historyGame.icon = updateEntity.rawIcon ?: updateEntity.icon
historyGame.iconSubscript = historyGame.iconSubscript
historyGame.iconSubscript = updateEntity.iconSubscript
historyGame.name = updateEntity.name
historyGame.tagStyle = updateEntity.tagStyle
historyGame.tag = updateEntity.tag
return historyGame
}
@ -69,48 +77,82 @@ object HistoryHelper {
@JvmStatic
fun insertNewsEntity(newsEntity: NewsEntity) {
newsEntity.orderTag = System.currentTimeMillis()
runOnIoThread { HistoryDatabase.instance.newsDao().addNews(newsEntity) }
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.newsDao().addNews(newsEntity) } }
}
@JvmStatic
fun deleteNewsEntity(newsId: String) {
runOnIoThread { HistoryDatabase.instance.newsDao().deleteNews(NewsEntity().apply { id = newsId }) }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.newsDao().deleteNews(NewsEntity().apply { id = newsId })
}
}
}
@JvmStatic
fun deleteGameEntity(gameId: String) {
runOnIoThread { HistoryDatabase.instance.gameDao().deleteGame(HistoryGameEntity(id = gameId)) }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.gameDao().deleteGame(HistoryGameEntity(id = gameId))
}
}
}
@JvmStatic
fun deleteArticleEntity(articleId: String) {
runOnIoThread { HistoryDatabase.instance.articleDao().deleteArticle(ArticleEntity(id = articleId)) }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.articleDao().deleteArticle(ArticleEntity(id = articleId))
}
}
}
@JvmStatic
fun deleteAnswerEntity(answerId: String) {
runOnIoThread { HistoryDatabase.instance.answerDao().deleteAnswer(AnswerEntity().apply { primaryKey = answerId }) }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.answerDao().deleteAnswer(AnswerEntity().apply { primaryKey = answerId })
}
}
}
@JvmStatic
fun deleteVideoEntity(videoId: String) {
runOnIoThread { HistoryDatabase.instance.videoHistoryDao().deleteVideo(MyVideoEntity().apply { id = videoId }) }
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.videoHistoryDao().deleteVideo(MyVideoEntity().apply { id = videoId })
}
}
}
@JvmStatic
fun deleteAttentionVideoRecord() {
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.videoHistoryDao().deleteAttentionVideoRecord() } }
}
@JvmStatic
fun deleteGamesCollectionEntity(gameCollectionId: String) {
runOnIoThread {
tryCatchInRelease {
HistoryDatabase.instance.gamesCollectionDao()
.deleteGamesCollection(GamesCollectionEntity(id = gameCollectionId))
}
}
}
@JvmStatic
fun emptyDatabase() {
runOnIoThread { HistoryDatabase.instance.clearAllTables() }
runOnIoThread { tryCatchInRelease { HistoryDatabase.instance.clearAllTables() } }
}
private fun convertArticleDetailToArticle(articleDetailEntity: ArticleDetailEntity): ArticleEntity {
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
@ -118,6 +160,9 @@ object HistoryHelper {
articleEntity.title = articleDetailEntity.title
articleEntity.user = articleDetailEntity.user
articleEntity.orderTag = System.currentTimeMillis()
articleEntity.images = articleDetailEntity.images
articleEntity.imagesInfo = articleDetailEntity.imagesInfo
articleEntity.videos = articleDetailEntity.videos
return articleEntity
}
@ -132,14 +177,44 @@ 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
answerEntity.videos = answerDetailEntity.videos
return answerEntity
}
private fun convertGamesCollectionDetailToGamesCollection(gamesCollectionDetailEntity: GamesCollectionDetailEntity): GamesCollectionEntity {
val gamesCollectionEntity = GamesCollectionEntity()
gamesCollectionEntity.id = gamesCollectionDetailEntity.id
gamesCollectionEntity.tags = gamesCollectionDetailEntity.tags
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
gamesCollectionEntity.display = gamesCollectionDetailEntity.display
gamesCollectionEntity.orderTag = System.currentTimeMillis()
gamesCollectionEntity.stamp = gamesCollectionDetailEntity.stamp
gamesCollectionEntity.count = gamesCollectionDetailEntity.count
gamesCollectionDetailEntity.user?.run {
gamesCollectionEntity.user = User(
id = id ?: "",
name = name ?: "",
icon = icon ?: "",
badge = badge
)
}
gamesCollectionEntity.me = gamesCollectionDetailEntity.me
return gamesCollectionEntity
}
}

View File

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

View File

@ -1,67 +0,0 @@
//package com.gh.common.im
//
//import android.app.Activity
//import androidx.core.view.ViewCompat
//import android.view.View
//import android.view.ViewGroup
//
//object ImHintHelper {
//
// @JvmStatic
// fun show(activity: Activity?) {
// activity?.let {
// var hintView = retrieveHintViewFromActivity(it)
// if (hintView == null) {
// hintView = ImHintView(it)
// hintView.showDot(ImManager.shouldShowFloatingWindowDot)
//
// val decorView = it.window.decorView as ViewGroup
// it.runOnUiThread {
// decorView.addView(hintView)
// }
// } else {
// hintView.showDot(ImManager.shouldShowFloatingWindowDot)
// }
// }
// }
//
// @JvmStatic
// fun dismiss(activity: Activity?) {
// activity?.let {
// clearCurrent(it)
// }
// }
//
// private fun retrieveHintViewFromActivity(activity: Activity?) : ImHintView? {
// (activity?.window?.decorView as? ViewGroup)?.let {
// for (i in 0..it.childCount) {
// val childView = if (it.getChildAt(i) is ImHintView) it.getChildAt(i) as ImHintView else null
// if (childView != null && childView.windowToken != null) {
// return childView
// }
// }
// return null
// }
// return null
// }
//
// private fun clearCurrent(activity: Activity?) {
// (activity?.window?.decorView as? ViewGroup)?.let {
// for (i in 0..it.childCount) {
// val childView = if (it.getChildAt(i) is ImHintView) it.getChildAt(i) as ImHintView else null
// if (childView != null && childView.windowToken != null) {
// ViewCompat.animate(childView).alpha(0f).withEndAction(getRemoveViewRunnable(childView))
// }
// }
// }
// }
//
// private fun getRemoveViewRunnable(childView: View?): Runnable {
// return Runnable {
// childView?.let {
// (childView.parent as? ViewGroup)?.removeView(childView)
// }
// }
// }
//
//}

View File

@ -1,45 +0,0 @@
//package com.gh.common.im
//
//import android.app.Activity
//import android.content.Context
//import android.util.AttributeSet
//import android.util.TypedValue
//import android.view.View
//import android.widget.RelativeLayout
//import androidx.core.view.ViewCompat
//import com.gh.common.util.DisplayUtils
//import com.gh.gamecenter.R
//import kotlinx.android.synthetic.main.view_im_hint.view.*
//
//class ImHintView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0)
// : RelativeLayout(context, attrs, defStyle) {
//
// init {
// inflate(context, R.layout.view_im_hint, this)
//
// ViewCompat.setTranslationZ(this, Integer.MAX_VALUE.toFloat() - 1)
//
// ivContainer.setOnClickListener {
// if (context is Activity) {
// ImManager.startChatActivity(context)
// ImManager.removeNotification()
// }
// }
//
// val lp = ivContainer.layoutParams as RelativeLayout.LayoutParams
//
// lp.setMargins(0, 0, dp2px(30f), dp2px(106f) + DisplayUtils.retrieveNavigationHeight(context))
// }
//
// fun showDot(show: Boolean) {
// if (show) {
// unreadDot.visibility = View.VISIBLE
// } else {
// unreadDot.visibility = View.GONE
// }
// }
//
// private fun dp2px(dp: Float): Int {
// return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.applicationContext.resources.displayMetrics).toInt()
// }
//}

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