diff options
| author | George Zacharia <george.zcharia@gmail.com> | 2023-07-02 14:33:47 +0530 |
|---|---|---|
| committer | George Zacharia <george.zcharia@gmail.com> | 2023-07-02 14:33:47 +0530 |
| commit | 913b11dfd2b52e445c773838c766f0d4f8ba0d05 (patch) | |
| tree | adb07f584833593bad6fca5495927c276ceef531 /src/com/android/customization/picker/clock/domain/interactor | |
| parent | b2d9a4961b3804f79c151630421d480846fd0176 (diff) | |
| parent | cc6f666d7c0bc3b6927f6e9e3c7e46123be6263d (diff) | |
Merge tag 'android-13.0.0_r52' of https://android.googlesource.com/platform/packages/apps/ThemePicker into HEADHEADt13.0
Android 13.0.0 Release 52 (TQ3A.230605.012)
Change-Id: I2cea11fa2f1f02fbd3c9d21cfc1697a79d42a5b7
Diffstat (limited to 'src/com/android/customization/picker/clock/domain/interactor')
| -rw-r--r-- | src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt | 65 | ||||
| -rw-r--r-- | src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt | 5 |
2 files changed, 68 insertions, 2 deletions
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt new file mode 100644 index 00000000..6f3657ab --- /dev/null +++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.android.customization.picker.clock.domain.interactor + +import androidx.annotation.ColorInt +import androidx.annotation.IntRange +import com.android.customization.picker.clock.data.repository.ClockPickerRepository +import com.android.customization.picker.clock.shared.ClockSize +import com.android.customization.picker.clock.shared.model.ClockMetadataModel +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.distinctUntilChanged +import kotlinx.coroutines.flow.map + +/** + * Interactor for accessing application clock settings, as well as selecting and configuring custom + * clocks. + */ +class ClockPickerInteractor(private val repository: ClockPickerRepository) { + + val allClocks: Flow<List<ClockMetadataModel>> = repository.allClocks + + val selectedClockId: Flow<String> = + repository.selectedClock.map { clock -> clock.clockId }.distinctUntilChanged() + + val selectedColorId: Flow<String?> = + repository.selectedClock.map { clock -> clock.selectedColorId }.distinctUntilChanged() + + val colorToneProgress: Flow<Int> = + repository.selectedClock.map { clock -> clock.colorToneProgress } + + val seedColor: Flow<Int?> = repository.selectedClock.map { clock -> clock.seedColor } + + val selectedClockSize: Flow<ClockSize> = repository.selectedClockSize + + fun setSelectedClock(clockId: String) { + repository.setSelectedClock(clockId) + } + + fun setClockColor( + selectedColorId: String?, + @IntRange(from = 0, to = 100) colorToneProgress: Int, + @ColorInt seedColor: Int?, + ) { + repository.setClockColor(selectedColorId, colorToneProgress, seedColor) + } + + suspend fun setClockSize(size: ClockSize) { + repository.setClockSize(size) + } +} diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt b/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt index 63b4a9ba..7bb3232b 100644 --- a/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt +++ b/src/com/android/customization/picker/clock/domain/interactor/ClocksSnapshotRestorer.kt @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 The Android Open Source Project + * Copyright (C) 2023 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,12 +18,13 @@ package com.android.customization.picker.clock.domain.interactor import com.android.wallpaper.picker.undo.domain.interactor.SnapshotRestorer +import com.android.wallpaper.picker.undo.domain.interactor.SnapshotStore import com.android.wallpaper.picker.undo.shared.model.RestorableSnapshot /** Handles state restoration for clocks. */ class ClocksSnapshotRestorer : SnapshotRestorer { override suspend fun setUpSnapshotRestorer( - updater: (RestorableSnapshot) -> Unit, + store: SnapshotStore, ): RestorableSnapshot { // TODO(b/262924055): implement as part of the clock settings screen. return RestorableSnapshot(mapOf()) |
