summaryrefslogtreecommitdiffstats
path: root/policy/src
diff options
context:
space:
mode:
authorBryce Lee <brycelee@google.com>2014-11-04 02:21:05 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-11-04 02:21:05 +0000
commit1e2a01a6edd5fb95f62207f1e1386b4701e8bcb2 (patch)
treeb9d288244cf43ed81626f0aabd041b9d036de28e /policy/src
parent52973fa234afcc32bda8e89de6a49e4012be50fa (diff)
parent68993a41b35eb82459b3686c9baff54f980168ed (diff)
downloadframeworks_base-1e2a01a6edd5fb95f62207f1e1386b4701e8bcb2.zip
frameworks_base-1e2a01a6edd5fb95f62207f1e1386b4701e8bcb2.tar.gz
frameworks_base-1e2a01a6edd5fb95f62207f1e1386b4701e8bcb2.tar.bz2
am 68993a41: am 99a6c1cb: Merge "[Theater Mode] Add framework support for screen double tapping out of theater mode." into lmp-sprout-dev automerge: abf33e4
* commit '68993a41b35eb82459b3686c9baff54f980168ed': [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.java34
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 9dbb4eb..0027b06 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.