From c84098af3cf83baa4985df77f61e254bd72a6575 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 23 Jul 2020 16:10:56 +0800 Subject: [PATCH] fix bug of dialog leak --- .../authprovider/launcher/MogoMainAuthorize.kt | 4 +++- .../main/java/com/mogo/module/share/ShareControl.java | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt index fc2afa0164..cec3e22d62 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt @@ -69,12 +69,14 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog fun hideAuthorizeView() { authorizeDialog?.dismiss() - authorizeDialog = null } private fun pushLayoutToMainWindow(tag: String) { if (authorizeDialog == null) { authorizeDialog = AuthorizeDialog(tag, mContext!!) + authorizeDialog!!.setOnDismissListener { + authorizeDialog = null + } } if (authorizeDialog!!.isShowing) { Logger.d(TAG, "User is operation authorization, do not repeat invoke") diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java index a87392010b..84cb300af5 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java @@ -1,6 +1,7 @@ package com.mogo.module.share; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.view.View; @@ -111,8 +112,8 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo @Override public void dismissShareDialog() { if (mShareDialog != null) { + Logger.d(TAG,"dismissShareDialog"); mShareDialog.dismiss(); - mShareDialog = null; } } @@ -123,7 +124,14 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo private void realShowDialog() { if (mShareDialog == null) { + Logger.d(TAG,"realShowDialog context : " + mContext); mShareDialog = new LaucherShareDialog(mContext); + mShareDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) { + mShareDialog = null; + } + }); } mShareDialog.show(); }