OSDN Git Service

Doze: Route volume keys to music only while pulsing.
authorJohn Spurlock <jspurlock@google.com>
Wed, 1 Oct 2014 19:32:22 +0000 (15:32 -0400)
committerJohn Spurlock <jspurlock@google.com>
Wed, 1 Oct 2014 19:32:22 +0000 (15:32 -0400)
Avoid waking up the device on hw vol key presses during a doze
pulse.  Instead, behave as if the screen was off for these keys,
namely forwarding them over to the session manager.

Bug:17672775
Change-Id: I566b93f0bdea79253ac3eca41d3876b271c61306

packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java

index 2227408..d0f73b1 100644 (file)
@@ -2135,6 +2135,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
         return onKeyguard && (isMethodInsecure || mDozing || mScreenOnComingFromTouch);
     }
 
+    public boolean isDozing() {
+        return mDozing;
+    }
+
     @Override  // NotificationData.Environment
     public String getCurrentMediaNotificationKey() {
         return mMediaNotificationKey;
index 242f1b7..f0c599d 100644 (file)
@@ -23,6 +23,7 @@ import android.graphics.Paint;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffXfermode;
 import android.graphics.Rect;
+import android.media.session.MediaSessionLegacyHelper;
 import android.os.IBinder;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
@@ -133,11 +134,14 @@ public class StatusBarWindowView extends FrameLayout {
                 if (!down) {
                     return mService.onSpacePressed();
                 }
+                break;
             case KeyEvent.KEYCODE_VOLUME_DOWN:
             case KeyEvent.KEYCODE_VOLUME_UP:
-                if (down) {
-                    mService.wakeUpIfDozing(event.getEventTime(), false);
+                if (mService.isDozing()) {
+                    MediaSessionLegacyHelper.getHelper(mContext).sendVolumeKeyEvent(event, true);
+                    return true;
                 }
+                break;
         }
         if (mService.interceptMediaKey(event)) {
             return true;