Loading src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt +10 −5 Original line number Diff line number Diff line Loading @@ -39,11 +39,12 @@ import com.android.customization.picker.color.ui.view.ColorOptionIconView 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 Loading @@ -67,17 +68,21 @@ object ClockFloatingSheetBinder { 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) Loading src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt +10 −5 Original line number Diff line number Diff line Loading @@ -33,7 +33,8 @@ import com.android.customization.picker.color.ui.view.ColorOptionIconView 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 Loading @@ -45,10 +46,12 @@ object ColorsFloatingSheetBinder { 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 = Loading @@ -60,9 +63,11 @@ object ColorsFloatingSheetBinder { 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) { Loading src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt +10 −5 Original line number Diff line number Diff line Loading @@ -28,7 +28,8 @@ import androidx.recyclerview.widget.GridLayoutManager 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 Loading @@ -50,10 +51,12 @@ object ShortcutFloatingSheetBinder { 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 { Loading @@ -62,9 +65,11 @@ object ShortcutFloatingSheetBinder { 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 Loading src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +12 −10 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ import com.android.wallpaper.picker.customization.ui.binder.CustomizationOptions 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 Loading @@ -50,7 +50,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO lockScreenCustomizationOptionEntries: List<Pair<CustomizationOption, View>>, homeScreenCustomizationOptionEntries: List<Pair<CustomizationOption, View>>, customizationOptionFloatingSheetViewMap: Map<CustomizationOption, View>?, viewModel: CustomizationOptionsViewModel, viewModel: CustomizationPickerViewModel2, colorUpdateViewModel: ColorUpdateViewModel, lifecycleOwner: LifecycleOwner, ) { Loading Loading @@ -91,23 +91,25 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO .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, Loading Loading @@ -137,7 +139,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } launch { viewModel.onCustomizeColorsClicked.collect { optionsViewModel.onCustomizeColorsClicked.collect { optionColors?.setOnClickListener { _ -> it?.invoke() } } } Loading @@ -149,7 +151,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO ?.let { ClockFloatingSheetBinder.bind( it, viewModel.clockPickerViewModel, optionsViewModel, colorUpdateViewModel, lifecycleOwner, ) Loading @@ -160,7 +162,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO ?.let { ShortcutFloatingSheetBinder.bind( it, viewModel.keyguardQuickAffordancePickerViewModel2, optionsViewModel, colorUpdateViewModel, lifecycleOwner, ) Loading @@ -171,7 +173,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO ?.let { ColorsFloatingSheetBinder.bind( it, viewModel.colorPickerViewModel2, optionsViewModel, colorUpdateViewModel, lifecycleOwner, ) Loading Loading
src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt +10 −5 Original line number Diff line number Diff line Loading @@ -39,11 +39,12 @@ import com.android.customization.picker.color.ui.view.ColorOptionIconView 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 Loading @@ -67,17 +68,21 @@ object ClockFloatingSheetBinder { 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) Loading
src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt +10 −5 Original line number Diff line number Diff line Loading @@ -33,7 +33,8 @@ import com.android.customization.picker.color.ui.view.ColorOptionIconView 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 Loading @@ -45,10 +46,12 @@ object ColorsFloatingSheetBinder { 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 = Loading @@ -60,9 +63,11 @@ object ColorsFloatingSheetBinder { 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) { Loading
src/com/android/wallpaper/customization/ui/binder/ShortcutFloatingSheetBinder.kt +10 −5 Original line number Diff line number Diff line Loading @@ -28,7 +28,8 @@ import androidx.recyclerview.widget.GridLayoutManager 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 Loading @@ -50,10 +51,12 @@ object ShortcutFloatingSheetBinder { 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 { Loading @@ -62,9 +65,11 @@ object ShortcutFloatingSheetBinder { 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 Loading
src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +12 −10 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ import com.android.wallpaper.picker.customization.ui.binder.CustomizationOptions 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 Loading @@ -50,7 +50,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO lockScreenCustomizationOptionEntries: List<Pair<CustomizationOption, View>>, homeScreenCustomizationOptionEntries: List<Pair<CustomizationOption, View>>, customizationOptionFloatingSheetViewMap: Map<CustomizationOption, View>?, viewModel: CustomizationOptionsViewModel, viewModel: CustomizationPickerViewModel2, colorUpdateViewModel: ColorUpdateViewModel, lifecycleOwner: LifecycleOwner, ) { Loading Loading @@ -91,23 +91,25 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO .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, Loading Loading @@ -137,7 +139,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } launch { viewModel.onCustomizeColorsClicked.collect { optionsViewModel.onCustomizeColorsClicked.collect { optionColors?.setOnClickListener { _ -> it?.invoke() } } } Loading @@ -149,7 +151,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO ?.let { ClockFloatingSheetBinder.bind( it, viewModel.clockPickerViewModel, optionsViewModel, colorUpdateViewModel, lifecycleOwner, ) Loading @@ -160,7 +162,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO ?.let { ShortcutFloatingSheetBinder.bind( it, viewModel.keyguardQuickAffordancePickerViewModel2, optionsViewModel, colorUpdateViewModel, lifecycleOwner, ) Loading @@ -171,7 +173,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO ?.let { ColorsFloatingSheetBinder.bind( it, viewModel.colorPickerViewModel2, optionsViewModel, colorUpdateViewModel, lifecycleOwner, ) Loading