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();
}
}