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

Commit 22926670 authored by Govinda Wasserman's avatar Govinda Wasserman
Browse files

Fixes home button showing on lockscreen in three button mode

Home button was showing because it inadvertently got caught in a change
making the home handle stay visible. This change adds a check for the
navigation mode to guard against changing nav bar button visibility when
not in gestural navigation mode.

Test: Tested locally
BUG: 148945635
FIX: 148945635
Change-Id: I15c17b771751a1e1f851b3250169f70aacfd1005
parent 91482ccc
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -91,8 +91,10 @@ import com.android.systemui.dagger.qualifiers.UiBackground;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.keyguard.dagger.KeyguardModule;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.statusbar.phone.BiometricUnlockController;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.NavigationModeController;
import com.android.systemui.statusbar.phone.NotificationPanelViewController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.StatusBar;
@@ -374,6 +376,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {

    private boolean mLockLater;
    private boolean mShowHomeOverLockscreen;
    private boolean mInGestureNavigationMode;

    private boolean mWakeAndUnlocking;
    private IKeyguardDrawnCallback mDrawnCallback;
@@ -720,7 +723,8 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {
            KeyguardUpdateMonitor keyguardUpdateMonitor, DumpManager dumpManager,
            @UiBackground Executor uiBgExecutor, PowerManager powerManager,
            TrustManager trustManager,
            DeviceConfigProxy deviceConfig) {
            DeviceConfigProxy deviceConfig,
            NavigationModeController navigationModeController) {
        super(context);
        mFalsingManager = falsingManager;
        mLockPatternUtils = lockPatternUtils;
@@ -742,6 +746,10 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {
                DeviceConfig.NAMESPACE_SYSTEMUI,
                mHandler::post,
                mOnPropertiesChangedListener);
        mInGestureNavigationMode =
                QuickStepContract.isGesturalMode(navigationModeController.addListener(mode -> {
                    mInGestureNavigationMode = QuickStepContract.isGesturalMode(mode);
                }));
    }

    public void userActivity() {
@@ -2013,7 +2021,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {
            // windows that appear on top, ever
            int flags = StatusBarManager.DISABLE_NONE;
            if (forceHideHomeRecentsButtons || isShowingAndNotOccluded()) {
                if (!mShowHomeOverLockscreen) {
                if (!mShowHomeOverLockscreen || !mInGestureNavigationMode) {
                    flags |= StatusBarManager.DISABLE_HOME;
                }
                flags |= StatusBarManager.DISABLE_RECENT;
+5 −2
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.systemui.dump.DumpManager;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.statusbar.phone.NavigationModeController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.util.DeviceConfigProxy;
@@ -64,7 +65,8 @@ public class KeyguardModule {
            PowerManager powerManager,
            TrustManager trustManager,
            @UiBackground Executor uiBgExecutor,
            DeviceConfigProxy deviceConfig) {
            DeviceConfigProxy deviceConfig,
            NavigationModeController navigationModeController) {
        return new KeyguardViewMediator(
                context,
                falsingManager,
@@ -78,6 +80,7 @@ public class KeyguardModule {
                uiBgExecutor,
                powerManager,
                trustManager,
                deviceConfig);
                deviceConfig,
                navigationModeController);
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.phone.NavigationModeController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.util.DeviceConfigProxy;
@@ -71,6 +72,7 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
    private @Mock DumpManager mDumpManager;
    private @Mock PowerManager mPowerManager;
    private @Mock TrustManager mTrustManager;
    private @Mock NavigationModeController mNavigationModeController;
    private DeviceConfigProxy mDeviceConfig = new DeviceConfigProxyFake();
    private FakeExecutor mUiBgExecutor = new FakeExecutor(new FakeSystemClock());

@@ -88,7 +90,7 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
                mContext, mFalsingManager, mLockPatternUtils, mBroadcastDispatcher,
                mNotificationShadeWindowController, () -> mStatusBarKeyguardViewManager,
                mDismissCallbackRegistry, mUpdateMonitor, mDumpManager, mUiBgExecutor,
                mPowerManager, mTrustManager, mDeviceConfig);
                mPowerManager, mTrustManager, mDeviceConfig, mNavigationModeController);
        mViewMediator.start();
    }