diff --git a/app/build.gradle b/app/build.gradle
index 6009c22c81..e41dfda5f6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -95,8 +95,10 @@ android {
buildConfigField "int", "ACTIVATE_REPORTING_RATIO", "${ACTIVATE_REPORTING_RATIO}"
// All third-party appid/appkey
+ buildConfigField "boolean", "IS_GAT_APP", "false"
buildConfigField "String", "API_HOST", "\"${API_HOST}\""
buildConfigField "String", "NEW_API_HOST", "\"${NEW_API_HOST}\""
+ buildConfigField "String", "LOG_HUB_PROJECT", "\"${LOG_HUB_PROJECT}\""
buildConfigField "String", "VAPI_HOST", "\"${VAPI_HOST}\""
buildConfigField "String", "WECHAT_APPID", "\"${WECHAT_APPID}\""
buildConfigField "String", "WECHAT_SECRET", "\"${WECHAT_SECRET}\""
@@ -157,7 +159,7 @@ android {
}
}
- flavorDimensions("env")
+ flavorDimensions("env", "region")
sourceSets {
publish {
@@ -175,6 +177,12 @@ android {
gdt {
java.srcDirs = ['src/main/java', 'src/gdt/java']
}
+ gat {
+ java.srcDirs = ['src/main/java', 'src/gat/java']
+ }
+ cn {
+ java.srcDirs = ['src/main/java', 'src/cn/java']
+ }
}
productFlavors {
@@ -242,6 +250,37 @@ android {
buildConfigField "String", "DEV_CSJ_APPID", "\"${CSJ_APPID}\""
buildConfigField "String", "CSJ_APPID", "\"${CSJ_APPID}\""
}
+
+ sm {
+ dimension "env"
+
+ buildConfigField "String", "DEV_API_HOST", "\"${API_HOST}\""
+ buildConfigField "String", "NEW_DEV_API_HOST", "\"${NEW_API_HOST}\""
+ buildConfigField "String", "DEV_VAPI_HOST", "\"${VAPI_HOST}\""
+ buildConfigField "String", "QUICK_LOGIN_APPID", "\"${QUICK_LOGIN_APPID}\""
+ buildConfigField "String", "QUICK_LOGIN_APPKEY", "\"${QUICK_LOGIN_APPKEY}\""
+ buildConfigField "String", "DEV_CSJ_APPID", "\"${CSJ_APPID}\""
+ buildConfigField "String", "CSJ_APPID", "\"${CSJ_APPID}\""
+ }
+
+ // 港澳台
+ gat {
+ dimension "region"
+
+ applicationId rootProject.ext.applicationIdGat
+
+ // 支持繁体
+ resConfigs "zh", "zh-rTW"
+
+ buildConfigField "boolean", "IS_GAT_APP", "true"
+ buildConfigField "String", "LOG_HUB_PROJECT", "\"${LOG_HUB_PROJECT_GAT}\""
+ buildConfigField "String", "API_HOST", "\"${API_HOST_GAT}\""
+ buildConfigField "String", "NEW_API_HOST", "\"${NEW_API_HOST_GAT}\""
+ }
+
+ cn {
+ dimension "region"
+ }
}
}
diff --git a/app/src/internal/res/values-zh-rTW/strings.xml b/app/src/internal/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..2b3db973b4
--- /dev/null
+++ b/app/src/internal/res/values-zh-rTW/strings.xml
@@ -0,0 +1,7 @@
+
+
+ 從SD卡安裝
+ 安裝
+ 卸載
+ 啟動
+
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/common/provider/BuildConfigImpl.kt b/app/src/main/java/com/gh/common/provider/BuildConfigImpl.kt
index 4a35eab467..1f35b6a8b9 100644
--- a/app/src/main/java/com/gh/common/provider/BuildConfigImpl.kt
+++ b/app/src/main/java/com/gh/common/provider/BuildConfigImpl.kt
@@ -19,6 +19,7 @@ class BuildConfigImpl : IBuildConfigProvider {
override fun getExposureVersion(): String = BuildConfig.EXPOSURE_VERSION
override fun isDebug(): Boolean = BuildConfig.DEBUG
+ override fun isGATApp(): Boolean = BuildConfig.IS_GAT_APP
override fun getApiHost(): String = BuildConfig.API_HOST
@@ -31,4 +32,5 @@ class BuildConfigImpl : IBuildConfigProvider {
override fun getVApiHost(): String = BuildConfig.VAPI_HOST
override fun getVDevApiHost(): String = BuildConfig.DEV_VAPI_HOST
+ override fun getLogProducerProject(): String = BuildConfig.LOG_HUB_PROJECT
}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/common/util/LogUtils.java b/app/src/main/java/com/gh/common/util/LogUtils.java
index 94da90aec9..420b6a080b 100644
--- a/app/src/main/java/com/gh/common/util/LogUtils.java
+++ b/app/src/main/java/com/gh/common/util/LogUtils.java
@@ -259,6 +259,7 @@ public class LogUtils {
private static void uploadToReservation(JSONObject object) {
Context context = HaloApp.getInstance().getApplication();
try {
+ object.put(KEY_EVENT, "appointment");
object.put("version", PackageUtils.getGhVersionName());
object.put("channel", HaloApp.getInstance().getChannel());
object.put("dia", MetaUtil.getBase64EncodedAndroidId());
diff --git a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt
index ac971fc08f..0360aaa64b 100644
--- a/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/personal/HaloPersonalFragment.kt
@@ -65,6 +65,7 @@ import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import splitties.views.dsl.core.endMargin
import java.lang.ref.WeakReference
+import java.util.*
import java.util.concurrent.TimeUnit
import kotlin.math.abs
@@ -141,10 +142,10 @@ class HaloPersonalFragment : BaseLazyFragment() {
if (DarkModeUtils.isFollowSystemDarkModeFromSp()) {
DialogHelper.showDialog(
context = requireContext(),
- title = "提示",
- content = "切换模式后,将暂时关闭深色模式跟随系统切换功能,您可以前往“我的光环-设置”再次开启。",
- confirmText = "确定",
- cancelText = "取消",
+ title = getString(R.string.hint),
+ content = getString(R.string.switch_theme_mode_dialog_content),
+ confirmText = getString(R.string.confirm),
+ cancelText = getString(R.string.cancel),
confirmClickCallback = {
NewFlatLogUtils.logHaloSelfNightModeOsDialog("确定")
DarkModeUtils.updateAppDarkModeStatusToSp(!mIsDarkModeOn)
@@ -356,9 +357,9 @@ class HaloPersonalFragment : BaseLazyFragment() {
) { badgeEntities: List ->
mStubBinding.personalBadgeIcon.setImageURI("")
if (badgeEntities.isEmpty()) {
- mStubBinding.personalBadgeCountTv.text = "我的徽章"
+ mStubBinding.personalBadgeCountTv.text = getString(R.string.my_badge)
} else {
- mStubBinding.personalBadgeCountTv.text = "${badgeEntities.size} 徽章"
+ mStubBinding.personalBadgeCountTv.text = getString(R.string.badge_count, badgeEntities.size)
for ((_, _, icon, name, _, wear, _, actions) in badgeEntities) {
if (wear) {
ImageUtils.display(
@@ -404,9 +405,9 @@ class HaloPersonalFragment : BaseLazyFragment() {
}
mHaloPersonalViewModel.applyOrReceiveBadge(badge.id, {
if ("self" == badge.receive?.type) {
- ToastUtils.showToast("领取成功")
+ ToastUtils.showToast(getString(R.string.ling_sucessfully_toast))
} else {
- ToastUtils.showToast("申请成功")
+ ToastUtils.showToast(getString(R.string.apply_successfully_toast))
}
// 跳转到徽章详情
DirectUtils.directToBadgeDetail(
@@ -416,9 +417,9 @@ class HaloPersonalFragment : BaseLazyFragment() {
)
}, {
if ("self" == badge.receive?.type) {
- ToastUtils.showToast("领取失败")
+ ToastUtils.showToast(getString(R.string.ling_failed_toast))
} else {
- ToastUtils.showToast("申请失败")
+ ToastUtils.showToast(getString(R.string.apply_failed_toast))
}
})
}
@@ -504,7 +505,7 @@ class HaloPersonalFragment : BaseLazyFragment() {
} else {
DialogUtils.showSignDialog(
context,
- "今天已签到,明天再来吧~",
+ getString(R.string.sign_dialog_content_3),
getString(R.string.sign_dialog_content, signEntity.serialSign),
getString(R.string.sign_dialog_content2, signEntity.experience),
getSignSkipText(signEntity.title)
@@ -522,7 +523,7 @@ class HaloPersonalFragment : BaseLazyFragment() {
}
private fun getSignSkipText(text: String): String =
- if (TextUtils.isEmpty(text)) "去首页看看" else text
+ if (TextUtils.isEmpty(text)) getString(R.string.go_to_home) else text
@SuppressLint("SetTextI18n")
private fun changeLoginState(isLogin: Boolean) {
@@ -590,8 +591,8 @@ class HaloPersonalFragment : BaseLazyFragment() {
}
mStubBinding.userIdTv.textSize = 11F
- mStubBinding.personalUserName.text = "立即登录"
- mStubBinding.userIdTv.text = "解锁更多精彩内容"
+ mStubBinding.personalUserName.text = getString(R.string.login_immediately)
+ mStubBinding.userIdTv.text = getString(R.string.login_immediately_hint)
if (mStubBinding.loginMessageHint.visibility == View.VISIBLE) {
mStubBinding.loginMessageHint.visibility = View.GONE
@@ -679,20 +680,24 @@ class HaloPersonalFragment : BaseLazyFragment() {
}
}
mStubBinding.feedbackItem.run {
- titleTv.text = "帮助与反馈"
+ titleTv.text = getString(R.string.help_and_feedback)
iconIv.setImageResource(R.drawable.ic_personal_feedback)
root.setOnClickListener {
NewFlatLogUtils.logHaloSelfClick("其他功能", "帮助与反馈")
DirectUtils.directToHelpAndFeedback(requireContext())
}
+ // 港澳台APP不显示帮助与反馈
+ root.goneIf(EnvHelper.isGATApp)
}
mStubBinding.shareGhItem.run {
- titleTv.text = "分享光环"
+ titleTv.text = getString(R.string.share_halo)
iconIv.setImageResource(R.drawable.ic_personal_share)
root.setOnClickListener {
NewFlatLogUtils.logHaloSelfClick("其他功能", "分享光环")
startActivity(ShareGhActivity.getIntent(requireContext()))
}
+ // 港澳台APP不显示分享光环
+ root.goneIf(EnvHelper.isGATApp)
}
mStubBinding.userProtocolItem.run {
titleTv.text = getString(R.string.setting_user_protocol)
diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java
index 425afad0c4..b5e0630df6 100644
--- a/app/src/main/java/com/halo/assistant/HaloApp.java
+++ b/app/src/main/java/com/halo/assistant/HaloApp.java
@@ -50,6 +50,7 @@ import com.gh.gamecenter.common.image.EmptyDecoder;
import com.gh.gamecenter.common.tracker.Tracker;
import com.gh.gamecenter.common.utils.DarkModeUtils;
import com.gh.gamecenter.common.utils.DeviceUtils;
+import com.gh.gamecenter.common.utils.EnvHelper;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.common.utils.ImageUtils;
import com.gh.gamecenter.common.utils.PackageFlavorHelper;
@@ -299,11 +300,15 @@ public class HaloApp extends MultiDexApplication {
// 获取/更新 GID 和 读 SP 的操作不需要 delay
DataUtils.getGid();
- OAIDHelper.INSTANCE.getOAID(this, s -> {
- setOAID(s);
- MetaUtil.INSTANCE.refreshMeta();
- return null;
- });
+ // https://jira.shanqu.cc/browse/GHZS-3765
+ // 港澳APP去掉oaid的获取
+ if (!EnvHelper.isGATApp()) {
+ OAIDHelper.INSTANCE.getOAID(this, s -> {
+ setOAID(s);
+ MetaUtil.INSTANCE.refreshMeta();
+ return null;
+ });
+ }
// 获取 settings 配置
ExtensionsKt.doOnMainProcessOnly(this, com.gh.common.constant.Config::getGhzsSettings);
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..97bbc152ad
--- /dev/null
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,538 @@
+
+
+
+ 光環助手
+
+
+
+ assertk.Assert
+
+ 100%
+ 修改昵稱
+ 請輸入昵稱
+ 取消
+ 保存
+ 我是字符串
+ 我關註的遊戲
+ 以下是已關註的遊戲
+ 全部開始
+ 搜索中...
+ 熱門搜索
+ 熱門標簽
+ 歷史搜索
+ 我關註的遊戲
+ 請輸入搜索關鍵字
+ 搜索
+ 44.5%
+ 官方版 1.2MB/s(剩3分30秒)
+ 加載失敗,點擊重試
+ 新手攻略
+ 全部
+ 關註
+ 搜索遊戲
+ 復製
+ 請輸入關鍵字
+ 搜索
+ 加載完畢
+ 活動
+ 沒有找到符合條件的遊戲~
+ 換個條件篩選一下試試看吧
+ 趕緊發表一個評論吧~
+ 投票
+ 正在掃描手機中的安裝包
+ 停止掃描
+ 熱門遊戲推薦
+ 遊戲下載
+ 遊戲更新
+ 已安裝
+ 專區
+ 雲存檔
+ 詳情
+ 評價
+ 論壇
+ 請輸入搜索關鍵字
+ 搜索
+ 歷史禮包
+ 最新
+ 關註
+ 存號箱
+ 遊戲
+ 首頁
+ 我的光環
+ 說點什麽吧
+ 發表評論...
+ 從手機相冊中選擇
+ 用戶協議
+ 隱私政策
+ 個人信息收集清單
+ 接入第三方SDK目錄
+ 權限申請與使用情況說明
+ 兒童隱私保護聲明
+ 0.0M
+ 長按二維碼查看詳情
+ 分享自『光環助手』App
+ 添加選項
+ 我要評論
+ 正在為您更新,請耐心等待
+ %s下載地址:
+ %s下載地址:
+ 前往第三方網站下載遊戲
+ 提示標題
+ 提示內容
+ 知道了
+
+ 網絡錯誤,點擊重試!
+ 目前還沒有評論
+ 沒有更多評論啦
+ 安裝包清理
+ 選擇安裝包
+ 查看對話
+ 裁剪圖片
+ 開服表
+ 評論詳情
+ 選擇頭像
+ 設置
+ 分享卡片
+ 分享卡片
+ 分享光環
+ %s - 求版本
+ 遊戲上傳
+ 歷史版本
+ 我的遊戲評論
+
+ 資訊
+ 攻略
+ 下載管理
+
+ 編輯資料
+ 一鍵刪除(%1$d個,釋放%2$s)
+ 保存
+
+ - 一
+ - 二
+ - 三
+ - 四
+ - 五
+ - 六
+ - 日
+
+ 起一個難忘的名字吧
+ 選擇地區
+ 分享
+ 換圖
+ 頭像
+ 昵稱
+ 地區
+ 性別
+ 男
+ 女
+ 輸入你的常用QQ或者郵箱
+ 聯系方式僅用於提交反饋時自動填寫相關信息,方便客服及時跟進和答復。
+ 請輸真實姓名
+ 請輸入18位真實身份證號碼
+ 根據國家網信辦《移動互聯網應用程序信息服務管理規定》要求,內容與社區類移動APP產品必須完善實名認證機製,維護健康、有序的信息環境以及保障網絡安全。
+ 工具
+ 帖子
+ 資訊
+ 視頻
+ 遊戲單
+ 原創
+ "查看評論(%d)
+ 禮包內容
+ 領取規則
+ 使用說明
+ 評論加載失敗, 請檢查網絡設置
+ 取消關註
+ 取消關註
+ 已取消關註
+ 取消關註失敗
+
+ 已淘號:%1$s]]>
+ 已領取:%1$s]]>
+ 禮包碼:%1$s復製成功
請盡快進入遊戲兌換]]>
+ 禮包碼:%1$s復製成功
淘號禮包不保證可用,請盡快進入遊戲嘗試兌換]]>
+ 禮包碼刪除之後不可恢復,請確定您已經兌換過該禮包]]>
+ 請先安裝《%1$s》 %2$s]]>
+ 安裝《%1$s》]]>
+ 安裝《%1$s》%2$s]]>
+
+ 未安裝 的應用,確定刪除嗎?]]>
+ 找到%1$d個安裝包,占用%2$s空間]]>
+
+ 禮包詳情
+ 5618b86e8ab49e17088b4575
+
+ 版本:V%1$s | %2$s
+
+ 了解更多
+ 小助手邀你共建良好的社區氛圍,請通過「光環助手禮儀測試」後發言。
+
+ 請輸入關鍵字
+ 需要什麽工具,點擊這裏反饋
+ 此遊戲有問題?點擊反饋
+ 熱門評論
+ 最新評論
+ 全部暫停
+ 全部開始
+
+ 未開搶
+ 領取
+ 淘號
+ 已領光
+
+ 已下架
+ 再領
+ 再淘
+ 查看
+ activity_grant
+
+ 已安裝
+ 未安裝
+ 找不到想要的遊戲?
+ 置頂
+ 熱門
+
+ %1$d票
+ 搜索
+
+ 取消失敗,請稍後再試
+ 光環助手接入第三方SDK目錄
+ https://resource.ghzs.com/page/third_party_sdk/index.html
+ 光環助手評論規則
+ https://resource.ghzs.com/page/rule_page/comment_rules.html
+ 取消收藏
+ 取消收藏失敗
+ 收藏成功
+ 收藏失敗
+ 提交中...
+ 投票成功
+ 請輸入名字
+ 保存圖片
+ 選擇性別
+ 修改昵稱
+ 聯系方式
+ 昵稱不能為空
+ 男
+ 女
+ 安裝包不能大於%1$dGB,請重新選擇
+
+ 我的收藏
+ 別話癆哦~休息一會再來評論吧~
+ 賬號異常,暫時無法發表內容
+ 評論內容可能包括敏感信息,請修改後再發表
+ 提交失敗,請檢查網絡設置
+
+ 回復%1$s:
+ 正在提交
+ 包含違規內容,請修改後重試哦
+ 未選擇
+ 未選擇
+ 未填寫
+ 社區
+
+ 上拉查看歷史禮包
+ 創作不易,留言點贊一下 ~
+ 到底了哦~點擊回到頂部
+ 邀請
+
+ %1$s 回答
+ %1$s 贊同
+ 已投票
+ 投票
+ 禮包中心
+ 已邀請
+
+ 分享
+ 更多
+
+ 收藏
+ 關註
+
+ 光環助手 - 回答詳情
+
+ 邀請成功
+
+ 我的論壇
+ 已關註
+ 回答
+ 發布
+ 請撰寫回答...
+ 邀請回答
+ 撰寫回答
+ 修改回答
+
+ 已經點贊了喲~
+ 不能重復點贊哦
+ %1$s邀請你回答:%2$s
+ %1$s回答了:%2$s(%3$d個贊同)
+ https://and-static.ghzs.com/app-logo.png
+ 光環助手,快樂前行的遊戲問答社區
+ 遊戲動態
+ 資訊中心
+ 這兒還沒有內容噢~
+ 關註幾個可能感興趣的遊戲吧
+ 圖片上傳中...
+ https://www.ghzs.com/question/%1$s?invite=%2$s
+ https://m.ghzs666.com/question/%1$s
+ https://www.ghzs.com/question/%1$s
+ https://m.ghzs666.com/answer/%1$s
+ https://www.ghzs.com/question/%1$s?answer=%2$s
+ 登錄失敗
+ 最多只能選擇5個標簽
+ 至多上傳70張
+ 至多上傳20個
+ 提問
+
+ 至少輸入6個字
+ 簽到成功,獲得經驗:1]]>
+ 已連續簽到 %1$d 天]]>
+ %1$d]]>
+ 著作權歸作者所有©光環助手
+ 操作說明:\n1.第1行是當前開服表上最新的開服信息,僅供參考\n2.點擊第1行的內容,會自動在下方表格填入對應的內容\n3.自動填入內容時,時間保留當天,名字會自動按數字加1\n4.填入前綴名和服務器名稱,提交後會自動合成名字,無需填寫 「| 」\n5.時間、前綴名、服務器名稱必須同時填寫,否則提交後不會新增開服
+ 找不到圖片管理器
+ 個性簽名
+ 介紹下自己吧
+ 自己
+
+ 遊戲標簽*]]>
+ 遊戲圖標*]]>
+ 安裝包*]]>
+ 遊戲簡介*]]>
+ 遊戲圖片*]]>
+ 還沒有人評論噢~
+ 說說你的看法吧
+ https://m.ghzs666.com/bbs/thread-%1$s
+ https://m.ghzs666.com/bbs/video-%1$s
+ https://m.ghzs666.com/%1$s
+ https://m.ghzs666.com/article/%1$s
+ 該內容已被刪除
+ %1$s 在 %2$s]]> 發表了評論
+ https://resource.ghzs.com/page/game_rule/game_rule.html
+ https://resource.ghzs.com/page/privacy_policies/Personal_information_collection_list.html
+ https://resource.ghzs.com/page/privacy_policies/sdk_directory.html
+ https://resource.ghzs.com/page/privacy_policies/Permission_Usage.html
+ https://resource.junrui66.com/page/privacy_policies/Child_privacy_statement_GA.html
+
+ 問答版塊規則
+ https://resource.ghzs.com/page/section_rule/section_rule.html
+
+ 我已閱讀並同意《視頻上傳服務準則》
+
+ 如何讓你的視頻獲得更多曝光?
+
+ 安裝之前,請先卸載手機中已有的較高版本
+
+ 遊戲*]]>
+ 標題*]]>
+ 分類*]]>
+ 視頻來源*]]>
+
+ https://resource.ghzs.com/page/video_rule/video_rule.html
+ 視頻上傳服務準則
+
+ 草稿保存之後會關閉視頻上傳頁面!下次可在視頻投稿-草稿箱]]>中繼續上傳
+
+ 你還可以搜索邀請更多玩家
+
+ 徽章中心
+ 領取徽章
+ 申請領取
+ 前往查看
+
+ 最近來訪
+ 今日來訪
+ 關註
+ 粉絲
+ 贊同
+
+ 祝賀!童鞋\n你已通過禮儀測試~
+ 好的
+ 無
+
+ 點擊更換背景
+
+ 求遊戲
+ 求功能
+
+ 已嘗試添加到桌面
+ 如桌面未出現圖標,請開啟桌面快捷方式權限
+
+ 舉報原因
+ 頭像、昵稱、背景圖、簽名含有違規信息
+ 發布大量垃圾或廣告信息
+ 辱罵、歧視、挑釁等不友善的內容
+ 暴力、色情、政治等違法信息
+ 其他原因
+ 請填寫其他舉報原因
+ 其他舉報原因
+ 返回
+ 提交
+
+ 收貨信息
+ 實物獎品收貨地址
+ 虛擬獎品領取方式
+ 活動獎金領取方式
+
+ 審核不通過
+ 內容審核中
+ 關註的人
+
+ 刪除遊戲評論後,評論下所有的回復都將被刪除
+ 確定要刪除當前評論嗎?
+
+ 您已完成社區交流身份認證,該信息僅自己可見
+ 您已完成實名認證,無需再驗證
+ 您已綁定手機號,無需再驗證
+
+ 使用存檔前請保證遊戲退出,避免存檔無法使用
+ 請輸入存檔關鍵詞
+ 我的存檔管理
+ 沒有找到相關存檔~
+ 換個搜索詞試試看吧!
+
+ 雲存檔
+ 變速器
+ 隱私保護
+
+ 存檔下載失敗,請稍後再試~\n依然無效可反饋至客服
+ 存檔讀取失敗,請稍後再試~\n依然無效可反饋至客服
+ 使用
+ 下載
+ 提示
+ 該遊戲存檔僅支持暢玩助手啟動,請先下載暢玩助手並安裝遊戲
+ 下載暢玩助手
+ 該遊戲存檔僅支持暢玩助手啟動,請先安裝遊戲
+ 安裝遊戲
+ 使用雲存檔後,將會覆蓋您暢玩助手內的相關遊戲進度,若您想保留自己的遊戲數據,請先上傳您當前的遊戲存檔後再使用
+
+ 您的實名認證未通過,請重新認證
+ 您已完成實名認證,該信息僅自己可見
+ 當前認証狀態:成年人
+ 當前認証狀態:未成年
+ 實名信息認証中...
+ 認証期間不影響您正常的遊戲體驗
+
+ 去 設置偏好]]> ,讓推薦更懂你的心~
+
+
+
+
+ - 無力吐槽
+ - 比較差
+ - 還算湊合
+ - 還不錯
+ - 完美,太棒了
+
+ 將已安裝遊戲標記為玩過的遊戲
+ 你有%1$d]]>款預約的遊戲上線啦
+ 歡迎您使用光環助手!\n在您使用光環助手之前,請您認真閱讀《用戶協議》和《隱私政策》的全部內容,以了解用戶權利義務和個人信息處理規則。主要內容向您說明如下:\n1.為了正常地提供優質的產品服務,基於您的授權我們會獲取必要的個人信息,您有權拒絕或取消授權\n2.我們會采取合理的安全措施保護您的個人信息,防止數據被不當使用或未經授權的情況下被訪問、公開披露、使用、修改、損壞、丟失或泄漏。\n3.未經您同意,我們不會從第三方處獲取、共享或向其提供您的信息\n4.您可以查詢、更正、刪除您的個人信息,我們也提供賬戶註銷的渠道
+ 此遊戲下載資源由第三方提供。若該資源侵犯了您的合法權益或違反了當地法規,請點擊頁面右上角-版權申訴,按指引發起申訴,我們會盡快聯系您並解決。
+ 遊戲停服更新維護中,為避免情緒化內容對遊戲評分帶來的影響,因此開啟停服保護功能。在停服保護狀態期間,所新增及修改發布的評分將不計入總分,所評分評論內容在展示上也會有文字提示告知其他玩家。\n\n感謝您的配合及諒解,祝您遊戲愉快!\n\n光環助手會持續關註產品建議及反饋,如您在使用過程中有任何問題,歡迎向我們反饋。
+ 開啟青少年模式後,系統將自動關閉所有遊戲的下載功能,需要輸入密碼才能恢復使用\n\n開啟青少年模式,需要先設置獨立密碼,如忘記密碼可聯系客服申述重置\n\n青少年模式是光環助手響應國家政策,為促進青少年健康成長的一種模式,我們優先針對核心場景進行優化,也將繼續致力於優化更多場景
+
+
+ 添加桌面圖標
+ 檢測到光環助手未開啟創建圖標快捷方式,請前往系統設置開啟
+ 前往開啟
+ 取消
+ 桌面圖標創建成功~
+ 桌面圖標創建失敗
+ 桌面圖標已創建,無需重復!
+
+ 下拉刷新頁面
+ 松手刷新,繼續下拉有驚喜
+
+ tag_img_url_id
+ 長期有效
+ 置頂
+ 刪除
+ 隱藏
+ 修改活動標簽
+ 加精選
+ 取消精選
+ 修改
+ 投訴
+ 取消置頂
+ 申請加精
+ 提示
+ 是否確認取消置頂此帖子
+ 我再想想
+ 取消置頂
+ 取消置頂成功
+ 提交
+ 請選擇置頂類型
+ 置頂成功
+ 此遊戲不支持瀏覽器安裝,已切換為助手安裝
+ 提示
+ 部分遊戲下載資源由第三方提供,此類遊戲無法自動更新,請手動點擊遊戲【更新】按鈕前往第三方網址更新遊戲
+ 我知道了
+ 請查看關閉教程,先開啟開發者模式
+ %1$s論壇
+ 發布於%1$s
+ 評論 %1$d
+ 點贊 %1$d · 評論 %2$d
+ QQ小遊戲
+ 存檔數量已達上限
+ 請選擇替換覆蓋的存檔
+ 加入訂閱
+ 訂閱開服表,訂閱後助你獲得一手新服信息
+ 通知時間:8:00、12:00、18:00
+ 操作
+ 取消訂閱
+ 不再接收開服消息
+ 取消
+ 遊戲髮佈新服信息時,您將在消息中心收到通知。爲了避免錯過通知,建議您開啟微信公衆號提醒
+ 遊戲髮佈新服信息時,您將在消息中心和微信公衆號收到通知,不會錯過任何開服的消息
+ 遊戲訂閱成功
+ 我知道了
+ 設置提醒時間
+ 訂閱遊戲管理
+ 開服表
+ 開服提醒
+ 開服訂閱
+ 遊戲訂閱
+ 設置時間
+ 取消
+ 確認
+ 當前日期暫無開服信息
+ 遊戲髮佈當天新服時提醒
+ APP髮送提醒信息
+ 微信髮送提醒信息
+ 添加提醒
+ 取消提醒
+ 提醒詳情
+ 區服名稱
+ +%1$d
+ 今天
+ 明天
+ 待提醒
+ 即將開服
+ 已開服
+ 有新服
+ 已過期
+ %1$s %2$s
+ 已訂閱
+ 取消訂閱
+ 確定取消訂閱嗎
+ 確定
+ 取消
+ 您添加的提醒時間已過期!
+ 至少勾選一種提醒方式
+ 區服已開服,不能設置提醒
+ 網絡異常,請檢查手機網絡狀態
+ 分享光環
+ 去首頁看看
+ 今天已簽到,明天再來吧~
+ 領取失敗
+ 申請失敗
+ 領取成功
+ 申請成功
+ 我的徽章
+ %1$d 徽章
+ 切換模式後,將暫時關閉深色模式跟隨系統切換功能,您可以前往「我的光環-設置」再次開啟。
+ 立即登錄
+ 解鎖更多精彩內容
+ 幫助與反饋
+ 打開外部瀏覽器失敗,已復製鏈接到粘貼板,請自行打開鏈接
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index eededb0708..0b57b5f82b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -474,6 +474,19 @@
评论 %1$d
点赞 %1$d · 评论 %2$d
QQ小游戏
+ 分享光环
+ 去首页看看
+ 今天已签到,明天再来吧~
+ 领取失败
+ 申请失败
+ 领取成功
+ 申请成功
+ 我的徽章
+ %1$d 徽章
+ 切换模式后,将暂时关闭深色模式跟随系统切换功能,您可以前往“我的光环-设置”再次开启。
+ 立即登录
+ 解锁更多精彩内容
+ 帮助与反馈
存档数量已达上限
请选择替换覆盖的存档
加入订阅
diff --git a/dependencies.gradle b/dependencies.gradle
index 01f73aaebe..2870418638 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -10,6 +10,7 @@ ext {
versionCode = 1010
versionName = "5.33.0"
applicationId = "com.gh.gamecenter"
+ applicationIdGat = "com.gh.gamecenter.intl"
// AndroidX
core = "1.3.2"
@@ -140,4 +141,6 @@ ext {
qGameVersion = "1.57.14"
qGameAdVersion = "4.520.1390"
+
+ blankjUtilCodex = "1.30.4"
}
\ No newline at end of file
diff --git a/feature/new_feedback/src/main/res/values-zh-rTW/strings.xml b/feature/new_feedback/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..7aef0d97f8
--- /dev/null
+++ b/feature/new_feedback/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,46 @@
+
+
+
+ 幫助與反饋模塊
+ 請詳細描述你遇到的問題\\n↓↓你還可以上傳截圖
+ 指定遊戲
+ 提交
+ QQ、郵箱或手機
+ 歡迎暢所欲言,光環助手會努力變得更好
+ 普通反饋
+ 功能收錄
+ 遊戲加速、單機功能訂製收錄
+ 發生閃退
+ 遊戲/助手自動退出或重啟,點擊這裏反饋
+ 暢玩問題
+ 暢玩遊戲發生例如閃退等問題,點擊這裏反饋
+ 遊戲問題
+ 玩遊戲過程中遇到的問題
+ 收錄更新
+ 遊戲版本太低、沒有想要的遊戲,點擊這裏提交
+ 帖子投稿
+ 版權申訴
+ 原創或轉發,我們都歡迎
+ 如果您有版權方面的問題,請點擊這裏提交申訴
+ 光環助手官方交流Q群:
+ 367541038
+ 正在反饋...
+
+
+ - 加速跳過
+ - 單機功能
+ - 替換素材
+
+
+ 問題類型*]]>
+ 問題描述*]]>
+ 功能需求*]]>
+ 選擇遊戲*]]>
+ 版權方身份*]]>
+ 版權方證件*]]>
+ 證件正反面照片*]]>
+ 公司或組織證件照片*]]>
+ 侵權的應用*]]>
+ 侵權應用截圖*]]>
+ 聯系方式*]]>
+
\ No newline at end of file
diff --git a/feature/pkg/src/main/res/values-zh-rTW/strings.xml b/feature/pkg/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..b55f29d59c
--- /dev/null
+++ b/feature/pkg/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,3 @@
+
+ PKG
+
diff --git a/feature/realname-window/src/main/res/values-zh-rTW/strings.xml b/feature/realname-window/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..7dc62a8cc5
--- /dev/null
+++ b/feature/realname-window/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,9 @@
+
+ realname-window
+ 遊戲健康提示
+ 退出遊戲
+ 你當前為未成年賬號,已被納入防沈迷系統。根據國家相關規定,網絡遊戲僅可在周五、周六、周日和法定節假日每日20時至21時向未成年人提供60分鐘網絡遊戲服務。當前時間段無法遊玩,請合理安排時間
+ 根據《國家新聞出版署關於防止未成年人沈迷網絡遊戲工作的通知》,需完成實名認證後才能開始網絡遊戲
+ 光環快速認證成功,正在開始遊戲~
+ 你當前為未成年賬號,已被納入防沈迷系統。根據國家相關規定,網絡遊戲僅可在周五、周六、周日和法定節假日每日20時至21時向未成年人提供60分鐘網絡遊戲服務。當前時間段可進行遊玩,請合理安排時間
+
\ No newline at end of file
diff --git a/feature/realname-window/src/main/res/values/strings.xml b/feature/realname-window/src/main/res/values/strings.xml
index 0c5f80fc22..b939a5341f 100644
--- a/feature/realname-window/src/main/res/values/strings.xml
+++ b/feature/realname-window/src/main/res/values/strings.xml
@@ -1,9 +1,9 @@
- realname-window
- 游戏健康提示
- 退出游戏
- 你当前为未成年账号,已被纳入防沉迷系统。根据国家相关规定,网络游戏仅可在周五、周六、周日和法定节假日每日20时至21时向未成年人提供60分钟网络游戏服务。当前时间段无法游玩,请合理安排时间
- 根据《国家新闻出版署关于防止未成年人沉迷网络游戏工作的通知》,需完成实名认证后才能开始网络游戏
- 光环快速认证成功,正在开始游戏~
- 你当前为未成年账号,已被纳入防沉迷系统。根据国家相关规定,网络游戏仅可在周五、周六、周日和法定节假日每日20时至21时向未成年人提供60分钟网络游戏服务。当前时间段可进行游玩,请合理安排时间
+ realname-window
+ 游戏健康提示
+ 退出游戏
+ 你当前为未成年账号,已被纳入防沉迷系统。根据国家相关规定,网络游戏仅可在周五、周六、周日和法定节假日每日20时至21时向未成年人提供60分钟网络游戏服务。当前时间段无法游玩,请合理安排时间
+ 根据《国家新闻出版署关于防止未成年人沉迷网络游戏工作的通知》,需完成实名认证后才能开始网络游戏
+ 光环快速认证成功,正在开始游戏~
+ 你当前为未成年账号,已被纳入防沉迷系统。根据国家相关规定,网络游戏仅可在周五、周六、周日和法定节假日每日20时至21时向未成年人提供60分钟网络游戏服务。当前时间段可进行游玩,请合理安排时间
\ No newline at end of file
diff --git a/feature/vpn/src/main/res/values-zh-rTW/strings.xml b/feature/vpn/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..a389d6dd4d
--- /dev/null
+++ b/feature/vpn/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,3 @@
+
+ VPN
+
diff --git a/feature/vpn/src/main/res/values/strings.xml b/feature/vpn/src/main/res/values/strings.xml
index a389d6dd4d..c7679bc0c5 100644
--- a/feature/vpn/src/main/res/values/strings.xml
+++ b/feature/vpn/src/main/res/values/strings.xml
@@ -1,3 +1,3 @@
- VPN
+ VPN
diff --git a/gradle.properties b/gradle.properties
index 6499b7b765..58114c96da 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -51,6 +51,8 @@ QUICK_LOGIN_APPID=300012035775
QUICK_LOGIN_APPKEY=002BAABA2C078342DA33BEAB0A4C6A25
DEV_QUICK_LOGIN_APPID=300012281661
DEV_QUICK_LOGIN_APPKEY=1BFAB6E349F1D69CC06ABAD9D7A43FB8
+LOG_HUB_PROJECT=ghzs
+LOG_HUB_PROJECT_GAT=ghzs-global
DEV_CSJ_APPID=5410486
CSJ_APPID=5429125
@@ -58,8 +60,10 @@ CSJ_APPID=5429125
# hosts
DEV_API_HOST=https\://dev-and-api.ghzs.com/v5d5d0/
API_HOST=https\://and-api.ghzs.com/v5d5d0/
+API_HOST_GAT=https\://and-api.junrui66.com/v5d5d0/
NEW_DEV_API_HOST=https\://dev-app-api.ghzs.com/
NEW_API_HOST=https\://app-api.ghzs.com/
+NEW_API_HOST_GAT=https\://app-api.junrui66.com/
DEV_VAPI_HOST=https://dev-app-api.796697.com
VAPI_HOST=https://app-api.796697.com
diff --git a/libraries/Matisse/src/main/res/values-zh-rTW/strings.xml b/libraries/Matisse/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..7562824f25
--- /dev/null
+++ b/libraries/Matisse/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,41 @@
+
+
+
+ 全部
+
+ 預覽
+ 使用
+ 使用(%1$d)
+ 返回
+ 拍一張
+ 還沒有圖片或視頻
+ 我知道了
+
+ 您已經達到最大選擇數量
+ 一次最多選擇%1$d張圖片
+ 一次最多選擇%1$d個視頻
+ 圖片質量太低
+ 圖片質量太高
+ 不支援的文件類型
+ 不能同時選擇圖片和視頻
+ 沒有支持視頻預覽的應用
+ "該照片大於 %1$d M,無法上傳將取消勾選原圖"
+ "有 %1$d 張照片大於 %2$d M\n無法上傳,將取消勾選原圖"
+ 原圖
+ 確定
+ 確定(%1$d)
+
diff --git a/module_common/build.gradle b/module_common/build.gradle
index cfac735508..4fd724d3ec 100644
--- a/module_common/build.gradle
+++ b/module_common/build.gradle
@@ -92,6 +92,7 @@ dependencies {
api "io.github.sinaweibosdk:core:${weiboSDK}"
api "com.lg:skeleton:${skeleton}"
api "com.google.android:flexbox:${flexbox}"
+ api "com.blankj:utilcodex:${blankjUtilCodex}"
debugApi "com.squareup.okhttp3:okhttp-tls:${okHttpForDebug}"
debugApi "com.squareup.okio:okio:2.2.2"
diff --git a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java
index b33e9eeffc..3dd62c6a2c 100644
--- a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java
+++ b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java
@@ -40,6 +40,7 @@ import com.alibaba.android.arouter.core.LogisticsCenter;
import com.alibaba.android.arouter.exception.NoRouteFoundException;
import com.alibaba.android.arouter.facade.Postcard;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.blankj.utilcode.util.LanguageUtils;
import com.facebook.drawee.view.SimpleDraweeView;
import com.gh.gamecenter.common.BuildConfig;
import com.gh.gamecenter.common.R;
@@ -82,6 +83,7 @@ import org.json.JSONObject;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
import io.sentry.Breadcrumb;
import io.sentry.Sentry;
@@ -800,4 +802,16 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy
transaction.hide(fragment);
}
}
+
+ @Override
+ protected void attachBaseContext(Context newBase) {
+ if (EnvHelper.isGATApp()) {
+ if (!LanguageUtils.isAppliedLanguage()) {// 默认使用繁体中文
+ LanguageUtils.applyLanguage(Locale.TRADITIONAL_CHINESE, false);
+ }
+ super.attachBaseContext(LanguageUtils.attachBaseContext(newBase));
+ } else {
+ super.attachBaseContext(newBase);
+ }
+ }
}
diff --git a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubHelper.kt
index b1cdf34391..909a65ebbb 100644
--- a/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubHelper.kt
+++ b/module_common/src/main/java/com/gh/gamecenter/common/loghub/LoghubHelper.kt
@@ -5,6 +5,7 @@ import com.aliyun.sls.android.producer.LogProducerClient
import com.aliyun.sls.android.producer.LogProducerConfig
import com.aliyun.sls.android.producer.LogProducerResult
import com.gh.gamecenter.common.HaloApp
+import com.gh.gamecenter.common.utils.EnvHelper
import com.gh.gamecenter.common.utils.PackageFlavorHelper
import com.gh.gamecenter.core.AppExecutor
import com.lightgame.utils.Utils
@@ -17,7 +18,6 @@ object LoghubHelper {
private const val ACCESS_KEY_ID = "LTAIV3i0sNc4TPK1"
private const val ACCESS_KEY_SECRET = "8dKtTPeE5WYA6ZCeuIBcIVp7eB0ir4"
private const val ENDPOINT = "cn-qingdao.log.aliyuncs.com"
- private const val PROJECT = "ghzs"
private val mClientMaps by lazy { hashMapOf() }
@@ -34,17 +34,21 @@ object LoghubHelper {
}
private fun getClient(logStore: String): LogProducerClient? {
- if (!mClientMaps.containsKey(logStore)) {
- mClientMaps[logStore] = createClient(logStore)
+ // https://jira.shanqu.cc/browse/GHZS-3815?focusedCommentId=50027&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-50027
+ //
+ val transformedLogStore = if (EnvHelper.isGATApp) "event" else logStore
+ if (!mClientMaps.containsKey(transformedLogStore)) {
+ mClientMaps[transformedLogStore] = createClient(transformedLogStore)
}
- return mClientMaps[logStore]
+ return mClientMaps[transformedLogStore]
}
private fun createClient(logStore: String): LogProducerClient {
+
val config = LogProducerConfig(
HaloApp.getInstance().applicationContext,
ENDPOINT,
- PROJECT,
+ EnvHelper.logProducerProject,
logStore,
ACCESS_KEY_ID,
ACCESS_KEY_SECRET
diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/EnvHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/EnvHelper.kt
index 6295828958..dc9b7ae732 100644
--- a/module_common/src/main/java/com/gh/gamecenter/common/utils/EnvHelper.kt
+++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/EnvHelper.kt
@@ -14,6 +14,26 @@ object EnvHelper {
SPUtils.getBoolean(Constants.SP_IS_DEV_ENV, false)
}
+ @JvmStatic
+ val isGATApp: Boolean by lazy {
+ val buildConfig = ARouter
+ .getInstance()
+ .build(RouteConsts.provider.buildConfig)
+ .navigation() as? IBuildConfigProvider
+ buildConfig?.isGATApp() ?: false
+ }
+
+ private const val DEFAULT_LOG_PRODUCER_PROJECT = "ghzs"
+
+ @JvmStatic
+ val logProducerProject: String by lazy {
+ val buildConfig = ARouter
+ .getInstance()
+ .build(RouteConsts.provider.buildConfig)
+ .navigation() as? IBuildConfigProvider
+ buildConfig?.getLogProducerProject() ?: DEFAULT_LOG_PRODUCER_PROJECT
+ }
+
@JvmStatic
fun getHost(): String {
val buildConfig =
@@ -58,5 +78,4 @@ object EnvHelper {
}
}
}
-
}
\ No newline at end of file
diff --git a/module_common/src/main/res/values-zh-rTW/strings.xml b/module_common/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..c1a3dda75b
--- /dev/null
+++ b/module_common/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,92 @@
+
+ module_common
+ 取消
+ 確定
+ 不再提醒
+ 我知道了
+ 不需要內存緩存
+ highResImage
+ 取消關註遊戲後,您將無法及時收到遊戲的攻略、資訊等最新動態提醒。
+ 檢查更新中...
+
+
+ 分享跳轉中...
+ 分享成功
+ 分享已取消
+ 分享失敗
+ 分享失敗,請安裝微信
+ 分享到
+ 微信好友
+ 朋友圈
+ QQ好友
+ QQ空間
+ 微博
+ 解析包出錯(可能被誤刪了),請重新下載
+
+ https://www.ghzs.com?source=appshare100
+ https://www.ghzs.com?source=appshare300
+ https://and-static.ghzs.com/app-logo.png
+
+ background_id
+ text_color_id
+ text_color_hint_id
+ src_id
+ drawable_left_id
+ drawable_top_id
+ drawable_right_id
+ drawable_bottom_id
+
+ tag_game_name_id
+
+ view對應的業務名稱
+ view綁定的對象
+
+ 用戶協議與免責聲明
+ http://api.ghzs666.com/v2d6/disclaimer
+ 隱私政策
+ https://resource.junrui66.com/page/privacy_policies/privacy_policies_GA.html
+
+ 備案查詢入口
+ https://beian.miit.gov.cn/
+ 粵ICP備17080876號-5A
+ APP備案號:粵ICP備17080876號-5A
+
+ 加載中...
+ 上拉加載
+ 加載失敗,點擊重試
+ 沒有更多了
+ 網絡開小差啦~
+ 點擊任意地方重試
+ 這兒還沒有內容噢~
+ 這裏還沒有遊戲~
+ 看來你還沒找到喜歡的遊戲~
+ 你可能是第一個發現這個地方的人
+ 重試
+ 檢測網絡設置或是點擊按鈕重試
+ 頁面不見了~
+ 內容可能已被刪除
+ 內容可能已被刪除
+ 該遊戲暫時僅提供試玩版本。試玩版資源來自第三方網站,可能存在bug或兼容性問題。敬請留意後續相關消息。
+ 該遊戲暫時僅提供試玩版本。試玩版可能存在bug或兼容性問題。敬請留意後續相關消息。
+ 圖片不能大於%1$dMB,請重新選擇
+ 請選出你要指定的遊戲
+ 版權保護申訴指引
+ https://resource.ghzs.com/page/copyright_guide/copyright_guide.html
+ 遊戲名字*]]>
+
+ is_dark_mode_on_id
+ 提示
+ 當前版本不支持該功能,\n建議您升級到最新版本體驗哦
+ 體驗升級
+ 取消
+ 溫馨提示
+ 安裝該遊戲需要關閉MIUI優化,否則將無法解壓安裝\n註意:MIUI優化關閉後可能會導致手機系統不穩定,以及無法使用MIUI提供的服務。你可以在遊戲安裝完成後重新開啟
+ 立即關閉
+ 以後再說
+ ]]>
+
+ 請輸入文字...
+ 搜索
+ 1. 遊戲下載功能(XAPK與APKS文件下載)\n2. 圖片上傳功能(頭像、主頁背景、帖子、遊戲單)\n3. 視頻上傳功能(視頻流、帖子)\n4. 圖片保存功能\n5. 遊戲投稿功能
+
+
\ No newline at end of file
diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IBuildConfigProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IBuildConfigProvider.kt
index 03a7aeab64..e6f939da66 100644
--- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IBuildConfigProvider.kt
+++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IBuildConfigProvider.kt
@@ -11,6 +11,8 @@ interface IBuildConfigProvider : IProvider {
fun isDebug(): Boolean
+ fun isGATApp(): Boolean
+
fun getApiHost(): String
fun getDevApiHost(): String
@@ -22,4 +24,6 @@ interface IBuildConfigProvider : IProvider {
fun getVApiHost(): String
fun getVDevApiHost(): String
+
+ fun getLogProducerProject(): String
}
\ No newline at end of file
diff --git a/module_core/src/main/res/values-zh-rTW/strings.xml b/module_core/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..720b4809f7
--- /dev/null
+++ b/module_core/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,9 @@
+
+ module_core
+ 確定
+ 提示
+ 已開啟
+ 確定關閉
+ 暫不關閉
+ 請檢查是否安裝微信客戶端
+
\ No newline at end of file
diff --git a/module_core/src/main/res/values/strings.xml b/module_core/src/main/res/values/strings.xml
index 2c9cfe450e..dacde0c463 100644
--- a/module_core/src/main/res/values/strings.xml
+++ b/module_core/src/main/res/values/strings.xml
@@ -1,4 +1,9 @@
module_core
+ 确定
+ 提示
+ 已开启
+ 确定关闭
+ 暂不关闭
请检查是否安装微信客户端
\ No newline at end of file
diff --git a/module_core_feature/src/main/res/values-zh-rTW/strings.xml b/module_core_feature/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..e1567b2747
--- /dev/null
+++ b/module_core_feature/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,42 @@
+
+
+ 下載
+ 下載中
+ 插件化
+ 安裝
+ 安裝中
+ 繼續
+ 暫停
+ 啟動
+ 更新
+ 更新中
+ 等待中
+ 打開
+ 試玩
+ 暢玩
+ 展開
+ 解壓中
+ 查看
+ 下架
+ 秒玩
+ 暫無
+ 開始玩
+ 瀏覽器解壓安裝
+ 請先登錄
+ 關註
+ 關註成功
+ 關註失敗
+ 已結束
+ 已領取
+ 已淘號
+ 加載失敗,請檢查網絡狀態
+
+ 審核中...請耐心等待
+ 本地下載
+ 本地更新
+ 本地安裝
+ 本地啟動
+ 開始更新
+ 開始暢玩
+ 啟動暢玩
+
\ No newline at end of file
diff --git a/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java b/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java
index 8df8a967fe..d8019718d5 100644
--- a/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java
+++ b/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java
@@ -33,6 +33,7 @@ import com.gh.gamecenter.common.constant.EntranceConsts;
import com.gh.gamecenter.common.constant.RouteConsts;
import com.gh.gamecenter.common.eventbus.EBReuse;
import com.gh.gamecenter.common.retrofit.ApiResponse;
+import com.gh.gamecenter.common.utils.EnvHelper;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.common.utils.SensorsBridge;
import com.gh.gamecenter.common.view.DrawableView;
@@ -176,6 +177,11 @@ public class LoginFragment
ExtensionsKt.showKeyBoard(mBinding.loginPhoneEt);
}
+ // 港澳台APP不显示第三方登录
+ if (EnvHelper.isGATApp()) {
+ mBinding.loginBottom.setVisibility(View.GONE);
+ }
+
mBinding.loginPassEt.addTextChangedListener(new LoginTextWatcher(mBinding.loginPassEt));
mBinding.loginPhoneEt.addTextChangedListener(new LoginTextWatcher(mBinding.loginPhoneEt));
diff --git a/module_login/src/main/res/values-zh-rTW/strings.xml b/module_login/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..f8df69b104
--- /dev/null
+++ b/module_login/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,20 @@
+
+
+
+ module_login
+ 光環助手
+ 登錄異常,請稍後重試
+ 登錄異常(%1$d),請稍後重試
+ 登錄成功
+ 登錄中...
+ 請輸入手機號碼
+ 請輸入驗證碼
+ 獲取驗證碼
+ 輸入邀請碼(選填)
+ +86
+ 登錄
+
+ 進入下一步前,請先閱讀並同意光環助手的《用戶協議》、《隱私政策》、%1$s]]>
+ 進入下一步前,請先閱讀並同意光環助手的《用戶協議》、《隱私政策》]]>
+
+
\ No newline at end of file
diff --git a/module_message/src/main/res/values-zh-rTW/strings.xml b/module_message/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..ba42c2a00e
--- /dev/null
+++ b/module_message/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,14 @@
+
+ 消息中心模塊
+ 消息中心
+ 復製ID
+ 光環客服
+ 網絡錯誤
+
+ 關註
+ 一鍵已讀
+ 遊戲動態
+ 熱門遊戲推薦
+ 這兒還沒有內容噢~
+ 關註幾個可能感興趣的遊戲吧
+
\ No newline at end of file
diff --git a/module_setting/src/main/AndroidManifest.xml b/module_setting/src/main/AndroidManifest.xml
index 4fd81e865c..2d2e98ce6b 100644
--- a/module_setting/src/main/AndroidManifest.xml
+++ b/module_setting/src/main/AndroidManifest.xml
@@ -30,6 +30,11 @@
+
+
+
\ No newline at end of file
diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/view/LanguageSettingActivity.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/LanguageSettingActivity.kt
new file mode 100644
index 0000000000..4bad5c0696
--- /dev/null
+++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/LanguageSettingActivity.kt
@@ -0,0 +1,33 @@
+package com.gh.gamecenter.setting.view
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import com.gh.gamecenter.common.base.activity.ToolBarActivity
+import com.gh.gamecenter.common.utils.updateStatusBarColor
+import com.gh.gamecenter.setting.R
+
+class LanguageSettingActivity : ToolBarActivity() {
+
+ companion object {
+ @JvmStatic
+ fun getIntent(context: Context): Intent {
+ return getTargetIntent(
+ context,
+ LanguageSettingActivity::class.java,
+ LanguageSettingFragment::class.java,
+ )
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setNavigationTitle(R.string.language)
+ updateStatusBarColor(R.color.ui_surface, R.color.ui_surface)
+ }
+
+ override fun onDarkModeChanged() {
+ super.onDarkModeChanged()
+ updateStatusBarColor(R.color.ui_surface, R.color.ui_surface)
+ }
+}
\ No newline at end of file
diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/view/LanguageSettingFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/LanguageSettingFragment.kt
new file mode 100644
index 0000000000..f91aa80660
--- /dev/null
+++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/LanguageSettingFragment.kt
@@ -0,0 +1,46 @@
+package com.gh.gamecenter.setting.view
+
+import android.os.Bundle
+import android.view.View
+import com.blankj.utilcode.util.LanguageUtils
+import com.gh.gamecenter.common.base.fragment.ToolbarFragment
+import com.gh.gamecenter.common.view.DrawableView
+import com.gh.gamecenter.setting.databinding.FragmentLanguageSettingBinding
+import java.util.*
+
+class LanguageSettingFragment : ToolbarFragment() {
+
+ private lateinit var viewBinding: FragmentLanguageSettingBinding
+
+ override fun getLayoutId(): Int = 0
+
+ override fun getInflatedLayout(): View = FragmentLanguageSettingBinding
+ .inflate(layoutInflater)
+ .apply { viewBinding = this }.root
+
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ viewBinding.icSimplifiedChinese.isChecked = LanguageUtils.isAppliedLanguage(Locale.SIMPLIFIED_CHINESE)
+ viewBinding.icSimplifiedChinese.setImageDrawable(DrawableView.getCheckSelectorDrawable(requireContext()))
+ viewBinding.rlSimplifiedChinese.setOnClickListener {
+ if (!viewBinding.icSimplifiedChinese.isChecked) {
+ viewBinding.icTraditionalChinese.isChecked = false
+ viewBinding.icSimplifiedChinese.isChecked = true
+ LanguageUtils.applyLanguage(Locale.SIMPLIFIED_CHINESE)
+ }
+ }
+
+ viewBinding.icTraditionalChinese.isChecked = LanguageUtils.isAppliedLanguage(Locale.TRADITIONAL_CHINESE)
+ viewBinding.icTraditionalChinese.setImageDrawable(DrawableView.getCheckSelectorDrawable(requireContext()))
+ viewBinding.rlTraditionalChinese.setOnClickListener {
+ if (!viewBinding.icTraditionalChinese.isChecked) {
+ viewBinding.icTraditionalChinese.isChecked = true
+ viewBinding.icSimplifiedChinese.isChecked = false
+ LanguageUtils.applyLanguage(Locale.TRADITIONAL_CHINESE)
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt
index f7b68484d5..bde1f06131 100644
--- a/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt
+++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/SettingsFragment.kt
@@ -19,6 +19,7 @@ import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModelProvider
import com.alibaba.android.arouter.launcher.ARouter
+import com.blankj.utilcode.util.LanguageUtils
import com.gh.gamecenter.common.BuildConfig
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.base.fragment.ToolbarFragment
@@ -56,6 +57,7 @@ import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import org.greenrobot.eventbus.EventBus
import java.io.File
+import java.util.*
class SettingsFragment : ToolbarFragment() {
@@ -114,7 +116,7 @@ class SettingsFragment : ToolbarFragment() {
mBinding.settingCvFix.visibility = View.VISIBLE
mBinding.settingCvFix.setOnClickListener {
Config.fixHideFunction()
- toast("修复成功")
+ toast(getString(R.string.fix_successfully_toast))
EventBus.getDefault().post(EBReuse("Refresh"))
val mainActivity =
ARouter.getInstance().build(RouteConsts.provider.mainActivity).navigation() as? IMainProvider
@@ -161,7 +163,8 @@ class SettingsFragment : ToolbarFragment() {
if (UserManager.getInstance().isLoggedIn) {
val json = SPUtils.getString(Constants.SP_WECHAT_CONFIG)
val notice = GsonUtils.fromJson(json, WechatConfigEntity::class.java)?.notice
- mBinding.wechatRemindItem.textMoreTv.text = if (notice == true) "已开启" else "已关闭"
+ mBinding.wechatRemindItem.textMoreTv.text =
+ if (notice == true) getString(R.string.opened) else getString(R.string.closed)
} else {
mBinding.wechatRemindItem.textMoreTv.text = ""
}
@@ -231,6 +234,17 @@ class SettingsFragment : ToolbarFragment() {
startActivity(VideoSettingActivity.getIntent(requireContext(), "设置"))
}
}
+
+ mBinding.languageItem.run {
+ titleTv.text = getString(R.string.language)
+ textMoreTv.visibility = View.VISIBLE
+ // 港澳台APP显示语言设置
+ root.visibility = if (EnvHelper.isGATApp) View.VISIBLE else View.GONE
+ root.setOnClickListener {
+ startActivity(LanguageSettingActivity.getIntent(requireContext()))
+ }
+ }
+
mBinding.gameDownloadItem.run {
titleTv.text = getString(R.string.setting_game_download)
textMoreTv.visibility = View.VISIBLE
@@ -267,10 +281,11 @@ class SettingsFragment : ToolbarFragment() {
.navigation() as? IUsageStatsHelperProvider
if (usageStatsHelper?.checkForPermission() == true) {
DialogHelper.showDialog(
- requireContext(), "提示",
- "关闭后将无法统计游戏时长,确定要关闭吗?",
- "确定关闭",
- "暂不关闭",
+ requireContext(),
+ getString(R.string.hint),
+ getString(R.string.close_game_time_statistics_dialog_content),
+ getString(R.string.confirm_and_close),
+ getString(R.string.not_close_yet),
{
usageStatsHelper.skipToUsageStats(
requireContext(),
@@ -363,12 +378,16 @@ class SettingsFragment : ToolbarFragment() {
titleTv.text = getString(R.string.setting_clear_cache)
contentTv.visibility = View.VISIBLE
root.setOnClickListener {
- DialogHelper.showCenterWarningDialog(requireContext(), "清除缓存", "确定要清除缓存吗?",
+ DialogHelper.showCenterWarningDialog(
+ requireContext(),
+ getString(R.string.clear_cache_dialog_title),
+ getString(R.string.clear_cache_dialog_content),
object : EmptyCallback {
override fun onCallback() {
val dialogUtils = ARouter.getInstance().build(RouteConsts.provider.dialogUtils)
.navigation() as? IDialogUtilsProvider
- loadingDialog = dialogUtils?.showWaitDialog(requireContext(), "清除缓存中...")
+ loadingDialog = dialogUtils?.showWaitDialog(requireContext(),
+ getString(R.string.clearing_cache))
val historyHelper = ARouter.getInstance().build(RouteConsts.provider.historyHelper)
.navigation() as? IHistoryHelperProvider
historyHelper?.emptyDatabase()
@@ -379,17 +398,17 @@ class SettingsFragment : ToolbarFragment() {
})
}
if (PackageFlavorHelper.IS_TEST_FLAVOR) {
- titleTv.text = getString(R.string.setting_clear_cache) + "(长按可清除gid)"
+ titleTv.text = getString(R.string.setting_clear_cache) + getString(R.string.long_click_to_clear_gid)
root.setOnLongClickListener {
GidHelper.getInstance().clearSavedGid()
- Utils.toast(context, "gid已清除")
+ Utils.toast(context, getString(R.string.gid_cleared_toast))
return@setOnLongClickListener true
}
}
}
mBinding.networkDiagnosisItem.run {
- titleTv.text = "网络诊断"
+ titleTv.text = getString(R.string.network_diagnostics)
root.setOnClickListener {
startActivity(Intent(requireContext(), NetworkDiagnosisActivity::class.java))
}
@@ -404,7 +423,7 @@ class SettingsFragment : ToolbarFragment() {
R.string.logout_dialog_confirm.toResString(),
R.string.cancel.toResString(),
{
- loadingDialog = dialogUtils?.showWaitDialog(requireContext(), "退出登录中...")
+ loadingDialog = dialogUtils?.showWaitDialog(requireContext(), getString(R.string.logging_out))
LoginUtils.logout {
UserRepository.getInstance().logout()
if (loadingDialog != null) loadingDialog!!.dismiss()
@@ -463,7 +482,7 @@ class SettingsFragment : ToolbarFragment() {
}
channelContainer.addView(
TextView(context).apply {
- text = "推荐渠道:"
+ text = context.getString(R.string.recommend_channel)
}
)
val channelList = listOf("GH_REFRESH", "GH_TEST3")
@@ -487,8 +506,8 @@ class SettingsFragment : ToolbarFragment() {
layout.addView(channelContainer)
val inputDialog: AlertDialog.Builder = AlertDialog.Builder(requireActivity())
- inputDialog.setTitle("请输入渠道:").setView(layout)
- inputDialog.setPositiveButton("确定") { _, _ ->
+ inputDialog.setTitle(getString(R.string.please_input_channel)).setView(layout)
+ inputDialog.setPositiveButton(getString(R.string.confirm)) { _, _ ->
val context = this.context ?: return@setPositiveButton
val flavorChannel = SPUtils.getString(Constants.SP_TEST_FLAVOR_CHANNEL)
if (!TextUtils.isEmpty(editText.text) && editText.text.toString() != flavorChannel) {
@@ -528,7 +547,7 @@ class SettingsFragment : ToolbarFragment() {
loadingDialog!!.dismiss()
}
mViewModel.getCacheSize()
- Utils.toast(context, "缓存清除成功")
+ Utils.toast(context, getString(R.string.clear_cache_successfully_toast))
}
override fun onError(e: Throwable) {}
@@ -569,9 +588,9 @@ class SettingsFragment : ToolbarFragment() {
.navigation() as? IBrowserInstallHelperProvider
if (browserInstallHelper?.isUseBrowserToInstallEnabled() == true) {
if (browserInstallHelper.shouldUseBrowserToInstall()) {
- mBinding.installMethodItem.textMoreTv.text = "浏览器安装"
+ mBinding.installMethodItem.textMoreTv.text = getString(R.string.browser_install)
} else {
- mBinding.installMethodItem.textMoreTv.text = "助手安装"
+ mBinding.installMethodItem.textMoreTv.text = getString(R.string.assistant_install)
}
mBinding.installMethodContainer.visibility = View.VISIBLE
mBinding.installMethodItem.root.setOnClickListener {
@@ -582,6 +601,16 @@ class SettingsFragment : ToolbarFragment() {
browserInstallHelper.logSwitchInstallSettingEvent()
}
}
+
+ if (EnvHelper.isGATApp) {
+ mBinding.languageItem.run {
+ textMoreTv.text = if (LanguageUtils.isAppliedLanguage(Locale.TRADITIONAL_CHINESE)) {
+ getString(R.string.traditional_chinese)
+ } else {
+ getString(R.string.simplified_chinese)
+ }
+ }
+ }
}
override fun onStop() {
diff --git a/module_setting/src/main/res/layout/fragment_language_setting.xml b/module_setting/src/main/res/layout/fragment_language_setting.xml
new file mode 100644
index 0000000000..da7e270ca9
--- /dev/null
+++ b/module_setting/src/main/res/layout/fragment_language_setting.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/module_setting/src/main/res/layout/fragment_setting.xml b/module_setting/src/main/res/layout/fragment_setting.xml
index e7c0e40f94..f8aea3fccb 100644
--- a/module_setting/src/main/res/layout/fragment_setting.xml
+++ b/module_setting/src/main/res/layout/fragment_setting.xml
@@ -53,6 +53,14 @@
+
+
+
+
+ 設置
+ 新版本
+ 賬號與安全
+ 深色模式跟隨系統切換
+ 視頻播放
+ 遊戲下載
+ 一鍵修復
+ 下載完成自動安裝遊戲
+ 安裝完成自動關註遊戲
+ 切換安裝方式
+ 微信提醒
+ 非Wi-Fi環境下載遊戲提醒
+ 統計遊戲時長
+ 通知權限
+ 開啟後你可以及時收到重要通知
+ 個性化推薦
+ 開啟功能後,您在本應用的使用信息(如下載信息),將用於個性化內容推薦,以提升您在本應用的體驗
+ …/gh-files
+ …/pictures/ghzhushou
+ 遊戲下載目錄
+ 圖片保存目錄
+ 清除緩存
+ 0.0M
+ 關於我們
+ 關於我們(長按可更改渠道號)
+ 安裝包清理
+ 遊戲投稿
+ 設置
+ 註冊方式
+ 還有其他問題?
+ 聯系客服
+ 賬戶安全中心
+ 任何網絡下都自動播放
+ 僅WIFI條件下自動播放
+ 關閉自動播放
+ 默認靜音播放視頻
+ 開啟後以上位置的視頻均默認靜音播放
+ 已是最新版本
+ 關於
+ Copyright %1$s GHZhuShou Team All Rights Reserved.
+ https://v.douyin.com/C9UHr6/
+ 版本更新
+ 提交反饋
+ 跳過
+ 綁定手機
+ 綁定手機號
+ 更換手機號
+ 綁定手機後手機號將用於光環助手活動獎勵領取、安全驗證等用途
+ 下一步
+ 完成
+ 手機號綁定沖突
+ 遇到沖突如何換綁
+ 1、請先退出當前號【我的光環--設置--退出賬號】
+ 2、再重新登錄沖突號,在【我的光環--賬戶安全】\n或【我的光環--設置--賬戶安全】更換手機號
+ 3、沖突號成功更換新手機號後,再退出沖突號,\n並重新登錄當前號進行綁定
+ 當前號
+ 沖突號
+ 換個手機號試試
+ 取消綁定
+ 更換手機號
+ 新手機號與當前手機號相同,暫不支持本\n次綁定
+ 退出登錄
+ 退出賬號即會回到遊客狀態,很多功能將無法使用(例如評論、客服消息),確定退出嗎?
+ 確定退出
+ 瀏覽器安裝
+ 助手安裝
+ 緩存清除成功
+ 請輸入渠道:
+ 推薦渠道:
+ (長按可清除gid)
+ gid已清除
+ 退出登錄中...
+ 修復成功
+ 已關閉
+ 關閉後將無法統計遊戲時長,確定要關閉嗎?
+ 清除緩存
+ 確定要清除緩存嗎?
+ 清除緩存中...
+ 網絡診斷
+ 語言
+ 簡體中文
+ 繁體中文
+
\ No newline at end of file
diff --git a/module_setting/src/main/res/values/strings.xml b/module_setting/src/main/res/values/strings.xml
index e8e4204eeb..bd9e5213a8 100644
--- a/module_setting/src/main/res/values/strings.xml
+++ b/module_setting/src/main/res/values/strings.xml
@@ -63,4 +63,22 @@
退出登录
退出账号即会回到游客状态,很多功能将无法使用(例如评论、客服消息),确定退出吗?
确定退出
+ 浏览器安装
+ 助手安装
+ 缓存清除成功
+ 请输入渠道:
+ 推荐渠道:
+ (长按可清除gid)
+ gid已清除
+ 退出登录中...
+ 修复成功
+ 已关闭
+ 关闭后将无法统计游戏时长,确定要关闭吗?
+ 清除缓存
+ 确定要清除缓存吗?
+ 清除缓存中...
+ 网络诊断
+ 语言
+ 简体中文
+ 繁体中文
\ No newline at end of file
diff --git a/module_setting_compose/src/main/res/values-zh-rTW/strings.xml b/module_setting_compose/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..98cbe97ccb
--- /dev/null
+++ b/module_setting_compose/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,68 @@
+
+ Compose設置
+ 新版本
+ 賬號與安全
+ 深色模式跟隨系統切換
+ 視頻播放
+ 遊戲下載
+ 一鍵修復
+ 下載完成自動安裝遊戲
+ 安裝完成自動關註遊戲
+ 切換安裝方式
+ 微信提醒
+ 非Wi-Fi環境下載遊戲提醒
+ 統計遊戲時長
+ 通知權限
+ 開啟後你可以及時收到重要通知
+ 個性化推薦
+ 開啟功能後,您在本應用的使用信息(如下載信息),將用於個性化內容推薦,以提升您在本應用的體驗
+ …/gh-files
+ …/pictures/ghzhushou
+ 遊戲下載目錄
+ 圖片保存目錄
+ 清除緩存
+ 網絡診斷
+ 0.0M
+ 關於我們
+ 關於我們(長按可更改渠道號)
+ 安裝包清理
+ 遊戲投稿
+ 設置
+ 註冊方式
+ 還有其他問題?
+ 聯系客服
+ 賬戶安全中心
+ 任何網絡下都自動播放
+ 僅WIFI條件下自動播放
+ 關閉自動播放
+ 默認靜音播放視頻
+ 開啟後以上位置的視頻均默認靜音播放
+ 已是最新版本
+ 關於
+ Copyright %1$s GHZhuShou Team All Rights Reserved.
+ https://v.douyin.com/C9UHr6/
+ 版本更新
+ 提交反饋
+ 跳過
+ 綁定手機
+ 綁定手機號
+ 更換手機號
+ 綁定手機後手機號將用於光環助手活動獎勵領取、安全驗證等用途
+ 下一步
+ 完成
+ 手機號綁定沖突
+ 遇到沖突如何換綁
+ 1、請先退出當前號【我的光環--設置--退出賬號】
+ 2、再重新登錄沖突號,在【我的光環--賬戶安全】\n或【我的光環--設置--賬戶安全】更換手機號
+ 3、沖突號成功更換新手機號後,再退出沖突號,\n並重新登錄當前號進行綁定
+ 當前號
+ 沖突號
+ 換個手機號試試
+ 取消綁定
+ 更換手機號
+ 新手機號與當前手機號相同,暫不支持本\n次綁定
+ 我知道了
+ 退出登錄
+ 退出賬號即會回到遊客狀態,很多功能將無法使用(例如評論、客服消息),確定退出嗎?
+ 確定退出
+
\ No newline at end of file
diff --git a/scripts/build_with_simple_backup.sh b/scripts/build_with_simple_backup.sh
index 3bb767c04d..e7a22d34d9 100755
--- a/scripts/build_with_simple_backup.sh
+++ b/scripts/build_with_simple_backup.sh
@@ -24,35 +24,54 @@ fi
./gradlew --stop
./gradlew clean
-while getopts "tkg" arg
+BUILD_VARIANT_ENV=publish
+BUILD_VARIANT_REGION=cn
+BUILD_APK_CHANNEL_NAME=标准正式包
+BUILD_WITH_INIT_GRADLE=true
+
+# 添加 -t 指定编译环境,可选值:t: 头条 k: 快手 g: 广点通
+# 添加 -r 指定区域,可选值: cn: 中国大陆 gat: 港澳台
+while getopts "t:r:" arg
do
case ${arg} in
t)
- ./gradlew aTR -I init.gradle
- mkdir -p release-app/${versionName}_${versionCode}
- cp -R app/build/outputs/apk/tea/release/app-tea-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_头条推广正式包_${git_sha}_${build_time}.apk
- exit
+ case $OPTARG in
+ t)
+ BUILD_VARIANT_ENV=tea
+ BUILD_APK_CHANNEL_NAME=头条推广正式包
+ ;;
+ k)
+ BUILD_VARIANT_ENV=kuaishou
+ BUILD_APK_CHANNEL_NAME=快手推广正式包
+ ;;
+ g)
+ sed -i '/android:name="android.permission.READ_PHONE_STATE"/{n;s/tools:node="remove" \/>/\/>/;}' app/src/main/AndroidManifest.xml
+ BUILD_WITH_INIT_GRADLE=false
+ BUILD_VARIANT_ENV=gdt
+ BUILD_APK_CHANNEL_NAME=广点通推广正式包
+ ;;
+ esac
;;
- k)
- ./gradlew aKR -I init.gradle
- mkdir -p release-app/${versionName}_${versionCode}
- cp -R app/build/outputs/apk/kuaishou/release/app-kuaishou-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_快手推广正式包_${git_sha}_${build_time}.apk
- exit
- ;;
- g)
- sed -i '/android:name="android.permission.READ_PHONE_STATE"/{n;s/tools:node="remove" \/>/\/>/;}' app/src/main/AndroidManifest.xml
- ./gradlew aGR
- mkdir -p release-app/${versionName}_${versionCode}
- cp -R app/build/outputs/apk/gdt/release/app-gdt-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_广点通推广正式包_${git_sha}_${build_time}.apk
- exit
+ r)
+ case $OPTARG in
+ gat) BUILD_VARIANT_REGION=gat
+ ;;
+ *) BUILD_VARIANT_REGION=cn
+ ;;
+ esac
;;
esac
done
# 不存在指令时打普通包
-./gradlew aPR -I init.gradle
+if [ $BUILD_WITH_INIT_GRADLE == false ]; then
+ ./gradlew assemble${BUILD_VARIANT_ENV}${BUILD_VARIANT_REGION^}Release
+else
+ ./gradlew assemble${BUILD_VARIANT_ENV}${BUILD_VARIANT_REGION^}Release -I init.gradle
+fi
+
mkdir -p release-app/${versionName}_${versionCode}
-cp -R app/build/outputs/apk/publish/release/app-publish-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_标准正式包_${git_sha}_${build_time}.apk
+cp -R app/build/outputs/apk/${BUILD_VARIANT_ENV}${BUILD_VARIANT_REGION^}/release/app-${BUILD_VARIANT_ENV}-${BUILD_VARIANT_REGION}-release.apk release-app/${versionName}_${versionCode}/光环助手_${versionName}_${versionCode}_${BUILD_APK_CHANNEL_NAME}_${git_sha}_${build_time}.apk
# 重置 app build.gradle
git checkout app/build.gradle
diff --git a/scripts/jenkins_build.sh b/scripts/jenkins_build.sh
index c50f088421..0561999fbb 100755
--- a/scripts/jenkins_build.sh
+++ b/scripts/jenkins_build.sh
@@ -22,14 +22,28 @@ sed -i 's/buildConfigField "long", "BUILD_TIME", "0"/buildConfigField "long", "B
# 生成git log文本
git log --pretty=format:'%s' --max-count=20 --no-merges > app/src/main/assets/gitlog.txt
+BUILD_VARIANT_REGION=cn
+
# 添加 -c 代表启用 compose setting 模块
-while getopts "c" arg
+# 添加 -r 指定区域,可选值: cn: 中国大陆 gat: 港澳台
+while getopts "cr:" arg
do
- sed -i '260 a implementation(project(\x27:module_setting_compose\x27)) { exclude group: \x27androidx.swiperefreshlayout\x27 }' app/build.gradle
+ case ${arg} in
+ c)
+ sed -i '260 a implementation(project(\x27:module_setting_compose\x27)) { exclude group: \x27androidx.swiperefreshlayout\x27 }' app/build.gradle
+ ;;
+ r)
+ case $OPTARG in
+ gat) BUILD_VARIANT_REGION=gat
+ ;;
+ *) BUILD_VARIANT_REGION=cn
+ ;;
+ esac
+ esac
done
-./gradlew rIR -I ${post_init_script}
-mv app/build/outputs/apk/internal/release/app-internal-release.apk app/build/tmp/${version}-${versionCode}-test-${build_time}.apk
+./gradlew resguardInternal${BUILD_VARIANT_REGION^}Release -I ${post_init_script}
+mv app/build/outputs/apk/internal${BUILD_VARIANT_REGION^}/release/app-internal-${BUILD_VARIANT_REGION}-release.apk app/build/tmp/${version}-${versionCode}-test-${build_time}.apk
git checkout app/build.gradle
git checkout module_common/build.gradle