Merge "Inject clock related components (2/3)" into main
diff --git a/src/com/android/customization/module/CustomizationInjector.kt b/src/com/android/customization/module/CustomizationInjector.kt
index 2696b97..ca42ef3 100644
--- a/src/com/android/customization/module/CustomizationInjector.kt
+++ b/src/com/android/customization/module/CustomizationInjector.kt
@@ -24,7 +24,6 @@
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
-import com.android.systemui.shared.clocks.ClockRegistry
import com.android.wallpaper.module.Injector
import com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository
@@ -35,10 +34,6 @@
context: Context,
): KeyguardQuickAffordancePickerInteractor
- fun getClockRegistry(context: Context): ClockRegistry?
-
- fun getClockPickerInteractor(context: Context): ClockPickerInteractor
-
fun getColorPickerViewModelFactory(context: Context): ColorPickerViewModel.Factory
fun getClockCarouselViewModelFactory(
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index e62235c..f25ff3d 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -38,8 +38,6 @@
import com.android.customization.model.themedicon.domain.interactor.ThemedIconInteractor
import com.android.customization.model.themedicon.domain.interactor.ThemedIconSnapshotRestorer
import com.android.customization.module.logging.ThemesUserEventLogger
-import com.android.customization.picker.clock.data.repository.ClockPickerRepositoryImpl
-import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
import com.android.customization.picker.clock.domain.interactor.ClockPickerInteractor
import com.android.customization.picker.clock.domain.interactor.ClockPickerSnapshotRestorer
import com.android.customization.picker.clock.ui.view.ClockViewFactory
@@ -62,6 +60,7 @@
import com.android.systemui.shared.clocks.ClockRegistry
import com.android.systemui.shared.notifications.data.repository.NotificationSettingsRepository
import com.android.systemui.shared.notifications.domain.interactor.NotificationSettingsInteractor
+import com.android.systemui.shared.settings.data.repository.SecureSettingsRepository
import com.android.wallpaper.config.BaseFlags
import com.android.wallpaper.module.CustomizationSections
import com.android.wallpaper.module.FragmentFactory
@@ -86,7 +85,6 @@
@Inject
constructor(
@MainDispatcher private val mainScope: CoroutineScope,
- @MainDispatcher private val mainDispatcher: CoroutineDispatcher,
@BackgroundDispatcher private val bgScope: CoroutineScope,
@BackgroundDispatcher private val bgDispatcher: CoroutineDispatcher,
) : WallpaperPicker2Injector(mainScope, bgDispatcher), CustomizationInjector {
@@ -97,10 +95,8 @@
null
private var fragmentFactory: FragmentFactory? = null
private var notificationsSnapshotRestorer: NotificationsSnapshotRestorer? = null
- private var clockPickerInteractor: ClockPickerInteractor? = null
private var clockCarouselViewModelFactory: ClockCarouselViewModel.Factory? = null
private var clockViewFactory: ClockViewFactory? = null
- private var clockPickerSnapshotRestorer: ClockPickerSnapshotRestorer? = null
private var notificationSettingsInteractor: NotificationSettingsInteractor? = null
private var notificationSectionViewModelFactory: NotificationSectionViewModel.Factory? = null
private var colorPickerViewModelFactory: ColorPickerViewModel.Factory? = null
@@ -112,7 +108,6 @@
private var gridInteractor: GridInteractor? = null
private var gridSnapshotRestorer: GridSnapshotRestorer? = null
private var gridScreenViewModelFactory: GridScreenViewModel.Factory? = null
- private var clockRegistryProvider: ClockRegistryProvider? = null
// Injected objects, sorted by type
@Inject
@@ -126,6 +121,10 @@
@Inject lateinit var themesUserEventLogger: Lazy<ThemesUserEventLogger>
@Inject lateinit var colorPickerInteractor: Lazy<ColorPickerInteractor>
@Inject lateinit var colorPickerSnapshotRestorer: Lazy<ColorPickerSnapshotRestorer>
+ @Inject lateinit var clockRegistry: Lazy<ClockRegistry>
+ @Inject lateinit var secureSettingsRepository: Lazy<SecureSettingsRepository>
+ @Inject lateinit var clockPickerInteractor: Lazy<ClockPickerInteractor>
+ @Inject lateinit var clockPickerSnapshotRestorer: Lazy<ClockPickerSnapshotRestorer>
override fun getCustomizationSections(activity: ComponentActivity): CustomizationSections {
val appContext = activity.applicationContext
@@ -139,7 +138,7 @@
getNotificationSectionViewModelFactory(appContext),
getFlags(),
getClockCarouselViewModelFactory(
- interactor = getClockPickerInteractor(appContext),
+ interactor = clockPickerInteractor.get(),
clockViewFactory = clockViewFactory,
resources = resources,
),
@@ -188,7 +187,7 @@
this[KEY_THEMED_ICON_SNAPSHOT_RESTORER] = getThemedIconSnapshotRestorer(context)
this[KEY_APP_GRID_SNAPSHOT_RESTORER] = getGridSnapshotRestorer(context)
this[KEY_COLOR_PICKER_SNAPSHOT_RESTORER] = colorPickerSnapshotRestorer.get()
- this[KEY_CLOCKS_SNAPSHOT_RESTORER] = getClockPickerSnapshotRestorer(context)
+ this[KEY_CLOCKS_SNAPSHOT_RESTORER] = clockPickerSnapshotRestorer.get()
}
}
@@ -260,7 +259,7 @@
NotificationSettingsRepository(
scope = getApplicationCoroutineScope(),
backgroundDispatcher = bgDispatcher,
- secureSettingsRepository = getSecureSettingsRepository(context),
+ secureSettingsRepository = secureSettingsRepository.get(),
),
)
.also { notificationSettingsInteractor = it }
@@ -278,36 +277,6 @@
.also { notificationsSnapshotRestorer = it }
}
- override fun getClockRegistry(context: Context): ClockRegistry {
- return (clockRegistryProvider
- ?: ClockRegistryProvider(
- context = context.applicationContext,
- coroutineScope = getApplicationCoroutineScope(),
- mainDispatcher = mainDispatcher,
- backgroundDispatcher = bgDispatcher,
- )
- .also { clockRegistryProvider = it })
- .get()
- }
-
- override fun getClockPickerInteractor(
- context: Context,
- ): ClockPickerInteractor {
- val appContext = context.applicationContext
- return clockPickerInteractor
- ?: ClockPickerInteractor(
- repository =
- ClockPickerRepositoryImpl(
- secureSettingsRepository = getSecureSettingsRepository(appContext),
- registry = getClockRegistry(appContext),
- scope = getApplicationCoroutineScope(),
- mainDispatcher = mainDispatcher,
- ),
- snapshotRestorer = { getClockPickerSnapshotRestorer(appContext) },
- )
- .also { clockPickerInteractor = it }
- }
-
override fun getClockCarouselViewModelFactory(
interactor: ClockPickerInteractor,
clockViewFactory: ClockViewFactory,
@@ -331,7 +300,7 @@
ScreenSizeCalculator.getInstance()
.getScreenSize(activity.windowManager.defaultDisplay),
WallpaperManager.getInstance(activity.applicationContext),
- getClockRegistry(activity.applicationContext),
+ clockRegistry.get(),
)
.also {
clockViewFactory = it
@@ -347,20 +316,11 @@
}
}
- private fun getClockPickerSnapshotRestorer(
- context: Context,
- ): ClockPickerSnapshotRestorer {
- return clockPickerSnapshotRestorer
- ?: ClockPickerSnapshotRestorer(getClockPickerInteractor(context)).also {
- clockPickerSnapshotRestorer = it
- }
- }
-
override fun getWallpaperColorResources(
wallpaperColors: WallpaperColors,
context: Context
): WallpaperColorResources {
- return ThemedWallpaperColorResources(wallpaperColors, getSecureSettingsRepository(context))
+ return ThemedWallpaperColorResources(wallpaperColors, secureSettingsRepository.get())
}
override fun getColorPickerViewModelFactory(context: Context): ColorPickerViewModel.Factory {
@@ -424,7 +384,7 @@
return clockSettingsViewModelFactory
?: ClockSettingsViewModel.Factory(
context.applicationContext,
- getClockPickerInteractor(context),
+ clockPickerInteractor.get(),
colorPickerInteractor.get(),
getUserEventLogger(),
) { clockId ->
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
index 4a4aae1..6bb6596 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepositoryImpl.kt
@@ -24,6 +24,9 @@
import com.android.systemui.plugins.clocks.ClockMetadata
import com.android.systemui.shared.clocks.ClockRegistry
import com.android.systemui.shared.settings.data.repository.SecureSettingsRepository
+import com.android.wallpaper.picker.di.modules.MainDispatcher
+import javax.inject.Inject
+import javax.inject.Singleton
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -42,11 +45,14 @@
import org.json.JSONObject
/** Implementation of [ClockPickerRepository], using [ClockRegistry]. */
-class ClockPickerRepositoryImpl(
+@Singleton
+class ClockPickerRepositoryImpl
+@Inject
+constructor(
private val secureSettingsRepository: SecureSettingsRepository,
private val registry: ClockRegistry,
- scope: CoroutineScope,
- mainDispatcher: CoroutineDispatcher,
+ @MainDispatcher mainScope: CoroutineScope,
+ @MainDispatcher mainDispatcher: CoroutineDispatcher,
) : ClockPickerRepository {
@OptIn(ExperimentalCoroutinesApi::class)
@@ -94,7 +100,8 @@
?.toModel(
isSelected = true,
selectedColorId = metadata?.getSelectedColorId(),
- colorTone = metadata?.getColorTone()
+ colorTone =
+ metadata?.getColorTone()
?: ClockMetadataModel.DEFAULT_COLOR_TONE_PROGRESS,
seedColor = registry.seedColor
)
@@ -151,7 +158,7 @@
.map { isDynamic -> if (isDynamic) ClockSize.DYNAMIC else ClockSize.SMALL }
.distinctUntilChanged()
.shareIn(
- scope = scope,
+ scope = mainScope,
started = SharingStarted.Eagerly,
replay = 1,
)
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
index 30887e5..b1f41c5 100644
--- a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
@@ -23,7 +23,8 @@
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import com.android.customization.picker.clock.shared.model.ClockSnapshotModel
-import javax.inject.Provider
+import javax.inject.Inject
+import javax.inject.Singleton
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.firstOrNull
@@ -33,9 +34,12 @@
* Interactor for accessing application clock settings, as well as selecting and configuring custom
* clocks.
*/
-class ClockPickerInteractor(
+@Singleton
+class ClockPickerInteractor
+@Inject
+constructor(
private val repository: ClockPickerRepository,
- private val snapshotRestorer: Provider<ClockPickerSnapshotRestorer>,
+ private val snapshotRestorer: ClockPickerSnapshotRestorer,
) {
val allClocks: Flow<List<ClockMetadataModel>> = repository.allClocks
@@ -78,7 +82,7 @@
setClockOption(ClockSnapshotModel(clockSize = size))
}
- suspend fun setClockOption(clockSnapshotModel: ClockSnapshotModel) {
+ private suspend fun setClockOption(clockSnapshotModel: ClockSnapshotModel) {
// [ClockCarouselViewModel] is monitoring the [ClockPickerInteractor.setSelectedClock] job,
// so it needs to finish last.
storeCurrentClockOption(clockSnapshotModel)
@@ -94,6 +98,11 @@
clockSnapshotModel.clockId?.let { repository.setSelectedClock(it) }
}
+ private suspend fun storeCurrentClockOption(clockSnapshotModel: ClockSnapshotModel) {
+ val option = getCurrentClockToRestore(clockSnapshotModel)
+ snapshotRestorer.storeSnapshot(option)
+ }
+
/**
* Gets the [ClockSnapshotModel] from the storage and override with [latestOption].
*
@@ -103,19 +112,16 @@
* [selectedColorId] and [seedColor] have null state collide with nullable type, but we know
* they are presented whenever there's a [colorToneProgress].
*/
- suspend fun getCurrentClockToRestore(latestOption: ClockSnapshotModel? = null) =
+ private suspend fun getCurrentClockToRestore(latestOption: ClockSnapshotModel) =
ClockSnapshotModel(
- clockId = latestOption?.clockId ?: selectedClockId.firstOrNull(),
- clockSize = latestOption?.clockSize ?: selectedClockSize.firstOrNull(),
- colorToneProgress = latestOption?.colorToneProgress ?: colorToneProgress.firstOrNull(),
- selectedColorId = latestOption?.colorToneProgress?.let { latestOption.selectedColorId }
+ clockId = latestOption.clockId ?: selectedClockId.firstOrNull(),
+ clockSize = latestOption.clockSize ?: selectedClockSize.firstOrNull(),
+ colorToneProgress = latestOption.colorToneProgress ?: colorToneProgress.firstOrNull(),
+ selectedColorId =
+ latestOption.colorToneProgress?.let { latestOption.selectedColorId }
?: selectedColorId.firstOrNull(),
- seedColor = latestOption?.colorToneProgress?.let { latestOption.seedColor }
+ seedColor =
+ latestOption.colorToneProgress?.let { latestOption.seedColor }
?: seedColor.firstOrNull(),
)
-
- private suspend fun storeCurrentClockOption(clockSnapshotModel: ClockSnapshotModel) {
- val option = getCurrentClockToRestore(clockSnapshotModel)
- snapshotRestorer.get().storeSnapshot(option)
- }
}
diff --git a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt
index ecaf10f..322c724 100644
--- a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerSnapshotRestorer.kt
@@ -19,14 +19,22 @@
import android.text.TextUtils
import android.util.Log
+import com.android.customization.picker.clock.data.repository.ClockPickerRepository
import com.android.customization.picker.clock.shared.model.ClockSnapshotModel
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
+import javax.inject.Inject
+import javax.inject.Singleton
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.firstOrNull
+import kotlinx.coroutines.flow.map
/** Handles state restoration for clocks. */
-class ClockPickerSnapshotRestorer(private val interactor: ClockPickerInteractor) :
- SnapshotRestorer {
+@Singleton
+class ClockPickerSnapshotRestorer
+@Inject
+constructor(private val repository: ClockPickerRepository) : SnapshotRestorer {
private var snapshotStore: SnapshotStore = SnapshotStore.NOOP
private var originalOption: ClockSnapshotModel? = null
@@ -34,7 +42,23 @@
store: SnapshotStore,
): RestorableSnapshot {
snapshotStore = store
- originalOption = interactor.getCurrentClockToRestore()
+ originalOption =
+ ClockSnapshotModel(
+ clockId =
+ repository.selectedClock
+ .map { clock -> clock.clockId }
+ .distinctUntilChanged()
+ .firstOrNull(),
+ clockSize = repository.selectedClockSize.firstOrNull(),
+ colorToneProgress =
+ repository.selectedClock.map { clock -> clock.colorToneProgress }.firstOrNull(),
+ selectedColorId =
+ repository.selectedClock
+ .map { clock -> clock.selectedColorId }
+ .distinctUntilChanged()
+ .firstOrNull(),
+ seedColor = repository.selectedClock.map { clock -> clock.seedColor }.firstOrNull(),
+ )
return snapshot(originalOption)
}
@@ -58,7 +82,15 @@
)
}
- interactor.setClockOption(optionToRestore)
+ optionToRestore.clockSize?.let { repository.setClockSize(it) }
+ optionToRestore.colorToneProgress?.let {
+ repository.setClockColor(
+ selectedColorId = optionToRestore.selectedColorId,
+ colorToneProgress = optionToRestore.colorToneProgress,
+ seedColor = optionToRestore.seedColor
+ )
+ }
+ optionToRestore.clockId?.let { repository.setSelectedClock(it) }
}
}
diff --git a/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt b/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
index 271f925..df4f828 100644
--- a/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
+++ b/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
@@ -23,10 +23,16 @@
import com.android.customization.module.ThemePickerInjector
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.module.logging.ThemesUserEventLoggerImpl
+import com.android.customization.picker.clock.data.repository.ClockPickerRepository
+import com.android.customization.picker.clock.data.repository.ClockPickerRepositoryImpl
+import com.android.customization.picker.clock.data.repository.ClockRegistryProvider
import com.android.customization.picker.color.data.repository.ColorPickerRepository
import com.android.customization.picker.color.data.repository.ColorPickerRepositoryImpl
+import com.android.systemui.shared.clocks.ClockRegistry
import com.android.systemui.shared.customization.data.content.CustomizationProviderClient
import com.android.systemui.shared.customization.data.content.CustomizationProviderClientImpl
+import com.android.systemui.shared.settings.data.repository.SecureSettingsRepository
+import com.android.systemui.shared.settings.data.repository.SecureSettingsRepositoryImpl
import com.android.wallpaper.customization.ui.binder.ThemePickerCustomizationOptionsBinder
import com.android.wallpaper.module.DefaultPartnerProvider
import com.android.wallpaper.module.PartnerProvider
@@ -34,6 +40,7 @@
import com.android.wallpaper.module.logging.UserEventLogger
import com.android.wallpaper.picker.customization.ui.binder.CustomizationOptionsBinder
import com.android.wallpaper.picker.di.modules.BackgroundDispatcher
+import com.android.wallpaper.picker.di.modules.MainDispatcher
import com.android.wallpaper.picker.preview.ui.util.DefaultImageEffectDialogUtil
import com.android.wallpaper.picker.preview.ui.util.ImageEffectDialogUtil
import com.android.wallpaper.util.converter.DefaultWallpaperModelFactory
@@ -46,6 +53,7 @@
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.CoroutineScope
@Module
@InstallIn(SingletonComponent::class)
@@ -92,6 +100,10 @@
impl: DefaultCustomizationPreferences
): WallpaperPreferences
+ @Binds
+ @Singleton
+ abstract fun bindClockPickerRepository(impl: ClockPickerRepositoryImpl): ClockPickerRepository
+
companion object {
@Provides
@@ -110,5 +122,31 @@
): CustomizationProviderClient {
return CustomizationProviderClientImpl(context, bgDispatcher)
}
+
+ @Provides
+ @Singleton
+ fun provideSecureSettingsRepository(
+ @ApplicationContext context: Context,
+ @BackgroundDispatcher bgDispatcher: CoroutineDispatcher,
+ ): SecureSettingsRepository {
+ return SecureSettingsRepositoryImpl(context.contentResolver, bgDispatcher)
+ }
+
+ @Provides
+ @Singleton
+ fun provideClockRegistry(
+ @ApplicationContext context: Context,
+ @MainDispatcher mainScope: CoroutineScope,
+ @MainDispatcher mainDispatcher: CoroutineDispatcher,
+ @BackgroundDispatcher bgDispatcher: CoroutineDispatcher,
+ ): ClockRegistry {
+ return ClockRegistryProvider(
+ context = context,
+ coroutineScope = mainScope,
+ mainDispatcher = mainDispatcher,
+ backgroundDispatcher = bgDispatcher,
+ )
+ .get()
+ }
}
}
diff --git a/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt b/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
index c0ae6f0..c988424 100644
--- a/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
+++ b/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
@@ -14,7 +14,6 @@
import com.android.customization.picker.clock.ui.viewmodel.ClockSettingsViewModel
import com.android.customization.picker.color.ui.viewmodel.ColorPickerViewModel
import com.android.customization.picker.quickaffordance.domain.interactor.KeyguardQuickAffordancePickerInteractor
-import com.android.systemui.shared.clocks.ClockRegistry
import com.android.wallpaper.module.logging.UserEventLogger
import com.android.wallpaper.picker.customization.data.repository.WallpaperColorsRepository
import com.android.wallpaper.testing.TestInjector
@@ -42,14 +41,6 @@
throw UnsupportedOperationException("not implemented")
}
- override fun getClockRegistry(context: Context): ClockRegistry? {
- throw UnsupportedOperationException("not implemented")
- }
-
- override fun getClockPickerInteractor(context: Context): ClockPickerInteractor {
- throw UnsupportedOperationException("not implemented")
- }
-
override fun getWallpaperColorResources(
wallpaperColors: WallpaperColors,
context: Context
diff --git a/tests/robotests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt b/tests/robotests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
index c8e39be..478b795 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractorTest.kt
@@ -30,14 +30,14 @@
fun setUp() {
val testDispatcher = StandardTestDispatcher()
Dispatchers.setMain(testDispatcher)
+ val repository = FakeClockPickerRepository()
underTest =
ClockPickerInteractor(
- repository = FakeClockPickerRepository(),
- snapshotRestorer = {
- ClockPickerSnapshotRestorer(interactor = underTest).apply {
+ repository = repository,
+ snapshotRestorer =
+ ClockPickerSnapshotRestorer(repository = repository).apply {
runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
- }
- },
+ },
)
}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
index 46afe35..44a1fbe 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockCarouselViewModelTest.kt
@@ -100,11 +100,10 @@
private fun getClockPickerInteractor(repository: ClockPickerRepository): ClockPickerInteractor {
return ClockPickerInteractor(
repository = repository,
- snapshotRestorer = {
- ClockPickerSnapshotRestorer(interactor = interactor).apply {
+ snapshotRestorer =
+ ClockPickerSnapshotRestorer(repository = repository).apply {
runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
- }
- }
+ },
)
.also { interactor = it }
}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
index 9d82fc1..dd68589 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/ui/viewmodel/ClockSettingsViewModelTest.kt
@@ -61,14 +61,14 @@
Dispatchers.setMain(testDispatcher)
context = InstrumentationRegistry.getInstrumentation().targetContext
testScope = TestScope(testDispatcher)
+ val repository = FakeClockPickerRepository()
clockPickerInteractor =
ClockPickerInteractor(
- repository = FakeClockPickerRepository(),
- snapshotRestorer = {
- ClockPickerSnapshotRestorer(interactor = clockPickerInteractor).apply {
+ repository = repository,
+ snapshotRestorer =
+ ClockPickerSnapshotRestorer(repository = repository).apply {
runBlocking { setUpSnapshotRestorer(store = FakeSnapshotStore()) }
- }
- },
+ },
)
val colorPickerRepository = FakeColorPickerRepository(context = context)
colorPickerInteractor =