From 7995f140501cdee75ddb217fa4b5c94ed95170d9 Mon Sep 17 00:00:00 2001 From: leafwai Date: Tue, 31 May 2022 16:09:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=9A=E5=8A=A1=20ID=20https://git.shanqu.?= =?UTF-8?q?cc/halo/android/assistant-android/-/issues/68?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/GlobalActivityLifecycleObserver.kt | 1 + .../java/com/gh/base/GlobalActivityManager.kt | 14 ++++++++++++ .../java/com/gh/common/util/DataUtils.java | 16 ++++++++++++++ .../gh/gamecenter/CommentDetailActivity.java | 16 ++++++++++++++ .../gh/gamecenter/LibaoDetailActivity.java | 12 ++++++++++ .../gh/gamecenter/MessageDetailActivity.java | 22 +++++++++++++++++++ .../com/gh/gamecenter/NewsDetailActivity.java | 12 ++++++++++ .../detail/ColumnCollectionDetailActivity.kt | 8 +++++++ .../detail/CommonCollectionDetailActivity.kt | 9 ++++++++ .../detail/GameCollectionDetailActivity.kt | 11 +++++++++- .../gamedetail/rating/RatingReplyActivity.kt | 11 ++++++++-- .../rating/logs/CommentLogsActivity.kt | 8 +++++++ .../gh/gamecenter/help/HelpDetailActivity.kt | 9 ++++++++ .../qa/comment/NewCommentDetailActivity.kt | 10 +++++++++ .../video/detail/ForumVideoDetailActivity.kt | 8 +++++++ 15 files changed, 164 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/gh/base/GlobalActivityManager.kt diff --git a/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt b/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt index 805f079646..fbc28d7709 100644 --- a/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt +++ b/app/src/main/java/com/gh/base/GlobalActivityLifecycleObserver.kt @@ -27,6 +27,7 @@ class GlobalActivityLifecycleObserver : Application.ActivityLifecycleCallbacks { } override fun onActivityResumed(activity: Activity) { + GlobalActivityManager.currentActivity = activity // 判断是否需要显示或隐藏返回小浮窗 if (FloatingBackViewManager.getType().isNotEmpty()) { diff --git a/app/src/main/java/com/gh/base/GlobalActivityManager.kt b/app/src/main/java/com/gh/base/GlobalActivityManager.kt new file mode 100644 index 0000000000..558c3fadb5 --- /dev/null +++ b/app/src/main/java/com/gh/base/GlobalActivityManager.kt @@ -0,0 +1,14 @@ +package com.gh.base + +import android.app.Activity +import java.lang.ref.WeakReference + +object GlobalActivityManager { + private var mCurrentActivityWeakRef: WeakReference? = null + + var currentActivity: Activity? + get() = mCurrentActivityWeakRef?.get() + set(activity) { + mCurrentActivityWeakRef = WeakReference(activity) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index d9f31fefbd..f5e1ab5b7d 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -7,7 +7,9 @@ import android.preference.PreferenceManager; import android.text.TextUtils; import android.util.Log; +import com.gh.base.GlobalActivityManager; import com.gh.gamecenter.BuildConfig; +import com.gh.gamecenter.common.base.activity.BaseActivity; import com.gh.gamecenter.common.constant.Constants; import com.gh.gamecenter.common.exposure.meta.MetaUtil; import com.gh.gamecenter.common.retrofit.BiResponse; @@ -26,6 +28,7 @@ import com.lightgame.utils.Utils; import io.reactivex.schedulers.Schedulers; import io.sentry.Sentry; import io.sentry.android.core.SentryAndroid; +import kotlin.Pair; /** * Created by LGT on 2016/6/15. @@ -68,6 +71,19 @@ public class DataUtils { return event; } }); + + options.setBeforeBreadcrumb(((breadcrumb, hint) -> { + if ("ui.lifecycle".equals(breadcrumb.getCategory()) && "started".equals(breadcrumb.getData("state"))) { + if (GlobalActivityManager.INSTANCE.getCurrentActivity() instanceof BaseActivity) { + Pair businessId = ((BaseActivity) GlobalActivityManager.INSTANCE.getCurrentActivity()).getBusinessId(); + if (businessId != null) { + breadcrumb.setData("businessId1", businessId.component1()); + breadcrumb.setData("businessId2", businessId.component2()); + } + } + } + return breadcrumb; + })); }); Sentry.configureScope(scope -> { diff --git a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java index e9de8777c7..a0e96da438 100644 --- a/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/CommentDetailActivity.java @@ -15,6 +15,8 @@ import com.gh.gamecenter.qa.comment.CommentActivity; import com.gh.gamecenter.qa.comment.NewCommentConversationFragment; import com.halo.assistant.fragment.comment.CommentDetailFragment; +import kotlin.Pair; + /** * Created by khy on 2017/3/22. */ @@ -86,4 +88,18 @@ public class CommentDetailActivity extends ToolBarActivity { args.putParcelable(EntranceConsts.KEY_LINK, linkEntity); return getTargetIntent(context, CommentDetailActivity.class, NewCommentConversationFragment.class, args); } + + @Override + public Pair getBusinessId() { + CommentDetailFragment fragment = (CommentDetailFragment) getTargetFragment(); + if (fragment != null) { + if (fragment.getArguments().getString(EntranceConsts.KEY_COMMENTID) != null) { + return new Pair(fragment.getArguments().getString(EntranceConsts.KEY_COMMENTID), ""); + } else { + return super.getBusinessId(); + } + } else { + return super.getBusinessId(); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java index 2629f424cc..e73a3fd5d0 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoDetailActivity.java @@ -64,6 +64,7 @@ import java.util.Locale; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import kotlin.Pair; import retrofit2.HttpException; /** @@ -568,4 +569,15 @@ public class LibaoDetailActivity extends ToolBarActivity implements LibaoDetailA } ExtensionsKt.updateStatusBarColor(this, R.color.black, R.color.white); } + + @Override + public Pair getBusinessId() { + if (mLibaoEntity != null) { + return new Pair(mLibaoEntity.getId(), ""); + } else if (getIntent().getStringExtra(EntranceConsts.KEY_ID) != null) { + return new Pair(getIntent().getStringExtra(EntranceConsts.KEY_ID), ""); + } else { + return super.getBusinessId(); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java index 20c2981bf9..e9f5f85fe5 100644 --- a/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MessageDetailActivity.java @@ -14,6 +14,8 @@ import com.gh.gamecenter.entity.ConcernEntity; import com.gh.gamecenter.message.MessageDetailFragment; import com.halo.assistant.HaloApp; +import kotlin.Pair; + /** * Created by khy on 2016/11/8. * 消息详情界面(评论详情) @@ -77,4 +79,24 @@ public class MessageDetailActivity extends ToolBarActivity { super.onNightModeChange(); DisplayUtils.setStatusBarColor(this, R.color.transparent, !mNightMode); } + + @Override + public Pair getBusinessId() { + MessageDetailFragment fragment = (MessageDetailFragment) getTargetFragment(); + if (fragment.getArguments() != null) { + Object concernEntity = HaloApp.get(ConcernEntity.TAG, false); + Object commentEntity = fragment.requireArguments().getParcelable(CommentEntity.TAG); + if (fragment.getArguments().getString(EntranceConsts.KEY_NEWSID) != null && commentEntity != null) { + return new Pair(((CommentEntity) commentEntity).getId(), fragment.getArguments().getString(EntranceConsts.KEY_NEWSID)); + } else if (fragment.getArguments().getString(EntranceConsts.KEY_NEWSID) != null) { + return new Pair(fragment.getArguments().getString(EntranceConsts.KEY_NEWSID), ""); + } else if (concernEntity != null) { + return new Pair(((ConcernEntity) concernEntity).getId(), ""); + } else { + return super.getBusinessId(); + } + } else { + return super.getBusinessId(); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index e26b1a58fb..f10757b2b7 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -71,6 +71,7 @@ import java.util.HashSet; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; +import kotlin.Pair; import retrofit2.HttpException; @@ -729,4 +730,15 @@ public class NewsDetailActivity extends DownloadToolbarActivity implements OnCli adapter.notifyItemRangeChanged(0, adapter.getItemCount()); } } + + @Override + public Pair getBusinessId() { + if (getIntent().getStringExtra(EntranceConsts.KEY_NEWSID) != null) { + return new Pair(getIntent().getStringExtra(EntranceConsts.KEY_NEWSID), ""); + } else if (mNewsEntity != null) { + return new Pair(mNewsEntity.getId(), ""); + } else { + return super.getBusinessId(); + } + } } diff --git a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt index 085027e5e5..be95bd04d0 100644 --- a/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/game/columncollection/detail/ColumnCollectionDetailActivity.kt @@ -22,6 +22,14 @@ class ColumnCollectionDetailActivity : ToolBarActivity() { updateStatusBarColor(R.color.black, R.color.white) } + override fun getBusinessId(): Pair { + val fragment = targetFragment as ColumnCollectionDetailFragment + return if (fragment.arguments != null) { + Pair(fragment.requireArguments().getString(EntranceConsts.KEY_COLLECTION_ID) ?: "", "") + } else { + super.getBusinessId() + } + } companion object { /** diff --git a/app/src/main/java/com/gh/gamecenter/game/commoncollection/detail/CommonCollectionDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/game/commoncollection/detail/CommonCollectionDetailActivity.kt index e62a9f89b1..bcdeb48161 100644 --- a/app/src/main/java/com/gh/gamecenter/game/commoncollection/detail/CommonCollectionDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/game/commoncollection/detail/CommonCollectionDetailActivity.kt @@ -21,6 +21,15 @@ class CommonCollectionDetailActivity : ToolBarActivity() { updateStatusBarColor(R.color.black, R.color.white) } + override fun getBusinessId(): Pair { + val fragment = targetFragment as CommonCollectionDetailFragment + return if (fragment.arguments != null) { + Pair(fragment.requireArguments().getString(EntranceConsts.KEY_COLLECTION_ID) ?: "", fragment.requireArguments().getString(EntranceConsts.KEY_BLOCK_ID) ?: "") + } else { + super.getBusinessId() + } + } + companion object { fun getIntent( diff --git a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt index a26c90fded..cae7c61e1f 100644 --- a/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamecollection/detail/GameCollectionDetailActivity.kt @@ -3,9 +3,9 @@ package com.gh.gamecenter.gamecollection.detail import android.content.Context import android.content.Intent import android.os.Bundle -import com.gh.gamecenter.common.base.activity.ToolBarActivity import com.gh.common.util.GameCollectionSquareBrowseTaskHelper import com.gh.gamecenter.R +import com.gh.gamecenter.common.base.activity.ToolBarActivity import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.gamecollection.square.GameCollectionSquareActivity @@ -26,6 +26,15 @@ class GameCollectionDetailActivity : ToolBarActivity() { ) } + override fun getBusinessId(): Pair { + val fragment = targetFragment as GameCollectionDetailFragment + return if (fragment.arguments != null) { + Pair(fragment.requireArguments().getString(EntranceConsts.KEY_GAME_COLLECTION_ID) ?: "", "") + } else { + super.getBusinessId() + } + } + companion object { @JvmStatic fun getIntent( diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt index 1e6f8a393a..033562faea 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/RatingReplyActivity.kt @@ -11,16 +11,16 @@ import androidx.core.content.ContextCompat import androidx.core.widget.doOnTextChanged import androidx.lifecycle.ViewModelProviders import androidx.recyclerview.widget.RecyclerView -import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.common.exposure.ExposureManager import com.gh.common.util.* import com.gh.common.util.NewLogUtils -import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.download.DownloadManager import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListActivity +import com.gh.gamecenter.common.base.fragment.WaitingDialogFragment import com.gh.gamecenter.common.constant.EntranceConsts import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.common.view.VerticalItemDecoration import com.gh.gamecenter.core.utils.DisplayUtils import com.gh.gamecenter.core.utils.KeyboardHeightObserver import com.gh.gamecenter.core.utils.KeyboardHeightProvider @@ -411,4 +411,11 @@ class RatingReplyActivity : ListActivity { + return if (intent.getStringExtra(EntranceConsts.KEY_COMMENTID) != null) { + Pair(intent.getStringExtra(EntranceConsts.KEY_COMMENTID) ?: "", "") + } else { + super.getBusinessId() + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt index 4bc8632f9e..a1e2c551d2 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/rating/logs/CommentLogsActivity.kt @@ -71,6 +71,14 @@ class CommentLogsActivity : ListActivity { + return if (intent.getStringExtra(EntranceConsts.KEY_GAMEID) != null && intent.getStringExtra(EntranceConsts.KEY_COMMENTID) != null) { + Pair(intent.getStringExtra(EntranceConsts.KEY_GAMEID) ?: "", intent.getStringExtra(EntranceConsts.KEY_COMMENTID) ?: "") + } else { + super.getBusinessId() + } + } + companion object { fun getIntent(context: Context, gameId: String, commentId: String): Intent { val intent = Intent(context, CommentLogsActivity::class.java) diff --git a/app/src/main/java/com/gh/gamecenter/help/HelpDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/help/HelpDetailActivity.kt index 808d34bdc4..786c2f459f 100644 --- a/app/src/main/java/com/gh/gamecenter/help/HelpDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/help/HelpDetailActivity.kt @@ -26,6 +26,15 @@ class HelpDetailActivity : ToolBarActivity() { } } + override fun getBusinessId(): Pair { + val helpEntity = intent.getParcelableExtra(HelpEntity::class.java.simpleName) + return if (helpEntity != null) { + Pair(helpEntity.id, "") + } else { + super.getBusinessId() + } + } + companion object { fun getIntent(context: Context, entity: HelpEntity): Intent { val intent = Intent(context, HelpDetailActivity::class.java) diff --git a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentDetailActivity.kt index b15b6d0e2e..acadb7852c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/comment/NewCommentDetailActivity.kt @@ -5,7 +5,9 @@ import android.content.Intent import android.os.Bundle import com.gh.gamecenter.common.base.activity.ToolBarActivity import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.gamecollection.detail.GameCollectionDetailFragment import com.gh.gamecenter.gamecollection.detail.conversation.GameCollectionCommentConversationFragment +import com.gh.gamecenter.gamedetail.GameDetailFragment import com.gh.gamecenter.qa.comment.conversation.CommentConversationFragment class NewCommentDetailActivity : ToolBarActivity() { @@ -21,6 +23,14 @@ class NewCommentDetailActivity : ToolBarActivity() { } } + override fun getBusinessId(): Pair { + return if (targetFragment.arguments != null) { + Pair(targetFragment.requireArguments().getString(EntranceConsts.KEY_COMMENT_ID) ?: "", "") + } else { + super.getBusinessId() + } + } + companion object { @JvmStatic diff --git a/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt index 973bd45f3e..97b56f9d10 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/video/detail/ForumVideoDetailActivity.kt @@ -40,6 +40,14 @@ class ForumVideoDetailActivity : BaseActivity() { override fun isAutoResetViewBackgroundEnabled(): Boolean = true + override fun getBusinessId(): Pair { + return if (containerFragment?.arguments != null) { + Pair(containerFragment?.requireArguments()?.getString(EntranceConsts.KEY_VIDEO_ID) ?: "", "") + } else { + super.getBusinessId() + } + } + companion object { const val VIDEO_PATCH_REQUEST = 100