diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/presentation/BottomTabsPresenter.java b/lib/android/app/src/main/java/com/reactnativenavigation/presentation/BottomTabsPresenter.java index 009b7170f43..2e9df36bc80 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/presentation/BottomTabsPresenter.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/presentation/BottomTabsPresenter.java @@ -151,4 +151,8 @@ public void applyBottomInset(int bottomInset) { lp.bottomMargin = bottomInset; bottomTabs.requestLayout(); } + + public int getBottomInset(Options resolvedOptions) { + return resolvedOptions.withDefaultOptions(defaultOptions).bottomTabsOptions.isHiddenOrDrawBehind() ? 0 : bottomTabs.getHeight(); + } } diff --git a/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java b/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java index adab9c670f7..7390e0dc2ca 100644 --- a/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java +++ b/lib/android/app/src/main/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsController.java @@ -174,8 +174,7 @@ public boolean onMeasureChild(CoordinatorLayout parent, ViewGroup child, int par @Override public int getBottomInset(ViewController child) { - int bottomTabsInset = resolveChildOptions(child).bottomTabsOptions.isHiddenOrDrawBehind() ? 0 : bottomTabs.getHeight(); - return bottomTabsInset + perform(getParentController(), 0, p -> p.getBottomInset(this)); + return presenter.getBottomInset(resolveChildOptions(child)) + perform(getParentController(), 0, p -> p.getBottomInset(this)); } @Override diff --git a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.java b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.java index 37a6cee2828..6a97b3d94d3 100644 --- a/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.java +++ b/lib/android/app/src/test/java/com/reactnativenavigation/viewcontrollers/bottomtabs/BottomTabsControllerTest.java @@ -377,6 +377,16 @@ public void getTopInset() { assertThat(stackChild.getTopInset()).isEqualTo(StatusBarUtils.getStatusBarHeight(activity)); } + @Test + public void getBottomInset_defaultOptionsAreTakenIntoAccount() { + Options defaultOptions = new Options(); + defaultOptions.bottomTabsOptions.visible = new Bool(false); + + assertThat(uut.getBottomInset(child1)).isEqualTo(bottomTabs.getHeight()); + uut.setDefaultOptions(defaultOptions); + assertThat(uut.getBottomInset(child1)).isZero(); + } + @Test public void destroy() { uut.destroy();