Loading src/com/android/customization/picker/grid/data/repository/GridRepository2.kt +3 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch Loading @@ -54,7 +55,8 @@ constructor( val selectedGridOption: Flow<GridOptionModel?> = gridOptions.map { gridOptions -> gridOptions?.firstOrNull { it.isCurrent } } val isGridCustomizationAvailable = gridOptions.filterNotNull().map { it.size > 1 } val isGridCustomizationAvailable = gridOptions.filterNotNull().map { it.size > 1 }.distinctUntilChanged() suspend fun applySelectedOption(gridKey: String) = withContext(bgDispatcher) { Loading src/com/android/customization/picker/grid/domain/interactor/GridInteractor2.kt +2 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import javax.inject.Singleton @Singleton class GridInteractor2 @Inject constructor(private val repository: GridRepository2) { val isGridCustomizationAvailable = repository.isGridCustomizationAvailable val gridOptions = repository.gridOptions val selectedGridOption = repository.selectedGridOption Loading src/com/android/wallpaper/customization/ui/binder/ShapeGridFloatingSheetBinder.kt +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ object ShapeGridFloatingSheetBinder { lifecycleOwner: LifecycleOwner, backgroundDispatcher: CoroutineDispatcher, ) { val viewModel = optionsViewModel.shapeGridPickerViewModel val viewModel = optionsViewModel.fridPickerViewModel val isFloatingSheetActive = { optionsViewModel.selectedOption.value == GRID } val floatingSheetContainer = Loading src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +1 −2 Original line number Diff line number Diff line Loading @@ -332,8 +332,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } launch { optionsViewModel.shapeGridPickerViewModel.selectedGridOption.collect { gridOption -> optionsViewModel.fridPickerViewModel.selectedGridOption.collect { gridOption -> TextViewBinder.bind(optionShapeGridDescription, gridOption.text) gridOption.payload?.let { optionShapeGridIcon.setImageDrawable(it) } } Loading src/com/android/wallpaper/customization/ui/util/ThemePickerCustomizationOptionUtil.kt +38 −19 Original line number Diff line number Diff line Loading @@ -27,11 +27,13 @@ import com.android.customization.picker.mode.shared.util.DarkModeLifecycleUtil import com.android.themepicker.R import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.customization.ui.compose.ColorFloatingSheet import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsData import com.android.wallpaper.model.Screen import com.android.wallpaper.model.Screen.HOME_SCREEN import com.android.wallpaper.model.Screen.LOCK_SCREEN import com.android.wallpaper.picker.customization.ui.util.CustomizationOptionUtil import com.android.wallpaper.picker.customization.ui.util.DefaultCustomizationOptionUtil import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsData import dagger.hilt.android.qualifiers.ActivityContext import dagger.hilt.android.scopes.ActivityScoped import javax.inject.Inject Loading Loading @@ -63,14 +65,21 @@ constructor( } override fun getOptionEntries( customizationOptionsData: CustomizationOptionsData, screen: Screen, optionContainer: LinearLayout, layoutInflater: LayoutInflater, ): List<Pair<CustomizationOptionUtil.CustomizationOption, View>> { customizationOptionsData as ThemePickerCustomizationOptionsData val isKeyguardQuickAffordanceEnabled = BaseFlags.get().isKeyguardQuickAffordanceEnabled(optionContainer.context) val defaultOptionEntries = defaultCustomizationOptionUtil.getOptionEntries(screen, optionContainer, layoutInflater) defaultCustomizationOptionUtil.getOptionEntries( customizationOptionsData = customizationOptionsData, screen = screen, optionContainer = optionContainer, layoutInflater = layoutInflater, ) return when (screen) { LOCK_SCREEN -> buildList { Loading Loading @@ -157,6 +166,7 @@ constructor( false, ) ) if (customizationOptionsData.isGridCustomizationAvailable) { add( ThemePickerHomeCustomizationOption.GRID to layoutInflater.inflate( Loading @@ -168,13 +178,20 @@ constructor( } } } } override fun initFloatingSheet( customizationOptionsData: CustomizationOptionsData, bottomSheetContainer: FrameLayout, layoutInflater: LayoutInflater, ): Map<CustomizationOptionUtil.CustomizationOption, View> { customizationOptionsData as ThemePickerCustomizationOptionsData val map = defaultCustomizationOptionUtil.initFloatingSheet(bottomSheetContainer, layoutInflater) defaultCustomizationOptionUtil.initFloatingSheet( customizationOptionsData = customizationOptionsData, bottomSheetContainer = bottomSheetContainer, layoutInflater = layoutInflater, ) val isComposeRefactorEnabled = BaseFlags.get().isComposeRefactorEnabled() val isKeyguardQuickAffordanceEnabled = BaseFlags.get().isKeyguardQuickAffordanceEnabled(bottomSheetContainer.context) Loading Loading @@ -226,6 +243,7 @@ constructor( layoutInflater, ), ) if (customizationOptionsData.isGridCustomizationAvailable) { put( ThemePickerHomeCustomizationOption.GRID, inflateFloatingSheet( Loading @@ -237,6 +255,7 @@ constructor( ) } } } override fun createClockPreviewAndAddToParent( parentView: ViewGroup, Loading Loading
src/com/android/customization/picker/grid/data/repository/GridRepository2.kt +3 −1 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch Loading @@ -54,7 +55,8 @@ constructor( val selectedGridOption: Flow<GridOptionModel?> = gridOptions.map { gridOptions -> gridOptions?.firstOrNull { it.isCurrent } } val isGridCustomizationAvailable = gridOptions.filterNotNull().map { it.size > 1 } val isGridCustomizationAvailable = gridOptions.filterNotNull().map { it.size > 1 }.distinctUntilChanged() suspend fun applySelectedOption(gridKey: String) = withContext(bgDispatcher) { Loading
src/com/android/customization/picker/grid/domain/interactor/GridInteractor2.kt +2 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,8 @@ import javax.inject.Singleton @Singleton class GridInteractor2 @Inject constructor(private val repository: GridRepository2) { val isGridCustomizationAvailable = repository.isGridCustomizationAvailable val gridOptions = repository.gridOptions val selectedGridOption = repository.selectedGridOption Loading
src/com/android/wallpaper/customization/ui/binder/ShapeGridFloatingSheetBinder.kt +1 −1 Original line number Diff line number Diff line Loading @@ -49,7 +49,7 @@ object ShapeGridFloatingSheetBinder { lifecycleOwner: LifecycleOwner, backgroundDispatcher: CoroutineDispatcher, ) { val viewModel = optionsViewModel.shapeGridPickerViewModel val viewModel = optionsViewModel.fridPickerViewModel val isFloatingSheetActive = { optionsViewModel.selectedOption.value == GRID } val floatingSheetContainer = Loading
src/com/android/wallpaper/customization/ui/binder/ThemePickerCustomizationOptionBinder.kt +1 −2 Original line number Diff line number Diff line Loading @@ -332,8 +332,7 @@ constructor(private val defaultCustomizationOptionsBinder: DefaultCustomizationO } launch { optionsViewModel.shapeGridPickerViewModel.selectedGridOption.collect { gridOption -> optionsViewModel.fridPickerViewModel.selectedGridOption.collect { gridOption -> TextViewBinder.bind(optionShapeGridDescription, gridOption.text) gridOption.payload?.let { optionShapeGridIcon.setImageDrawable(it) } } Loading
src/com/android/wallpaper/customization/ui/util/ThemePickerCustomizationOptionUtil.kt +38 −19 Original line number Diff line number Diff line Loading @@ -27,11 +27,13 @@ import com.android.customization.picker.mode.shared.util.DarkModeLifecycleUtil import com.android.themepicker.R import com.android.wallpaper.config.BaseFlags import com.android.wallpaper.customization.ui.compose.ColorFloatingSheet import com.android.wallpaper.customization.ui.viewmodel.ThemePickerCustomizationOptionsData import com.android.wallpaper.model.Screen import com.android.wallpaper.model.Screen.HOME_SCREEN import com.android.wallpaper.model.Screen.LOCK_SCREEN import com.android.wallpaper.picker.customization.ui.util.CustomizationOptionUtil import com.android.wallpaper.picker.customization.ui.util.DefaultCustomizationOptionUtil import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsData import dagger.hilt.android.qualifiers.ActivityContext import dagger.hilt.android.scopes.ActivityScoped import javax.inject.Inject Loading Loading @@ -63,14 +65,21 @@ constructor( } override fun getOptionEntries( customizationOptionsData: CustomizationOptionsData, screen: Screen, optionContainer: LinearLayout, layoutInflater: LayoutInflater, ): List<Pair<CustomizationOptionUtil.CustomizationOption, View>> { customizationOptionsData as ThemePickerCustomizationOptionsData val isKeyguardQuickAffordanceEnabled = BaseFlags.get().isKeyguardQuickAffordanceEnabled(optionContainer.context) val defaultOptionEntries = defaultCustomizationOptionUtil.getOptionEntries(screen, optionContainer, layoutInflater) defaultCustomizationOptionUtil.getOptionEntries( customizationOptionsData = customizationOptionsData, screen = screen, optionContainer = optionContainer, layoutInflater = layoutInflater, ) return when (screen) { LOCK_SCREEN -> buildList { Loading Loading @@ -157,6 +166,7 @@ constructor( false, ) ) if (customizationOptionsData.isGridCustomizationAvailable) { add( ThemePickerHomeCustomizationOption.GRID to layoutInflater.inflate( Loading @@ -168,13 +178,20 @@ constructor( } } } } override fun initFloatingSheet( customizationOptionsData: CustomizationOptionsData, bottomSheetContainer: FrameLayout, layoutInflater: LayoutInflater, ): Map<CustomizationOptionUtil.CustomizationOption, View> { customizationOptionsData as ThemePickerCustomizationOptionsData val map = defaultCustomizationOptionUtil.initFloatingSheet(bottomSheetContainer, layoutInflater) defaultCustomizationOptionUtil.initFloatingSheet( customizationOptionsData = customizationOptionsData, bottomSheetContainer = bottomSheetContainer, layoutInflater = layoutInflater, ) val isComposeRefactorEnabled = BaseFlags.get().isComposeRefactorEnabled() val isKeyguardQuickAffordanceEnabled = BaseFlags.get().isKeyguardQuickAffordanceEnabled(bottomSheetContainer.context) Loading Loading @@ -226,6 +243,7 @@ constructor( layoutInflater, ), ) if (customizationOptionsData.isGridCustomizationAvailable) { put( ThemePickerHomeCustomizationOption.GRID, inflateFloatingSheet( Loading @@ -237,6 +255,7 @@ constructor( ) } } } override fun createClockPreviewAndAddToParent( parentView: ViewGroup, Loading