diff options
author | Bryce Lee <brycelee@google.com> | 2014-11-04 00:23:50 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2014-11-04 00:23:50 +0000 |
commit | 99a6c1cbe83baff199be6fd69234e20b4b14241d (patch) | |
tree | 9d64c954ee5ab2ea7e25c0313c15f584b6acb553 /policy/src | |
parent | 73e558664d56a68745f9f4b2dc23bfee39ec624a (diff) | |
parent | abf33e48baff1ffc14562a499ec3eabc09a5dbb5 (diff) | |
download | frameworks_base-99a6c1cbe83baff199be6fd69234e20b4b14241d.zip frameworks_base-99a6c1cbe83baff199be6fd69234e20b4b14241d.tar.gz frameworks_base-99a6c1cbe83baff199be6fd69234e20b4b14241d.tar.bz2 |
Merge "[Theater Mode] Add framework support for screen double tapping out of theater mode." into lmp-sprout-dev
automerge: abf33e4
* commit 'abf33e48baff1ffc14562a499ec3eabc09a5dbb5':
[Theater Mode] Add framework support for screen double tapping out of theater mode.
Diffstat (limited to 'policy/src')
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index bf5cdff..792712f 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -4767,18 +4767,39 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public int interceptMotionBeforeQueueingNonInteractive(long whenNanos, int policyFlags) { if ((policyFlags & FLAG_WAKE) != 0) { - wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion); - return 0; + if (wakeUp(whenNanos / 1000000, mAllowTheaterModeWakeFromMotion)) { + return 0; + } } + if (shouldDispatchInputWhenNonInteractive()) { return ACTION_PASS_TO_USER; } + return 0; } private boolean shouldDispatchInputWhenNonInteractive() { - return keyguardIsShowingTq() && mDisplay != null && - mDisplay.getState() != Display.STATE_OFF; + // Send events to keyguard while the screen is on. + if (keyguardIsShowingTq() && mDisplay != null && mDisplay.getState() != Display.STATE_OFF) { + return true; + } + + // Send events to a dozing dream even if the screen is off since the dream + // is in control of the state of the screen. + IDreamManager dreamManager = getDreamManager(); + + try { + if (dreamManager != null && dreamManager.isDreaming()) { + return true; + } + } catch (RemoteException e) { + Slog.e(TAG, "RemoteException when checking if dreaming", e); + } + + // Otherwise, consume events since the user can't see what is being + // interacted with. + return false; } void dispatchMediaKeyWithWakeLock(KeyEvent event) { @@ -4949,12 +4970,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { wakeUp(eventTime, mAllowTheaterModeWakeFromPowerKey); } - private void wakeUp(long wakeTime, boolean wakeInTheaterMode) { + private boolean wakeUp(long wakeTime, boolean wakeInTheaterMode) { if (!wakeInTheaterMode && isTheaterModeEnabled()) { - return; + return false; } mPowerManager.wakeUp(wakeTime); + return true; } // Called on the PowerManager's Notifier thread. |