diff options
author | LuK1337 <priv.luk@gmail.com> | 2023-06-20 18:27:48 +0200 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2023-12-27 00:35:28 +0800 |
commit | f07a1ea79c2525ea1fee2d5584398f9f62645141 (patch) | |
tree | 95fff2a7ea8077f8f8eb54a3cd4f7fdbcfcff726 | |
parent | 27e8b407648993c144db302a0d0067c689e72c18 (diff) |
ThemePicker: Apply window insets to fragmentsumineko
Adapt to system window insets (e.g. navigation bar) for the
customization screens for clock, colors, app grid, and
lockscreen shortcuts.
Co-authored-by: Tommy Webb <tommy@calyxinstitute.org>
Change-Id: Ia53e574c9b8cf034327183448292cd0c14858c52
5 files changed, 63 insertions, 0 deletions
diff --git a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt b/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt index 6ab561f3..b32cf2da 100644 --- a/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt +++ b/src/com/android/customization/model/grid/ui/fragment/GridFragment2.kt @@ -21,6 +21,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowInsets import androidx.lifecycle.ViewModelProvider import com.android.customization.model.grid.ui.binder.GridScreenBinder import com.android.customization.model.grid.ui.viewmodel.GridScreenViewModel @@ -54,6 +55,17 @@ class GridFragment2 : AppbarFragment() { ) setUpToolbar(view) + // For nav bar edge-to-edge effect. + view.setOnApplyWindowInsetsListener { v: View, windowInsets: WindowInsets -> + v.setPadding( + v.paddingLeft, + v.paddingTop, + v.paddingRight, + windowInsets.systemWindowInsetBottom + ) + windowInsets + } + val injector = InjectorProvider.getInjector() as ThemePickerInjector val wallpaperInfoFactory = injector.getCurrentWallpaperInfoFactory(requireContext()) diff --git a/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt b/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt index f138d6a4..00f23308 100644 --- a/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt +++ b/src/com/android/customization/picker/clock/ui/fragment/ClockCustomDemoFragment.kt @@ -9,6 +9,7 @@ import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.view.ViewGroup.LayoutParams.WRAP_CONTENT +import android.view.WindowInsets import android.widget.FrameLayout import android.widget.TextView import android.widget.Toast @@ -34,6 +35,18 @@ class ClockCustomDemoFragment : AppbarFragment() { ): View { val view = inflater.inflate(R.layout.fragment_clock_custom_picker_demo, container, false) setUpToolbar(view) + + // For nav bar edge-to-edge effect. + view.setOnApplyWindowInsetsListener { v: View, windowInsets: WindowInsets -> + v.setPadding( + v.paddingLeft, + v.paddingTop, + v.paddingRight, + windowInsets.systemWindowInsetBottom + ) + windowInsets + } + clockRegistry = (InjectorProvider.getInjector() as ThemePickerInjector).getClockRegistry( requireContext(), diff --git a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt index f4684d88..d22d62e6 100644 --- a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt +++ b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt @@ -19,6 +19,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowInsets import androidx.cardview.widget.CardView import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.get @@ -59,6 +60,17 @@ class ClockSettingsFragment : AppbarFragment() { ) setUpToolbar(view) + // For nav bar edge-to-edge effect. + view.setOnApplyWindowInsetsListener { v: View, windowInsets: WindowInsets -> + v.setPadding( + v.paddingLeft, + v.paddingTop, + v.paddingRight, + windowInsets.systemWindowInsetBottom + ) + windowInsets + } + val context = requireContext() val activity = requireActivity() val injector = InjectorProvider.getInjector() as ThemePickerInjector diff --git a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt index 78bfa43e..23ac2b6d 100644 --- a/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt +++ b/src/com/android/customization/picker/color/ui/fragment/ColorPickerFragment.kt @@ -20,6 +20,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowInsets import android.widget.FrameLayout import androidx.cardview.widget.CardView import androidx.lifecycle.ViewModelProvider @@ -67,6 +68,18 @@ class ColorPickerFragment : AppbarFragment() { false, ) setUpToolbar(view) + + // For nav bar edge-to-edge effect. + view.setOnApplyWindowInsetsListener { v: View, windowInsets: WindowInsets -> + v.setPadding( + v.paddingLeft, + v.paddingTop, + v.paddingRight, + windowInsets.systemWindowInsetBottom + ) + windowInsets + } + val injector = InjectorProvider.getInjector() as ThemePickerInjector val lockScreenView: CardView = view.requireViewById(R.id.lock_preview) val homeScreenView: CardView = view.requireViewById(R.id.home_preview) diff --git a/src/com/android/customization/picker/quickaffordance/ui/fragment/KeyguardQuickAffordancePickerFragment.kt b/src/com/android/customization/picker/quickaffordance/ui/fragment/KeyguardQuickAffordancePickerFragment.kt index d5f0d33d..1a9f8ac5 100644 --- a/src/com/android/customization/picker/quickaffordance/ui/fragment/KeyguardQuickAffordancePickerFragment.kt +++ b/src/com/android/customization/picker/quickaffordance/ui/fragment/KeyguardQuickAffordancePickerFragment.kt @@ -21,6 +21,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowInsets import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.get import com.android.customization.module.ThemePickerInjector @@ -54,6 +55,18 @@ class KeyguardQuickAffordancePickerFragment : AppbarFragment() { false, ) setUpToolbar(view) + + // For nav bar edge-to-edge effect. + view.setOnApplyWindowInsetsListener { v: View, windowInsets: WindowInsets -> + v.setPadding( + v.paddingLeft, + v.paddingTop, + v.paddingRight, + windowInsets.systemWindowInsetBottom + ) + windowInsets + } + val injector = InjectorProvider.getInjector() as ThemePickerInjector val viewModel: KeyguardQuickAffordancePickerViewModel = ViewModelProvider( |