summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2019-04-02 01:12:37 +0200
committercyBerta <cyberta@riseup.net>2019-04-02 01:12:37 +0200
commit197f79fa142c2c6bfe2d5e7279c6fad79fa427c2 (patch)
treeffc94f0256206746346fc14da2438c021a0b9f1a /app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java
parent9eb20164f227fb617b2ea9700ebd493f9bf7caa4 (diff)
catch illegal state exceptions when replacing fragments
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java b/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java
index 9fe4fd23..a612820d 100644
--- a/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java
+++ b/app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java
@@ -40,9 +40,17 @@ public class FragmentManagerEnhanced {
}
public void replace(int containerViewId, Fragment fragment, String tag) {
- FragmentTransaction transaction = genericFragmentManager.beginTransaction();
+ try {
+ if (genericFragmentManager.findFragmentByTag(tag) != null) {
+ FragmentTransaction transaction = genericFragmentManager.beginTransaction();
+ transaction.replace(containerViewId, fragment, tag).commit();
+ } else {
+ genericFragmentManager.beginTransaction().add(containerViewId, fragment, tag).commit();
+ }
+ } catch (IllegalStateException e) {
+ e.printStackTrace();
+ }
- transaction.replace(containerViewId, fragment, tag).commit();
}
public FragmentTransaction beginTransaction() {