Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardDismissHandler.java +5 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,9 @@ import com.android.keyguard.KeyguardHostView.OnDismissAction; /** Executes actions that require the screen to be unlocked. */ public interface KeyguardDismissHandler { /** Executes an action that requres the screen to be unlocked. */ void dismissKeyguardThenExecute( OnDismissAction action, @Nullable Runnable cancelAction, boolean afterKeyguardGone); /** * Executes an action that requres the screen to be unlocked, showing the keyguard if * necessary. Does not close the notification shade (in case it was open). */ void executeWhenUnlocked(OnDismissAction action); } packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardDismissUtil.java +2 −3 Original line number Diff line number Diff line Loading @@ -40,14 +40,13 @@ public class KeyguardDismissUtil implements KeyguardDismissHandler { * <p>Must be called after {@link #setDismissHandler}. */ @Override public void dismissKeyguardThenExecute( OnDismissAction action, Runnable cancelAction, boolean afterKeyguardGone) { public void executeWhenUnlocked(OnDismissAction action) { KeyguardDismissHandler dismissHandler = mDismissHandler; if (dismissHandler == null) { Log.wtf(TAG, "KeyguardDismissHandler not set."); action.onDismiss(); return; } dismissHandler.dismissKeyguardThenExecute(action, cancelAction, afterKeyguardGone); dismissHandler.executeWhenUnlocked(action); } } packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +8 −2 Original line number Diff line number Diff line Loading @@ -1326,8 +1326,7 @@ public class StatusBar extends SystemUI implements DemoMode, mKeyguardViewMediatorCallback = keyguardViewMediator.getViewMediatorCallback(); mLightBarController.setFingerprintUnlockController(mFingerprintUnlockController); Dependency.get(KeyguardDismissUtil.class).setDismissHandler( this::dismissKeyguardThenExecute); Dependency.get(KeyguardDismissUtil.class).setDismissHandler(this::executeWhenUnlocked); Trace.endSection(); } Loading Loading @@ -3088,6 +3087,13 @@ public class StatusBar extends SystemUI implements DemoMode, } } private void executeWhenUnlocked(OnDismissAction action) { if (mStatusBarKeyguardViewManager.isShowing()) { mLeaveOpenOnKeyguardHide = true; } dismissKeyguardThenExecute(action, null /* cancelAction */, false /* afterKeyguardGone */); } protected void dismissKeyguardThenExecute(OnDismissAction action, boolean afterKeyguardGone) { dismissKeyguardThenExecute(action, null /* cancelRunnable */, afterKeyguardGone); } Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java +1 −2 Original line number Diff line number Diff line Loading @@ -183,8 +183,7 @@ public class SmartReplyView extends ViewGroup { }; b.setOnClickListener(view -> { mKeyguardDismissUtil.dismissKeyguardThenExecute( action, null /* cancelAction */, false /* afterKeyguardGone */); mKeyguardDismissUtil.executeWhenUnlocked(action); }); b.setAccessibilityDelegate(new AccessibilityDelegate() { Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java +3 −10 Original line number Diff line number Diff line Loading @@ -87,8 +87,7 @@ public class SmartReplyViewTest extends SysuiTestCase { MockitoAnnotations.initMocks(this); mReceiver = new BlockingQueueIntentReceiver(); mContext.registerReceiver(mReceiver, new IntentFilter(TEST_ACTION)); mDependency.get(KeyguardDismissUtil.class).setDismissHandler( (action, cancelAction, afterKeyguardGone) -> action.onDismiss()); mDependency.get(KeyguardDismissUtil.class).setDismissHandler(action -> action.onDismiss()); mContainer = new View(mContext, null); mView = SmartReplyView.inflate(mContext, null); Loading Loading @@ -130,12 +129,7 @@ public class SmartReplyViewTest extends SysuiTestCase { @Test public void testSendSmartReply_keyguardCancelled() throws InterruptedException { mDependency.get(KeyguardDismissUtil.class).setDismissHandler( (action, cancelAction, afterKeyguardGone) -> { if (cancelAction != null) { cancelAction.run(); } }); mDependency.get(KeyguardDismissUtil.class).setDismissHandler(action -> {}); setRepliesFromRemoteInput(TEST_CHOICES); mView.getChildAt(2).performClick(); Loading @@ -146,8 +140,7 @@ public class SmartReplyViewTest extends SysuiTestCase { @Test public void testSendSmartReply_waitsForKeyguard() throws InterruptedException { AtomicReference<OnDismissAction> actionRef = new AtomicReference<>(); mDependency.get(KeyguardDismissUtil.class).setDismissHandler( (action, cancelAction, afterKeyguardGone) -> actionRef.set(action)); mDependency.get(KeyguardDismissUtil.class).setDismissHandler(actionRef::set); setRepliesFromRemoteInput(TEST_CHOICES); mView.getChildAt(2).performClick(); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardDismissHandler.java +5 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,9 @@ import com.android.keyguard.KeyguardHostView.OnDismissAction; /** Executes actions that require the screen to be unlocked. */ public interface KeyguardDismissHandler { /** Executes an action that requres the screen to be unlocked. */ void dismissKeyguardThenExecute( OnDismissAction action, @Nullable Runnable cancelAction, boolean afterKeyguardGone); /** * Executes an action that requres the screen to be unlocked, showing the keyguard if * necessary. Does not close the notification shade (in case it was open). */ void executeWhenUnlocked(OnDismissAction action); }
packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardDismissUtil.java +2 −3 Original line number Diff line number Diff line Loading @@ -40,14 +40,13 @@ public class KeyguardDismissUtil implements KeyguardDismissHandler { * <p>Must be called after {@link #setDismissHandler}. */ @Override public void dismissKeyguardThenExecute( OnDismissAction action, Runnable cancelAction, boolean afterKeyguardGone) { public void executeWhenUnlocked(OnDismissAction action) { KeyguardDismissHandler dismissHandler = mDismissHandler; if (dismissHandler == null) { Log.wtf(TAG, "KeyguardDismissHandler not set."); action.onDismiss(); return; } dismissHandler.dismissKeyguardThenExecute(action, cancelAction, afterKeyguardGone); dismissHandler.executeWhenUnlocked(action); } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +8 −2 Original line number Diff line number Diff line Loading @@ -1326,8 +1326,7 @@ public class StatusBar extends SystemUI implements DemoMode, mKeyguardViewMediatorCallback = keyguardViewMediator.getViewMediatorCallback(); mLightBarController.setFingerprintUnlockController(mFingerprintUnlockController); Dependency.get(KeyguardDismissUtil.class).setDismissHandler( this::dismissKeyguardThenExecute); Dependency.get(KeyguardDismissUtil.class).setDismissHandler(this::executeWhenUnlocked); Trace.endSection(); } Loading Loading @@ -3088,6 +3087,13 @@ public class StatusBar extends SystemUI implements DemoMode, } } private void executeWhenUnlocked(OnDismissAction action) { if (mStatusBarKeyguardViewManager.isShowing()) { mLeaveOpenOnKeyguardHide = true; } dismissKeyguardThenExecute(action, null /* cancelAction */, false /* afterKeyguardGone */); } protected void dismissKeyguardThenExecute(OnDismissAction action, boolean afterKeyguardGone) { dismissKeyguardThenExecute(action, null /* cancelRunnable */, afterKeyguardGone); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyView.java +1 −2 Original line number Diff line number Diff line Loading @@ -183,8 +183,7 @@ public class SmartReplyView extends ViewGroup { }; b.setOnClickListener(view -> { mKeyguardDismissUtil.dismissKeyguardThenExecute( action, null /* cancelAction */, false /* afterKeyguardGone */); mKeyguardDismissUtil.executeWhenUnlocked(action); }); b.setAccessibilityDelegate(new AccessibilityDelegate() { Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyViewTest.java +3 −10 Original line number Diff line number Diff line Loading @@ -87,8 +87,7 @@ public class SmartReplyViewTest extends SysuiTestCase { MockitoAnnotations.initMocks(this); mReceiver = new BlockingQueueIntentReceiver(); mContext.registerReceiver(mReceiver, new IntentFilter(TEST_ACTION)); mDependency.get(KeyguardDismissUtil.class).setDismissHandler( (action, cancelAction, afterKeyguardGone) -> action.onDismiss()); mDependency.get(KeyguardDismissUtil.class).setDismissHandler(action -> action.onDismiss()); mContainer = new View(mContext, null); mView = SmartReplyView.inflate(mContext, null); Loading Loading @@ -130,12 +129,7 @@ public class SmartReplyViewTest extends SysuiTestCase { @Test public void testSendSmartReply_keyguardCancelled() throws InterruptedException { mDependency.get(KeyguardDismissUtil.class).setDismissHandler( (action, cancelAction, afterKeyguardGone) -> { if (cancelAction != null) { cancelAction.run(); } }); mDependency.get(KeyguardDismissUtil.class).setDismissHandler(action -> {}); setRepliesFromRemoteInput(TEST_CHOICES); mView.getChildAt(2).performClick(); Loading @@ -146,8 +140,7 @@ public class SmartReplyViewTest extends SysuiTestCase { @Test public void testSendSmartReply_waitsForKeyguard() throws InterruptedException { AtomicReference<OnDismissAction> actionRef = new AtomicReference<>(); mDependency.get(KeyguardDismissUtil.class).setDismissHandler( (action, cancelAction, afterKeyguardGone) -> actionRef.set(action)); mDependency.get(KeyguardDismissUtil.class).setDismissHandler(actionRef::set); setRepliesFromRemoteInput(TEST_CHOICES); mView.getChildAt(2).performClick(); Loading