Use ClockPickerConfig.isReactiveToTone everywhere it's required
Bug: 386083997
Flag: NONE Api Bugfix
Test: Manually checked tone slider
Change-Id: I67ed374ff952e9e1e3e1e5c51dedb719f8960adf
diff --git a/src/com/android/customization/module/CustomizationInjector.kt b/src/com/android/customization/module/CustomizationInjector.kt
index ca42ef3..19cac97 100644
--- a/src/com/android/customization/module/CustomizationInjector.kt
+++ b/src/com/android/customization/module/CustomizationInjector.kt
@@ -31,7 +31,7 @@
fun getCustomizationPreferences(context: Context): CustomizationPreferences
fun getKeyguardQuickAffordancePickerInteractor(
- context: Context,
+ context: Context
): KeyguardQuickAffordancePickerInteractor
fun getColorPickerViewModelFactory(context: Context): ColorPickerViewModel.Factory
@@ -47,6 +47,5 @@
fun getClockSettingsViewModelFactory(
context: Context,
wallpaperColorsRepository: WallpaperColorsRepository,
- clockViewFactory: ClockViewFactory,
): ClockSettingsViewModel.Factory
}
diff --git a/src/com/android/customization/module/ThemePickerInjector.kt b/src/com/android/customization/module/ThemePickerInjector.kt
index ae412ed..b577e43 100644
--- a/src/com/android/customization/module/ThemePickerInjector.kt
+++ b/src/com/android/customization/module/ThemePickerInjector.kt
@@ -378,7 +378,6 @@
override fun getClockSettingsViewModelFactory(
context: Context,
wallpaperColorsRepository: WallpaperColorsRepository,
- clockViewFactory: ClockViewFactory,
): ClockSettingsViewModel.Factory {
return clockSettingsViewModelFactory
?: ClockSettingsViewModel.Factory(
@@ -387,8 +386,7 @@
colorPickerInteractor.get(),
getUserEventLogger(),
) { clockId ->
- clockId?.let { clockViewFactory.getController(clockId).config.isReactiveToTone }
- ?: false
+ clockId?.let { clockPickerInteractor.get().isReactiveToTone(it) } ?: false
}
.also { clockSettingsViewModelFactory = it }
}
diff --git a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
index 710a1da..9690880 100644
--- a/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
+++ b/src/com/android/customization/picker/clock/data/repository/ClockPickerRepository.kt
@@ -21,6 +21,7 @@
import com.android.customization.picker.clock.shared.ClockSize
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import com.android.systemui.plugins.clocks.ClockFontAxisSetting
+import com.android.systemui.plugins.clocks.ClockId
import kotlinx.coroutines.flow.Flow
/**
@@ -52,4 +53,6 @@
suspend fun setClockSize(size: ClockSize)
suspend fun setClockFontAxes(axisSettings: List<ClockFontAxisSetting>)
+
+ fun isReactiveToTone(clockId: ClockId): Boolean?
}
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 90bb6e6..9508fa1 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,7 @@
import com.android.customization.picker.clock.shared.model.ClockMetadataModel
import com.android.systemui.plugins.clocks.ClockFontAxis
import com.android.systemui.plugins.clocks.ClockFontAxisSetting
+import com.android.systemui.plugins.clocks.ClockId
import com.android.systemui.plugins.clocks.ClockMetadata
import com.android.systemui.shared.clocks.ClockRegistry
import com.android.systemui.shared.settings.data.repository.SecureSettingsRepository
@@ -195,6 +196,10 @@
}
}
+ override fun isReactiveToTone(clockId: ClockId): Boolean? {
+ return registry.getClockPickerConfig(clockId)?.isReactiveToTone
+ }
+
private fun JSONObject.getSelectedColorId(): String? {
return if (this.isNull(KEY_METADATA_SELECTED_COLOR_ID)) {
null
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 678de5e..7996055 100644
--- a/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
+++ b/src/com/android/customization/picker/clock/domain/interactor/ClockPickerInteractor.kt
@@ -63,6 +63,8 @@
val selectedClockSize: Flow<ClockSize> = repository.selectedClockSize
+ fun isReactiveToTone(clockId: String) = repository.isReactiveToTone(clockId)
+
suspend fun setSelectedClock(clockId: String) {
// Use the [clockId] to override saved clock id, since it might not be updated in time
setClockOption(ClockSnapshotModel(clockId = clockId))
diff --git a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
index b66150f..d4118c0 100644
--- a/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
+++ b/src/com/android/customization/picker/clock/ui/fragment/ClockSettingsFragment.kt
@@ -57,14 +57,9 @@
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
- savedInstanceState: Bundle?
+ savedInstanceState: Bundle?,
): View {
- val view =
- inflater.inflate(
- R.layout.fragment_clock_settings,
- container,
- false,
- )
+ val view = inflater.inflate(R.layout.fragment_clock_settings, container, false)
ViewCompat.setOnApplyWindowInsetsListener(view) { v, windowInsets ->
val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
v.updateLayoutParams<MarginLayoutParams> {
@@ -93,21 +88,18 @@
authority =
resources.getString(
com.android.wallpaper.R.string
- .lock_screen_preview_provider_authority,
+ .lock_screen_preview_provider_authority
),
),
wallpaperInfoProvider = { forceReload ->
suspendCancellableCoroutine { continuation ->
injector
.getCurrentWallpaperInfoFactory(context)
- .createCurrentWallpaperInfos(
- context,
- forceReload,
- ) { homeWallpaper, lockWallpaper, _ ->
- continuation.resume(
- lockWallpaper ?: homeWallpaper,
- null,
- )
+ .createCurrentWallpaperInfos(context, forceReload) {
+ homeWallpaper,
+ lockWallpaper,
+ _ ->
+ continuation.resume(lockWallpaper ?: homeWallpaper, null)
}
}
},
@@ -118,10 +110,7 @@
Bundle().apply {
// Hide the clock from the system UI rendered preview so we can
// place the carousel on top of it.
- putBoolean(
- ClockPreviewConstants.KEY_HIDE_CLOCK,
- true,
- )
+ putBoolean(ClockPreviewConstants.KEY_HIDE_CLOCK, true)
}
},
wallpaperInteractor = injector.getWallpaperInteractor(requireContext()),
@@ -139,7 +128,6 @@
injector.getClockSettingsViewModelFactory(
context,
injector.getWallpaperColorsRepository(),
- injector.getClockViewFactory(activity),
),
)
.get(),
@@ -159,7 +147,7 @@
override fun getToolbarTextColor(): Int {
return ContextCompat.getColor(
requireContext(),
- com.android.wallpaper.R.color.system_on_surface
+ com.android.wallpaper.R.color.system_on_surface,
)
}
}
diff --git a/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt b/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
index 3d52f86..102d8ca 100644
--- a/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
+++ b/tests/common/src/com/android/customization/testing/TestCustomizationInjector.kt
@@ -104,7 +104,6 @@
override fun getClockSettingsViewModelFactory(
context: Context,
wallpaperColorsRepository: WallpaperColorsRepository,
- clockViewFactory: ClockViewFactory,
): ClockSettingsViewModel.Factory {
throw UnsupportedOperationException("not implemented")
}
diff --git a/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt b/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
index 0e5a88e..638aa7c 100644
--- a/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
+++ b/tests/robotests/src/com/android/customization/picker/clock/data/repository/FakeClockPickerRepository.kt
@@ -25,6 +25,7 @@
import com.android.systemui.plugins.clocks.AxisType
import com.android.systemui.plugins.clocks.ClockFontAxis
import com.android.systemui.plugins.clocks.ClockFontAxisSetting
+import com.android.systemui.plugins.clocks.ClockId
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
@@ -88,6 +89,8 @@
fontAxes.update { fontAxes -> ClockFontAxis.merge(fontAxes, axisSettings) }
}
+ override fun isReactiveToTone(clockId: ClockId): Boolean? = true
+
companion object {
fun buildFakeAxis(i: Int): ClockFontAxis {
return ClockFontAxis(