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

Commit e254f2e7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Never show the tooltip in test harness" into main

parents af3aec1e 969ad54a
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,
                )
            }
        }