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

Commit 32879b68 authored by Matt Pietal's avatar Matt Pietal Committed by Android (Google) Code Review
Browse files

Merge "Ensure notifications are not visible during PRIMARY_BOUNCER->GONE" into main

parents 7bbde68b 2a4c9aac
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -66,11 +66,7 @@ class PrimaryBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
            runCurrent()

            keyguardTransitionRepository.sendTransitionSteps(
                listOf(
                    step(0f, TransitionState.STARTED),
                    step(0.3f),
                    step(0.6f),
                ),
                listOf(step(0f, TransitionState.STARTED), step(0.3f), step(0.6f)),
                testScope,
            )

@@ -87,11 +83,7 @@ class PrimaryBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
            whenever(primaryBouncerInteractor.willRunDismissFromKeyguard()).thenReturn(true)

            keyguardTransitionRepository.sendTransitionSteps(
                listOf(
                    step(0f, TransitionState.STARTED),
                    step(0.3f),
                    step(0.6f),
                ),
                listOf(step(0f, TransitionState.STARTED), step(0.3f), step(0.6f)),
                testScope,
            )

@@ -149,7 +141,8 @@ class PrimaryBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
    @Test
    fun notificationAlpha() =
        testScope.runTest {
            val values by collectValues(underTest.notificationAlpha)
            val values by
                collectValues(underTest.notificationAlpha(ViewStateAccessor(alpha = { 0.5f })))
            runCurrent()

            keyguardTransitionRepository.sendTransitionSteps(
@@ -158,7 +151,7 @@ class PrimaryBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
                testScope,
            )

            assertThat(values[0]).isEqualTo(1f)
            assertThat(values[0]).isEqualTo(0.5f)
            assertThat(values[1]).isEqualTo(0f)
            // Should always finish with 1f to show HUNs
            assertThat(values[2]).isEqualTo(1f)
@@ -167,7 +160,7 @@ class PrimaryBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
    @Test
    fun notificationAlpha_leaveShadeOpen() =
        testScope.runTest {
            val values by collectValues(underTest.notificationAlpha)
            val values by collectValues(underTest.notificationAlpha(ViewStateAccessor()))
            runCurrent()

            sysuiStatusBarStateController.setLeaveOpenOnKeyguardHide(true)
@@ -185,14 +178,14 @@ class PrimaryBouncerToGoneTransitionViewModelTest : SysuiTestCase() {

    private fun step(
        value: Float,
        state: TransitionState = TransitionState.RUNNING
        state: TransitionState = TransitionState.RUNNING,
    ): TransitionStep {
        return TransitionStep(
            from = KeyguardState.PRIMARY_BOUNCER,
            to = KeyguardState.GONE,
            value = value,
            transitionState = state,
            ownerName = "PrimaryBouncerToGoneTransitionViewModelTest"
            ownerName = "PrimaryBouncerToGoneTransitionViewModelTest",
        )
    }
}
+7 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.keyguard.ui.viewmodel

import android.util.MathUtils
import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor
import com.android.systemui.bouncer.shared.flag.ComposeBouncerFlags
import com.android.systemui.dagger.SysUISingleton
@@ -63,10 +64,12 @@ constructor(
    val showAllNotifications: Flow<Boolean> =
        bouncerToGoneFlows.showAllNotifications(TO_GONE_DURATION, PRIMARY_BOUNCER)

    val notificationAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
    fun notificationAlpha(viewState: ViewStateAccessor): Flow<Float> {
        var startAlpha = 1f
        return transitionAnimation.sharedFlow(
            duration = 200.milliseconds,
            onStart = {
                startAlpha = viewState.alpha()
                leaveShadeOpen = statusBarStateController.leaveOpenOnKeyguardHide()
                willRunDismissFromKeyguard = primaryBouncerInteractor.willRunDismissFromKeyguard()
            },
@@ -74,11 +77,12 @@ constructor(
                if (willRunDismissFromKeyguard || leaveShadeOpen) {
                    1f
                } else {
                    1f - it
                    MathUtils.lerp(startAlpha, 0f, it)
                }
            },
            onFinish = { 1f },
        )
    }

    /** Bouncer container alpha */
    val bouncerAlpha: Flow<Float> =
+1 −1
Original line number Diff line number Diff line
@@ -543,7 +543,7 @@ constructor(

    private fun bouncerToGoneNotificationAlpha(viewState: ViewStateAccessor): Flow<Float> =
        merge(
                primaryBouncerToGoneTransitionViewModel.notificationAlpha,
                primaryBouncerToGoneTransitionViewModel.notificationAlpha(viewState),
                alternateBouncerToGoneTransitionViewModel.notificationAlpha(viewState),
            )
            .sample(communalSceneInteractor.isCommunalVisible) { alpha, isCommunalVisible ->