From e18dea402b072643d5d998e8f229312543cca6bf Mon Sep 17 00:00:00 2001 From: Guy Carmeli Date: Wed, 19 Feb 2020 17:14:35 +0200 Subject: [PATCH] Fix crash when mergeOptions were called before stack view was created (#5945) Co-authored-by: Yogev Ben David --- .../viewcontrollers/stack/StackController.java | 2 +- .../viewcontrollers/stack/StackControllerTest.java | 6 ++++++ package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) 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 +}