Loading src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt +7 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,13 @@ object ClockFloatingSheetBinder { } } launch { viewModel.previewingClockColorOptionIndex.collect { indexToFocus -> (clockColorList.layoutManager as LinearLayoutManager) .scrollToPositionWithOffset(indexToFocus, 0) } } launch { var binding: SwitchColorBinder.Binding? = null viewModel.previewingClockSize.collect { size -> Loading src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt +16 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.core.graphics.drawable.DrawableCompat import androidx.core.view.get import androidx.core.view.isEmpty import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.lifecycleScope Loading Loading @@ -133,6 +135,7 @@ object ColorsFloatingSheetBinder { colorsViewModel.colorOptions.collect { colorOptions -> colorsAdapter.setItems(colorOptions) { var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value } indexToFocus = if (indexToFocus < 0) 0 else indexToFocus (colorsList.layoutManager as LinearLayoutManager) .scrollToPositionWithOffset(indexToFocus, 0) Loading @@ -140,6 +143,19 @@ object ColorsFloatingSheetBinder { } } launch { colorsViewModel.previewingColorOptionIndex.collect { indexToFocus -> val offset = if (colorsList != null && !colorsList.isEmpty()) { colorsList.get(0).width } else { 0 } (colorsList.layoutManager as LinearLayoutManager) .scrollToPositionWithOffset(indexToFocus, offset) } } launch { combine( colorsViewModel.previewingColorOption, Loading src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,9 @@ constructor( overridingClock != null && overridingClock.clockId != selectedClock.clockId } val _previewingClockColorOptionIndex = MutableStateFlow<Int>(0) val previewingClockColorOptionIndex = _previewingClockColorOptionIndex.asStateFlow() // Represents show and hide of the clock view provided by the picker side. private val _showPickerClockControllerView: MutableStateFlow<Boolean> = MutableStateFlow(false) val showPickerClockControllerView: Flow<Boolean> = _showPickerClockControllerView.asStateFlow() Loading Loading @@ -430,6 +433,7 @@ constructor( null } else { { _previewingClockColorOptionIndex.value = index overridingClockColorId.value = colorModel.colorId overridingSliderProgress.value = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS Loading src/com/android/wallpaper/customization/ui/viewmodel/ColorPickerViewModel2.kt +5 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ constructor( private val overridingColorOption = MutableStateFlow<ColorOption?>(null) val previewingColorOption = overridingColorOption.asStateFlow() val _previewingColorOptionIndex = MutableStateFlow<Int>(0) val previewingColorOptionIndex = _previewingColorOptionIndex.asStateFlow() private val selectedColorTypeTabId = MutableStateFlow<ColorType?>(null) /** View-models for each color tab. */ Loading Loading @@ -119,7 +122,7 @@ constructor( colorOptions .map { colorOptionEntry -> colorOptionEntry.key to colorOptionEntry.value.map { colorOption -> colorOptionEntry.value.mapIndexed { index, colorOption -> colorOption as ColorOptionImpl val isSelectedFlow: StateFlow<Boolean> = combine(previewingColorOption, selectedColorOption) { Loading Loading @@ -149,6 +152,7 @@ constructor( { viewModelScope.launch { overridingColorOption.value = colorOption _previewingColorOptionIndex.value = index } } } Loading Loading
src/com/android/wallpaper/customization/ui/binder/ClockFloatingSheetBinder.kt +7 −0 Original line number Diff line number Diff line Loading @@ -408,6 +408,13 @@ object ClockFloatingSheetBinder { } } launch { viewModel.previewingClockColorOptionIndex.collect { indexToFocus -> (clockColorList.layoutManager as LinearLayoutManager) .scrollToPositionWithOffset(indexToFocus, 0) } } launch { var binding: SwitchColorBinder.Binding? = null viewModel.previewingClockSize.collect { size -> Loading
src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt +16 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.core.graphics.drawable.DrawableCompat import androidx.core.view.get import androidx.core.view.isEmpty import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.lifecycleScope Loading Loading @@ -133,6 +135,7 @@ object ColorsFloatingSheetBinder { colorsViewModel.colorOptions.collect { colorOptions -> colorsAdapter.setItems(colorOptions) { var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value } indexToFocus = if (indexToFocus < 0) 0 else indexToFocus (colorsList.layoutManager as LinearLayoutManager) .scrollToPositionWithOffset(indexToFocus, 0) Loading @@ -140,6 +143,19 @@ object ColorsFloatingSheetBinder { } } launch { colorsViewModel.previewingColorOptionIndex.collect { indexToFocus -> val offset = if (colorsList != null && !colorsList.isEmpty()) { colorsList.get(0).width } else { 0 } (colorsList.layoutManager as LinearLayoutManager) .scrollToPositionWithOffset(indexToFocus, offset) } } launch { combine( colorsViewModel.previewingColorOption, Loading
src/com/android/wallpaper/customization/ui/viewmodel/ClockPickerViewModel.kt +4 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,9 @@ constructor( overridingClock != null && overridingClock.clockId != selectedClock.clockId } val _previewingClockColorOptionIndex = MutableStateFlow<Int>(0) val previewingClockColorOptionIndex = _previewingClockColorOptionIndex.asStateFlow() // Represents show and hide of the clock view provided by the picker side. private val _showPickerClockControllerView: MutableStateFlow<Boolean> = MutableStateFlow(false) val showPickerClockControllerView: Flow<Boolean> = _showPickerClockControllerView.asStateFlow() Loading Loading @@ -430,6 +433,7 @@ constructor( null } else { { _previewingClockColorOptionIndex.value = index overridingClockColorId.value = colorModel.colorId overridingSliderProgress.value = ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS Loading
src/com/android/wallpaper/customization/ui/viewmodel/ColorPickerViewModel2.kt +5 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,9 @@ constructor( private val overridingColorOption = MutableStateFlow<ColorOption?>(null) val previewingColorOption = overridingColorOption.asStateFlow() val _previewingColorOptionIndex = MutableStateFlow<Int>(0) val previewingColorOptionIndex = _previewingColorOptionIndex.asStateFlow() private val selectedColorTypeTabId = MutableStateFlow<ColorType?>(null) /** View-models for each color tab. */ Loading Loading @@ -119,7 +122,7 @@ constructor( colorOptions .map { colorOptionEntry -> colorOptionEntry.key to colorOptionEntry.value.map { colorOption -> colorOptionEntry.value.mapIndexed { index, colorOption -> colorOption as ColorOptionImpl val isSelectedFlow: StateFlow<Boolean> = combine(previewingColorOption, selectedColorOption) { Loading Loading @@ -149,6 +152,7 @@ constructor( { viewModelScope.launch { overridingColorOption.value = colorOption _previewingColorOptionIndex.value = index } } } Loading