diff options
author | nadlabak <pavel@doshaska.net> | 2013-05-13 17:41:57 +0200 |
---|---|---|
committer | nadlabak <pavel@doshaska.net> | 2013-09-17 01:23:58 +0200 |
commit | 22a4d65f66a6155a60d77a22922c195fb22a1bd6 (patch) | |
tree | d282a402ce56e1bcb66eb515bbe08d19c568f781 /media | |
parent | d8574e9aa82071f85b751e1f7dccd19759ffc7a9 (diff) | |
download | frameworks_base-22a4d65f66a6155a60d77a22922c195fb22a1bd6.zip frameworks_base-22a4d65f66a6155a60d77a22922c195fb22a1bd6.tar.gz frameworks_base-22a4d65f66a6155a60d77a22922c195fb22a1bd6.tar.bz2 |
Re-implement orientation aware volume buttons at lower level
Rework of http://review.cyanogenmod.org/31979
Fixes:
1. inconsistent volume button behaviour depending on app in use
- the buttons were not swapped for some NDK/OPENSL ES apps like
e.g. MX Player
2. the function of volume buttons on external input devices like BT/USB
keyboards should not be affected by the main unit orientation
This commit finishes http://review.cyanogenmod.org/18273 - use of system
property has been replaced with config push via JNI as suggested during
the original review.
Patch Set 7: Circumvent the need for "keyboard.orientationAware = 1" idc
Patch Set 8: Don't leak implementation details outside InputReader
Change-Id: I19cc60cb0acb0005ab13fa069f52e3d468d694e7
Diffstat (limited to 'media')
-rw-r--r-- | media/java/android/media/AudioManager.java | 38 |
1 files changed, 11 insertions, 27 deletions
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index ac2588d..f55a0bb 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -36,9 +36,7 @@ import android.os.ServiceManager; import android.provider.Settings; import android.util.Log; import android.view.KeyEvent; -import android.view.Surface; import android.view.VolumePanel; -import android.view.WindowManager; import java.util.HashMap; @@ -56,7 +54,6 @@ public class AudioManager { private final boolean mUseVolumeKeySounds; private static String TAG = "AudioManager"; private final ProfileManager mProfileManager; - private final WindowManager mWindowManager; /** * Broadcast intent, a hint for applications that audio is about to become @@ -429,7 +426,6 @@ public class AudioManager { mUseVolumeKeySounds = mContext.getResources().getBoolean( com.android.internal.R.bool.config_useVolumeKeySounds); mProfileManager = (ProfileManager) context.getSystemService(Context.PROFILE_SERVICE); - mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); } private static IAudioService getService() @@ -480,33 +476,21 @@ public class AudioManager { * Adjust the volume in on key down since it is more * responsive to the user. */ - int direction; - int swapKeys = Settings.System.getInt(mContext.getContentResolver(), - Settings.System.SWAP_VOLUME_KEYS_ON_ROTATION, 0); - int rotation = mWindowManager.getDefaultDisplay().getRotation(); - if (swapKeys == 1 // phone or hybrid - && (rotation == Surface.ROTATION_90 - || rotation == Surface.ROTATION_180)) { - direction = keyCode == KeyEvent.KEYCODE_VOLUME_UP - ? ADJUST_LOWER - : ADJUST_RAISE; - } else if (swapKeys == 2 // tablet - && (rotation == Surface.ROTATION_180 - || rotation == Surface.ROTATION_270)) { - direction = keyCode == KeyEvent.KEYCODE_VOLUME_UP - ? ADJUST_LOWER - : ADJUST_RAISE; - } else { - direction = keyCode == KeyEvent.KEYCODE_VOLUME_UP - ? ADJUST_RAISE - : ADJUST_LOWER; - } int flags = FLAG_SHOW_UI | FLAG_VIBRATE; if (mUseMasterVolume) { - adjustMasterVolume(direction, flags); + adjustMasterVolume( + keyCode == KeyEvent.KEYCODE_VOLUME_UP + ? ADJUST_RAISE + : ADJUST_LOWER, + flags); } else { - adjustSuggestedStreamVolume(direction, stream, flags); + adjustSuggestedStreamVolume( + keyCode == KeyEvent.KEYCODE_VOLUME_UP + ? ADJUST_RAISE + : ADJUST_LOWER, + stream, + flags); } break; case KeyEvent.KEYCODE_VOLUME_MUTE: |