diff options
author | cyBerta <cyberta@riseup.net> | 2019-04-02 01:12:37 +0200 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2019-04-02 01:12:37 +0200 |
commit | 197f79fa142c2c6bfe2d5e7279c6fad79fa427c2 (patch) | |
tree | ffc94f0256206746346fc14da2438c021a0b9f1a /app/src/main/java/se/leap/bitmaskclient/FragmentManagerEnhanced.java | |
parent | 9eb20164f227fb617b2ea9700ebd493f9bf7caa4 (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.java | 12 |
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() { |