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

Commit 07e1e525 authored by Aaron Liu's avatar Aaron Liu Committed by Automerger Merge Worker
Browse files

Merge "Remove MODERN_BOUNCER flag." into tm-qpr-dev am: fa016f61 am: a539c66e

parents e6d54bc4 a539c66e
Loading
Loading
Loading
Loading
+11 −52
Original line number Original line Diff line number Diff line
@@ -33,7 +33,6 @@ import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.flags.Flags
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor
import com.android.systemui.keyguard.domain.interactor.PrimaryBouncerInteractor
import com.android.systemui.keyguard.shared.constants.KeyguardBouncerConstants
import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.lifecycle.repeatWhenAttached
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.shade.ShadeExpansionListener
import com.android.systemui.shade.ShadeExpansionListener
@@ -83,7 +82,6 @@ constructor(
    ) {
    ) {
    private val useExpandedOverlay: Boolean =
    private val useExpandedOverlay: Boolean =
        featureFlags.isEnabled(Flags.UDFPS_NEW_TOUCH_DETECTION)
        featureFlags.isEnabled(Flags.UDFPS_NEW_TOUCH_DETECTION)
    private val isModernBouncerEnabled: Boolean = featureFlags.isEnabled(Flags.MODERN_BOUNCER)
    private val isModernAlternateBouncerEnabled: Boolean =
    private val isModernAlternateBouncerEnabled: Boolean =
        featureFlags.isEnabled(Flags.MODERN_ALTERNATE_BOUNCER)
        featureFlags.isEnabled(Flags.MODERN_ALTERNATE_BOUNCER)
    private var showingUdfpsBouncer = false
    private var showingUdfpsBouncer = false
@@ -109,12 +107,6 @@ constructor(
                )
                )
            }
            }
        }
        }
    /**
     * Hidden amount of input (pin/pattern/password) bouncer. This is used
     * [KeyguardBouncerConstants.EXPANSION_VISIBLE] (0f) to
     * [KeyguardBouncerConstants.EXPANSION_HIDDEN] (1f). Only used for the non-modernBouncer.
     */
    private var inputBouncerHiddenAmount = KeyguardBouncerConstants.EXPANSION_HIDDEN
    private var inputBouncerExpansion = 0f // only used for modernBouncer
    private var inputBouncerExpansion = 0f // only used for modernBouncer


    private val stateListener: StatusBarStateController.StateListener =
    private val stateListener: StatusBarStateController.StateListener =
