From 42fa273d069411b265771f81f903adeecb20ed51 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 25 Sep 2023 19:41:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20APP=E5=A4=87=E6=A1=88=E7=9A=84=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E8=B0=83=E6=95=B4=20https://jira.shanqu.cc/browse/GHZ?= =?UTF-8?q?S-3502?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 7 +- .../main/java/com/gh/ad/AdDelegateHelper.kt | 5 +- .../gh/common/provider/DirectProviderImpl.kt | 4 + .../com/gh/common/provider/WebProviderImpl.kt | 4 - .../java/com/gh/gamecenter/MainActivity.java | 10 ++- .../java/com/gh/gamecenter/WebActivity.kt | 20 ----- .../desc/GameDetailInfoItemAdapter.kt | 3 + .../res/drawable-xxxhdpi/bg_splash_bottom.png | Bin 8553 -> 0 bytes .../drawable-xxxhdpi/bg_splash_bottom.webp | Bin 0 -> 8782 bytes .../drawable-xxxhdpi/ic_launcher_pack.webp | Bin 0 -> 11562 bytes app/src/main/res/layout/activity_main.xml | 71 ++++++++------- .../layout/dialog_privacy_protocol_new.xml | 17 +++- app/src/main/res/layout/piece_ad_icp.xml | 31 +++++++ app/src/main/res/values/strings.xml | 2 - .../feedback/provider/DirectProviderImpl.kt | 4 + .../feedback/provider/WebProviderImpl.kt | 4 - .../feedback/provider/DirectProviderImpl.kt | 4 + .../feedback/provider/WebProviderImpl.kt | 4 - .../gamecenter/common/view/LongPressView.java | 82 ------------------ module_common/src/main/res/values/strings.xml | 5 ++ .../core/provider/IDirectProvider.kt | 2 + .../gamecenter/core/provider/IWebProvider.kt | 2 - .../gh/gamecenter/feature/entity/GameInfo.kt | 9 +- .../feedback/provider/WebProviderImpl.kt | 4 - .../message/provider/WebProviderImpl.kt | 4 - .../gamecenter/setting/view/AboutFragment.kt | 21 +---- .../src/main/res/layout/fragment_about.xml | 58 +++++++++---- .../setting/provider/DirectProviderImpl.kt | 4 + .../setting/provider/WebProviderImpl.kt | 10 --- .../compose/activity/ComposeAboutActivity.kt | 43 ++++++++- .../compose/provider/WebProviderImpl.kt | 10 --- 31 files changed, 222 insertions(+), 222 deletions(-) delete mode 100644 app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.png create mode 100644 app/src/main/res/drawable-xxxhdpi/bg_splash_bottom.webp create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_launcher_pack.webp create mode 100644 app/src/main/res/layout/piece_ad_icp.xml delete mode 100644 module_common/src/main/java/com/gh/gamecenter/common/view/LongPressView.java 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 6bd36b0a37780e896114b1cd8860d9c4a5a4629e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8553 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 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 0000000000000000000000000000000000000000..52caa19430388bc261ff82d8c9a6e9046c06cb09 GIT binary patch literal 8782 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 N7bTs2|M*|J{{tBSuLl4C literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..212d8f26e504bf69f0bc9c284b3685496caceb22 GIT binary patch literal 11562 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 - - - + 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