diff options
| author | John Spurlock <jspurlock@google.com> | 2015-03-17 14:11:57 -0400 |
|---|---|---|
| committer | John Spurlock <jspurlock@google.com> | 2015-03-17 14:15:02 -0400 |
| commit | b94f2d6cad92c4f6ad184920e06a260d87eb3b6a (patch) | |
| tree | 7de1c99aced3e0688666b8949d3d60bfedae5010 | |
| parent | 0ef152ad75225069ab064b54ad85a6e1ebd85e51 (diff) | |
| download | frameworks_base-b94f2d6cad92c4f6ad184920e06a260d87eb3b6a.zip frameworks_base-b94f2d6cad92c4f6ad184920e06a260d87eb3b6a.tar.gz frameworks_base-b94f2d6cad92c4f6ad184920e06a260d87eb3b6a.tar.bz2 | |
Audio: Flag volume adjustments from hardware keys.
Bug: 19793279
Change-Id: If20d70c13c9e7d1f8a6b31e0069564073d30e2bc
4 files changed, 19 insertions, 10 deletions
diff --git a/core/java/android/view/PhoneWindow.java b/core/java/android/view/PhoneWindow.java index 8aef18a..c6c1481 100644 --- a/core/java/android/view/PhoneWindow.java +++ b/core/java/android/view/PhoneWindow.java @@ -1759,7 +1759,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { } else { MediaSessionLegacyHelper.getHelper(getContext()).sendAdjustVolumeBy( mVolumeControlStreamType, direction, - AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE); + AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE + | AudioManager.FLAG_FROM_KEY); } return true; } @@ -1837,15 +1838,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: case KeyEvent.KEYCODE_VOLUME_DOWN: { + final int flags = AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE + | AudioManager.FLAG_FROM_KEY; // If we have a session send it the volume command, otherwise // use the suggested stream. if (mMediaController != null) { - mMediaController.adjustVolume(0, AudioManager.FLAG_PLAY_SOUND - | AudioManager.FLAG_VIBRATE); + mMediaController.adjustVolume(0, flags); } else { MediaSessionLegacyHelper.getHelper(getContext()).sendAdjustVolumeBy( - mVolumeControlStreamType, 0, - AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE); + mVolumeControlStreamType, 0, flags); } return true; } diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 8c1ba05..365b935 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -438,6 +438,12 @@ public class AudioManager { */ public static final int FLAG_SHOW_VIBRATE_HINT = 1 << 11; + /** + * Adjusting the volume due to a hardware key press. + * @hide + */ + public static final int FLAG_FROM_KEY = 1 << 12; + private static final String[] FLAG_NAMES = { "FLAG_SHOW_UI", "FLAG_ALLOW_RINGER_MODES", @@ -451,6 +457,7 @@ public class AudioManager { "FLAG_ACTIVE_MEDIA_ONLY", "FLAG_SHOW_UI_WARNINGS", "FLAG_SHOW_VIBRATE_HINT", + "FLAG_FROM_KEY", }; /** @hide */ diff --git a/media/java/android/media/session/MediaSessionLegacyHelper.java b/media/java/android/media/session/MediaSessionLegacyHelper.java index 3276f0c..c61d7ad 100644 --- a/media/java/android/media/session/MediaSessionLegacyHelper.java +++ b/media/java/android/media/session/MediaSessionLegacyHelper.java @@ -197,17 +197,17 @@ public class MediaSessionLegacyHelper { break; } if (down || up) { - int flags; + int flags = AudioManager.FLAG_FROM_KEY; if (musicOnly) { // This flag is used when the screen is off to only affect // active media - flags = AudioManager.FLAG_ACTIVE_MEDIA_ONLY; + flags |= AudioManager.FLAG_ACTIVE_MEDIA_ONLY; } else { // These flags are consistent with the home screen if (up) { - flags = AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE; + flags |= AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_VIBRATE; } else { - flags = AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE; + flags |= AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE; } } if (direction != 0) { diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index cdd6c7f..b789d41 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -4905,7 +4905,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { return; } int keyCode = event.getKeyCode(); - int flags = AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND; + int flags = AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND + | AudioManager.FLAG_FROM_KEY; String pkgName = mContext.getOpPackageName(); switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: |
