Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 969ad54a authored by Olivier St-Onge's avatar Olivier St-Onge
Browse files

Never show the tooltip in test harness

Test: android.platform.test.scenario.sysui.multiuser.AddGuest
Flag: com.android.systemui.qs_edit_mode_tooltip
Flag: com.android.systemui.qs_ui_refactor_compose_fragment
Fixes: 417663092
Change-Id: Ic37fc84b5629b2a0c5401968b4d70dfee123d30c
parent 921f2de4
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -172,6 +172,8 @@ class EditModeButtonViewModelTest : SysuiTestCase() {
    ): EditModeButtonViewModel {
        headlessSystemUserMode = fakeHeadlessSystemUserMode
        fakeHeadlessSystemUserMode.setIsHeadlessSystemUser(isHeadlessSystemUser)
        return editModeButtonViewModelFactory.create().apply { activateIn(testScope) }
        return editModeButtonViewModelFactory.create(ignoreTestHarness = true).apply {
            activateIn(testScope)
        }
    }
}
+12 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.qs.panels.ui.viewmodel.toolbar

import android.app.ActivityManager
import androidx.compose.runtime.getValue
import com.android.systemui.Flags.hsuBehaviorChanges
import com.android.systemui.classifier.domain.interactor.FalsingInteractor
@@ -28,6 +29,7 @@ import com.android.systemui.qs.panels.domain.interactor.QSPreferencesInteractor
import com.android.systemui.qs.panels.ui.viewmodel.EditModeViewModel
import com.android.systemui.user.domain.interactor.HeadlessSystemUserMode
import com.android.systemui.user.domain.interactor.SelectedUserInteractor
import dagger.assisted.Assisted
import dagger.assisted.AssistedFactory
import dagger.assisted.AssistedInject
import kotlinx.coroutines.flow.flowOf
@@ -42,10 +44,18 @@ constructor(
    private val hsum: HeadlessSystemUserMode,
    private val qsPreferencesInteractor: QSPreferencesInteractor,
    selectedUserInteractor: SelectedUserInteractor,
    @Assisted private val ignoreTestHarness: Boolean,
) : ExclusiveActivatable() {

    private val hydrator = Hydrator("editModeButtonViewModel.hydrator")

    /**
     * Avoid showing the tooltip when the shade is opened in test harness, as the tooltip will block
     * the first user input after being displayed.
     */
    private val runningInTestHarness =
        !ignoreTestHarness && ActivityManager.isRunningInUserTestHarness()

    val isEditButtonVisible: Boolean by
        hydrator.hydratedStateOf(
            traceName = "isEditButtonVisible",
@@ -60,7 +70,7 @@ constructor(
        hydrator.hydratedStateOf(
            traceName = "showTooltip",
            source =
                if (QSEditModeTooltip.isEnabled) {
                if (QSEditModeTooltip.isEnabled && !runningInTestHarness) {
                    qsPreferencesInteractor.editTooltipShown.map {
                        // Show the tooltip if it wasn't shown before
                        !it
@@ -87,6 +97,6 @@ constructor(

    @AssistedFactory
    interface Factory {
        fun create(): EditModeButtonViewModel
        fun create(ignoreTestHarness: Boolean = false): EditModeButtonViewModel
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ import com.android.systemui.user.domain.interactor.selectedUserInteractor
val Kosmos.editModeButtonViewModelFactory by
    Kosmos.Fixture {
        object : EditModeButtonViewModel.Factory {
            override fun create(): EditModeButtonViewModel {
            override fun create(ignoreTestHarness: Boolean): EditModeButtonViewModel {
                return EditModeButtonViewModel(
                    editModeViewModel,
                    falsingInteractor,
@@ -35,6 +35,7 @@ val Kosmos.editModeButtonViewModelFactory by
                    headlessSystemUserMode,
                    qsPreferencesInteractor,
                    selectedUserInteractor,
                    ignoreTestHarness,
                )
            }
        }