Compare commits

..

1 Commits

Author SHA1 Message Date
Jean-Baptiste
fae7daf04b [android] Fix camera cutout offset in navigation
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-12-26 15:05:06 +01:00
7 changed files with 49 additions and 21 deletions

View File

@@ -102,17 +102,19 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
final View navigationBarBackground = mFrame.findViewById(R.id.nav_bottom_sheet_nav_bar); final View navigationBarBackground = mFrame.findViewById(R.id.nav_bottom_sheet_nav_bar);
final View nextTurnContainer = mFrame.findViewById(R.id.nav_next_turn_container); final View nextTurnContainer = mFrame.findViewById(R.id.nav_next_turn_container);
ViewCompat.setOnApplyWindowInsetsListener(mStreetFrame, (v, windowInsets) -> { ViewCompat.setOnApplyWindowInsetsListener(mStreetFrame, (v, windowInsets) -> {
UiUtils.setViewInsetsPaddingNoBottom(v, windowInsets); UiUtils.setViewNavigationInsetsPaddingNoBottom(v, windowInsets);
final Insets safeDrawingInsets = windowInsets.getInsets(WindowInsetUtils.TYPE_SAFE_DRAWING); final Insets safeDrawingInsets = windowInsets.getInsets(WindowInsetUtils.TYPE_SAFE_DRAWING);
nextTurnContainer.setPadding(safeDrawingInsets.left, nextTurnContainer.getPaddingTop(),
nextTurnContainer.getPaddingEnd(), nextTurnContainer.getPaddingBottom());
navigationBarBackground.getLayoutParams().height = safeDrawingInsets.bottom; navigationBarBackground.getLayoutParams().height = safeDrawingInsets.bottom;
// The gesture navigation bar stays at the bottom in landscape // The gesture navigation bar stays at the bottom in landscape
// We need to add a background only above the nav menu // We need to add a background only above the nav menu
navigationBarBackground.getLayoutParams().width = mFrame.findViewById(R.id.nav_bottom_sheet).getWidth(); navigationBarBackground.getLayoutParams().width = mFrame.findViewById(R.id.nav_bottom_sheet).getWidth();
return windowInsets; return windowInsets;
}); });
ViewCompat.setOnApplyWindowInsetsListener(turnFrame, (v, windowInsets) -> {
UiUtils.setViewNavigationInsetsPaddingNoBottom(v, windowInsets);
return windowInsets;
});
} }
private void updateVehicle(@NonNull RoutingInfo info) private void updateVehicle(@NonNull RoutingInfo info)

View File

