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

Commit 6dc384b8 authored by Matt Pietal's avatar Matt Pietal
Browse files

Fix missing alpha on indication area

This can occur right after boot. Keyguard alpha still needs
to be applied.

Bug: 325449082
Test: atest AodAlphaViewModelTest
Flag: ACONFIG com.android.systemui.migrate_clocks_to_blueprint
DEVELOPMENT
Flag: ACONFIG com.android.systemui.keyguard_bottom_area_refactor
STAGING

Change-Id: I1931294bdbc13e99634db05b81f503dc80df7304
parent ed0b7794
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ package com.android.systemui.keyguard.ui.viewmodel

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.systemui.Flags as AConfigFlags
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
@@ -65,6 +66,25 @@ class AodAlphaViewModelTest : SysuiTestCase() {
        underTest = kosmos.aodAlphaViewModel
    }

    @Test
    fun alpha_WhenNotGone_clockMigrationFlagIsOff_emitsKeyguardAlpha() =
        testScope.runTest {
            mSetFlagsRule.disableFlags(AConfigFlags.FLAG_MIGRATE_CLOCKS_TO_BLUEPRINT)
            val alpha by collectLastValue(underTest.alpha)

            keyguardTransitionRepository.sendTransitionSteps(
                from = KeyguardState.AOD,
                to = KeyguardState.LOCKSCREEN,
                testScope = testScope,
            )

            keyguardRepository.setKeyguardAlpha(0.5f)
            assertThat(alpha).isEqualTo(0.5f)

            keyguardRepository.setKeyguardAlpha(0.8f)
            assertThat(alpha).isEqualTo(0.8f)
        }

    @Test
    fun alpha_WhenGoneToAod() =
        testScope.runTest {
@@ -112,6 +132,7 @@ class AodAlphaViewModelTest : SysuiTestCase() {
    @Test
    fun alpha_whenGone_equalsZero() =
        testScope.runTest {
            mSetFlagsRule.enableFlags(AConfigFlags.FLAG_MIGRATE_CLOCKS_TO_BLUEPRINT)
            val alpha by collectLastValue(underTest.alpha)

            keyguardTransitionRepository.sendTransitionStep(
+7 −1
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@

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

import com.android.systemui.Flags.migrateClocksToBlueprint
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState.AOD
import com.android.systemui.keyguard.shared.model.KeyguardState.DOZING
@@ -38,6 +40,7 @@ constructor(
    keyguardTransitionInteractor: KeyguardTransitionInteractor,
    goneToAodTransitionViewModel: GoneToAodTransitionViewModel,
    goneToDozingTransitionViewModel: GoneToDozingTransitionViewModel,
    keyguardInteractor: KeyguardInteractor,
) {

    /** The alpha level for the entire lockscreen while in AOD. */
@@ -46,7 +49,8 @@ constructor(
                keyguardTransitionInteractor.transitions,
                goneToAodTransitionViewModel.enterFromTopAnimationAlpha.onStart { emit(0f) },
                goneToDozingTransitionViewModel.lockscreenAlpha.onStart { emit(0f) },
            ) { step, goneToAodAlpha, goneToDozingAlpha ->
                keyguardInteractor.keyguardAlpha.onStart { emit(1f) },
            ) { step, goneToAodAlpha, goneToDozingAlpha, keyguardAlpha ->
                if (step.to == GONE) {
                    // When transitioning to GONE, only emit a value when complete as other
                    // transitions may be controlling the alpha fade
@@ -57,6 +61,8 @@ constructor(
                    emit(goneToAodAlpha)
                } else if (step.from == GONE && step.to == DOZING) {
                    emit(goneToDozingAlpha)
                } else if (!migrateClocksToBlueprint()) {
                    emit(keyguardAlpha)
                }
            }
            .distinctUntilChanged()
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@

package com.android.systemui.keyguard.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
@@ -28,5 +29,6 @@ val Kosmos.aodAlphaViewModel by Fixture {
        keyguardTransitionInteractor = keyguardTransitionInteractor,
        goneToAodTransitionViewModel = goneToAodTransitionViewModel,
        goneToDozingTransitionViewModel = goneToDozingTransitionViewModel,
        keyguardInteractor = keyguardInteractor,
    )
}