Fixed an issue where the shade wouldn't stay open on unlock

We shouldn't hide the keyguard if the shade should stay open

Test: adb shell setprop persist.wm.enable_remote_keyguard_animation 1
Bug: 187516764
Change-Id: I0a14e4973ea8d228ba687372719d05d1ab588ef8
This commit is contained in:
Selim Cinek
2021-05-07 18:56:25 +02:00
parent d245565acc
commit ca111f9e44
3 changed files with 16 additions and 14 deletions

View File

@@ -104,6 +104,7 @@ import com.android.systemui.keyguard.dagger.KeyguardModule;
import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.phone.BiometricUnlockController;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
@@ -229,6 +230,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
private AlarmManager mAlarmManager;
private AudioManager mAudioManager;
private StatusBarManager mStatusBarManager;
private final SysuiStatusBarStateController mStatusBarStateController;
private final Executor mUiBgExecutor;
private boolean mSystemReady;
@@ -779,7 +781,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
NavigationModeController navigationModeController,
KeyguardDisplayManager keyguardDisplayManager,
DozeParameters dozeParameters,
StatusBarStateController statusBarStateController,
SysuiStatusBarStateController statusBarStateController,
KeyguardStateController keyguardStateController,
Lazy<KeyguardUnlockAnimationController> keyguardUnlockAnimationControllerLazy) {
super(context);
@@ -808,6 +810,7 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
mInGestureNavigationMode = QuickStepContract.isGesturalMode(mode);
}));
mDozeParameters = dozeParameters;
mStatusBarStateController = statusBarStateController;
statusBarStateController.addCallback(this);
mKeyguardStateController = keyguardStateController;
@@ -2100,19 +2103,17 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable,
playSounds(false);
}
if (KeyguardService.sEnableRemoteKeyguardAnimation) {
// When remaining on the shade, there's no need to do a fancy remote animation,
// it will dismiss the panel in that case.
if (KeyguardService.sEnableRemoteKeyguardAnimation
&& !mStatusBarStateController.leaveOpenOnKeyguardHide()
&& apps != null && apps.length > 0) {
mSurfaceBehindRemoteAnimationFinishedCallback = finishedCallback;
mSurfaceBehindRemoteAnimationRunning = true;
if (apps != null && apps.length > 0) {
// Pass the surface and metadata to the unlock animation controller.
mKeyguardUnlockAnimationControllerLazy.get().notifyStartKeyguardExitAnimation(
apps[0], startTime, mSurfaceBehindRemoteAnimationRequested);
} else {
// We weren't given any surfaces to animate, so just finish.
onKeyguardExitRemoteAnimationFinished();
return;
}
// Pass the surface and metadata to the unlock animation controller.
mKeyguardUnlockAnimationControllerLazy.get().notifyStartKeyguardExitAnimation(
apps[0], startTime, mSurfaceBehindRemoteAnimationRequested);
} else {
setShowingLocked(false);
mWakeAndUnlocking = false;

View File

@@ -47,6 +47,7 @@ import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.KeyguardLiftController;
import com.android.systemui.statusbar.phone.StatusBar;
@@ -94,7 +95,7 @@ public class KeyguardModule {
NavigationModeController navigationModeController,
KeyguardDisplayManager keyguardDisplayManager,
DozeParameters dozeParameters,
StatusBarStateController statusBarStateController,
SysuiStatusBarStateController statusBarStateController,
KeyguardStateController keyguardStateController,
Lazy<KeyguardUnlockAnimationController> keyguardUnlockAnimationController) {
return new KeyguardViewMediator(

View File

@@ -46,7 +46,7 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.classifier.FalsingCollectorFake;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.navigationbar.NavigationModeController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.policy.KeyguardStateController;
@@ -79,7 +79,7 @@ public class KeyguardViewMediatorTest extends SysuiTestCase {
private @Mock NavigationModeController mNavigationModeController;
private @Mock KeyguardDisplayManager mKeyguardDisplayManager;
private @Mock DozeParameters mDozeParameters;
private @Mock StatusBarStateController mStatusBarStateController;
private @Mock SysuiStatusBarStateController mStatusBarStateController;
private @Mock KeyguardStateController mKeyguardStateController;
private @Mock KeyguardUnlockAnimationController mKeyguardUnlockAnimationController;
private DeviceConfigProxy mDeviceConfig = new DeviceConfigProxyFake();