From 0d01076c0fde992a39fd79e5cffa5b00b8881273 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Date: Mon, 15 Dec 2025 18:02:38 +0100 Subject: [PATCH] [android] Fix camera cutout offset in navigation Signed-off-by: Jean-Baptiste --- .../app/organicmaps/routing/NavigationController.java | 5 +++++ .../app/src/main/java/app/organicmaps/util/UiUtils.java | 8 ++++++++ android/app/src/main/res/layout-land/layout_nav_top.xml | 4 +--- android/app/src/main/res/layout/layout_nav_top.xml | 4 +--- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/android/app/src/main/java/app/organicmaps/routing/NavigationController.java b/android/app/src/main/java/app/organicmaps/routing/NavigationController.java index 7ca7e557f..4bea93ece 100644 --- a/android/app/src/main/java/app/organicmaps/routing/NavigationController.java +++ b/android/app/src/main/java/app/organicmaps/routing/NavigationController.java @@ -98,6 +98,11 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav mSpeedLimit = topFrame.findViewById(R.id.nav_speed_limit); mCurrentSpeed = topFrame.findViewById(R.id.nav_current_speed); + View mTopbar = topFrame.findViewById(R.id.statutbar); + ViewCompat.setOnApplyWindowInsetsListener(mTopbar,(v, windowInsets) -> { + UiUtils.setViewNavigationTopInsetsMargin(v, windowInsets); + return windowInsets; + }); // Show a blank view below the navbar to hide the menu content final View navigationBarBackground = mFrame.findViewById(R.id.nav_bottom_sheet_nav_bar); final View nextTurnContainer = mFrame.findViewById(R.id.nav_next_turn_container); diff --git a/android/app/src/main/java/app/organicmaps/util/UiUtils.java b/android/app/src/main/java/app/organicmaps/util/UiUtils.java index 762973c37..55637129e 100644 --- a/android/app/src/main/java/app/organicmaps/util/UiUtils.java +++ b/android/app/src/main/java/app/organicmaps/util/UiUtils.java @@ -281,6 +281,14 @@ public final class UiUtils view.setPadding(systemInsets.left, systemInsets.top, systemInsets.right, view.getPaddingBottom()); } + public static void setViewNavigationTopInsetsMargin(View view, WindowInsetsCompat windowInsets) + { + final Insets systemInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars()); + ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams(); + lp.topMargin = systemInsets.top; + view.setLayoutParams(lp); + } + public static void setupNavigationIcon(@NonNull MaterialToolbar toolbar, @NonNull View.OnClickListener listener) { View customNavigationButton = toolbar.findViewById(R.id.back); diff --git a/android/app/src/main/res/layout-land/layout_nav_top.xml b/android/app/src/main/res/layout-land/layout_nav_top.xml index 1d7bef433..6417a9a13 100644 --- a/android/app/src/main/res/layout-land/layout_nav_top.xml +++ b/android/app/src/main/res/layout-land/layout_nav_top.xml @@ -11,13 +11,12 @@ diff --git a/android/app/src/main/res/layout/layout_nav_top.xml b/android/app/src/main/res/layout/layout_nav_top.xml index 4587fc510..92846d01f 100644 --- a/android/app/src/main/res/layout/layout_nav_top.xml +++ b/android/app/src/main/res/layout/layout_nav_top.xml @@ -11,13 +11,12 @@