Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37ce5d83 authored by Guillaume Jacquart's avatar Guillaume Jacquart
Browse files

feat:3375: implement manualy LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT for A15 compatibility

parent ef9114e9
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -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<View>(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<MarginLayoutParams> {
                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)
+6 −3
Original line number Diff line number Diff line
<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.AdvancedPrivacy" parent="Theme.MaterialComponents.DayNight.NoActionBar">

        <item name="android:windowLayoutInDisplayCutoutMode">always</item>
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/accent</item>
        <item name="colorAccent">@color/accent</item>

        <!-- Status bar color. -->
        <item name="android:statusBarColor">@color/primary</item>
        <item name="android:navigationBarColor">@color/primary</item>

        <!-- Edge to edge config: https://developer.android.com/develop/ui/views/layout/edge-to-edge-manually#change-color -->
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:navigationBarColor">@android:color/transparent</item>
        <item name="android:navigationBarDividerColor">@color/primary</item>
        <item name="android:windowLightNavigationBar">@bool/is_day</item>
        <item name="android:windowLightStatusBar">@bool/is_day</item>
@@ -16,7 +20,6 @@
        <item name="android:textSize">16sp</item>
    </style>


    <style name="Theme.InvisibleActivity" parent="Theme.AdvancedPrivacy">
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>