From ba1584f6425bf1acaafab23d34d0dab2281fbf94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=BE=E7=A5=A5=E4=BF=8A?= Date: Thu, 25 Jul 2024 09:45:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=94=A8=E6=88=B7=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=B1=95=E7=A4=BA=E5=8F=8A=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E2=80=94=E5=AE=A2=E6=88=B7=E7=AB=AF=20https:?= =?UTF-8?q?//jira.shanqu.cc/browse/GHZSCY-5666?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 4 +- .../gamecenter/setting/view/AboutFragment.kt | 26 ++++++ .../src/main/res/layout/fragment_about.xml | 9 ++ .../compose/activity/ComposeAboutActivity.kt | 84 ++++++++++++++----- 4 files changed, 98 insertions(+), 25 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6c0bed8188..127adb21de 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -72,7 +72,7 @@ android_build: only: - dev - release - - feature-GHZS-5816 + - feature-GHZS-6019 # 代码检查 sonarqube_analysis: @@ -154,4 +154,4 @@ oss-upload&send-email: only: - dev - release - - feature-GHZS-5816 \ No newline at end of file + - feature-GHZS-6019 \ No newline at end of file diff --git a/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutFragment.kt b/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutFragment.kt index 848937c4db..83e6491fac 100644 --- a/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutFragment.kt +++ b/module_setting/src/main/java/com/gh/gamecenter/setting/view/AboutFragment.kt @@ -13,6 +13,7 @@ import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.gamecenter.common.utils.DialogHelper import com.gh.gamecenter.common.utils.PackageFlavorHelper import com.gh.gamecenter.common.utils.copyTextAndToast @@ -61,6 +62,19 @@ class AboutFragment : ToolbarFragment() { ARouter.getInstance().build(RouteConsts.provider.updateManager).navigation() as? IUpdateManagerProvider updateManager?.checkUpdate(requireActivity(), true) // 检查更新 + if (PackageFlavorHelper.IS_TEST_FLAVOR) { + var clickCount = 0 + mBinding.aboutGhIcon.setOnClickListener { + if (clickCount == 5) { + mBinding.aboutGhIcon.setOnClickListener(null) + mBinding.deviceContent.visibility = View.VISIBLE + mBinding.deviceContent.text.toString().copyTextAndToast("复制成功!") + } else { + clickCount++ + } + } + } + mBinding.aboutGhIcon.setOnLongClickListener { MtaHelper.onEvent("我的光环_设置", "关于光环", "图标长按") if (PackageFlavorHelper.IS_TEST_FLAVOR) { @@ -181,6 +195,18 @@ class AboutFragment : ToolbarFragment() { } } + mBinding.deviceContent.run { + val sb = StringBuilder() + val meta = MetaUtil.getMeta() + sb.append("OAID: ").append(meta.oaid).append("\n") + sb.append("ANDROID_ID: ").append(MetaUtil.getAndroidId()).append("\n") + sb.append("GID: ").append(meta.gid).append("\n") + sb.append("USER_ID: ").append(meta.userId).append("\n") + sb.append("CHANNEL: ").append(meta.channel).append("\n") + sb.append("APP_VERSION: ").append(meta.appVersion) + text = sb.toString() + } + mBinding.icpTv.setOnClickListener { val directUtils = ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as? IDirectProvider directUtils?.directToExternalBrowser(requireContext(), requireContext().getString(R.string.icp_url)) diff --git a/module_setting/src/main/res/layout/fragment_about.xml b/module_setting/src/main/res/layout/fragment_about.xml index e9f7510966..1b11fc7826 100644 --- a/module_setting/src/main/res/layout/fragment_about.xml +++ b/module_setting/src/main/res/layout/fragment_about.xml @@ -74,6 +74,15 @@ + + diff --git a/module_setting_compose/src/main/java/com/gh/gamecenter/setting/compose/activity/ComposeAboutActivity.kt b/module_setting_compose/src/main/java/com/gh/gamecenter/setting/compose/activity/ComposeAboutActivity.kt index 5b88db3f33..8ace13d79b 100644 --- a/module_setting_compose/src/main/java/com/gh/gamecenter/setting/compose/activity/ComposeAboutActivity.kt +++ b/module_setting_compose/src/main/java/com/gh/gamecenter/setting/compose/activity/ComposeAboutActivity.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.constraintlayout.compose.ChainStyle @@ -24,6 +25,7 @@ import androidx.constraintlayout.compose.ConstraintLayout import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.constant.RouteConsts +import com.gh.gamecenter.common.exposure.meta.MetaUtil import com.gh.gamecenter.common.utils.DialogHelper import com.gh.gamecenter.common.utils.PackageFlavorHelper import com.gh.gamecenter.common.utils.copyTextAndToast @@ -49,6 +51,9 @@ class ComposeAboutActivity : ComposeBaseActivity() { var updateAvailable by remember { mutableStateOf(false) } + var deviceContent by remember { + mutableStateOf("") + } val updateManager = ARouter.getInstance().build(RouteConsts.provider.updateManager) .navigation() as? IUpdateManagerProvider @@ -91,35 +96,56 @@ class ComposeAboutActivity : ComposeBaseActivity() { verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { + var clickCount = 0 Image( painter = painterResource(id = R.mipmap.logo_for_in_app_display), contentDescription = null, modifier = Modifier .size(78.dp) .pointerInput(Unit) { - detectTapGestures(onLongPress = { - if (PackageFlavorHelper.IS_TEST_FLAVOR) { - DialogHelper.showDialog( - this@ComposeAboutActivity, - "重选接口环境", - "是否要清空应用数据并重选接口环境\n(清空后数据后需要手动再打开 APP)", - "是", - "否", - { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - (getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager).clearApplicationUserData() - } - }, - extraConfig = DialogHelper.Config(centerTitle = true, centerContent = true) - ) - } else { - val appProvider = ARouter - .getInstance() - .build(RouteConsts.provider.app) - .navigation() as? IAppProvider - Utils.toast(this@ComposeAboutActivity, appProvider?.getChannel()) - } - }) + detectTapGestures( + onLongPress = { + if (PackageFlavorHelper.IS_TEST_FLAVOR) { + DialogHelper.showDialog( + this@ComposeAboutActivity, + "重选接口环境", + "是否要清空应用数据并重选接口环境\n(清空后数据后需要手动再打开 APP)", + "是", + "否", + { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + (getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager).clearApplicationUserData() + } + }, + extraConfig = DialogHelper.Config( + centerTitle = true, + centerContent = true + ) + ) + } else { + val appProvider = ARouter + .getInstance() + .build(RouteConsts.provider.app) + .navigation() as? IAppProvider + Utils.toast(this@ComposeAboutActivity, appProvider?.getChannel()) + } + }, + onPress = { + if (clickCount == 5) { + val sb = StringBuilder() + val meta = MetaUtil.getMeta() + sb.append("OAID: ").append(meta.oaid).append("\n") + sb.append("ANDROID_ID: ").append(MetaUtil.getAndroidId()).append("\n") + sb.append("GID: ").append(meta.gid).append("\n") + sb.append("USER_ID: ").append(meta.userId).append("\n") + sb.append("CHANNEL: ").append(meta.channel).append("\n") + sb.append("APP_VERSION: ").append(meta.appVersion) + val content = sb.toString().apply { copyTextAndToast("复制成功!") } + deviceContent = content + } else { + clickCount++ + } + }) }) Space(13.dp) Text( @@ -178,6 +204,18 @@ class ComposeAboutActivity : ComposeBaseActivity() { ARouter.getInstance().build(RouteConsts.provider.directUtils).navigation() as? IDirectProvider directUtils?.directDouyin(this@ComposeAboutActivity, "1402577827140941") } + if (deviceContent.isNotEmpty()) { + Text( + text = deviceContent, + lineHeight = 21.sp, + fontSize = 14.sp, + textAlign = TextAlign.Center, + modifier = Modifier + .fillMaxWidth() + .wrapContentHeight() + .padding(0.dp, 8.dp, 0.dp, 0.dp) + ) + } ConstraintLayout( modifier = Modifier .fillMaxWidth()