diff --git a/app/src/main/java/com/topjohnwu/magisk/redesign/MainActivity.kt b/app/src/main/java/com/topjohnwu/magisk/redesign/MainActivity.kt index d92bd0134..b87ffaf31 100644 --- a/app/src/main/java/com/topjohnwu/magisk/redesign/MainActivity.kt +++ b/app/src/main/java/com/topjohnwu/magisk/redesign/MainActivity.kt @@ -2,6 +2,8 @@ package com.topjohnwu.magisk.redesign import android.graphics.Insets import android.os.Bundle +import android.view.ViewTreeObserver +import androidx.core.view.setPadding import androidx.fragment.app.Fragment import com.ncapdevi.fragnav.FragNavController import com.topjohnwu.magisk.Const @@ -32,6 +34,14 @@ open class MainActivity : CompatActivity( SettingsFragment::class ) + //This temporarily fixes unwanted feature of BottomNavigationView - where the view applies + //padding on itself given insets are not consumed beforehand. Unfortunately the listener + //implementation doesn't favor us against the design library, so on re-create it's often given + //upper hand. + private val navObserver = ViewTreeObserver.OnGlobalLayoutListener { + binding.mainNavigation.setPadding(0) + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -49,11 +59,18 @@ open class MainActivity : CompatActivity( true } + binding.mainNavigation.viewTreeObserver.addOnGlobalLayoutListener(navObserver) + if (intent.getBooleanExtra(Const.Key.OPEN_SETTINGS, false)) { binding.mainNavigation.selectedItemId = R.id.settingsFragment } } + override fun onDestroy() { + binding.mainNavigation.viewTreeObserver.removeOnGlobalLayoutListener(navObserver) + super.onDestroy() + } + override fun onTabTransaction(fragment: Fragment?, index: Int) { super.onTabTransaction(fragment, index) diff --git a/app/src/main/res/layout/activity_main_md2.xml b/app/src/main/res/layout/activity_main_md2.xml index c31880f10..9f43a6089 100644 --- a/app/src/main/res/layout/activity_main_md2.xml +++ b/app/src/main/res/layout/activity_main_md2.xml @@ -24,12 +24,14 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> - + android:layout_marginStart="@dimen/l1" + android:layout_marginTop="@{(int) @dimen/l1 + viewModel.insets.top}" + android:layout_marginEnd="@dimen/l1" + tools:layout_marginTop="40dp"> - + - + android:layout_marginStart="@dimen/l1" + android:layout_marginEnd="@dimen/l1" + android:layout_marginBottom="@{(int) @dimen/l1 + viewModel.insets.bottom}" + tools:layout_marginBottom="64dp"> - - - + diff --git a/app/src/main/res/layout/fragment_home_md2.xml b/app/src/main/res/layout/fragment_home_md2.xml index 69e4a0276..014ffcbd5 100644 --- a/app/src/main/res/layout/fragment_home_md2.xml +++ b/app/src/main/res/layout/fragment_home_md2.xml @@ -21,7 +21,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" - android:paddingTop="@{viewModel.insets.top + (int) @dimen/internal_action_bar_size + (int) @dimen/l1}" + android:paddingTop="@{viewModel.insets.top + (int) @dimen/internal_action_bar_size + (int) @dimen/l2}" android:paddingBottom="@{viewModel.insets.bottom + (int) @dimen/margin_fab + (int) @dimen/l1}" tools:layout_marginTop="24dp"> diff --git a/app/src/main/res/menu/menu_bottom_nav.xml b/app/src/main/res/menu/menu_bottom_nav.xml index d1d5b41ab..31c468243 100644 --- a/app/src/main/res/menu/menu_bottom_nav.xml +++ b/app/src/main/res/menu/menu_bottom_nav.xml @@ -15,9 +15,9 @@ tools:showAsAction="always" /> + diff --git a/app/src/main/res/values/styles_md2.xml b/app/src/main/res/values/styles_md2.xml index f500498f3..f0e095ff0 100644 --- a/app/src/main/res/values/styles_md2.xml +++ b/app/src/main/res/values/styles_md2.xml @@ -30,6 +30,7 @@ @style/WidgetFoundation.Toolbar @style/WidgetFoundation.Card + @style/WidgetFoundation.Card.Elevated @style/WidgetFoundation.Card.OnPrimary @style/WidgetFoundation.Button diff --git a/app/src/main/res/values/styles_md2_impl.xml b/app/src/main/res/values/styles_md2_impl.xml index 524680d44..2de494ff7 100644 --- a/app/src/main/res/values/styles_md2_impl.xml +++ b/app/src/main/res/values/styles_md2_impl.xml @@ -27,6 +27,13 @@ variant. Make sure to use style referenced by attribute defined it attrs.xml. ?colorSurfaceVariant @dimen/l_50 0dp + true + + + +