Merge "[Keyguard] Fix unlock animation for occluded LS." into tm-qpr-dev
This commit is contained in:
@@ -2532,8 +2532,13 @@ public class CentralSurfacesImpl extends CoreStartable implements
|
||||
callback.onActivityStarted(ActivityManager.START_CANCELED);
|
||||
}
|
||||
};
|
||||
// Do not deferKeyguard when occluded because, when keyguard is occluded,
|
||||
// we do not launch the activity until keyguard is done.
|
||||
boolean occluded = mStatusBarKeyguardViewManager.isShowing()
|
||||
&& mStatusBarKeyguardViewManager.isOccluded();
|
||||
boolean deferred = !occluded;
|
||||
executeRunnableDismissingKeyguard(runnable, cancelRunnable, dismissShadeDirectly,
|
||||
willLaunchResolverActivity, true /* deferred */, animate);
|
||||
willLaunchResolverActivity, deferred /* deferred */, animate);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -19,6 +19,8 @@ package com.android.systemui.statusbar.phone;
|
||||
import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
||||
import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static junit.framework.Assert.assertFalse;
|
||||
import static junit.framework.Assert.assertTrue;
|
||||
import static junit.framework.TestCase.fail;
|
||||
@@ -44,6 +46,7 @@ import android.app.WallpaperManager;
|
||||
import android.app.trust.TrustManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.hardware.devicestate.DeviceStateManager;
|
||||
import android.hardware.display.AmbientDisplayConfiguration;
|
||||
@@ -984,6 +987,22 @@ public class CentralSurfacesImplTest extends SysuiTestCase {
|
||||
verify(mStatusBarStateController, never()).setLeaveOpenOnKeyguardHide(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void startActivityDismissingKeyguard_isShowingandIsOccluded() {
|
||||
when(mStatusBarKeyguardViewManager.isShowing()).thenReturn(true);
|
||||
when(mStatusBarKeyguardViewManager.isOccluded()).thenReturn(true);
|
||||
mCentralSurfaces.startActivityDismissingKeyguard(
|
||||
new Intent(),
|
||||
/* onlyProvisioned = */false,
|
||||
/* dismissShade = */false);
|
||||
verify(mStatusBarKeyguardViewManager).addAfterKeyguardGoneRunnable(any(Runnable.class));
|
||||
ArgumentCaptor<OnDismissAction> onDismissActionCaptor =
|
||||
ArgumentCaptor.forClass(OnDismissAction.class);
|
||||
verify(mStatusBarKeyguardViewManager)
|
||||
.dismissWithAction(onDismissActionCaptor.capture(), any(Runnable.class), eq(true));
|
||||
assertThat(onDismissActionCaptor.getValue().onDismiss()).isFalse();
|
||||
}
|
||||
|
||||
private void setDeviceState(int state) {
|
||||
ArgumentCaptor<DeviceStateManager.DeviceStateCallback> callbackCaptor =
|
||||
ArgumentCaptor.forClass(DeviceStateManager.DeviceStateCallback.class);
|
||||
|
||||
Reference in New Issue
Block a user