Loading packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/DualShadeEducationalTooltipsViewModelTest.kt +4 −1 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,10 @@ class DualShadeEducationalTooltipsViewModelTest( overrideResource(R.string.dual_shade_educational_tooltip_qs, QS_TOOLTIP) overrideResource(R.string.dual_shade_educational_tooltip_qs, QS_TOOLTIP) underTest = underTest = kosmos.dualShadeEducationalTooltipsViewModelFactory.create(kosmos.applicationContext) kosmos.dualShadeEducationalTooltipsViewModelFactory.create( kosmos.applicationContext, ignoreTestHarness = true, ) underTest.activateIn(kosmos.testScope) underTest.activateIn(kosmos.testScope) kosmos.runCurrent() kosmos.runCurrent() } } Loading packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/DualShadeEducationalTooltipsViewModel.kt +21 −5 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.scene.ui.viewmodel package com.android.systemui.scene.ui.viewmodel import android.app.ActivityManager import android.content.Context import android.content.Context import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.IntRect import com.android.systemui.lifecycle.ExclusiveActivatable import com.android.systemui.lifecycle.ExclusiveActivatable Loading @@ -34,8 +35,16 @@ class DualShadeEducationalTooltipsViewModel constructor( constructor( private val interactor: DualShadeEducationInteractor, private val interactor: DualShadeEducationInteractor, @Assisted private val context: Context, @Assisted private val context: Context, @Assisted private val ignoreTestHarness: Boolean, ) : ExclusiveActivatable() { ) : ExclusiveActivatable() { /** * Avoid showing the dual shade educational tooltips in test harness mode and not explicitly * allowed, as the tooltip may interfere with test automation. */ private val disableEducationTooltips = !ignoreTestHarness && ActivityManager.isRunningInUserTestHarness() /** /** * The tooltip to show, or `null` if none should be shown. * The tooltip to show, or `null` if none should be shown. * * Loading @@ -45,11 +54,15 @@ constructor( */ */ val visibleTooltip: DualShadeEducationalTooltipViewModel? val visibleTooltip: DualShadeEducationalTooltipViewModel? get() = get() = if (disableEducationTooltips) { null } else { when (interactor.education) { when (interactor.education) { DualShadeEducationModel.ForNotificationsShade -> notificationsTooltip() DualShadeEducationModel.ForNotificationsShade -> notificationsTooltip() DualShadeEducationModel.ForQuickSettingsShade -> quickSettingsTooltip() DualShadeEducationModel.ForQuickSettingsShade -> quickSettingsTooltip() else -> null else -> null } } } override suspend fun onActivated(): Nothing = coroutineScope { awaitCancellation() } override suspend fun onActivated(): Nothing = coroutineScope { awaitCancellation() } Loading Loading @@ -87,6 +100,9 @@ constructor( @AssistedFactory @AssistedFactory interface Factory { interface Factory { fun create(context: Context): DualShadeEducationalTooltipsViewModel fun create( context: Context, ignoreTestHarness: Boolean = false, ): DualShadeEducationalTooltipsViewModel } } } } packages/SystemUI/tests/utils/src/com/android/systemui/scene/ui/viewmodel/DualShadeEducationalTooltipsViewModelKosmos.kt +5 −1 Original line number Original line Diff line number Diff line Loading @@ -23,10 +23,14 @@ import com.android.systemui.scene.domain.interactor.dualShadeEducationInteractor val Kosmos.dualShadeEducationalTooltipsViewModelFactory by Fixture { val Kosmos.dualShadeEducationalTooltipsViewModelFactory by Fixture { object : DualShadeEducationalTooltipsViewModel.Factory { object : DualShadeEducationalTooltipsViewModel.Factory { override fun create(context: Context): DualShadeEducationalTooltipsViewModel { override fun create( context: Context, ignoreTestHarness: Boolean, ): DualShadeEducationalTooltipsViewModel { return DualShadeEducationalTooltipsViewModel( return DualShadeEducationalTooltipsViewModel( interactor = dualShadeEducationInteractor, interactor = dualShadeEducationInteractor, context = context, context = context, ignoreTestHarness = ignoreTestHarness, ) ) } } } } Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/scene/ui/viewmodel/DualShadeEducationalTooltipsViewModelTest.kt +4 −1 Original line number Original line Diff line number Diff line Loading @@ -66,7 +66,10 @@ class DualShadeEducationalTooltipsViewModelTest( overrideResource(R.string.dual_shade_educational_tooltip_qs, QS_TOOLTIP) overrideResource(R.string.dual_shade_educational_tooltip_qs, QS_TOOLTIP) underTest = underTest = kosmos.dualShadeEducationalTooltipsViewModelFactory.create(kosmos.applicationContext) kosmos.dualShadeEducationalTooltipsViewModelFactory.create( kosmos.applicationContext, ignoreTestHarness = true, ) underTest.activateIn(kosmos.testScope) underTest.activateIn(kosmos.testScope) kosmos.runCurrent() kosmos.runCurrent() } } Loading
packages/SystemUI/src/com/android/systemui/scene/ui/viewmodel/DualShadeEducationalTooltipsViewModel.kt +21 −5 Original line number Original line Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.scene.ui.viewmodel package com.android.systemui.scene.ui.viewmodel import android.app.ActivityManager import android.content.Context import android.content.Context import androidx.compose.ui.unit.IntRect import androidx.compose.ui.unit.IntRect import com.android.systemui.lifecycle.ExclusiveActivatable import com.android.systemui.lifecycle.ExclusiveActivatable Loading @@ -34,8 +35,16 @@ class DualShadeEducationalTooltipsViewModel constructor( constructor( private val interactor: DualShadeEducationInteractor, private val interactor: DualShadeEducationInteractor, @Assisted private val context: Context, @Assisted private val context: Context, @Assisted private val ignoreTestHarness: Boolean, ) : ExclusiveActivatable() { ) : ExclusiveActivatable() { /** * Avoid showing the dual shade educational tooltips in test harness mode and not explicitly * allowed, as the tooltip may interfere with test automation. */ private val disableEducationTooltips = !ignoreTestHarness && ActivityManager.isRunningInUserTestHarness() /** /** * The tooltip to show, or `null` if none should be shown. * The tooltip to show, or `null` if none should be shown. * * Loading @@ -45,11 +54,15 @@ constructor( */ */ val visibleTooltip: DualShadeEducationalTooltipViewModel? val visibleTooltip: DualShadeEducationalTooltipViewModel? get() = get() = if (disableEducationTooltips) { null } else { when (interactor.education) { when (interactor.education) { DualShadeEducationModel.ForNotificationsShade -> notificationsTooltip() DualShadeEducationModel.ForNotificationsShade -> notificationsTooltip() DualShadeEducationModel.ForQuickSettingsShade -> quickSettingsTooltip() DualShadeEducationModel.ForQuickSettingsShade -> quickSettingsTooltip() else -> null else -> null } } } override suspend fun onActivated(): Nothing = coroutineScope { awaitCancellation() } override suspend fun onActivated(): Nothing = coroutineScope { awaitCancellation() } Loading Loading @@ -87,6 +100,9 @@ constructor( @AssistedFactory @AssistedFactory interface Factory { interface Factory { fun create(context: Context): DualShadeEducationalTooltipsViewModel fun create( context: Context, ignoreTestHarness: Boolean = false, ): DualShadeEducationalTooltipsViewModel } } } }
packages/SystemUI/tests/utils/src/com/android/systemui/scene/ui/viewmodel/DualShadeEducationalTooltipsViewModelKosmos.kt +5 −1 Original line number Original line Diff line number Diff line Loading @@ -23,10 +23,14 @@ import com.android.systemui.scene.domain.interactor.dualShadeEducationInteractor val Kosmos.dualShadeEducationalTooltipsViewModelFactory by Fixture { val Kosmos.dualShadeEducationalTooltipsViewModelFactory by Fixture { object : DualShadeEducationalTooltipsViewModel.Factory { object : DualShadeEducationalTooltipsViewModel.Factory { override fun create(context: Context): DualShadeEducationalTooltipsViewModel { override fun create( context: Context, ignoreTestHarness: Boolean, ): DualShadeEducationalTooltipsViewModel { return DualShadeEducationalTooltipsViewModel( return DualShadeEducationalTooltipsViewModel( interactor = dualShadeEducationInteractor, interactor = dualShadeEducationInteractor, context = context, context = context, ignoreTestHarness = ignoreTestHarness, ) ) } } } } Loading