Loading src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt +28 −13 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewMo import com.android.wallpaper.picker.option.ui.adapter.OptionItemAdapter2 import java.lang.ref.WeakReference import kotlinx.coroutines.DisposableHandle import kotlinx.coroutines.flow.combine import kotlinx.coroutines.launch object ColorsFloatingSheetBinder { Loading @@ -52,7 +53,8 @@ object ColorsFloatingSheetBinder { colorUpdateViewModel: ColorUpdateViewModel, lifecycleOwner: LifecycleOwner, ) { val viewModel = optionsViewModel.colorPickerViewModel2 val colorsViewModel = optionsViewModel.colorPickerViewModel2 val darkModeViewModel = optionsViewModel.darkModeViewModel val isFloatingSheetActive = { optionsViewModel.selectedOption.value == COLORS } ColorUpdateBinder.bind( Loading Loading @@ -119,7 +121,7 @@ object ColorsFloatingSheetBinder { DarkModeBinder.bind( darkModeToggle = view.findViewById(R.id.dark_mode_toggle), viewModel = optionsViewModel.darkModeViewModel, viewModel = darkModeViewModel, colorUpdateViewModel = colorUpdateViewModel, shouldAnimateColor = isFloatingSheetActive, lifecycleOwner = lifecycleOwner, Loading @@ -127,12 +129,12 @@ object ColorsFloatingSheetBinder { lifecycleOwner.lifecycleScope.launch { lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { launch { viewModel.colorTypeTabs.collect { tabAdapter.submitList(it) } } launch { colorsViewModel.colorTypeTabs.collect { tabAdapter.submitList(it) } } launch { viewModel.colorTypeTabSubheader.collect { subhead.text = it } } launch { colorsViewModel.colorTypeTabSubheader.collect { subhead.text = it } } launch { viewModel.colorOptions.collect { colorOptions -> colorsViewModel.colorOptions.collect { colorOptions -> colorsAdapter.setItems(colorOptions) { var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value } indexToFocus = if (indexToFocus < 0) 0 else indexToFocus Loading @@ -143,12 +145,25 @@ object ColorsFloatingSheetBinder { } launch { viewModel.previewingColorOption.collect { colorOption -> if (colorOption != null) { combine( colorsViewModel.previewingColorOption, colorsViewModel.selectedColorOption, darkModeViewModel.overridingIsDarkMode, ::Triple, ) .collect { (previewColor, selectedColor, overridingIsDarkMode) -> if (previewColor != null || overridingIsDarkMode != null) { val previewColorOption = previewColor ?: selectedColor val previewIsDarkMode = overridingIsDarkMode ?: view.resources.configuration.isNightModeActive previewColorOption?.let { colorUpdateViewModel.previewColors( colorOption.seedColor, colorOption.style, previewColorOption.seedColor, previewColorOption.style, previewIsDarkMode, ) } } else colorUpdateViewModel.resetPreview() } } Loading Loading
src/com/android/wallpaper/customization/ui/binder/ColorsFloatingSheetBinder.kt +28 −13 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ import com.android.wallpaper.picker.customization.ui.viewmodel.ColorUpdateViewMo import com.android.wallpaper.picker.option.ui.adapter.OptionItemAdapter2 import java.lang.ref.WeakReference import kotlinx.coroutines.DisposableHandle import kotlinx.coroutines.flow.combine import kotlinx.coroutines.launch object ColorsFloatingSheetBinder { Loading @@ -52,7 +53,8 @@ object ColorsFloatingSheetBinder { colorUpdateViewModel: ColorUpdateViewModel, lifecycleOwner: LifecycleOwner, ) { val viewModel = optionsViewModel.colorPickerViewModel2 val colorsViewModel = optionsViewModel.colorPickerViewModel2 val darkModeViewModel = optionsViewModel.darkModeViewModel val isFloatingSheetActive = { optionsViewModel.selectedOption.value == COLORS } ColorUpdateBinder.bind( Loading Loading @@ -119,7 +121,7 @@ object ColorsFloatingSheetBinder { DarkModeBinder.bind( darkModeToggle = view.findViewById(R.id.dark_mode_toggle), viewModel = optionsViewModel.darkModeViewModel, viewModel = darkModeViewModel, colorUpdateViewModel = colorUpdateViewModel, shouldAnimateColor = isFloatingSheetActive, lifecycleOwner = lifecycleOwner, Loading @@ -127,12 +129,12 @@ object ColorsFloatingSheetBinder { lifecycleOwner.lifecycleScope.launch { lifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { launch { viewModel.colorTypeTabs.collect { tabAdapter.submitList(it) } } launch { colorsViewModel.colorTypeTabs.collect { tabAdapter.submitList(it) } } launch { viewModel.colorTypeTabSubheader.collect { subhead.text = it } } launch { colorsViewModel.colorTypeTabSubheader.collect { subhead.text = it } } launch { viewModel.colorOptions.collect { colorOptions -> colorsViewModel.colorOptions.collect { colorOptions -> colorsAdapter.setItems(colorOptions) { var indexToFocus = colorOptions.indexOfFirst { it.isSelected.value } indexToFocus = if (indexToFocus < 0) 0 else indexToFocus Loading @@ -143,12 +145,25 @@ object ColorsFloatingSheetBinder { } launch { viewModel.previewingColorOption.collect { colorOption -> if (colorOption != null) { combine( colorsViewModel.previewingColorOption, colorsViewModel.selectedColorOption, darkModeViewModel.overridingIsDarkMode, ::Triple, ) .collect { (previewColor, selectedColor, overridingIsDarkMode) -> if (previewColor != null || overridingIsDarkMode != null) { val previewColorOption = previewColor ?: selectedColor val previewIsDarkMode = overridingIsDarkMode ?: view.resources.configuration.isNightModeActive previewColorOption?.let { colorUpdateViewModel.previewColors( colorOption.seedColor, colorOption.style, previewColorOption.seedColor, previewColorOption.style, previewIsDarkMode, ) } } else colorUpdateViewModel.resetPreview() } } Loading