Doze: Route volume keys to music only while pulsing.

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
This commit is contained in:
John Spurlock
2014-10-01 15:32:22 -04:00
parent c909e1b2df
commit 0b99ea94f0
2 changed files with 10 additions and 2 deletions

View 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;

View 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;