diff options
Diffstat (limited to 'packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java')
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java index 2cf30ba..cd4b24a 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java @@ -60,6 +60,7 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { protected ViewMediatorCallback mViewMediatorCallback; protected LockPatternUtils mLockPatternUtils; private OnDismissAction mDismissAction; + private Runnable mCancelAction; private final KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() { @@ -126,8 +127,17 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { * * @param action */ - public void setOnDismissAction(OnDismissAction action) { + public void setOnDismissAction(OnDismissAction action, Runnable cancelAction) { + if (mCancelAction != null) { + mCancelAction.run(); + mCancelAction = null; + } mDismissAction = action; + mCancelAction = cancelAction; + } + + public void cancelDismissAction() { + setOnDismissAction(null, null); } @Override @@ -197,6 +207,7 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { if (mDismissAction != null) { deferKeyguardDone = mDismissAction.onDismiss(); mDismissAction = null; + mCancelAction = null; } if (mViewMediatorCallback != null) { if (deferKeyguardDone) { |