From bc568e4a70a480ffd94808a459bde1518f1c41cb Mon Sep 17 00:00:00 2001 From: lhr Date: Mon, 13 Sep 2021 15:23:35 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B7=B3=E8=BD=ACActivit?= =?UTF-8?q?y=E5=90=8E=E5=86=8D=E5=BC=B9=E5=87=BA=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E5=AF=BC=E8=87=B4=E9=97=AA=E9=80=80=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appupdate/build.gradle | 2 +- .../hailong/appupdate/AppUpdateManager.java | 2 +- .../appupdate/widget/UpdateDialog.java | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/appupdate/build.gradle b/appupdate/build.gradle index d3198ac..6b54d48 100644 --- a/appupdate/build.gradle +++ b/appupdate/build.gradle @@ -9,7 +9,7 @@ android { minSdkVersion 19 targetSdkVersion 28 versionCode 26 - versionName "0.2.6" + versionName "0.2.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/appupdate/src/main/java/com/hailong/appupdate/AppUpdateManager.java b/appupdate/src/main/java/com/hailong/appupdate/AppUpdateManager.java index 3227261..6ed1689 100644 --- a/appupdate/src/main/java/com/hailong/appupdate/AppUpdateManager.java +++ b/appupdate/src/main/java/com/hailong/appupdate/AppUpdateManager.java @@ -31,7 +31,7 @@ private AppUpdateManager(Builder builder) { .setCancelText(builder.cancleText) // .setApkContentLength(builder.apkContentLength) // .isBreakpoint(builder.breakpoint) - .show(builder.context.getFragmentManager(), "update"); + .showAllowingStateLoss(builder.context.getFragmentManager(), "update"); } /** diff --git a/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java b/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java index 781dc3e..17029d8 100644 --- a/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java +++ b/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java @@ -3,6 +3,8 @@ import android.Manifest; import android.app.AlertDialog; import android.app.DialogFragment; +import android.app.FragmentManager; +import android.app.FragmentTransaction; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -41,6 +43,7 @@ import com.yanzhenjie.kalle.Kalle; import com.yanzhenjie.kalle.download.Callback; +import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -376,4 +379,27 @@ public boolean handleMessage(Message msg) { } }); + public void showAllowingStateLoss(FragmentManager manager, String tag) { + try { + Field dismissed = DialogFragment.class.getDeclaredField("mDismissed"); + dismissed.setAccessible(true); + dismissed.set(this, false); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + try { + Field shown = DialogFragment.class.getDeclaredField("mShownByMe"); + shown.setAccessible(true); + shown.set(this, true); + } catch (NoSuchFieldException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + FragmentTransaction ft = manager.beginTransaction(); + ft.add(this, tag); + ft.commitAllowingStateLoss(); + } } From 5e75a8b4b6adde2009be0392af39e2920d02390c Mon Sep 17 00:00:00 2001 From: 13837189455 <42962697+13837189455@users.noreply.github.com> Date: Mon, 13 Sep 2021 15:42:32 +0800 Subject: [PATCH 2/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 153ddad..605845e 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ ``` dependencies { - implementation 'com.github.ZuoHailong:AppUpdate:0.2.6' + implementation 'com.github.DrumbeatSoft:AppUpdate:0.2.7' } ``` From 79f7857dd1d939db0bbaf3398d48c40512c0cc84 Mon Sep 17 00:00:00 2001 From: "xzzhy2010@163.com" Date: Fri, 31 Dec 2021 10:21:27 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=A4=9A=E6=AC=A1?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E5=AF=BC=E8=87=B4=E7=9A=84Fragment=20already?= =?UTF-8?q?=20added:=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appupdate/build.gradle | 4 ++-- .../main/java/com/hailong/appupdate/widget/UpdateDialog.java | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/appupdate/build.gradle b/appupdate/build.gradle index 6b54d48..5d58ef4 100644 --- a/appupdate/build.gradle +++ b/appupdate/build.gradle @@ -8,8 +8,8 @@ android { defaultConfig { minSdkVersion 19 targetSdkVersion 28 - versionCode 26 - versionName "0.2.7" + versionCode 28 + versionName "0.2.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java b/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java index 17029d8..d1c386d 100644 --- a/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java +++ b/appupdate/src/main/java/com/hailong/appupdate/widget/UpdateDialog.java @@ -399,7 +399,9 @@ public void showAllowingStateLoss(FragmentManager manager, String tag) { e.printStackTrace(); } FragmentTransaction ft = manager.beginTransaction(); - ft.add(this, tag); + if (!this.isAdded()) { + ft.add(this, tag); + } ft.commitAllowingStateLoss(); } }