diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt index 9c04597c66..46118cf452 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.kt @@ -217,7 +217,7 @@ class DetailViewHolder( } private fun restoreDialogFragment() { - val gamePermissionDialogFragment = (context as AppCompatActivity).supportFragmentManager.findFragmentByTag( + val gamePermissionDialogFragment = (context.getActivity() as? AppCompatActivity)?.supportFragmentManager?.findFragmentByTag( GamePermissionDialogFragment::class.java.name ) as DialogFragment? gamePermissionDialogFragment?.dismissAllowingStateLoss() diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt index fa3a1cf51e..e80126a86d 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/Extensions.kt @@ -6,6 +6,7 @@ import android.app.Activity import android.content.ClipData import android.content.ClipboardManager import android.content.Context +import android.content.ContextWrapper import android.content.res.Configuration import android.graphics.Bitmap import android.graphics.Canvas @@ -424,6 +425,13 @@ fun Context.ifLogin(entrance: String, action: (() -> Unit)? = null) { checkLoginConfig?.checkLogin(this, entrance, action) } +fun Context.getActivity(): Activity? { + return when (this) { + is Activity -> this + is ContextWrapper -> this.baseContext.getActivity() + else -> null + } +} /** * Gson related extensions.