Merge "Add strict_mode: false" into main
diff --git a/res/drawable/check_circle_grey_large.xml b/res/drawable/check_circle_grey_large.xml
deleted file mode 100644
index f22c910..0000000
--- a/res/drawable/check_circle_grey_large.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--
- Copyright (C) 2021 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.
--->
-<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item>
- <shape android:shape="oval">
- <size android:width="@dimen/center_check_size"
- android:height="@dimen/center_check_size" />
- <solid android:color="@color/color_accent_primary_variant" />
- </shape>
- </item>
- <item>
- <inset android:drawable="@drawable/ic_check_24dp"
- android:insetTop="@dimen/center_check_padding"
- android:insetRight="@dimen/center_check_padding"
- android:insetBottom="@dimen/center_check_padding"
- android:insetLeft="@dimen/center_check_padding"/>
- </item>
-</layer-list>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 4502fb6..8c2b406 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -35,7 +35,7 @@
<string name="clock_color_indigo" msgid="8910855386698452917">"Indigoa"</string>
<string name="clock_color_violet" msgid="3454503847169375826">"Bioleta"</string>
<string name="clock_color_gray" msgid="9221530636948859231">"Grisa"</string>
- <string name="clock_color_teal" msgid="7499223425741344251">"Anila"</string>
+ <string name="clock_color_teal" msgid="7499223425741344251">"Berde urdinxka"</string>
<string name="clock_size" msgid="5028923902364418263">"Tamaina"</string>
<string name="clock_size_dynamic" msgid="1023930312455061642">"Dinamikoa"</string>
<string name="clock_size_dynamic_description" msgid="2776620745774561662">"Erlojuaren tamaina pantaila blokeatuko edukiaren arabera aldatzen da"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 1677a27..9f12958 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -104,7 +104,7 @@
<string name="accessibility_custom_shape_title" msgid="7708408259374643129">"شکل سفارشی"</string>
<string name="accessibility_custom_name_title" msgid="5494460518085463262">"نام سبک سفارشی"</string>
<string name="accessibility_clock_slider_description" msgid="8374135133110681332">"شدت رنگ"</string>
- <string name="mode_title" msgid="2394873501427436055">"زمینه تیره"</string>
+ <string name="mode_title" msgid="2394873501427436055">"زمینه تاریک"</string>
<string name="mode_disabled_msg" msgid="9196245518435936512">"بهدلیل روشن بودن «بهینهسازی باتری» موقتاً غیرفعال شده است"</string>
<string name="mode_changed" msgid="2243581369395418584">"زمینه تغییر کرد"</string>
<string name="themed_icon_title" msgid="7312460430471956558">"نمادهای موضوعی"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 10210ef..abad9ec 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -128,7 +128,7 @@
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"Lokið"</string>
<string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"Flýtileiðir"</string>
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"Flýtileiðir"</string>
- <string name="color_contrast_section_title" msgid="7194809124718896091">"Birtuskil lita"</string>
+ <string name="color_contrast_section_title" msgid="7194809124718896091">"Litaskil"</string>
<string name="color_contrast_default_title" msgid="7954235103549276978">"Sjálfgefið"</string>
<string name="color_contrast_medium_title" msgid="8071574793250090215">"Miðlungs"</string>
<string name="color_contrast_high_title" msgid="5554685752479470200">"Mikil"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index b92850d..19762ef 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -128,7 +128,7 @@
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"រួចរាល់"</string>
<string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"ផ្លូវកាត់"</string>
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ផ្លូវកាត់"</string>
- <string name="color_contrast_section_title" msgid="7194809124718896091">"កម្រិតពណ៌"</string>
+ <string name="color_contrast_section_title" msgid="7194809124718896091">"កម្រិតរំលេចពណ៌"</string>
<string name="color_contrast_default_title" msgid="7954235103549276978">"លំនាំដើម"</string>
<string name="color_contrast_medium_title" msgid="8071574793250090215">"មធ្យម"</string>
<string name="color_contrast_high_title" msgid="5554685752479470200">"ខ្ពស់"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 5454f05..685f8f6 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -105,7 +105,7 @@
<string name="accessibility_custom_name_title" msgid="5494460518085463262">"ഇഷ്ടാനുസൃത സ്റ്റൈലിന്റെ പേര്"</string>
<string name="accessibility_clock_slider_description" msgid="8374135133110681332">"വർണ തീവ്രത"</string>
<string name="mode_title" msgid="2394873501427436055">"ഡാർക്ക് തീം"</string>
- <string name="mode_disabled_msg" msgid="9196245518435936512">"ബാറ്ററി ലാഭിക്കൽ കാരണം തൽക്കാലം പ്രവർത്തനരഹിതമാണ്"</string>
+ <string name="mode_disabled_msg" msgid="9196245518435936512">"ബാറ്ററി സേവർ കാരണം തൽക്കാലം പ്രവർത്തനരഹിതമാണ്"</string>
<string name="mode_changed" msgid="2243581369395418584">"തീം മാറ്റി"</string>
<string name="themed_icon_title" msgid="7312460430471956558">"തീമുള്ള ഐക്കണുകൾ"</string>
<string name="beta_title" msgid="8703819523760746458">"ബീറ്റ"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 61b98db..bc71e17 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -128,7 +128,7 @@
<string name="keyguard_affordance_enablement_dialog_dismiss_button" msgid="629754625264422508">"ပြီးပြီ"</string>
<string name="keyguard_quick_affordance_title" msgid="4242813186995735584">"ဖြတ်လမ်းလင့်ခ်"</string>
<string name="keyguard_quick_affordance_section_title" msgid="2806304242671717309">"ဖြတ်လမ်းလင့်ခ်"</string>
- <string name="color_contrast_section_title" msgid="7194809124718896091">"အရောင် အလင်းအမှောင်"</string>
+ <string name="color_contrast_section_title" msgid="7194809124718896091">"အရောင်ခြားနားမှု"</string>
<string name="color_contrast_default_title" msgid="7954235103549276978">"မူရင်း"</string>
<string name="color_contrast_medium_title" msgid="8071574793250090215">"အသင့်အတင့်"</string>
<string name="color_contrast_high_title" msgid="5554685752479470200">"များ"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index bc7e8e6..8e664ea 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -77,8 +77,8 @@
<string name="custom_theme_next" msgid="6235420097213197301">"अर्को"</string>
<string name="custom_theme_previous" msgid="4941132112640503022">"अघिल्लो"</string>
<string name="custom_theme" msgid="1618351922263478163">"रोजेको"</string>
- <string name="custom_theme_title" msgid="2192300350332693631">"आफू अनुकूल <xliff:g id="ID_1">%1$d</xliff:g>"</string>
- <string name="custom_theme_fragment_title" msgid="6615547284702040280">"आफू अनुकूल शैली"</string>
+ <string name="custom_theme_title" msgid="2192300350332693631">" कस्टम <xliff:g id="ID_1">%1$d</xliff:g>"</string>
+ <string name="custom_theme_fragment_title" msgid="6615547284702040280">" कस्टम शैली"</string>
<string name="custom_theme_delete" msgid="4744494663184126202">"मेट्नुहोस्"</string>
<string name="font_component_title" msgid="8800340833695292049">"फन्ट छनौट गर्नुहोस्"</string>
<string name="icon_component_title" msgid="5779787138399083903">"आइकनहरू छनौट गर्नुहोस्"</string>
@@ -86,7 +86,7 @@
<string name="shape_component_title" msgid="8366847436022025538">"आकार छनौट गर्नुहोस्"</string>
<string name="name_component_title" msgid="532425087968663437">"आफ्नो शैलीको नाम राख्नुहोस्"</string>
<string name="icon_component_label" msgid="2625784884001407944">"आइकनहरू <xliff:g id="ID_1">%1$d</xliff:g>"</string>
- <string name="delete_custom_theme_confirmation" msgid="4452137183628769394">"आफू अनुकूल शैली मेट्ने हो?"</string>
+ <string name="delete_custom_theme_confirmation" msgid="4452137183628769394">" कस्टम शैली मेट्ने हो?"</string>
<string name="delete_custom_theme_button" msgid="5102462988130208824">"मेट्नुहोस्"</string>
<string name="cancel" msgid="4651030493668562067">"रद्द गर्नुहोस्"</string>
<string name="set_theme_wallpaper_dialog_message" msgid="2179661027350908003">"शैलीयुक्त वालपेपर सेट गर्नुहोस्"</string>
diff --git a/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt b/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
index 7c89953..c426f9d 100644
--- a/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
+++ b/src/com/android/customization/model/color/ThemedWallpaperColorResources.kt
@@ -39,11 +39,11 @@
withContext(Dispatchers.IO) {
val wallpaperColorScheme =
ColorScheme(
- wallpaperColors = wallpaperColors,
- darkTheme = false,
- style = fetchThemeStyleFromSetting(),
+ wallpaperColors,
+ false,
+ fetchThemeStyleFromSetting(),
)
- with(wallpaperColorScheme) {
+ with<ColorScheme, Unit>(wallpaperColorScheme) {
addOverlayColor(neutral1, R.color.system_neutral1_10)
addOverlayColor(neutral2, R.color.system_neutral2_10)
addOverlayColor(accent1, R.color.system_accent1_10)
diff --git a/src/com/android/customization/picker/clock/ui/binder/CarouselAccessibilityDelegate.kt b/src/com/android/customization/picker/clock/ui/binder/CarouselAccessibilityDelegate.kt
index 1026f19..5d6c3ff 100644
--- a/src/com/android/customization/picker/clock/ui/binder/CarouselAccessibilityDelegate.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/CarouselAccessibilityDelegate.kt
@@ -37,6 +37,11 @@
override fun onInitializeAccessibilityNodeInfo(host: View, info: AccessibilityNodeInfo) {
super.onInitializeAccessibilityNodeInfo(host, info)
info.isScrollable = true
+
+ // for some reason this action is needed for the subsequent two action to appear in the
+ // accessibility action menu (this action doesn't show)
+ info.addAction(AccessibilityNodeInfo.ACTION_CLICK) // Standard click action
+
info.addAction(
AccessibilityNodeInfo.AccessibilityAction(
ACTION_SCROLL_FORWARD,
diff --git a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
index e2616c7..7fcfd9c 100644
--- a/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
+++ b/src/com/android/customization/picker/clock/ui/binder/ClockCarouselViewBinder.kt
@@ -71,7 +71,7 @@
},
isTwoPaneAndSmallWidth = isTwoPaneAndSmallWidth,
)
- screenPreviewClickView.accessibilityDelegate = carouselAccessibilityDelegate
+ carouselView.accessibilityDelegate = carouselAccessibilityDelegate
screenPreviewClickView.setOnSideClickedListener { isStart ->
if (isStart) carouselView.scrollToPrevious()
else carouselView.scrollToNext()
diff --git a/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt b/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
index 989773b..517075e 100644
--- a/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
+++ b/src_override/com/android/wallpaper/modules/ThemePickerAppModule.kt
@@ -29,6 +29,8 @@
import com.android.wallpaper.module.logging.UserEventLogger
import com.android.wallpaper.picker.preview.data.util.DefaultLiveWallpaperDownloader
import com.android.wallpaper.picker.preview.data.util.LiveWallpaperDownloader
+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
import com.android.wallpaper.util.converter.WallpaperModelFactory
import dagger.Binds
@@ -68,6 +70,12 @@
@Singleton
abstract fun bindPartnerProvider(impl: DefaultPartnerProvider): PartnerProvider
+ @Binds
+ @Singleton
+ abstract fun bindEffectsWallpaperDialogUtil(
+ impl: DefaultImageEffectDialogUtil
+ ): ImageEffectDialogUtil
+
companion object {
@Provides
@Singleton
diff --git a/src_override/com/android/wallpaper/picker/di/modules/EffectsModule.kt b/src_override/com/android/wallpaper/picker/di/modules/EffectsModule.kt
index f49a273..4fc0fbb 100644
--- a/src_override/com/android/wallpaper/picker/di/modules/EffectsModule.kt
+++ b/src_override/com/android/wallpaper/picker/di/modules/EffectsModule.kt
@@ -26,7 +26,7 @@
/** This class provides the singleton scoped effects controller for wallpaper picker. */
@InstallIn(SingletonComponent::class)
@Module
-internal abstract class EffectsModule {
+abstract class EffectsModule {
@Binds
@Singleton
diff --git a/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt b/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt
index 687ec9b..f4376ee 100644
--- a/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt
+++ b/tests/module/src/com/android/wallpaper/ThemePickerTestModule.kt
@@ -24,17 +24,22 @@
import com.android.customization.module.logging.ThemesUserEventLogger
import com.android.customization.testing.TestCustomizationInjector
import com.android.customization.testing.TestDefaultCustomizationPreferences
+import com.android.wallpaper.effects.EffectsController
+import com.android.wallpaper.effects.FakeEffectsController
import com.android.wallpaper.module.Injector
import com.android.wallpaper.module.PartnerProvider
import com.android.wallpaper.module.WallpaperPreferences
import com.android.wallpaper.module.logging.TestUserEventLogger
import com.android.wallpaper.module.logging.UserEventLogger
import com.android.wallpaper.modules.ThemePickerAppModule
-import com.android.wallpaper.picker.preview.data.util.DefaultLiveWallpaperDownloader
+import com.android.wallpaper.network.Requester
+import com.android.wallpaper.picker.di.modules.EffectsModule
+import com.android.wallpaper.picker.preview.data.util.FakeLiveWallpaperDownloader
import com.android.wallpaper.picker.preview.data.util.LiveWallpaperDownloader
-import com.android.wallpaper.testing.TestInjector
+import com.android.wallpaper.picker.preview.ui.util.DefaultImageEffectDialogUtil
+import com.android.wallpaper.picker.preview.ui.util.ImageEffectDialogUtil
+import com.android.wallpaper.testing.FakeDefaultRequester
import com.android.wallpaper.testing.TestPartnerProvider
-import com.android.wallpaper.testing.TestWallpaperPreferences
import com.android.wallpaper.util.converter.DefaultWallpaperModelFactory
import com.android.wallpaper.util.converter.WallpaperModelFactory
import dagger.Binds
@@ -45,7 +50,10 @@
import javax.inject.Singleton
@Module
-@TestInstallIn(components = [SingletonComponent::class], replaces = [ThemePickerAppModule::class])
+@TestInstallIn(
+ components = [SingletonComponent::class],
+ replaces = [EffectsModule::class, ThemePickerAppModule::class]
+)
abstract class ThemePickerTestModule {
//// WallpaperPicker2 prod
@@ -53,6 +61,8 @@
@Binds @Singleton abstract fun bindUserEventLogger(impl: TestUserEventLogger): UserEventLogger
+ @Binds @Singleton abstract fun bindFakeRequester(impl: FakeDefaultRequester): Requester
+
@Binds
@Singleton
abstract fun bindThemesUserEventLogger(impl: TestThemesUserEventLogger): ThemesUserEventLogger
@@ -61,16 +71,6 @@
@Singleton
abstract fun bindWallpaperPrefs(impl: TestDefaultCustomizationPreferences): WallpaperPreferences
- //// WallpaperPicker2 test
-
- @Binds @Singleton abstract fun bindTestInjector(impl: TestCustomizationInjector): TestInjector
-
- @Binds
- @Singleton
- abstract fun bindTestWallpaperPrefs(
- impl: TestDefaultCustomizationPreferences
- ): TestWallpaperPreferences
-
//// ThemePicker prod
@Binds
@@ -92,13 +92,23 @@
@Binds
@Singleton
abstract fun bindLiveWallpaperDownloader(
- impl: DefaultLiveWallpaperDownloader
+ impl: FakeLiveWallpaperDownloader
): LiveWallpaperDownloader
@Binds
@Singleton
abstract fun providePartnerProvider(impl: TestPartnerProvider): PartnerProvider
+ @Binds
+ @Singleton
+ abstract fun bindEffectsWallpaperDialogUtil(
+ impl: DefaultImageEffectDialogUtil
+ ): ImageEffectDialogUtil
+
+ @Binds
+ @Singleton
+ abstract fun bindEffectsController(impl: FakeEffectsController): EffectsController
+
companion object {
@Provides
@Singleton
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 3661d5d..a4fd7f3 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -11,6 +11,7 @@
static_libs: [
"ThemePickerTestLib",
"ThemePickerTestModule",
+ "WallpaperPicker2RoboLib",
],
}
diff --git a/tests/robotests/src/com/android/customization/model/picker/settings/data/repository/ColorContrastSectionRepositoryTest.kt b/tests/robotests/src/com/android/customization/model/picker/settings/data/repository/ColorContrastSectionRepositoryTest.kt
index 54b7c6e..cde597a 100644
--- a/tests/robotests/src/com/android/customization/model/picker/settings/data/repository/ColorContrastSectionRepositoryTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/settings/data/repository/ColorContrastSectionRepositoryTest.kt
@@ -24,8 +24,11 @@
import dagger.hilt.android.testing.HiltAndroidTest
import javax.inject.Inject
import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.flow.toList
import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.runBlockingTest
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -35,11 +38,13 @@
@HiltAndroidTest
@SmallTest
@RunWith(RobolectricTestRunner::class)
+@OptIn(ExperimentalCoroutinesApi::class)
class ColorContrastSectionRepositoryTest {
@get:Rule var hiltRule = HiltAndroidRule(this)
@Inject lateinit var uiModeManager: FakeUiModeManager
@Inject lateinit var underTest: ColorContrastSectionRepository
+ @Inject lateinit var testScope: TestScope
@Before
fun setUp() {
@@ -53,18 +58,22 @@
@OptIn(ExperimentalCoroutinesApi::class)
@Test
- fun contrastFlowEmitsValues() = runBlockingTest {
- val nextContrastValues = listOf(0.5f, 0.7f, 0.8f)
- // Set up a flow to collect all contrast values
- val flowCollector = mutableListOf<Float>()
- // Start collecting values from the flow
- val job = launch { underTest.contrast.collect { flowCollector.add(it) } }
+ fun contrastFlowEmitsValues() =
+ testScope.runTest {
+ val nextContrastValues = listOf(0.5f, 0.7f, 0.8f)
+ // Set up a flow to collect all contrast values
+ val flowCollector = mutableListOf<Float>()
+ // Start collecting values from the flow, using an unconfined dispatcher to start
+ // collecting from the flow right away (rather than explicitly calling `runCurrent`)
+ // See https://developer.android.com/kotlin/flow/test#continuous-collection
+ backgroundScope.launch(UnconfinedTestDispatcher()) {
+ underTest.contrast.toList(flowCollector)
+ }
- nextContrastValues.forEach { uiModeManager.setContrast(it) }
+ nextContrastValues.forEach { uiModeManager.setContrast(it) }
- // Ignore the first contrast value from constructing the repository
- val collectedValues = flowCollector.drop(1)
- assertThat(collectedValues).containsExactlyElementsIn(nextContrastValues)
- job.cancel()
- }
+ // Ignore the first contrast value from constructing the repository
+ val collectedValues = flowCollector.drop(1)
+ assertThat(collectedValues).containsExactlyElementsIn(nextContrastValues)
+ }
}
diff --git a/tests/robotests/src/com/android/customization/model/picker/settings/domain/interactor/ColorContrastSectionInteractorTest.kt b/tests/robotests/src/com/android/customization/model/picker/settings/domain/interactor/ColorContrastSectionInteractorTest.kt
index 2319eed..afa6427 100644
--- a/tests/robotests/src/com/android/customization/model/picker/settings/domain/interactor/ColorContrastSectionInteractorTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/settings/domain/interactor/ColorContrastSectionInteractorTest.kt
@@ -19,12 +19,12 @@
import androidx.test.filters.SmallTest
import com.android.customization.picker.settings.domain.interactor.ColorContrastSectionInteractor
import com.android.wallpaper.testing.FakeUiModeManager
+import com.google.common.truth.Truth.assertThat
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
import javax.inject.Inject
import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.test.runBlockingTest
-import org.junit.Assert.assertEquals
+import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -46,12 +46,12 @@
}
@Test
- fun contrastEmitCorrectValuesFromRepository() = runBlockingTest {
+ fun contrastEmitCorrectValuesFromRepository() = runTest {
val expectedContrast = 1.5f
uiModeManager.setContrast(expectedContrast)
val result = interactor.contrast.first()
- assertEquals(expectedContrast, result)
+ assertThat(result).isEqualTo(expectedContrast)
}
}
diff --git a/tests/robotests/src/com/android/customization/model/picker/settings/ui/viewmodel/ColorContrastSectionViewModelTest.kt b/tests/robotests/src/com/android/customization/model/picker/settings/ui/viewmodel/ColorContrastSectionViewModelTest.kt
index c06f8a3..0c420e0 100644
--- a/tests/robotests/src/com/android/customization/model/picker/settings/ui/viewmodel/ColorContrastSectionViewModelTest.kt
+++ b/tests/robotests/src/com/android/customization/model/picker/settings/ui/viewmodel/ColorContrastSectionViewModelTest.kt
@@ -25,9 +25,13 @@
import dagger.hilt.android.testing.HiltAndroidRule
import dagger.hilt.android.testing.HiltAndroidTest
import javax.inject.Inject
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.first
-import kotlinx.coroutines.test.runBlockingTest
+import kotlinx.coroutines.test.TestDispatcher
+import kotlinx.coroutines.test.runTest
+import kotlinx.coroutines.test.setMain
import org.junit.Assert.assertEquals
import org.junit.Before
import org.junit.Rule
@@ -42,17 +46,20 @@
private lateinit var viewModel: ColorContrastSectionViewModel
+ @Inject lateinit var testDispatcher: TestDispatcher
@Inject lateinit var uiModeManager: FakeUiModeManager
@Inject lateinit var viewModelFactory: ColorContrastSectionViewModel.Factory
+ @OptIn(ExperimentalCoroutinesApi::class)
@Before
fun setUp() {
hiltRule.inject()
+ Dispatchers.setMain(testDispatcher)
viewModel = viewModelFactory.create(ColorContrastSectionViewModel::class.java)
}
@Test
- fun summaryEmitsCorrectDataValueForStandard() = runBlockingTest {
+ fun summaryEmitsCorrectDataValueForStandard() = runTest {
uiModeManager.setContrast(ColorContrastSectionViewModel.ContrastValue.STANDARD.value)
val expected =
ColorContrastSectionDataViewModel(
@@ -66,7 +73,7 @@
}
@Test
- fun summaryEmitsCorrectDataValueForMedium() = runBlockingTest {
+ fun summaryEmitsCorrectDataValueForMedium() = runTest {
uiModeManager.setContrast(ColorContrastSectionViewModel.ContrastValue.MEDIUM.value)
val expected =
ColorContrastSectionDataViewModel(
@@ -80,7 +87,7 @@
}
@Test
- fun summaryEmitsCorrectDataValueForHigh() = runBlockingTest {
+ fun summaryEmitsCorrectDataValueForHigh() = runTest {
uiModeManager.setContrast(ColorContrastSectionViewModel.ContrastValue.HIGH.value)
val expected =
ColorContrastSectionDataViewModel(
@@ -94,7 +101,7 @@
}
@Test(expected = IllegalArgumentException::class)
- fun summaryThrowsIllegalArgumentExceptionForInvalidValue() = runBlockingTest {
+ fun summaryThrowsIllegalArgumentExceptionForInvalidValue() = runTest {
uiModeManager.setContrast(999f)
viewModel.summary.collect() // This should throw an IllegalArgumentException