From 37ce5d8356b352d70a4ece104f5e25d510384cf7 Mon Sep 17 00:00:00 2001 From: jacquarg Date: Wed, 28 May 2025 17:09:14 +0200 Subject: [PATCH 1/2] feat:3375: implement manualy LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT for A15 compatibility --- .../e/advancedprivacy/main/MainActivity.kt | 42 +++++++++++++++++++ app/src/main/res/values/themes.xml | 9 ++-- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt b/app/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt index fbe5cf8b..ac28afe6 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/main/MainActivity.kt @@ -20,12 +20,54 @@ package foundation.e.advancedprivacy.main import android.content.Context import android.content.Intent +import android.os.Bundle +import android.view.View +import android.view.ViewGroup.MarginLayoutParams +import androidx.activity.enableEdgeToEdge +import androidx.core.view.ViewCompat +import androidx.core.view.WindowCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updateLayoutParams import androidx.fragment.app.FragmentActivity import androidx.navigation.NavDeepLinkBuilder import androidx.navigation.findNavController import foundation.e.advancedprivacy.R +import timber.log.Timber class MainActivity : FragmentActivity(R.layout.activity_main) { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + WindowCompat.setDecorFitsSystemWindows(window, false) + + ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.nav_host_fragment)) { v, windowInsets -> + val insets = windowInsets.getInsets( + WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.displayCutout()) + // Apply the insets as a margin to the view. This solution sets + // only the bottom, left, and right dimensions, but you can apply whichever + // insets are appropriate to your layout. You can also update the view padding + // if that's more appropriate. + v.updateLayoutParams { + topMargin = insets.top + leftMargin = insets.left + Timber.d("DebugInset - insets: $insets") + bottomMargin = insets.bottom + rightMargin = insets.right + } + + // Return CONSUMED if you don't want the window insets to keep passing + // down to descendant views. + +// windowInsets + WindowInsetsCompat.CONSUMED + } + } + +// override fun onCreate(savedInstanceState: Bundle?) { +// enableEdgeToEdge() +// super.onCreate(savedInstanceState) +// } + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) findNavController(R.id.nav_host_fragment).handleDeepLink(intent) diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 7c1e4c38..8ef6daa1 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,13 +1,17 @@ -