diff --git a/app/build.gradle b/app/build.gradle index c78be00a6d..09896467e4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -188,7 +188,8 @@ android { 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", "CSJ_APPID", "\"${DEV_CSJ_APPID}\"" + buildConfigField "String", "DEV_CSJ_APPID", "\"${DEV_CSJ_APPID}\"" + buildConfigField "String", "CSJ_APPID", "\"${CSJ_APPID}\"" } // publish, 发布时候使用的 flavor,接口仅包含正式环境 @@ -200,6 +201,7 @@ android { 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}\"" } @@ -211,6 +213,7 @@ android { 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}\"" manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase()) @@ -224,6 +227,7 @@ android { 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}\"" } @@ -235,6 +239,7 @@ android { 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}\"" } } diff --git a/app/src/main/java/com/gh/ad/AdDelegateHelper.kt b/app/src/main/java/com/gh/ad/AdDelegateHelper.kt index 5430213c98..93fe6a5550 100644 --- a/app/src/main/java/com/gh/ad/AdDelegateHelper.kt +++ b/app/src/main/java/com/gh/ad/AdDelegateHelper.kt @@ -87,7 +87,8 @@ object AdDelegateHelper { if (mCsjAdImpl == null) { mCsjAdImpl = ARouter.getInstance().build(RouteConsts.provider.csjAd).navigation() as? ICsjAdProvider - mCsjAdImpl?.initSDK(context, BuildConfig.CSJ_APPID, HaloApp.getInstance().oaid) + val csjAppId = if (EnvHelper.isDevEnv) BuildConfig.DEV_CSJ_APPID else BuildConfig.CSJ_APPID + mCsjAdImpl?.initSDK(context, csjAppId, HaloApp.getInstance().oaid) // 监听亮色/暗色模式切换 DarkModeUtils.registerModeChangeListener { val topActivity = CurrentActivityHolder.getCurrentActivity() ?: return@registerModeChangeListener @@ -347,7 +348,9 @@ object AdDelegateHelper { val jumpBtn: View = startAdContainer.findViewById(R.id.jumpBtn) val jumpDetailBtn: TextView = startAdContainer.findViewById(R.id.jumpDetailBtn) val adImage: SimpleDraweeView = startAdContainer.findViewById(R.id.adImage) + val icpContainer: View? = startAdContainer.findViewById(R.id.startAdIcpContainer) startAdContainer.visibility = View.VISIBLE + icpContainer?.visibility = View.VISIBLE jumpDetailBtn.text = ad.desc jumpDetailBtn.setDrawableEnd( AppCompatResources.getDrawable( diff --git a/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt b/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt index 819f2c66d2..f59ebf2a0d 100644 --- a/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/DirectProviderImpl.kt @@ -120,6 +120,10 @@ class DirectProviderImpl : IDirectProvider { return DirectUtils.directToQGameHome(context) } + override fun directToExternalBrowser(context: Context, url: String) { + DirectUtils.directToExternalBrowser(context, url) + } + override fun init(context: Context?) { // Do nothing } diff --git a/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt b/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt index bf9f7c97ee..922040d99e 100644 --- a/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt +++ b/app/src/main/java/com/gh/common/provider/WebProviderImpl.kt @@ -21,10 +21,6 @@ class WebProviderImpl : IWebProvider { return WebActivity.getBindWechatIntent(context) } - override fun getSecurityCertificationIntent(context: Context): Intent { - return WebActivity.getSecurityCertificationIntent(context) - } - override fun getQAIntent( context: Context?, url: String?, diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index a4908dea29..e29db43e70 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -516,7 +516,9 @@ public class MainActivity extends BaseActivity { FrameLayout adsFl = findViewById(R.id.adsFl); int screenWidthInPx = DisplayUtils.getScreenWidth(this); - int screenHeightInPx = DisplayUtils.getScreenHeight(this) + DisplayUtils.getStatusBarHeight(this.getResources()); + int screenHeightInPx = DisplayUtils.getScreenHeight(this) + + DisplayUtils.getStatusBarHeight(this.getResources()) + - ExtensionsKt.dip2px(112F); float screenWidthInDp = DisplayUtils.px2dip(this, screenWidthInPx); float screenHeightInDp = DisplayUtils.px2dip(this, screenHeightInPx); @@ -584,6 +586,12 @@ public class MainActivity extends BaseActivity { AdDelegateHelper.INSTANCE.cancelSplashAd(this); } + View startSdkAdIcpContainer = findViewById(R.id.sdkStartAdIcpContainer); + if (startSdkAdIcpContainer != null) { + startSdkAdIcpContainer.setVisibility(View.GONE); + ExtensionsKt.removeFromParent(startSdkAdIcpContainer); + } + // 通知优先级高的弹窗可以显示了 AppExecutor.getUiExecutor().execute(() -> { mMainWrapperFragment.showDialog(); diff --git a/app/src/main/java/com/gh/gamecenter/WebActivity.kt b/app/src/main/java/com/gh/gamecenter/WebActivity.kt index b382cb22fd..27ab7cdf66 100644 --- a/app/src/main/java/com/gh/gamecenter/WebActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/WebActivity.kt @@ -132,26 +132,6 @@ open class WebActivity : ToolBarActivity() { ) } - // 获取安全认证页 - @JvmStatic - fun getSecurityCertificationIntent(context: Context): Intent { - val bundle = Bundle() - bundle.putString( - EntranceConsts.KEY_GAMENAME, - context.getString(R.string.comment_security_certification) - ) - bundle.putString( - EntranceConsts.KEY_URL, - context.getString(R.string.comment_security_certification_url) - ) - bundle.putBoolean(WebFragment.KEY_IS_SECURITY_CERTIFICATION, true) - return getTargetIntent( - context, - WebActivity::class.java, - WebFragment::class.java, bundle - ) - } - // 获取工具箱页面 @JvmStatic fun getWebByCollectionTools( diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt index cec3eed518..ca1146da48 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/GameDetailInfoItemAdapter.kt @@ -90,6 +90,9 @@ class GameDetailInfoItemAdapter( if (gameInfo.recommendAge.isNotEmpty()) { datas.add(GameInfoItemData(title = "适龄等级", info = gameInfo.recommendAge)) } + if (gameInfo.icp != null) { + datas.add(GameInfoItemData(title = "ICP备案号", info = gameInfo.icp?.number ?: "")) + } if (!gameInfo.permissions.isNullOrEmpty()) { datas.add(GameInfoItemData(title = "权限及用途", info = "查看")) } diff --git a/app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.png b/app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.png deleted file mode 100644 index 6bd36b0a37..0000000000 Binary files a/app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.webp b/app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.webp new file mode 100644 index 0000000000..52caa19430 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.webp differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_launcher_pack.webp b/app/src/main/res/drawable-xxxhdpi/ic_launcher_pack.webp new file mode 100644 index 0000000000..212d8f26e5 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_launcher_pack.webp differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6f351491b5..545df23248 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - - - + app:layout_constraintTop_toTopOf="parent" /> + + - + android:layout_height="match_parent"> - + - + - \ No newline at end of file + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_privacy_protocol_new.xml b/app/src/main/res/layout/dialog_privacy_protocol_new.xml index dc842b1e43..06071f0fe7 100644 --- a/app/src/main/res/layout/dialog_privacy_protocol_new.xml +++ b/app/src/main/res/layout/dialog_privacy_protocol_new.xml @@ -82,17 +82,30 @@ android:id="@+id/descTv" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginBottom="15dp" + android:layout_marginBottom="12dp" android:includeFontPadding="false" android:lineSpacingExtra="1.5dp" android:text="如您同意以上内容,请点击“同意”,开始使用我们的产品和服务!" android:textColor="@color/text_title" android:textSize="@dimen/primary_text_size" - app:layout_constraintBottom_toTopOf="@id/refuseTv" + app:layout_constraintBottom_toTopOf="@id/icpTv" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_goneMarginTop="16dp" /> + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 52c1cbeddf..8dfe8c52ec 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -199,8 +199,6 @@ 光环助手接入第三方SDK目录 https://resource.ghzs.com/page/third_party_sdk/index.html 光环助手评论规则 - 安全认证 - https://credit.cecdc.com/CX20190909718761807395238.html https://resource.ghzs.com/page/rule_page/comment_rules.html 取消收藏 取消收藏失败 diff --git a/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt b/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt index 4dee31f698..2e08a8ee56 100644 --- a/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt +++ b/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt @@ -121,6 +121,10 @@ class DirectProviderImpl : IDirectProvider { ToastUtils.toast("调用->DirectProviderImpl.directToQGame") } + override fun directToExternalBrowser(context: Context, url: String) { + ToastUtils.toast("调用->DirectProviderImpl.directToExternalBrowser") + } + override fun init(context: Context?) { // Do nothing } diff --git a/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt b/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt index bf8f5cc25a..8cc92ee74e 100644 --- a/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt +++ b/feature/floating-window/src/demo/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt @@ -20,10 +20,6 @@ class WebProviderImpl : IWebProvider { return null } - override fun getSecurityCertificationIntent(context: Context): Intent? { - return null - } - override fun getQAIntent( context: Context?, url: String?, diff --git a/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt b/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt index 4dee31f698..2e08a8ee56 100644 --- a/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt +++ b/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/DirectProviderImpl.kt @@ -121,6 +121,10 @@ class DirectProviderImpl : IDirectProvider { ToastUtils.toast("调用->DirectProviderImpl.directToQGame") } + override fun directToExternalBrowser(context: Context, url: String) { + ToastUtils.toast("调用->DirectProviderImpl.directToExternalBrowser") + } + override fun init(context: Context?) { // Do nothing } diff --git a/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt b/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt index dffea16052..f758d0c80d 100644 --- a/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt +++ b/feature/new_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt @@ -20,10 +20,6 @@ class WebProviderImpl : IWebProvider { return null } - override fun getSecurityCertificationIntent(context: Context): Intent? { - return null - } - override fun getQAIntent( context: Context?, url: String?, diff --git a/module_common/src/main/java/com/gh/gamecenter/common/view/LongPressView.java b/module_common/src/main/java/com/gh/gamecenter/common/view/LongPressView.java deleted file mode 100644 index db7afda6ed..0000000000 --- a/module_common/src/main/java/com/gh/gamecenter/common/view/LongPressView.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.gh.gamecenter.common.view; - -import android.content.Context; -import android.content.res.TypedArray; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewConfiguration; - -import androidx.annotation.Nullable; - -import com.gh.gamecenter.common.R; - -public class LongPressView extends View { - private int mLastMotionX, mLastMotionY; - // 是否移动了 - private boolean isMoved; - // 是否释放了 - private boolean isReleased; - // 计数器,防止多次点击导致最后一次形成longpress的时间变短 - private int mCounter; - // 长按的runnable - private Runnable mLongPressRunnable; - // 移动的阈值 - private static final int TOUCH_SLOP = 60; - private int longPressTimeout = ViewConfiguration.getLongPressTimeout(); - - public LongPressView(Context context) { - super(context); - } - - public LongPressView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - init(context, attrs); - } - - public LongPressView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(context, attrs); - } - - private void init(Context context, AttributeSet attrs) { - if (attrs != null) { - TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.LongPressViewStyle); - longPressTimeout = ta.getInteger(R.styleable.LongPressViewStyle_timeout, longPressTimeout); - ta.recycle(); - } - mLongPressRunnable = () -> { - mCounter--; - if (mCounter > 0 || isReleased || isMoved) - return; - performLongClick();// 回调长按事件 - }; - } - - public boolean dispatchTouchEvent(MotionEvent event) { - int x = (int) event.getX(); - int y = (int) event.getY(); - switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: - mLastMotionX = x; - mLastMotionY = y; - mCounter++; - isReleased = false; - isMoved = false; - postDelayed(mLongPressRunnable, longPressTimeout); - break; - case MotionEvent.ACTION_MOVE: - if (isMoved) - break; - if (Math.abs(mLastMotionX - x) > TOUCH_SLOP - || Math.abs(mLastMotionY - y) > TOUCH_SLOP) { - isMoved = true; - } - break; - case MotionEvent.ACTION_UP: - isReleased = true; - break; - } - return true; - } -} diff --git a/module_common/src/main/res/values/strings.xml b/module_common/src/main/res/values/strings.xml index 2fd57f888b..1e0c19ce5d 100644 --- a/module_common/src/main/res/values/strings.xml +++ b/module_common/src/main/res/values/strings.xml @@ -46,6 +46,11 @@ 隐私政策 https://resource.ghzs.com/page/privacy_policies/privacy_policies.html + 备案查询入口 + https://beian.miit.gov.cn/ + 粤ICP备17080876号-5A + APP备案号:粤ICP备17080876号-5A + 加载中... 上拉加载 加载失败,点击重试 diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt index e9b3a578ef..72b6f1098a 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IDirectProvider.kt @@ -72,4 +72,6 @@ interface IDirectProvider : IProvider { fun directToWinOrderDetail(context: Context, orderId: String, activityId: String) fun directToQGame(context: Context) + + fun directToExternalBrowser(context: Context, url: String) } \ No newline at end of file diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt index b6ec067f9b..d1bd511023 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/IWebProvider.kt @@ -11,8 +11,6 @@ interface IWebProvider : IProvider { fun getBindWechatIntent(context: Context): Intent? - fun getSecurityCertificationIntent(context: Context): Intent? - fun getQAIntent( context: Context?, url: String?, diff --git a/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameInfo.kt b/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameInfo.kt index dbde7e7cb5..67cc8b5e06 100644 --- a/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameInfo.kt +++ b/module_core_feature/src/main/java/com/gh/gamecenter/feature/entity/GameInfo.kt @@ -31,5 +31,10 @@ class GameInfo( var developer: String = "",//manufacturer_type 值为 manufacturer / developer,或该字段值为空时,不返回该字段 var supplier: String = "",//供应商 @SerializedName("credit_code") - var creditCode: String = ""//统一社会信用代码 -) : Parcelable \ No newline at end of file + var creditCode: String = "",//统一社会信用代码 + @SerializedName("ICP") + var icp: ICP? = null, // APP 备案相关 +) : Parcelable { + @Parcelize + class ICP(val number: String): Parcelable +} \ No newline at end of file diff --git a/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt b/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt index bf8f5cc25a..8cc92ee74e 100644 --- a/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt +++ b/module_feedback/src/feedback/java/com/gh/gamecenter/feedback/provider/WebProviderImpl.kt @@ -20,10 +20,6 @@ class WebProviderImpl : IWebProvider { return null } - override fun getSecurityCertificationIntent(context: Context): Intent? { - return null - } - override fun getQAIntent( context: Context?, url: String?, diff --git a/module_message/src/message/java/com/gh/gamecenter/message/provider/WebProviderImpl.kt b/module_message/src/message/java/com/gh/gamecenter/message/provider/WebProviderImpl.kt index 2a900b57de..57c5652a59 100644 --- a/module_message/src/message/java/com/gh/gamecenter/message/provider/WebProviderImpl.kt +++ b/module_message/src/message/java/com/gh/gamecenter/message/provider/WebProviderImpl.kt @@ -20,10 +20,6 @@ class WebProviderImpl : IWebProvider { return null } - override fun getSecurityCertificationIntent(context: Context): Intent? { - return null - } - override fun getQAIntent( context: Context?, url: String?, 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 33a08bb959..e814b90ad1 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 @@ -1,17 +1,14 @@ package com.gh.gamecenter.setting.view import android.annotation.SuppressLint -import android.app.Activity import android.app.ActivityManager import android.content.Context -import android.graphics.Color import android.os.Build import android.os.Bundle import android.os.Message import android.preference.PreferenceManager import android.text.TextUtils import android.view.View -import androidx.core.content.ContextCompat import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.base.fragment.ToolbarFragment import com.gh.gamecenter.common.constant.Constants @@ -170,22 +167,10 @@ class AboutFragment : ToolbarFragment() { directUtils?.directDouyin(requireContext(), "1402577827140941") } } - mBinding.aboutBottom.setOnLongClickListener { - MtaHelper.onEvent("我的光环_设置", "关于光环", "底部长按") - if (context == null) return@setOnLongClickListener true - if (context is Activity && (context as Activity).isFinishing) return@setOnLongClickListener true - startActivity(webActivity?.getSecurityCertificationIntent(requireContext())) - true - } - mBinding.aboutTvVersion.setOnLongClickListener { -// String tinkerId = TinkerManager.getNewTinkerId(); -// if (!TextUtils.isEmpty(tinkerId)) { -// mVersionName.setText(("V" + PackageUtils.getVersionName() + "." + tinkerId)); -// } else { - toastLong(R.string.toast_upload_latest) -// } - false + 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 4132cb728e..ee63d4bbe8 100644 --- a/module_setting/src/main/res/layout/fragment_about.xml +++ b/module_setting/src/main/res/layout/fragment_about.xml @@ -1,8 +1,8 @@ + android:layout_height="wrap_content" /> + android:layout_height="wrap_content" /> + android:layout_height="wrap_content" /> + android:layout_height="wrap_content" /> @@ -99,19 +99,45 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="17dp" - android:layout_marginBottom="25dp" android:gravity="center" android:text="Copyright 2019 GHZhuShou Team All Rights Reserved." android:textColor="@color/content" android:textSize="11sp" /> - + - + + + + + + + + \ No newline at end of file diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DirectProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DirectProviderImpl.kt index 945f8d25b9..114597db08 100644 --- a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DirectProviderImpl.kt +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/DirectProviderImpl.kt @@ -121,6 +121,10 @@ class DirectProviderImpl : IDirectProvider { ToastUtils.toast("调用->DirectProviderImpl.directToQGame") } + override fun directToExternalBrowser(context: Context, url: String) { + ToastUtils.toast("调用->DirectProviderImpl.directToExternalBrowser") + } + override fun init(context: Context?) { // Do nothing } diff --git a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WebProviderImpl.kt b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WebProviderImpl.kt index c81be20cf7..3b6990e622 100644 --- a/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WebProviderImpl.kt +++ b/module_setting/src/setting/java/com/gh/gamecenter/setting/provider/WebProviderImpl.kt @@ -34,12 +34,6 @@ class WebProviderImpl : IWebProvider { } } - override fun getSecurityCertificationIntent(context: Context): Intent? { - return Intent(Intent.ACTION_VIEW).apply { - data = Uri.parse(SECURITY_CERTIFICATION_URL) - } - } - override fun getQAIntent( context: Context?, url: String?, @@ -63,8 +57,4 @@ class WebProviderImpl : IWebProvider { override fun init(context: Context?) { // Do nothing } - - companion object { - const val SECURITY_CERTIFICATION_URL = "https://credit.cecdc.com/CX20190909718761807395238.html" - } } \ No newline at end of file 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 81c487c737..de0846fa3f 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 @@ -19,6 +19,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ChainStyle import androidx.constraintlayout.compose.ConstraintLayout import com.alibaba.android.arouter.launcher.ARouter import com.gh.gamecenter.common.constant.EntranceConsts @@ -184,7 +185,7 @@ class ComposeAboutActivity : ComposeBaseActivity() { .fillMaxWidth() .fillMaxHeight() ) { - val (copyrightCN, copyrightEn) = createRefs() + val (copyrightCN, copyrightEn, icpDesc, icpHref) = createRefs() val serverTime = PreferenceManager.getDefaultSharedPreferences(this@ComposeAboutActivity) .getLong("server_time", 1587693163L) val year = TimeUtils.getFormatTime(serverTime, "yyyy") @@ -192,19 +193,55 @@ class ComposeAboutActivity : ComposeBaseActivity() { fontSize = 11.sp, color = HaloTheme.colors.textSubtitleDesc, modifier = Modifier.constrainAs(copyrightEn) { - bottom.linkTo(parent.bottom, 25.dp) + bottom.linkTo(icpDesc.top, 16.dp) start.linkTo(parent.start) end.linkTo(parent.end) }) + Text(text = "光环工作室 版权所有", fontSize = 11.sp, color = HaloTheme.colors.textSubtitleDesc, modifier = Modifier .constrainAs(copyrightCN) { - bottom.linkTo(copyrightEn.top, 17.dp) + bottom.linkTo(copyrightEn.top, 16.dp) start.linkTo(parent.start) end.linkTo(parent.end) }) + + Text(text = getString(R.string.icp_serial_numb_desc), + fontSize = 11.sp, + color = HaloTheme.colors.textSubtitleDesc, + modifier = Modifier + .constrainAs(icpDesc) { + bottom.linkTo(parent.bottom, 32.dp) + start.linkTo(parent.start) + end.linkTo(icpHref.start) + }) + + Text(text = getString(R.string.icp), + fontSize = 11.sp, + color = HaloTheme.colors.themeFont, + modifier = Modifier + .padding(start = 8.dp) + .constrainAs(icpHref) { + bottom.linkTo(parent.bottom, 32.dp) + start.linkTo(icpDesc.end) + end.linkTo(parent.end) + top.linkTo(icpDesc.top) + } + .clickable { + val directUtils = + ARouter + .getInstance() + .build(RouteConsts.provider.directUtils) + .navigation() as? IDirectProvider + directUtils?.directToExternalBrowser( + this@ComposeAboutActivity, + getString(R.string.icp_url) + ) + }) + + createHorizontalChain(icpDesc, icpHref, chainStyle = ChainStyle.Packed) } } } diff --git a/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/WebProviderImpl.kt b/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/WebProviderImpl.kt index 8cc1d3a4d1..983467bcfc 100644 --- a/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/WebProviderImpl.kt +++ b/module_setting_compose/src/setting/java/com/gh/gamecenter/setting/compose/provider/WebProviderImpl.kt @@ -31,17 +31,7 @@ class WebProviderImpl : IWebProvider { } } - override fun getSecurityCertificationIntent(context: Context): Intent? { - return Intent(Intent.ACTION_VIEW).apply { - data = Uri.parse(SECURITY_CERTIFICATION_URL) - } - } - override fun init(context: Context?) { // Do nothing } - - companion object { - const val SECURITY_CERTIFICATION_URL = "https://credit.cecdc.com/CX20190909718761807395238.html" - } } \ No newline at end of file