@Override
public boolean canShowDismissingWindowWhileLockedLw() {
- return false;
+ // If the keyguard is trusted, it will unlock without a challange. Therefore, windows with
+ // FLAG_DISMISS_KEYGUARD don't need to be force hidden, as they will unlock the phone right
+ // away anyways.
+ return mKeyguardDelegate != null && mKeyguardDelegate.isTrusted();
}
private void launchAssistLongPressAction() {
}
} else if (mDismissKeyguard != DISMISS_KEYGUARD_NONE) {
mKeyguardHidden = false;
- if (setKeyguardOccludedLw(false)) {
+ final boolean trusted = mKeyguardDelegate.isTrusted();
+ if (trusted) {
+ // No need to un-occlude keyguard - we'll dimiss it right away anyways.
+ } else if (setKeyguardOccludedLw(false)) {
changes |= FINISH_LAYOUT_REDO_LAYOUT
| FINISH_LAYOUT_REDO_CONFIG
| FINISH_LAYOUT_REDO_WALLPAPER;
mHandler.post(new Runnable() {
@Override
public void run() {
- mKeyguardDelegate.dismiss(false /* allowWhileOccluded */);
+ mKeyguardDelegate.dismiss(trusted /* allowWhileOccluded */);
}
});
}