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

Commit 7462c2ab authored by Pat Manning's avatar Pat Manning
Browse files

Make showing back for bouncer only rely on back disable status, not home and recents as well.

Fix: 260655218
Test: manual. Create second user, switch to three button nav, set lockscreen password, lock and show IME on lockscreen.
Change-Id: I1d874196afc24d5bae86d525a81ae199152fc750
parent dbc5e56e
Loading
Loading
Loading
Loading
+2 −7
Original line number Original line Diff line number Diff line
@@ -90,13 +90,8 @@ public class TaskbarKeyguardController implements TaskbarControllers.LoggableTas
     */
     */
    private void updateIconsForBouncer() {
    private void updateIconsForBouncer() {
        boolean disableBack = (mKeyguardSysuiFlags & SYSUI_STATE_BACK_DISABLED) != 0;
        boolean disableBack = (mKeyguardSysuiFlags & SYSUI_STATE_BACK_DISABLED) != 0;
        boolean disableRecent = (mKeyguardSysuiFlags & SYSUI_STATE_OVERVIEW_DISABLED) != 0;
        boolean showBackForBouncer =
        boolean disableHome = (mKeyguardSysuiFlags & SYSUI_STATE_HOME_DISABLED) != 0;
                !disableBack && mKeyguardManager.isDeviceSecure() && mBouncerShowing;
        boolean onlyBackEnabled = !disableBack && disableRecent && disableHome;

        boolean showBackForBouncer = onlyBackEnabled &&
                mKeyguardManager.isDeviceSecure() &&
                mBouncerShowing;
        mNavbarButtonsViewController.setBackForBouncer(showBackForBouncer);
        mNavbarButtonsViewController.setBackForBouncer(showBackForBouncer);
    }
    }


+15 −54
Original line number Original line Diff line number Diff line
@@ -19,8 +19,6 @@ import android.app.KeyguardManager
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BACK_DISABLED
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BACK_DISABLED
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_BOUNCER_SHOWING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DOZING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_DEVICE_DOZING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED
import com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED
import org.junit.Before
import org.junit.Before
@@ -34,10 +32,8 @@ import org.mockito.Mockito.`when` as whenever


class TaskbarKeyguardControllerTest : TaskbarBaseTestCase() {
class TaskbarKeyguardControllerTest : TaskbarBaseTestCase() {


    @Mock
    @Mock lateinit var baseDragLayer: TaskbarDragLayer
    lateinit var baseDragLayer: TaskbarDragLayer
    @Mock lateinit var keyguardManager: KeyguardManager
    @Mock
    lateinit var keyguardManager: KeyguardManager


    @Before
    @Before
    override fun setup() {
    override fun setup() {
@@ -60,41 +56,35 @@ class TaskbarKeyguardControllerTest : TaskbarBaseTestCase() {
    @Test
    @Test
    fun keyguardShowing() {
    fun keyguardShowing() {
        setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING)
        setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING)
        verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
        verify(navbarButtonsViewController, times(1))
                true /*isKeyguardVisible*/,
            .setKeyguardVisible(true /*isKeyguardVisible*/, false /*isKeyguardOccluded*/)
                false /*isKeyguardOccluded*/)
    }
    }


    @Test
    @Test
    fun dozingShowing() {
    fun dozingShowing() {
        setFlags(SYSUI_STATE_DEVICE_DOZING)
        setFlags(SYSUI_STATE_DEVICE_DOZING)
        verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
        verify(navbarButtonsViewController, times(1))
                true /*isKeyguardVisible*/,
            .setKeyguardVisible(true /*isKeyguardVisible*/, false /*isKeyguardOccluded*/)
                false /*isKeyguardOccluded*/)
    }
    }


