Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +6 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading