diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java b/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java index e97f125a809..3aaa17855f6 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/stack/StackController.java @@ -96,7 +96,7 @@ public void onAttachToParent() { @Override public void mergeOptions(Options options) { - presenter.mergeOptions(options, this, getCurrentChild()); + if (isViewShown()) presenter.mergeOptions(options, this, getCurrentChild()); super.mergeOptions(options); } diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.java index 8ac5429cfd8..5359ae52dec 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/stack/StackControllerTest.java @@ -1039,6 +1039,12 @@ public void mergeChildOptions_updatesViewWithNewOptions() { verify(uut, times(1)).mergeChildOptions(optionsToMerge, vc); } + @Test + public void mergeOptions_doesNotMergeOptionsIfViewIsNotVisible() { + uut.mergeOptions(Options.EMPTY); + verify(presenter, times(0)).mergeOptions(any(), any(), any()); + } + @Test public void mergeChildOptions_updatesParentControllerWithNewOptions() { StackController uut = TestUtils.newStackController(activity) diff --git a/package.json b/package.json index a36fac28884..49c96ee03cd 100644 --- a/package.json +++ b/package.json @@ -159,4 +159,4 @@ } } } -} \ No newline at end of file +}