    @Test
    @Test
    fun keyguardOccluded() {
    fun keyguardOccluded() {
        setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED)
        setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED)
        verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
        verify(navbarButtonsViewController, times(1))
                false /*isKeyguardVisible*/,
            .setKeyguardVisible(false /*isKeyguardVisible*/, true /*isKeyguardOccluded*/)
                true /*isKeyguardOccluded*/)
    }
    }


    @Test
    @Test
    fun keyguardOccludedAndDozing() {
    fun keyguardOccludedAndDozing() {
        setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED.or(SYSUI_STATE_DEVICE_DOZING))
        setFlags(SYSUI_STATE_STATUS_BAR_KEYGUARD_SHOWING_OCCLUDED.or(SYSUI_STATE_DEVICE_DOZING))
        verify(navbarButtonsViewController, times(1)).setKeyguardVisible(
        verify(navbarButtonsViewController, times(1))
                true /*isKeyguardVisible*/,
            .setKeyguardVisible(true /*isKeyguardVisible*/, true /*isKeyguardOccluded*/)
                true /*isKeyguardOccluded*/)
    }
    }


    @Test
    @Test
    fun deviceInsecure_hideBackForBouncer() {
    fun deviceInsecure_hideBackForBouncer() {
        whenever(keyguardManager.isDeviceSecure).thenReturn(false)
        whenever(keyguardManager.isDeviceSecure).thenReturn(false)
        setFlags(SYSUI_STATE_OVERVIEW_DISABLED
        setFlags(SYSUI_STATE_BOUNCER_SHOWING)
                .or(SYSUI_STATE_HOME_DISABLED)
                .or(SYSUI_STATE_BOUNCER_SHOWING))


        verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
        verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
    }
    }
@@ -102,46 +92,17 @@ class TaskbarKeyguardControllerTest : TaskbarBaseTestCase() {
    @Test
    @Test
    fun deviceSecure_showBackForBouncer() {
    fun deviceSecure_showBackForBouncer() {
        whenever(keyguardManager.isDeviceSecure).thenReturn(true)
        whenever(keyguardManager.isDeviceSecure).thenReturn(true)
        setFlags(SYSUI_STATE_OVERVIEW_DISABLED
        setFlags(SYSUI_STATE_BOUNCER_SHOWING)
                .or(SYSUI_STATE_HOME_DISABLED)
                .or(SYSUI_STATE_BOUNCER_SHOWING))


        verify(navbarButtonsViewController, times(1)).setBackForBouncer(true)
        verify(navbarButtonsViewController, times(1)).setBackForBouncer(true)
    }
    }


    @Test
    fun homeShowing_hideBackForBouncer() {
        whenever(keyguardManager.isDeviceSecure).thenReturn(true)
        setFlags(SYSUI_STATE_OVERVIEW_DISABLED
                .or(SYSUI_STATE_BOUNCER_SHOWING))

        verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
    }

    @Test
    fun overviewShowing_hideBackForBouncer() {
        whenever(keyguardManager.isDeviceSecure).thenReturn(true)
        setFlags(SYSUI_STATE_HOME_DISABLED
                .or(SYSUI_STATE_BOUNCER_SHOWING))

        verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
    }

    @Test
    @Test
    fun backDisabled_hideBackForBouncer() {
    fun backDisabled_hideBackForBouncer() {
        whenever(keyguardManager.isDeviceSecure).thenReturn(true)
        whenever(keyguardManager.isDeviceSecure).thenReturn(true)
        setFlags(SYSUI_STATE_BACK_DISABLED
        setFlags(SYSUI_STATE_BACK_DISABLED.or(SYSUI_STATE_BOUNCER_SHOWING))
                .or(SYSUI_STATE_BOUNCER_SHOWING))


        verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)
        verify(navbarButtonsViewController, times(1)).setBackForBouncer(false)

        // back disabled along with home and overview
        setFlags(SYSUI_STATE_BACK_DISABLED
                .or(SYSUI_STATE_HOME_DISABLED)
                .or(SYSUI_STATE_OVERVIEW_DISABLED)
                .or(SYSUI_STATE_BOUNCER_SHOWING))

        verify(navbarButtonsViewController, times(2)).setBackForBouncer(false)
    }
    }


    private fun setFlags(flags: Int) {
    private fun setFlags(flags: Int) {