Merge "Bind floating sheet background, toolbar and tabs colors (2/2)" into main
diff --git a/res/layout/floating_sheet_clock.xml b/res/layout/floating_sheet_clock.xml
index 93cf24b..6b757be 100644
--- a/res/layout/floating_sheet_clock.xml
+++ b/res/layout/floating_sheet_clock.xml
@@ -21,7 +21,7 @@
android:orientation="vertical">
<FrameLayout
- android:id="@+id/clock_floating_sheet_content_container"
+ android:id="@+id/floating_sheet_content_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/floating_sheet_content_background"
diff --git a/res/layout/floating_sheet_colors.xml b/res/layout/floating_sheet_colors.xml
index f8cfc98..9a27a6c 100644
--- a/res/layout/floating_sheet_colors.xml
+++ b/res/layout/floating_sheet_colors.xml
@@ -21,6 +21,7 @@
android:orientation="vertical">
<LinearLayout
+ android:id="@+id/floating_sheet_content_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/floating_sheet_content_background"
diff --git a/res/layout/floating_sheet_shape_grid.xml b/res/layout/floating_sheet_shape_grid.xml
index cd0a709..7d0df1c 100644
--- a/res/layout/floating_sheet_shape_grid.xml
+++ b/res/layout/floating_sheet_shape_grid.xml
@@ -21,7 +21,7 @@
android:orientation="vertical">
<FrameLayout
- android:id="@+id/shape_grid_floating_sheet_content_container"
+ android:id="@+id/floating_sheet_content_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/floating_sheet_content_background"
diff --git a/res/layout/floating_sheet_shortcut.xml b/res/layout/floating_sheet_shortcut.xml
index fb24ef4..c3377c9 100644
--- a/res/layout/floating_sheet_shortcut.xml
+++ b/res/layout/floating_sheet_shortcut.xml
@@ -21,6 +21,7 @@
android:orientation="vertical">
<FrameLayout
+ android:id="@+id/floating_sheet_content_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="@dimen/floating_sheet_content_vertical_padding"
diff --git a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
index 86b2d78..ca2fcd0 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
@@ -24,10 +24,10 @@
import android.view.View
import android.view.ViewGroup
import android.view.ViewTreeObserver.OnGlobalLayoutListener
-import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.SeekBar
import android.widget.Switch
+import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
@@ -50,6 +50,7 @@
import com.android.wallpaper.customization.ui.viewmodel.ClockPickerViewModel.ClockStyleModel
import com.android.wallpaper.customization.ui.viewmodel.ClockPickerViewModel.Tab
import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel
+import com.android.wallpaper.picker.customization.ui.binder.ColorUpdateBinder
import com.android.wallpaper.picker.customization.ui.view.FloatingToolbar
import com.android.wallpaper.picker.customization.ui.view.adapter.FloatingToolbarTabAdapter
import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel
@@ -81,19 +82,40 @@
lifecycleOwner: LifecycleOwner,
) {
val viewModel = optionsViewModel.clockPickerViewModel
-
val appContext = view.context.applicationContext
+ val isFloatingSheetActive = { optionsViewModel.selectedOption.value == CLOCK }
val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
+ val tabContainer =
+ tabs.findViewById<ViewGroup>(com.android.wallpaper.R.id.floating_toolbar_tab_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(DrawableCompat.wrap(tabContainer.background), color)
+ },
+ color = colorUpdateViewModel.floatingToolbarBackground,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
val tabAdapter =
FloatingToolbarTabAdapter(
colorUpdateViewModel = WeakReference(colorUpdateViewModel),
- shouldAnimateColor = { optionsViewModel.selectedOption.value == CLOCK },
+ shouldAnimateColor = isFloatingSheetActive,
)
.also { tabs.setAdapter(it) }
val floatingSheetContainer =
- view.requireViewById<FrameLayout>(R.id.clock_floating_sheet_content_container)
+ view.requireViewById<ViewGroup>(R.id.floating_sheet_content_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(
+ DrawableCompat.wrap(floatingSheetContainer.background),
+ color,
+ )
+ },
+ color = colorUpdateViewModel.colorSurfaceBright,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
// Clock style
val clockStyleContent = view.requireViewById<View>(R.id.clock_floating_sheet_style_content)
diff --git a/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt
index 4845121..cfb0ccc 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt
@@ -20,7 +20,9 @@
import android.content.res.Configuration.UI_MODE_NIGHT_MASK
import android.content.res.Configuration.UI_MODE_NIGHT_YES
import android.view.View
+import android.view.ViewGroup
import android.widget.TextView
+import androidx.core.graphics.drawable.DrawableCompat
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
@@ -35,6 +37,7 @@
import com.android.themepicker.R
import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerHomeCustomizationOption.COLORS
import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel
+import com.android.wallpaper.picker.customization.ui.binder.ColorUpdateBinder
import com.android.wallpaper.picker.customization.ui.view.FloatingToolbar
import com.android.wallpaper.picker.customization.ui.view.adapter.FloatingToolbarTabAdapter
import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel
@@ -51,6 +54,39 @@
lifecycleOwner: LifecycleOwner,
) {
val viewModel = optionsViewModel.colorPickerViewModel2
+ val isFloatingSheetActive = { optionsViewModel.selectedOption.value == COLORS }
+
+ val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
+ val tabContainer =
+ tabs.findViewById<ViewGroup>(com.android.wallpaper.R.id.floating_toolbar_tab_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(DrawableCompat.wrap(tabContainer.background), color)
+ },
+ color = colorUpdateViewModel.floatingToolbarBackground,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
+ val tabAdapter =
+ FloatingToolbarTabAdapter(
+ colorUpdateViewModel = WeakReference(colorUpdateViewModel),
+ shouldAnimateColor = isFloatingSheetActive,
+ )
+ .also { tabs.setAdapter(it) }
+
+ val floatingSheetContainer =
+ view.requireViewById<ViewGroup>(R.id.floating_sheet_content_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(
+ DrawableCompat.wrap(floatingSheetContainer.background),
+ color,
+ )
+ },
+ color = colorUpdateViewModel.colorSurfaceBright,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
val subhead = view.requireViewById<TextView>(R.id.color_type_tab_subhead)
@@ -61,14 +97,6 @@
it.initColorsList(view.context.applicationContext, colorsAdapter)
}
- val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
- val tabAdapter =
- FloatingToolbarTabAdapter(
- colorUpdateViewModel = WeakReference(colorUpdateViewModel),
- shouldAnimateColor = { optionsViewModel.selectedOption.value == COLORS },
- )
- .also { tabs.setAdapter(it) }
-
DarkModeBinder.bind(
darkModeToggle = view.findViewById(R.id.dark_mode_toggle),
viewModel = optionsViewModel.darkModeViewModel,
diff --git a/src/com/android/wallpaper/customization/ui/binder/ShapeGridFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ShapeGridFloatingSheetBinder.kt
index 9cebd27..bdfc91a 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ShapeGridFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ShapeGridFloatingSheetBinder.kt
@@ -22,6 +22,7 @@
import android.view.ViewGroup
import android.view.ViewTreeObserver.OnGlobalLayoutListener
import android.widget.ImageView
+import androidx.core.graphics.drawable.DrawableCompat
import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
@@ -39,6 +40,7 @@
import com.android.wallpaper.customization.ui.viewmodel.ShapeGridPickerViewModel.Tab.GRID
import com.android.wallpaper.customization.ui.viewmodel.ShapeGridPickerViewModel.Tab.SHAPE
import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel
+import com.android.wallpaper.picker.customization.ui.binder.ColorUpdateBinder
import com.android.wallpaper.picker.customization.ui.view.FloatingToolbar
import com.android.wallpaper.picker.customization.ui.view.adapter.FloatingToolbarTabAdapter
import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel
@@ -74,17 +76,39 @@
val floatingSheetContentVerticalPadding =
view.resources.getDimensionPixelSize(R.dimen.floating_sheet_content_vertical_padding)
val viewModel = optionsViewModel.shapeGridPickerViewModel
+ val isFloatingSheetActive = { optionsViewModel.selectedOption.value == APP_SHAPE_GRID }
val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
+ val tabContainer =
+ tabs.findViewById<ViewGroup>(com.android.wallpaper.R.id.floating_toolbar_tab_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(DrawableCompat.wrap(tabContainer.background), color)
+ },
+ color = colorUpdateViewModel.floatingToolbarBackground,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
val tabAdapter =
FloatingToolbarTabAdapter(
colorUpdateViewModel = WeakReference(colorUpdateViewModel),
- shouldAnimateColor = { optionsViewModel.selectedOption.value == APP_SHAPE_GRID },
+ shouldAnimateColor = isFloatingSheetActive,
)
.also { tabs.setAdapter(it) }
val floatingSheetContainer =
- view.requireViewById<ViewGroup>(R.id.shape_grid_floating_sheet_content_container)
+ view.requireViewById<ViewGroup>(R.id.floating_sheet_content_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(
+ DrawableCompat.wrap(floatingSheetContainer.background),
+ color,
+ )
+ },
+ color = colorUpdateViewModel.colorSurfaceBright,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
val shapeContent = view.requireViewById<View>(R.id.app_shape_container)
val shapeOptionListAdapter =
diff --git a/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt
index 838ef87..36fe399 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt
@@ -19,7 +19,9 @@
import android.app.Dialog
import android.content.Context
import android.view.View
+import android.view.ViewGroup
import android.widget.ImageView
+import androidx.core.graphics.drawable.DrawableCompat
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
@@ -34,6 +36,7 @@
import com.android.wallpaper.picker.common.dialog.ui.viewmodel.DialogViewModel
import com.android.wallpaper.picker.common.icon.ui.viewbinder.IconViewBinder
import com.android.wallpaper.picker.common.icon.ui.viewmodel.Icon
+import com.android.wallpaper.picker.customization.ui.binder.ColorUpdateBinder
import com.android.wallpaper.picker.customization.ui.view.FloatingToolbar
import com.android.wallpaper.picker.customization.ui.view.adapter.FloatingToolbarTabAdapter
import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel
@@ -56,6 +59,39 @@
lifecycleOwner: LifecycleOwner,
) {
val viewModel = optionsViewModel.keyguardQuickAffordancePickerViewModel2
+ val isFloatingSheetActive = { optionsViewModel.selectedOption.value == SHORTCUTS }
+
+ val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
+ val tabContainer =
+ tabs.findViewById<ViewGroup>(com.android.wallpaper.R.id.floating_toolbar_tab_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(DrawableCompat.wrap(tabContainer.background), color)
+ },
+ color = colorUpdateViewModel.floatingToolbarBackground,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
+ val tabAdapter =
+ FloatingToolbarTabAdapter(
+ colorUpdateViewModel = WeakReference(colorUpdateViewModel),
+ shouldAnimateColor = isFloatingSheetActive,
+ )
+ .also { tabs.setAdapter(it) }
+
+ val floatingSheetContainer =
+ view.requireViewById<ViewGroup>(R.id.floating_sheet_content_container)
+ ColorUpdateBinder.bind(
+ setColor = { color ->
+ DrawableCompat.setTint(
+ DrawableCompat.wrap(floatingSheetContainer.background),
+ color,
+ )
+ },
+ color = colorUpdateViewModel.colorSurfaceBright,
+ shouldAnimate = isFloatingSheetActive,
+ lifecycleOwner = lifecycleOwner,
+ )
val quickAffordanceAdapter = createOptionItemAdapter(lifecycleOwner)
val quickAffordanceList =
@@ -63,14 +99,6 @@
it.initQuickAffordanceList(view.context.applicationContext, quickAffordanceAdapter)
}
- val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
- val tabAdapter =
- FloatingToolbarTabAdapter(
- colorUpdateViewModel = WeakReference(colorUpdateViewModel),
- shouldAnimateColor = { optionsViewModel.selectedOption.value == SHORTCUTS },
- )
- .also { tabs.setAdapter(it) }
-
var dialog: Dialog? = null
lifecycleOwner.lifecycleScope.launch {