From 46ec844398f1f4d8b38ede95548a339c635f1ef3 Mon Sep 17 00:00:00 2001 From: Vraj Shah <122716046+vyom1307@users.noreply.github.com> Date: Tue, 24 Jun 2025 19:41:55 +0530 Subject: [PATCH] Fixes #10721 | prevent splash screen content from being overlapped | (#10775) * Fix: prevent splash screen content from being overlapped by system nav bar on Android 15/16 Signed-off-by: vrajs --- .../java/app/organicmaps/SplashActivity.java | 16 ++++++++++++++++ .../app/src/main/res/layout/activity_splash.xml | 1 + 2 files changed, 17 insertions(+) diff --git a/android/app/src/main/java/app/organicmaps/SplashActivity.java b/android/app/src/main/java/app/organicmaps/SplashActivity.java index 2089887c8..14a7dfa91 100644 --- a/android/app/src/main/java/app/organicmaps/SplashActivity.java +++ b/android/app/src/main/java/app/organicmaps/SplashActivity.java @@ -8,6 +8,7 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; +import android.view.View; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; @@ -16,6 +17,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.graphics.Insets; +import androidx.core.view.OnApplyWindowInsetsListener; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; import app.organicmaps.display.DisplayManager; import app.organicmaps.downloader.DownloaderActivity; @@ -69,6 +74,17 @@ public class SplashActivity extends AppCompatActivity UiThread.cancelDelayedTasks(mInitCoreDelayedTask); setContentView(R.layout.activity_splash); + + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.root_view), new OnApplyWindowInsetsListener() { + @NonNull + @Override + public WindowInsetsCompat onApplyWindowInsets(@NonNull View v, @NonNull WindowInsetsCompat insets) + { + Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()); + v.setPadding(0, 0, 0, systemBars.bottom); + return insets; + } + }); mPermissionRequest = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(), result -> Config.setLocationRequested()); mApiRequest = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { diff --git a/android/app/src/main/res/layout/activity_splash.xml b/android/app/src/main/res/layout/activity_splash.xml index 302a84252..d40c4c9c6 100644 --- a/android/app/src/main/res/layout/activity_splash.xml +++ b/android/app/src/main/res/layout/activity_splash.xml @@ -4,6 +4,7 @@ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tool="http://schemas.android.com/tools" + android:id="@+id/root_view" android:orientation="vertical" tool:background="@color/bg_primary" android:gravity="center">