From 4c4de337cd9b3a02de3411e4dd0d02bbed37e8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E7=BB=B4?= Date: Mon, 28 Aug 2023 09:41:45 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E3=80=90=E5=85=89=E7=8E=AF=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E3=80=91=E6=8F=92=E4=BB=B6=E9=80=9A=E7=9F=A5=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=EF=BC=9A=E5=B7=B2=E9=80=9A=E7=9F=A5=E7=9A=84=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=9B=BE=E7=89=87=E4=B8=8D=E5=B1=95=E7=A4=BA=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E6=89=B9=E9=87=8F=E5=9B=9E=E5=A4=8D=E2=80=9C=E6=9C=AA?= =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E2=80=9D=E7=94=A8=E6=88=B7=E6=8A=A5=E9=94=99?= =?UTF-8?q?(1)=20https://jira.shanqu.cc/browse/GHZS-3317?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../message/entity/MessageGameEntity.kt | 5 ++- .../view/message/MessageListAdapter.kt | 31 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/module_message/src/main/java/com/gh/gamecenter/message/entity/MessageGameEntity.kt b/module_message/src/main/java/com/gh/gamecenter/message/entity/MessageGameEntity.kt index 4ba72cac41..48c0f4ae50 100644 --- a/module_message/src/main/java/com/gh/gamecenter/message/entity/MessageGameEntity.kt +++ b/module_message/src/main/java/com/gh/gamecenter/message/entity/MessageGameEntity.kt @@ -16,5 +16,8 @@ data class MessageGameEntity( var content: Content? = null, var links: List? = null ) { - data class Content(var link: LinkEntity) + data class Content( + var link: LinkEntity? = null, + var images: List = listOf() + ) } \ No newline at end of file diff --git a/module_message/src/main/java/com/gh/gamecenter/message/view/message/MessageListAdapter.kt b/module_message/src/main/java/com/gh/gamecenter/message/view/message/MessageListAdapter.kt index 65cc9afa94..99265d2133 100644 --- a/module_message/src/main/java/com/gh/gamecenter/message/view/message/MessageListAdapter.kt +++ b/module_message/src/main/java/com/gh/gamecenter/message/view/message/MessageListAdapter.kt @@ -317,6 +317,37 @@ class MessageListAdapter( spannableText.copyTextAndToast("已复制:$spannableText") } + if (!entity.content?.images.isNullOrEmpty()) { + holder.binding.messageKefuImagesContainer.removeAllViews() + holder.binding.messageKefuImagesContainer.visibility = View.VISIBLE + entity.content?.images?.forEachIndexed { i, image -> + val draweeView = SimpleDraweeView(mContext) + val padding = 2F.dip2px() + draweeView.setPadding(padding, padding, padding, padding) + val params: FlexboxLayout.LayoutParams = FlexboxLayout.LayoutParams(mImageSize, mImageSize) + draweeView.layoutParams = params + draweeView.setImageURI(image) + draweeView.setOnClickListener { + ARouter.getInstance().build(RouteConsts.activity.imageViewerActivity) + .withStringArrayList( + EntranceConsts.KEY_URL_LIST, + entity.content?.images!! as ArrayList + ) + .withInt(EntranceConsts.KEY_CURRENT, i) + .withString(EntranceConsts.KEY_ENTRANCE, "(消息中心-系统)") + .navigation() + } + val hierarchy = draweeView.hierarchy + val roundingParams = RoundingParams.fromCornersRadius(18F) + hierarchy.roundingParams = roundingParams + hierarchy.setPlaceholderImage(R.drawable.occupy) + holder.binding.messageKefuImagesContainer.addView(draweeView) + } + holder.binding.messageKefuImagesContainer.requestLayout() + } else { + holder.binding.messageKefuImagesContainer.visibility = View.GONE + } + val commentUtilsProvider = ARouter.getInstance().build(RouteConsts.provider.commentUtils).navigation() as? ICommentUtilsProvider commentUtilsProvider?.setCommentTime(messageKefuTime, entity.time.create) From fb44391500fbed4c729c6e06e56ca8be43b570b9 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 28 Aug 2023 09:44:20 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E7=A9=BF=E5=B1=B1?= =?UTF-8?q?=E7=94=B2=20SDK=20=E7=9A=84=E8=87=AA=E5=8A=A8=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E9=97=AE=E9=A2=98=EF=BC=8C=E7=A9=BF=E5=B1=B1=E7=94=B2?= =?UTF-8?q?=20SDK=20=E5=8C=BA=E5=88=86=E6=B5=8B=E8=AF=95=E5=92=8C=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=20ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 5 +++++ app/src/main/java/com/gh/ad/AdDelegateHelper.kt | 3 ++- feature/csj_ad/proguard-rules.pro | 3 ++- feature/csj_ad/src/main/AndroidManifest.xml | 6 ++++++ .../java/com/gh/gamecenter/csj/CsjAdHelper.kt | 17 +++++++++++++++-- .../com/gh/gamecenter/csj/CsjAdProviderImpl.kt | 4 ++-- gradle.properties | 3 +++ .../gamecenter/core/provider/ICsjAdProvider.kt | 2 +- 8 files changed, 36 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ed853e9dae..d3ee40ee5e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -188,6 +188,7 @@ 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}\"" } // publish, 发布时候使用的 flavor,接口仅包含正式环境 @@ -199,6 +200,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", "CSJ_APPID", "\"${CSJ_APPID}\"" } tea { @@ -209,6 +211,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", "CSJ_APPID", "\"${CSJ_APPID}\"" manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.byAx6uYt".toLowerCase()) } @@ -221,6 +224,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", "CSJ_APPID", "\"${CSJ_APPID}\"" } gdt { @@ -231,6 +235,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", "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 22b219249c..d9da195967 100644 --- a/app/src/main/java/com/gh/ad/AdDelegateHelper.kt +++ b/app/src/main/java/com/gh/ad/AdDelegateHelper.kt @@ -17,6 +17,7 @@ import com.gh.common.exposure.ExposureManager import com.gh.common.util.DirectUtils.directToLinkPage import com.gh.common.util.LogUtils import com.gh.common.util.NewFlatLogUtils.logOpenScreenAdSkip +import com.gh.gamecenter.BuildConfig import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R import com.gh.gamecenter.common.base.activity.BaseActivity @@ -159,7 +160,7 @@ object AdDelegateHelper { if (mIsCsjRequired && mCsjAdImpl == null) { mCsjAdImpl = ARouter.getInstance().build(RouteConsts.provider.csjAd).navigation() as? ICsjAdProvider - mCsjAdImpl?.initSDK(context, HaloApp.getInstance().oaid) + mCsjAdImpl?.initSDK(context, BuildConfig.CSJ_APPID, HaloApp.getInstance().oaid) // 监听亮色/暗色模式切换 DarkModeUtils.registerModeChangeListener { val topActivity = CurrentActivityHolder.getCurrentActivity() ?: return@registerModeChangeListener diff --git a/feature/csj_ad/proguard-rules.pro b/feature/csj_ad/proguard-rules.pro index 481bb43481..599377b483 100644 --- a/feature/csj_ad/proguard-rules.pro +++ b/feature/csj_ad/proguard-rules.pro @@ -18,4 +18,5 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file +#-renamesourcefileattribute SourceFile +-keep class android.content.ContentProvider {;} \ No newline at end of file diff --git a/feature/csj_ad/src/main/AndroidManifest.xml b/feature/csj_ad/src/main/AndroidManifest.xml index cbd8f69c43..4144f32771 100644 --- a/feature/csj_ad/src/main/AndroidManifest.xml +++ b/feature/csj_ad/src/main/AndroidManifest.xml @@ -54,6 +54,12 @@ android:authorities="${applicationId}.TTMultiProvider" android:exported="false" /> + + \ No newline at end of file diff --git a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt index 014c913f46..ed99d091b2 100644 --- a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt +++ b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdHelper.kt @@ -12,20 +12,33 @@ import com.bytedance.sdk.openadsdk.TTAdNative.CSJSplashAdListener import com.bytedance.sdk.openadsdk.TTAdNative.NativeExpressAdListener import com.bytedance.sdk.openadsdk.TTAdSdk.InitCallback import com.bytedance.sdk.openadsdk.TTNativeExpressAd.ExpressAdInteractionListener +import com.bytedance.sdk.openadsdk.stub.server.MainServerManager import com.gh.gamecenter.common.utils.PackageFlavorHelper import com.gh.gamecenter.common.utils.doOnFragmentDestroy import com.lightgame.utils.Utils +import java.lang.reflect.Field object CsjAdHelper { const val TAG = "CsjAdHelper" - fun init(context: Context, oaid: String) { + fun init(context: Context, csjId: String, oaid: String) { + + try { + val serverContentProvider = MainServerManager() + val contextField: Field = serverContentProvider.javaClass.superclass.superclass.getDeclaredField("mContext") + contextField.isAccessible = true + contextField.set(serverContentProvider, context) + serverContentProvider.onCreate() + } catch (e: Exception) { + e.printStackTrace() + } + // 强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常 TTAdSdk.init( context, TTAdConfig.Builder() - .appId("5410486")// xxxxxxx为穿山甲媒体平台注册的应用ID + .appId(csjId)// xxxxxxx为穿山甲媒体平台注册的应用ID .useTextureView(true) // 默认使用SurfaceView播放视频广告,当有SurfaceView冲突的场景,可以使用TextureView .appName("光环助手") .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)//落地页主题 diff --git a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt index 35e559d09c..7b005e2789 100644 --- a/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt +++ b/feature/csj_ad/src/main/java/com/gh/gamecenter/csj/CsjAdProviderImpl.kt @@ -10,8 +10,8 @@ import com.gh.gamecenter.core.provider.ICsjAdProvider @Route(path = RouteConsts.provider.csjAd, name = "csj广告暴露服务") class CsjAdProviderImpl : ICsjAdProvider { - override fun initSDK(context: Context, oaid: String) { - CsjAdHelper.init(context, oaid) + override fun initSDK(context: Context, id: String, oaid: String) { + CsjAdHelper.init(context, id, oaid) } override fun requestSplashAd( diff --git a/gradle.properties b/gradle.properties index 02dd89cc0e..6499b7b765 100644 --- a/gradle.properties +++ b/gradle.properties @@ -52,6 +52,9 @@ QUICK_LOGIN_APPKEY=002BAABA2C078342DA33BEAB0A4C6A25 DEV_QUICK_LOGIN_APPID=300012281661 DEV_QUICK_LOGIN_APPKEY=1BFAB6E349F1D69CC06ABAD9D7A43FB8 +DEV_CSJ_APPID=5410486 +CSJ_APPID=5429125 + # hosts DEV_API_HOST=https\://dev-and-api.ghzs.com/v5d5d0/ API_HOST=https\://and-api.ghzs.com/v5d5d0/ diff --git a/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt b/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt index 6854019e46..7b75a3173a 100644 --- a/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt +++ b/module_core/src/main/java/com/gh/gamecenter/core/provider/ICsjAdProvider.kt @@ -8,7 +8,7 @@ import com.alibaba.android.arouter.facade.template.IProvider interface ICsjAdProvider : IProvider { - fun initSDK(context: Context, oaid: String) + fun initSDK(context: Context, id: String, oaid: String) fun requestSplashAd( activity: Activity, From a7335d21c581831a0c3d505dab9725470e6468ac Mon Sep 17 00:00:00 2001 From: juntao Date: Tue, 29 Aug 2023 11:54:43 +0800 Subject: [PATCH 3/3] =?UTF-8?q?build:=20=E5=B0=86=20QQ=20=E5=B0=8F?= =?UTF-8?q?=E6=B8=B8=E6=88=8F=E7=9A=84=E7=B1=BB=E6=B7=BB=E5=8A=A0=E5=88=B0?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA=E7=99=BD?= =?UTF-8?q?=E5=90=8D=E5=8D=95=EF=BC=8C=E9=81=BF=E5=85=8D=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/init.gradle b/init.gradle index f76761fd5d..c348b89173 100644 --- a/init.gradle +++ b/init.gradle @@ -86,7 +86,9 @@ allprojects { project -> "com/gh/gamecenter/common/util/MtaHelper#onEventWithBasicDeviceInfo#(Ljava/lang/String;[Ljava/lang/String;)V" ] onlyCheckList = [] - whiteList = [] + whiteList = [ + "com/tencent/qqmini/minigame/opensdk/share/OpenSdkShareHelper*", + ] } project.field_assign_opt {