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

Commit 9c728245 authored by Ioana Alexandru's avatar Ioana Alexandru
Browse files

Check StatusBarState in isImportantForAccessibility.

We don't care about the transition specifically, but we just want to
make sure there's no "unlabelled" view on the lockscreen when there are
no notifications.

Bug: 293167744
Test: NotificationListViewModelTest + check with talkback if there's an
unlabelled view on the lockscreen
Flag: ACONFIG com.android.systemui.notifications_footer_view_refactor STAGING

Change-Id: I3f3ac8083dd054bdb7774fbf884e16bcc2bf126c
parent a7703c68
Loading
Loading
Loading
Loading
+3 −12
Original line number Diff line number Diff line
@@ -17,8 +17,6 @@
package com.android.systemui.statusbar.notification.stack.ui.viewmodel

import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.StatusBarState
import com.android.systemui.power.domain.interactor.PowerInteractor
import com.android.systemui.shade.domain.interactor.ShadeInteractor
@@ -54,7 +52,6 @@ constructor(
    val logger: Optional<NotificationLoggerViewModel>,
    activeNotificationsInteractor: ActiveNotificationsInteractor,
    keyguardInteractor: KeyguardInteractor,
    keyguardTransitionInteractor: KeyguardTransitionInteractor,
    powerInteractor: PowerInteractor,
    remoteInputInteractor: RemoteInputInteractor,
    seenNotificationsInteractor: SeenNotificationsInteractor,
@@ -74,15 +71,9 @@ constructor(
        } else {
            combine(
                    activeNotificationsInteractor.areAnyNotificationsPresent,
                    // TODO(b/293167744): Check if it would be enough to just check for
                    //  isShowingOnLockscreen here as well, so we don't need to depend on the
                    //  keyguardTransitionInteractor when we don't actually care about _transitions_
                    //  specifically.
                    keyguardTransitionInteractor.isFinishedInStateWhere {
                        KeyguardState.lockscreenVisibleInState(it)
                    }
                ) { hasNotifications, isOnKeyguard ->
                    hasNotifications || !isOnKeyguard
                    isShowingOnLockscreen,
                ) { hasNotifications, isShowingOnLockscreen ->
                    hasNotifications || !isShowingOnLockscreen
                }
                .distinctUntilChanged()
        }
+3 −18
Original line number Diff line number Diff line
@@ -28,8 +28,6 @@ import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.flags.Flags
import com.android.systemui.flags.fakeFeatureFlagsClassic
import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.StatusBarState
import com.android.systemui.kosmos.testScope
import com.android.systemui.power.data.repository.fakePowerRepository
@@ -68,7 +66,6 @@ class NotificationListViewModelTest : SysuiTestCase() {
    private val activeNotificationListRepository = kosmos.activeNotificationListRepository
    private val fakeConfigurationController = kosmos.fakeConfigurationController
    private val fakeKeyguardRepository = kosmos.fakeKeyguardRepository
    private val fakeKeyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository
    private val fakePowerRepository = kosmos.fakePowerRepository
    private val fakeRemoteInputRepository = kosmos.fakeRemoteInputRepository
    private val fakeShadeRepository = kosmos.fakeShadeRepository
@@ -88,11 +85,7 @@ class NotificationListViewModelTest : SysuiTestCase() {
            val important by collectLastValue(underTest.isImportantForAccessibility)

            // WHEN on lockscreen
            fakeKeyguardTransitionRepository.sendTransitionSteps(
                from = KeyguardState.GONE,
                to = KeyguardState.LOCKSCREEN,
                testScope,
            )
            fakeKeyguardRepository.setStatusBarState(StatusBarState.KEYGUARD)
            // AND has no notifs
            activeNotificationListRepository.setActiveNotifs(count = 0)
            testScope.runCurrent()
@@ -107,11 +100,7 @@ class NotificationListViewModelTest : SysuiTestCase() {
            val important by collectLastValue(underTest.isImportantForAccessibility)

            // WHEN on lockscreen
            fakeKeyguardTransitionRepository.sendTransitionSteps(
                from = KeyguardState.GONE,
                to = KeyguardState.LOCKSCREEN,
                testScope,
            )
            fakeKeyguardRepository.setStatusBarState(StatusBarState.KEYGUARD)
            // AND has notifs
            activeNotificationListRepository.setActiveNotifs(count = 2)
            runCurrent()
@@ -126,11 +115,7 @@ class NotificationListViewModelTest : SysuiTestCase() {
            val important by collectLastValue(underTest.isImportantForAccessibility)

            // WHEN not on lockscreen
            fakeKeyguardTransitionRepository.sendTransitionSteps(
                from = KeyguardState.LOCKSCREEN,
                to = KeyguardState.GONE,
                testScope,
            )
            fakeKeyguardRepository.setStatusBarState(StatusBarState.SHADE)
            // AND has no notifs
            activeNotificationListRepository.setActiveNotifs(count = 0)
            runCurrent()
+0 −2
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.systemui.statusbar.notification.stack.ui.viewmodel

import com.android.systemui.keyguard.domain.interactor.keyguardInteractor
import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.Kosmos.Fixture
import com.android.systemui.power.domain.interactor.powerInteractor
@@ -39,7 +38,6 @@ val Kosmos.notificationListViewModel by Fixture {
        Optional.of(notificationListLoggerViewModel),
        activeNotificationsInteractor,
        keyguardInteractor,
        keyguardTransitionInteractor,
        powerInteractor,
        remoteInputInteractor,
        seenNotificationsInteractor,