@@ -281,6 +281,12 @@ public final class UiUtils
view.setPadding(systemInsets.left, systemInsets.top, systemInsets.right, view.getPaddingBottom()); view.setPadding(systemInsets.left, systemInsets.top, systemInsets.right, view.getPaddingBottom());
} }
public static void setViewNavigationInsetsPaddingNoBottom(View view, WindowInsetsCompat windowInsets)
{
final Insets systemInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.displayCutout());
view.setPadding(systemInsets.left, systemInsets.top, systemInsets.right, view.getPaddingBottom());
}
public static void setupNavigationIcon(@NonNull MaterialToolbar toolbar, @NonNull View.OnClickListener listener) public static void setupNavigationIcon(@NonNull MaterialToolbar toolbar, @NonNull View.OnClickListener listener)
{ {
View customNavigationButton = toolbar.findViewById(R.id.back); View customNavigationButton = toolbar.findViewById(R.id.back);

View File

@@ -11,13 +11,13 @@
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:id="@+id/statutbar" android:id="@+id/statutbar"
android:layout_height="15dp" android:layout_height="1dp"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/street_frame" android:id="@+id/street_frame"
android:layout_width="500dp" android:layout_width="500dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_half_plus_eight" android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginEnd="@dimen/margin_quarter" android:layout_marginEnd="@dimen/margin_quarter"
app:cardCornerRadius="@dimen/margin_half" app:cardCornerRadius="@dimen/margin_half"
android:elevation="@dimen/nav_elevation" android:elevation="@dimen/nav_elevation"
@@ -52,7 +52,7 @@
app:layout_constraintEnd_toStartOf="@+id/street_frame" app:layout_constraintEnd_toStartOf="@+id/street_frame"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statutbar" app:layout_constraintTop_toBottomOf="@+id/statutbar"
android:layout_marginTop="@dimen/margin_half_plus_eight" android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginStart="@dimen/margin_quarter" android:layout_marginStart="@dimen/margin_quarter"
android:clickable="true" android:clickable="true"
android:elevation="@dimen/nav_elevation"> android:elevation="@dimen/nav_elevation">

View File

@@ -11,13 +11,13 @@
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:id="@+id/statutbar" android:id="@+id/statutbar"
android:layout_height="25dp" android:layout_height="1dp"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/street_frame" android:id="@+id/street_frame"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_half_plus" android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginStart="@dimen/nav_street_left" android:layout_marginStart="@dimen/nav_street_left"
android:layout_marginEnd="@dimen/margin_quarter" android:layout_marginEnd="@dimen/margin_quarter"
app:cardCornerRadius="@dimen/margin_half" app:cardCornerRadius="@dimen/margin_half"
@@ -55,7 +55,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/statutbar" app:layout_constraintTop_toBottomOf="@+id/statutbar"
android:layout_marginStart="@dimen/margin_half" android:layout_marginStart="@dimen/margin_half"
android:layout_marginTop="@dimen/margin_half_plus" android:layout_marginTop="@dimen/margin_quarter"
android:clickable="true" android:clickable="true"
android:elevation="@dimen/nav_elevation"> android:elevation="@dimen/nav_elevation">
<LinearLayout <LinearLayout

View File

@@ -84,10 +84,10 @@
<item name="transitRulerBackground">@color/white_4</item> <item name="transitRulerBackground">@color/white_4</item>
<item name="transitStepDivider">@drawable/dot_divider</item> <item name="transitStepDivider">@drawable/dot_divider</item>
<item name="accentColorSelector">@color/accent_color_selector</item> <item name="accentColorSelector">@color/accent_color_selector</item>
<item name="android:textAppearance">@style/MwmTextAppearance.Body3</item> <item name="android:textAppearance">@style/TextAppearance</item>
<item name="android:textAppearanceSmall">@style/MwmTextAppearance.Body4</item> <item name="android:textAppearanceSmall">@style/TextAppearance.Small</item>
<item name="android:textAppearanceMedium">@style/MwmTextAppearance.Body2</item> <item name="android:textAppearanceMedium">@style/TextAppearance.Medium</item>
<item name="android:textAppearanceLarge">@style/MwmTextAppearance.Body1</item> <item name="android:textAppearanceLarge">@style/TextAppearance.Large</item>
<item name="drivingOptionsViewBg">@color/bg_primary_dark</item> <item name="drivingOptionsViewBg">@color/bg_primary_dark</item>
<item name="elevationProfilePropertyBg">@drawable/bg_rounded_rect</item> <item name="elevationProfilePropertyBg">@drawable/bg_rounded_rect</item>
<item name="elevationProfilePropIconTint">@color/white_secondary</item> <item name="elevationProfilePropIconTint">@color/white_secondary</item>

View File

@@ -308,6 +308,26 @@
<item name="colorSurface">@color/material_calendar_surface_dark</item> <item name="colorSurface">@color/material_calendar_surface_dark</item>
</style> </style>
<style name="TextAppearance" parent="MwmTextAppearance.Body3"/>
<style name="TextAppearance.Small" parent="MwmTextAppearance.Body4"/>
<style name="TextAppearance.Medium" parent="MwmTextAppearance.Body2"/>
<style name="TextAppearance.Large" parent="MwmTextAppearance.Body1">
<item name="android:textSize">@dimen/text_size_toolbar</item>
</style>
<style name="TextAppearance.Inverse" parent="MwmTextAppearance.Body3.Light"/>
<style name="TextAppearance.Small.Inverse" parent="MwmTextAppearance.Body4.Light"/>
<style name="TextAppearance.Medium.Inverse" parent="MwmTextAppearance.Body2.Light"/>
<style name="TextAppearance.Large.Inverse" parent="MwmTextAppearance.Body1.Light">
<item name="android:textSize">@dimen/text_size_toolbar</item>
</style>
<style <style
name="MwmTheme.BottomSheetDialog" name="MwmTheme.BottomSheetDialog"
parent="@style/ThemeOverlay.Material3.BottomSheetDialog"> parent="@style/ThemeOverlay.Material3.BottomSheetDialog">

View File

@@ -85,14 +85,14 @@
<item name="transitRulerBackground">@color/black_4</item> <item name="transitRulerBackground">@color/black_4</item>
<item name="transitStepDivider">@drawable/dot_divider</item> <item name="transitStepDivider">@drawable/dot_divider</item>
<item name="accentColorSelector">@color/accent_color_selector</item> <item name="accentColorSelector">@color/accent_color_selector</item>
<item name="android:textAppearance">@style/MwmTextAppearance.Body3</item> <item name="android:textAppearance">@style/TextAppearance</item>
<item name="android:textAppearanceSmall">@style/MwmTextAppearance.Body4</item> <item name="android:textAppearanceSmall">@style/TextAppearance.Small</item>
<item name="android:textAppearanceMedium">@style/MwmTextAppearance.Body2</item> <item name="android:textAppearanceMedium">@style/TextAppearance.Medium</item>
<item name="android:textAppearanceLarge">@style/MwmTextAppearance.Body1</item> <item name="android:textAppearanceLarge">@style/TextAppearance.Large</item>
<item name="android:textAppearanceInverse">@style/MwmTextAppearance.Body3.Light</item> <item name="android:textAppearanceInverse">@style/TextAppearance.Inverse</item>
<item name="android:textAppearanceSmallInverse">@style/MwmTextAppearance.Body4.Light</item> <item name="android:textAppearanceSmallInverse">@style/TextAppearance.Small.Inverse</item>
<item name="android:textAppearanceMediumInverse">@style/MwmTextAppearance.Body2.Light</item> <item name="android:textAppearanceMediumInverse">@style/TextAppearance.Medium.Inverse</item>
<item name="android:textAppearanceLargeInverse">@style/MwmTextAppearance.Body1.Light</item> <item name="android:textAppearanceLargeInverse">@style/TextAppearance.Large.Inverse</item>
<item name="drivingOptionsViewBg">@color/bg_primary_dark</item> <item name="drivingOptionsViewBg">@color/bg_primary_dark</item>
<item name="elevationProfilePropertyBg">@drawable/bg_rounded_rect</item> <item name="elevationProfilePropertyBg">@drawable/bg_rounded_rect</item>
<item name="elevationProfilePropIconTint">@color/black_secondary</item> <item name="elevationProfilePropIconTint">@color/black_secondary</item>