@@ -253,18 +245,16 @@ constructor(
    }
    }


    init {
    init {
        if (isModernBouncerEnabled || isModernAlternateBouncerEnabled) {
        view.repeatWhenAttached {
        view.repeatWhenAttached {
            // repeatOnLifecycle CREATED (as opposed to STARTED) because the Bouncer expansion
            // repeatOnLifecycle CREATED (as opposed to STARTED) because the Bouncer expansion
            // can make the view not visible; and we still want to listen for events
            // can make the view not visible; and we still want to listen for events
            // that may make the view visible again.
            // that may make the view visible again.
            repeatOnLifecycle(Lifecycle.State.CREATED) {
            repeatOnLifecycle(Lifecycle.State.CREATED) {
                    if (isModernBouncerEnabled) listenForBouncerExpansion(this)
                listenForBouncerExpansion(this)
                if (isModernAlternateBouncerEnabled) listenForAlternateBouncerVisibility(this)
                if (isModernAlternateBouncerEnabled) listenForAlternateBouncerVisibility(this)
            }
            }
        }
        }
    }
    }
    }


    @VisibleForTesting
    @VisibleForTesting
    internal suspend fun listenForBouncerExpansion(scope: CoroutineScope): Job {
    internal suspend fun listenForBouncerExpansion(scope: CoroutineScope): Job {
@@ -333,7 +323,6 @@ constructor(


    override fun dump(pw: PrintWriter, args: Array<String>) {
    override fun dump(pw: PrintWriter, args: Array<String>) {
        super.dump(pw, args)
        super.dump(pw, args)
        pw.println("isModernBouncerEnabled=$isModernBouncerEnabled")
        pw.println("isModernAlternateBouncerEnabled=$isModernAlternateBouncerEnabled")
        pw.println("isModernAlternateBouncerEnabled=$isModernAlternateBouncerEnabled")
        pw.println("showingUdfpsAltBouncer=$showingUdfpsBouncer")
        pw.println("showingUdfpsAltBouncer=$showingUdfpsBouncer")
        pw.println(
        pw.println(
@@ -353,11 +342,7 @@ constructor(
        pw.println("udfpsRequestedByApp=$udfpsRequested")
        pw.println("udfpsRequestedByApp=$udfpsRequested")
        pw.println("launchTransitionFadingAway=$launchTransitionFadingAway")
        pw.println("launchTransitionFadingAway=$launchTransitionFadingAway")
        pw.println("lastDozeAmount=$lastDozeAmount")
        pw.println("lastDozeAmount=$lastDozeAmount")
        if (isModernBouncerEnabled) {
        pw.println("inputBouncerExpansion=$inputBouncerExpansion")
        pw.println("inputBouncerExpansion=$inputBouncerExpansion")
        } else {
            pw.println("inputBouncerHiddenAmount=$inputBouncerHiddenAmount")
        }
        view.dump(pw)
        view.dump(pw)
    }
    }


@@ -384,7 +369,6 @@ constructor(
        } else {
        } else {
            keyguardUpdateMonitor.requestFaceAuthOnOccludingApp(false)
            keyguardUpdateMonitor.requestFaceAuthOnOccludingApp(false)
        }
        }
        updateBouncerHiddenAmount()
        updateAlpha()
        updateAlpha()
        updatePauseAuth()
        updatePauseAuth()
        return true
        return true
@@ -425,19 +409,11 @@ constructor(
    }
    }


    fun isBouncerExpansionGreaterThan(bouncerExpansionThreshold: Float): Boolean {
    fun isBouncerExpansionGreaterThan(bouncerExpansionThreshold: Float): Boolean {
        return if (isModernBouncerEnabled) {
        return inputBouncerExpansion >= bouncerExpansionThreshold
            inputBouncerExpansion >= bouncerExpansionThreshold
        } else {
            inputBouncerHiddenAmount < bouncerExpansionThreshold
        }
    }
    }


    fun isInputBouncerFullyVisible(): Boolean {
    fun isInputBouncerFullyVisible(): Boolean {
        return if (isModernBouncerEnabled) {
        return inputBouncerExpansion == 1f
            inputBouncerExpansion == 1f
        } else {
            keyguardViewManager.isBouncerShowing && !alternateBouncerInteractor.isVisibleState()
        }
    }
    }


    override fun listenForTouchesOutsideView(): Boolean {
    override fun listenForTouchesOutsideView(): Boolean {
@@ -489,11 +465,7 @@ constructor(
    }
    }


    private fun getInputBouncerHiddenAmt(): Float {
    private fun getInputBouncerHiddenAmt(): Float {
        return if (isModernBouncerEnabled) {
        return 1f - inputBouncerExpansion
            1f - inputBouncerExpansion
        } else {
            inputBouncerHiddenAmount
        }
    }
    }


    /** Update the scale factor based on the device's resolution. */
    /** Update the scale factor based on the device's resolution. */
@@ -501,19 +473,6 @@ constructor(
        udfpsController.mOverlayParams?.scaleFactor?.let { view.setScaleFactor(it) }
        udfpsController.mOverlayParams?.scaleFactor?.let { view.setScaleFactor(it) }
    }
    }


    private fun updateBouncerHiddenAmount() {
        if (isModernBouncerEnabled) {
            return
        }
        val altBouncerShowing = alternateBouncerInteractor.isVisibleState()
        if (altBouncerShowing || !keyguardViewManager.primaryBouncerIsOrWillBeShowing()) {
            inputBouncerHiddenAmount = 1f
        } else if (keyguardViewManager.isBouncerShowing) {
            // input bouncer is fully showing
            inputBouncerHiddenAmount = 0f
        }
    }

    private val legacyAlternateBouncer: LegacyAlternateBouncer =
    private val legacyAlternateBouncer: LegacyAlternateBouncer =
        object : LegacyAlternateBouncer {
        object : LegacyAlternateBouncer {
            override fun showAlternateBouncer(): Boolean {
            override fun showAlternateBouncer(): Boolean {
+0 −7
Original line number Original line Diff line number Diff line
@@ -128,13 +128,6 @@ object Flags {
    @JvmField
    @JvmField
    val LOCKSCREEN_CUSTOM_CLOCKS = unreleasedFlag(207, "lockscreen_custom_clocks", teamfood = true)
    val LOCKSCREEN_CUSTOM_CLOCKS = unreleasedFlag(207, "lockscreen_custom_clocks", teamfood = true)


    /**
     * Flag to enable the usage of the new bouncer data source. This is a refactor of and eventual
     * replacement of KeyguardBouncer.java.
     */
    // TODO(b/254512385): Tracking Bug
    @JvmField val MODERN_BOUNCER = releasedFlag(208, "modern_bouncer")

    /**
    /**
     * Whether the clock on a wide lock screen should use the new "stepping" animation for moving
     * Whether the clock on a wide lock screen should use the new "stepping" animation for moving
     * the digits when the clock moves.
     * the digits when the clock moves.
+4 −6
Original line number Original line Diff line number Diff line
@@ -160,12 +160,10 @@ public class NotificationShadeWindowViewController {


        // This view is not part of the newly inflated expanded status bar.
        // This view is not part of the newly inflated expanded status bar.
        mBrightnessMirror = mView.findViewById(R.id.brightness_mirror_container);
        mBrightnessMirror = mView.findViewById(R.id.brightness_mirror_container);
        if (featureFlags.isEnabled(Flags.MODERN_BOUNCER)) {
        KeyguardBouncerViewBinder.bind(
        KeyguardBouncerViewBinder.bind(
                mView.findViewById(R.id.keyguard_bouncer_container),
                mView.findViewById(R.id.keyguard_bouncer_container),
                keyguardBouncerViewModel,
                keyguardBouncerViewModel,
                keyguardBouncerComponentFactory);
                keyguardBouncerComponentFactory);
        }


        if (featureFlags.isEnabled(Flags.UNOCCLUSION_TRANSITION)) {
        if (featureFlags.isEnabled(Flags.UNOCCLUSION_TRANSITION)) {
            collectFlow(mView, keyguardTransitionInteractor.getLockscreenToDreamingTransition(),
            collectFlow(mView, keyguardTransitionInteractor.getLockscreenToDreamingTransition(),
+0 −1
Original line number Original line Diff line number Diff line
@@ -147,7 +147,6 @@ public class UdfpsKeyguardViewControllerBaseTest extends SysuiTestCase {


    protected UdfpsKeyguardViewController createUdfpsKeyguardViewController(
    protected UdfpsKeyguardViewController createUdfpsKeyguardViewController(
            boolean useModernBouncer, boolean useExpandedOverlay) {
            boolean useModernBouncer, boolean useExpandedOverlay) {
        mFeatureFlags.set(Flags.MODERN_BOUNCER, useModernBouncer);
        mFeatureFlags.set(Flags.MODERN_ALTERNATE_BOUNCER, useModernBouncer);
        mFeatureFlags.set(Flags.MODERN_ALTERNATE_BOUNCER, useModernBouncer);
        mFeatureFlags.set(Flags.UDFPS_NEW_TOUCH_DETECTION, useExpandedOverlay);
        mFeatureFlags.set(Flags.UDFPS_NEW_TOUCH_DETECTION, useExpandedOverlay);
        UdfpsKeyguardViewController controller = new UdfpsKeyguardViewController(
        UdfpsKeyguardViewController controller = new UdfpsKeyguardViewController(
+10 −1
Original line number Original line Diff line number Diff line
@@ -45,13 +45,16 @@ import com.android.systemui.statusbar.phone.CentralSurfaces
import com.android.systemui.statusbar.phone.PhoneStatusBarViewController
import com.android.systemui.statusbar.phone.PhoneStatusBarViewController
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager
import com.android.systemui.statusbar.window.StatusBarWindowStateController
import com.android.systemui.statusbar.window.StatusBarWindowStateController
import com.android.systemui.util.mockito.any
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Before
import org.junit.Test
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runner.RunWith
import org.mockito.ArgumentCaptor
import org.mockito.ArgumentCaptor
import org.mockito.Mock
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.anyFloat
import org.mockito.Mockito.anyFloat
import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.never
import org.mockito.Mockito.verify
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when` as whenever
import org.mockito.Mockito.`when` as whenever
@@ -102,7 +105,6 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    @Mock
    @Mock
    private lateinit var alternateBouncerInteractor: AlternateBouncerInteractor
    private lateinit var alternateBouncerInteractor: AlternateBouncerInteractor
    @Mock lateinit var keyguardBouncerComponentFactory: KeyguardBouncerComponent.Factory
    @Mock lateinit var keyguardBouncerComponentFactory: KeyguardBouncerComponent.Factory
    @Mock lateinit var keyguardBouncerContainer: ViewGroup
    @Mock lateinit var keyguardBouncerComponent: KeyguardBouncerComponent
    @Mock lateinit var keyguardBouncerComponent: KeyguardBouncerComponent
    @Mock lateinit var keyguardHostViewController: KeyguardHostViewController
    @Mock lateinit var keyguardHostViewController: KeyguardHostViewController
    @Mock lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor
    @Mock lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor
@@ -116,6 +118,12 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
    fun setUp() {
    fun setUp() {
        MockitoAnnotations.initMocks(this)
        MockitoAnnotations.initMocks(this)
        whenever(view.bottom).thenReturn(VIEW_BOTTOM)
        whenever(view.bottom).thenReturn(VIEW_BOTTOM)
        whenever(view.findViewById<ViewGroup>(R.id.keyguard_bouncer_container))
                .thenReturn(mock(ViewGroup::class.java))
        whenever(keyguardBouncerComponentFactory.create(any(ViewGroup::class.java)))
                .thenReturn(keyguardBouncerComponent)
        whenever(keyguardBouncerComponent.keyguardHostViewController)
                .thenReturn(keyguardHostViewController)
        underTest = NotificationShadeWindowViewController(
        underTest = NotificationShadeWindowViewController(
            lockscreenShadeTransitionController,
            lockscreenShadeTransitionController,
            FalsingCollectorFake(),
            FalsingCollectorFake(),
@@ -275,6 +283,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {


    @Test
    @Test
    fun testGetBouncerContainer() {
    fun testGetBouncerContainer() {
        Mockito.clearInvocations(view)
        underTest.bouncerContainer
        underTest.bouncerContainer
        verify(view).findViewById<ViewGroup>(R.id.keyguard_bouncer_container)
        verify(view).findViewById<ViewGroup>(R.id.keyguard_bouncer_container)
    }
    }
Loading