1 /* 2 * Copyright (C) 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.wallpaper.customization.ui.viewmodel 18 19 import com.android.wallpaper.customization.ui.util.ThemePickerCustomizationOptionUtil 20 import com.android.wallpaper.picker.customization.ui.viewmodel.CustomizationOptionsViewModel 21 import com.android.wallpaper.picker.customization.ui.viewmodel.DefaultCustomizationOptionsViewModel 22 import dagger.hilt.android.scopes.ViewModelScoped 23 import javax.inject.Inject 24 import kotlinx.coroutines.flow.Flow 25 import kotlinx.coroutines.flow.map 26 27 @ViewModelScoped 28 class ThemePickerCustomizationOptionsViewModel 29 @Inject 30 constructor( 31 private val defaultCustomizationOptionsViewModel: DefaultCustomizationOptionsViewModel 32 ) : CustomizationOptionsViewModel { 33 34 override val selectedOption = defaultCustomizationOptionsViewModel.selectedOption 35 deselectOptionnull36 override fun deselectOption(): Boolean = defaultCustomizationOptionsViewModel.deselectOption() 37 38 val onCustomizeClockClicked: Flow<(() -> Unit)?> = 39 selectedOption.map { 40 if (it == null) { 41 { 42 defaultCustomizationOptionsViewModel.selectOption( 43 ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption.CLOCK 44 ) 45 } 46 } else { 47 null 48 } 49 } 50 51 val onCustomizeShortcutClicked: Flow<(() -> Unit)?> = <lambda>null52 selectedOption.map { 53 if (it == null) { 54 { 55 defaultCustomizationOptionsViewModel.selectOption( 56 ThemePickerCustomizationOptionUtil.ThemePickerLockCustomizationOption 57 .SHORTCUTS 58 ) 59 } 60 } else { 61 null 62 } 63 } 64 } 65