diff options
author | Bryce Lee <brycelee@google.com> | 2015-04-09 13:10:33 -0700 |
---|---|---|
committer | Bryce Lee <brycelee@google.com> | 2015-04-09 13:10:33 -0700 |
commit | eccaf7290ab833d12049a184747603cd74261490 (patch) | |
tree | 159bdc52147399d76eee50a91d98c90016065e7a /policy | |
parent | 0b1610ff49b042df19fc9071f2811efb642f7df9 (diff) | |
download | frameworks_base-eccaf7290ab833d12049a184747603cd74261490.zip frameworks_base-eccaf7290ab833d12049a184747603cd74261490.tar.gz frameworks_base-eccaf7290ab833d12049a184747603cd74261490.tar.bz2 |
Allow going to home action to work for SHORT_PRESS_POWER_GO_HOME with
keyguard enabled.
Bug: 20037090
Change-Id: I613f3278a234e3961cb4be1976da0f821aebfc1f
Diffstat (limited to 'policy')
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 78 |
1 files changed, 42 insertions, 36 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 58c2fba..634b57e 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -992,7 +992,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { launchHomeFromHotKey(); break; case SHORT_PRESS_POWER_GO_HOME: - launchHomeFromHotKey(); + launchHomeFromHotKey(true /* awakenFromDreams */, false /*respectKeyguard*/); break; } } @@ -1070,7 +1070,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { PowerManager.GO_TO_SLEEP_REASON_SLEEP_BUTTON, 0); break; case SHORT_PRESS_SLEEP_GO_TO_SLEEP_AND_GO_HOME: - launchHomeFromHotKey(false /* awakenDreams */); + launchHomeFromHotKey(false /* awakenDreams */, true /*respectKeyguard*/); mPowerManager.goToSleep(event.getEventTime(), PowerManager.GO_TO_SLEEP_REASON_SLEEP_BUTTON, 0); break; @@ -3064,50 +3064,56 @@ public class PhoneWindowManager implements WindowManagerPolicy { } void launchHomeFromHotKey() { - launchHomeFromHotKey(true /* awakenFromDreams */); + launchHomeFromHotKey(true /* awakenFromDreams */, true /*respectKeyguard*/); } /** * A home key -> launch home action was detected. Take the appropriate action * given the situation with the keyguard. */ - void launchHomeFromHotKey(final boolean awakenFromDreams) { - if (isKeyguardShowingAndNotOccluded()) { - // don't launch home if keyguard showing - } else if (!mHideLockScreen && mKeyguardDelegate.isInputRestricted()) { - // when in keyguard restricted mode, must first verify unlock - // before launching home - mKeyguardDelegate.verifyUnlock(new OnKeyguardExitResult() { - @Override - public void onKeyguardExitResult(boolean success) { - if (success) { - try { - ActivityManagerNative.getDefault().stopAppSwitches(); - } catch (RemoteException e) { + void launchHomeFromHotKey(final boolean awakenFromDreams, final boolean respectKeyguard) { + if (respectKeyguard) { + if (isKeyguardShowingAndNotOccluded()) { + // don't launch home if keyguard showing + return; + } + + if (!mHideLockScreen && mKeyguardDelegate.isInputRestricted()) { + // when in keyguard restricted mode, must first verify unlock + // before launching home + mKeyguardDelegate.verifyUnlock(new OnKeyguardExitResult() { + @Override + public void onKeyguardExitResult(boolean success) { + if (success) { + try { + ActivityManagerNative.getDefault().stopAppSwitches(); + } catch (RemoteException e) { + } + sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); + startDockOrHome(true /*fromHomeKey*/, awakenFromDreams); } - sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); - startDockOrHome(true /*fromHomeKey*/, awakenFromDreams); } - } - }); - } else { - // no keyguard stuff to worry about, just launch home! - try { - ActivityManagerNative.getDefault().stopAppSwitches(); - } catch (RemoteException e) { + }); + return; } - if (mRecentsVisible) { - // Hide Recents and notify it to launch Home - if (awakenFromDreams) { - awakenDreams(); - } - sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); - hideRecentApps(false, true); - } else { - // Otherwise, just launch Home - sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); - startDockOrHome(true /*fromHomeKey*/, awakenFromDreams); + } + + // no keyguard stuff to worry about, just launch home! + try { + ActivityManagerNative.getDefault().stopAppSwitches(); + } catch (RemoteException e) { + } + if (mRecentsVisible) { + // Hide Recents and notify it to launch Home + if (awakenFromDreams) { + awakenDreams(); } + sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); + hideRecentApps(false, true); + } else { + // Otherwise, just launch Home + sendCloseSystemWindows(SYSTEM_DIALOG_REASON_HOME_KEY); + startDockOrHome(true /*fromHomeKey*/, awakenFromDreams); } } |