Snap for 12304452 from 82821cb4447ec4f5ce161667e73536ada559bbd6 to 24Q4-release
Change-Id: Ibfae19b2c2069f549e52843bf1d09af3e2bd9c0b
diff --git a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
index 8c4442d..12733c5 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt
@@ -39,11 +39,12 @@
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.customization.picker.common.ui.view.DoubleRowListItemSpacing
import com.android.themepicker.R
+import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption.CLOCK
import com.android.wallpaper.customization.ui.viewmodel.ClockFloatingSheetHeightsViewModel
-import com.android.wallpaper.customization.ui.viewmodel.ClockPickerViewModel
import com.android.wallpaper.customization.ui.viewmodel.ClockPickerViewModel.Tab.COLOR
import com.android.wallpaper.customization.ui.viewmodel.ClockPickerViewModel.Tab.SIZE
import com.android.wallpaper.customization.ui.viewmodel.ClockPickerViewModel.Tab.STYLE
+import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel
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
@@ -67,17 +68,21 @@
fun bind(
view: View,
- viewModel: ClockPickerViewModel,
+ optionsViewModel: ThemePickerCustomizationOptionsViewModel,
colorUpdateViewModel: ColorUpdateViewModel,
lifecycleOwner: LifecycleOwner,
) {
+ val viewModel = optionsViewModel.clockPickerViewModel
+
val appContext = view.context.applicationContext
val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
val tabAdapter =
- FloatingToolbarTabAdapter(WeakReference(colorUpdateViewModel)).also {
- tabs.setAdapter(it)
- }
+ FloatingToolbarTabAdapter(
+ colorUpdateViewModel = WeakReference(colorUpdateViewModel),
+ shouldAnimateColor = { optionsViewModel.selectedOption.value == CLOCK },
+ )
+ .also { tabs.setAdapter(it) }
val floatingSheetContainer =
view.requireViewById<ViewGroup>(R.id.clock_floating_sheet_content_container)
diff --git a/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt
index c48538a..b06748a 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt
@@ -33,7 +33,8 @@
import com.android.customization.picker.color.ui.viewmodel.ColorOptionIconViewModel
import com.android.customization.picker.common.ui.view.DoubleRowListItemSpacing
import com.android.themepicker.R
-import com.android.wallpaper.customization.ui.viewmodel.ColorPickerViewModel2
+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.view.FloatingToolbar
import com.android.wallpaper.picker.customization.ui.view.adapter.FloatingToolbarTabAdapter
import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel
@@ -45,10 +46,12 @@
fun bind(
view: View,
- viewModel: ColorPickerViewModel2,
+ optionsViewModel: ThemePickerCustomizationOptionsViewModel,
colorUpdateViewModel: ColorUpdateViewModel,
lifecycleOwner: LifecycleOwner,
) {
+ val viewModel = optionsViewModel.colorPickerViewModel2
+
val subhead = view.requireViewById<TextView>(R.id.color_type_tab_subhead)
val colorsAdapter =
@@ -60,9 +63,11 @@
val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
val tabAdapter =
- FloatingToolbarTabAdapter(WeakReference(colorUpdateViewModel)).also {
- tabs.setAdapter(it)
- }
+ FloatingToolbarTabAdapter(
+ colorUpdateViewModel = WeakReference(colorUpdateViewModel),
+ shouldAnimateColor = { optionsViewModel.selectedOption.value == COLORS }
+ )
+ .also { tabs.setAdapter(it) }
lifecycleOwner.lifecycleScope.launch {
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
diff --git a/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt
index e07fef8..bc8ff96 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt
@@ -28,7 +28,8 @@
import androidx.recyclerview.widget.RecyclerView
import com.android.customization.picker.common.ui.view.DoubleRowListItemSpacing
import com.android.themepicker.R
-import com.android.wallpaper.customization.ui.viewmodel.KeyguardQuickAffordancePickerViewModel2
+import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption.SHORTCUTS
+import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsViewModel
import com.android.wallpaper.picker.common.dialog.ui.viewbinder.DialogViewBinder
import com.android.wallpaper.picker.common.dialog.ui.viewmodel.DialogViewModel
import com.android.wallpaper.picker.common.icon.ui.viewbinder.IconViewBinder
@@ -50,10 +51,12 @@
fun bind(
view: View,
- viewModel: KeyguardQuickAffordancePickerViewModel2,
+ optionsViewModel: ThemePickerCustomizationOptionsViewModel,
colorUpdateViewModel: ColorUpdateViewModel,
lifecycleOwner: LifecycleOwner,
) {
+ val viewModel = optionsViewModel.keyguardQuickAffordancePickerViewModel2
+
val quickAffordanceAdapter = createOptionItemAdapter(lifecycleOwner)
val quickAffordanceList =
view.requireViewById<RecyclerView>(R.id.quick_affordance_horizontal_list).also {
@@ -62,9 +65,11 @@
val tabs = view.requireViewById<FloatingToolbar>(R.id.floating_toolbar)
val tabAdapter =
- FloatingToolbarTabAdapter(WeakReference(colorUpdateViewModel)).also {
- tabs.setAdapter(it)
- }
+ FloatingToolbarTabAdapter(
+ colorUpdateViewModel = WeakReference(colorUpdateViewModel),
+ shouldAnimateColor = { optionsViewModel.selectedOption.value == SHORTCUTS }
+ )
+ .also { tabs.setAdapter(it) }
var dialog: Dialog? = null
diff --git a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
index e09a619..02bcc03 100644
--- a/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
+++ b/src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt
@@ -34,7 +34,7 @@
import com.android.wallpaper.picker.customization.ui.binder.DefaultCustomizationOptionsBinder
import com.android.wallpaper.picker.customization.ui.util.CustomizationOptionUtil.CustomizationOption
import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewModel
-import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsViewModel
+import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationPickerViewModel2
import javax.inject.Inject
import javax.inject.Singleton
import kotlinx.coroutines.launch
@@ -50,7 +50,7 @@
lockScreenCustomizationOptionEntries: List<Pair<CustomizationOption, View>>,
homeScreenCustomizationOptionEntries: List<Pair<CustomizationOption, View>>,
customizationOptionFloatingSheetViewMap: Map<CustomizationOption, View>?,
- viewModel: CustomizationOptionsViewModel,
+ viewModel: CustomizationPickerViewModel2,
colorUpdateViewModel: ColorUpdateViewModel,
lifecycleOwner: LifecycleOwner,
) {
@@ -91,23 +91,25 @@
.find { it.first == ThemePickerHomeCustomizationOption.COLORS }
?.second
- viewModel as ThemePickerCustomizationOptionsViewModel
+ val optionsViewModel =
+ viewModel.customizationOptionsViewModel as ThemePickerCustomizationOptionsViewModel
lifecycleOwner.lifecycleScope.launch {
lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
launch {
- viewModel.onCustomizeClockClicked.collect {
+ optionsViewModel.onCustomizeClockClicked.collect {
optionClock?.setOnClickListener { _ -> it?.invoke() }
}
}
launch {
- viewModel.onCustomizeShortcutClicked.collect {
+ optionsViewModel.onCustomizeShortcutClicked.collect {
optionShortcut?.setOnClickListener { _ -> it?.invoke() }
}
}
launch {
- viewModel.keyguardQuickAffordancePickerViewModel2.summary.collect { summary ->
+ optionsViewModel.keyguardQuickAffordancePickerViewModel2.summary.collect {
+ summary ->
optionShortcutDescription?.let {
TextViewBinder.bind(
view = it,
@@ -137,7 +139,7 @@
}
launch {
- viewModel.onCustomizeColorsClicked.collect {
+ optionsViewModel.onCustomizeColorsClicked.collect {
optionColors?.setOnClickListener { _ -> it?.invoke() }
}
}
@@ -149,7 +151,7 @@
?.let {
ClockFloatingSheetBinder.bind(
it,
- viewModel.clockPickerViewModel,
+ optionsViewModel,
colorUpdateViewModel,
lifecycleOwner,
)
@@ -160,7 +162,7 @@
?.let {
ShortcutFloatingSheetBinder.bind(
it,
- viewModel.keyguardQuickAffordancePickerViewModel2,
+ optionsViewModel,
colorUpdateViewModel,
lifecycleOwner,
)
@@ -171,7 +173,7 @@
?.let {
ColorsFloatingSheetBinder.bind(
it,
- viewModel.colorPickerViewModel2,
+ optionsViewModel,
colorUpdateViewModel,
lifecycleOwner,
)
diff --git a/tests/Android.bp b/tests/Android.bp
index 5b12a4a..a311e5a 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -65,9 +65,9 @@
"flag-junit",
],
libs: [
- "android.test.runner",
- "android.test.base",
- "android.test.mock",
+ "android.test.runner.stubs.system",
+ "android.test.base.stubs.system",
+ "android.test.mock.stubs.system",
],
kotlincflags: ["-Xjvm-default=all"],