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 <vrajshah006@gmail.com>
This commit is contained in:
Vraj Shah
2025-06-24 19:41:55 +05:30
committed by Konstantin Pastbin
parent f8d1914037
commit 46ec844398
2 changed files with 17 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import android.view.View;
import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts; import androidx.activity.result.contract.ActivityResultContracts;
@@ -16,6 +17,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.appcompat.app.AppCompatActivity; 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.display.DisplayManager;
import app.organicmaps.downloader.DownloaderActivity; import app.organicmaps.downloader.DownloaderActivity;
@@ -69,6 +74,17 @@ public class SplashActivity extends AppCompatActivity
UiThread.cancelDelayedTasks(mInitCoreDelayedTask); UiThread.cancelDelayedTasks(mInitCoreDelayedTask);
setContentView(R.layout.activity_splash); 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(), mPermissionRequest = registerForActivityResult(new ActivityResultContracts.RequestMultiplePermissions(),
result -> Config.setLocationRequested()); result -> Config.setLocationRequested());
mApiRequest = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> { mApiRequest = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {

View File

@@ -4,6 +4,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tool="http://schemas.android.com/tools" xmlns:tool="http://schemas.android.com/tools"
android:id="@+id/root_view"
android:orientation="vertical" android:orientation="vertical"
tool:background="@color/bg_primary" tool:background="@color/bg_primary"
android:gravity="center"> android:gravity="center">