diff --git a/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java b/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java index efad3e9c..79fc7f4c 100644 --- a/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java +++ b/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.java @@ -22,7 +22,6 @@ public class ScreenContainer extends ViewGroup { private final ArrayList mScreens = new ArrayList<>(); private final Set mActiveScreens = new HashSet<>(); - private final FragmentManager mFragmentManager; private @Nullable FragmentTransaction mCurrentTransaction; private boolean mNeedUpdate; @@ -37,13 +36,6 @@ public class ScreenContainer extends ViewGroup { public ScreenContainer(Context context) { super(context); - Activity activity = ((ReactContext) context).getCurrentActivity(); - if (activity instanceof FragmentActivity) { - mFragmentManager = ((FragmentActivity) activity).getSupportFragmentManager(); - } else { - throw new IllegalStateException( - "In order to use RNScreens components your app's activity need to extend ReactFragmentActivity or ReactCompatActivity"); - } } @Override @@ -88,8 +80,14 @@ public class ScreenContainer extends ViewGroup { private FragmentTransaction getOrCreateTransaction() { if (mCurrentTransaction == null) { - mCurrentTransaction = mFragmentManager.beginTransaction(); - mCurrentTransaction.setReorderingAllowed(true); + Activity activity = ((ReactContext) getContext()).getCurrentActivity(); + if (activity instanceof FragmentActivity) { + mCurrentTransaction = ((FragmentActivity) activity).getSupportFragmentManager().beginTransaction(); + mCurrentTransaction.setReorderingAllowed(true); + } else { + throw new IllegalStateException( + "In order to use RNScreens components your app's activity need to extend ReactFragmentActivity or ReactCompatActivity"); + } } return mCurrentTransaction; } @@ -136,7 +134,7 @@ public class ScreenContainer extends ViewGroup { } private void updateIfNeeded() { - if (!mNeedUpdate || mFragmentManager.isDestroyed() || !mIsAttached) { + if (!mNeedUpdate || !mIsAttached) { return; } mNeedUpdate = false;