Loading app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java +24 −13 Original line number Diff line number Diff line Loading @@ -966,30 +966,41 @@ public class Helper { @Nullable Bundle args, @Nullable String tag, @Nullable String backStackName) { // Check if FragmentManager is in a valid state if (fragmentManager.isDestroyed() || fragmentManager.isStateSaved()) { return fragment; } Fragment _fragment = fragmentManager.findFragmentByTag(tag); FragmentTransaction ft = fragmentManager.beginTransaction(); ft.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.pop_enter, R.anim.pop_exit); Fragment _fragment = fragmentManager.findFragmentByTag(tag); if (_fragment != null && _fragment.isAdded()) { ft.show(_fragment).commitAllowingStateLoss(); fragment = _fragment; // Reuse existing fragment ft.show(_fragment); try { ft.commit(); } catch (IllegalStateException e) { // State already saved, cannot commit return _fragment; } return _fragment; } else { // Add new fragment if (args != null) fragment.setArguments(args); ft = fragmentManager.beginTransaction(); ft.add(containerViewId, fragment, tag); if (backStackName != null) { try { ft.addToBackStack(backStackName); }catch (Exception ignored){} } if (!fragmentManager.isDestroyed()) { ft.commitAllowingStateLoss(); } } if(!fragmentManager.isDestroyed()) { fragmentManager.executePendingTransactions(); try { ft.commit(); } catch (IllegalStateException e) { // State already saved, cannot commit return fragment; } return fragment; } } /** * Load a media into a view Loading Loading
app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java +24 −13 Original line number Diff line number Diff line Loading @@ -966,30 +966,41 @@ public class Helper { @Nullable Bundle args, @Nullable String tag, @Nullable String backStackName) { // Check if FragmentManager is in a valid state if (fragmentManager.isDestroyed() || fragmentManager.isStateSaved()) { return fragment; } Fragment _fragment = fragmentManager.findFragmentByTag(tag); FragmentTransaction ft = fragmentManager.beginTransaction(); ft.setCustomAnimations(R.anim.enter, R.anim.exit, R.anim.pop_enter, R.anim.pop_exit); Fragment _fragment = fragmentManager.findFragmentByTag(tag); if (_fragment != null && _fragment.isAdded()) { ft.show(_fragment).commitAllowingStateLoss(); fragment = _fragment; // Reuse existing fragment ft.show(_fragment); try { ft.commit(); } catch (IllegalStateException e) { // State already saved, cannot commit return _fragment; } return _fragment; } else { // Add new fragment if (args != null) fragment.setArguments(args); ft = fragmentManager.beginTransaction(); ft.add(containerViewId, fragment, tag); if (backStackName != null) { try { ft.addToBackStack(backStackName); }catch (Exception ignored){} } if (!fragmentManager.isDestroyed()) { ft.commitAllowingStateLoss(); } } if(!fragmentManager.isDestroyed()) { fragmentManager.executePendingTransactions(); try { ft.commit(); } catch (IllegalStateException e) { // State already saved, cannot commit return fragment; } return fragment; } } /** * Load a media into a view Loading