diff options
author | Tarun Nainani <tnainani@codeaurora.org> | 2015-01-21 18:52:59 -0800 |
---|---|---|
committer | WebTech Code Review <code-review@localhost> | 2015-01-23 11:27:06 -0800 |
commit | f5563b64f085505903495fc6a818937eee627656 (patch) | |
tree | e1f98e03f30fad22d0eef162f4fbde0c0b9acc40 /src/com/android/browser/Controller.java | |
parent | d106f37bfc4dd3eef12cdf5a0c7075b5f8110671 (diff) | |
download | android_packages_apps_Gello-f5563b64f085505903495fc6a818937eee627656.tar.gz android_packages_apps_Gello-f5563b64f085505903495fc6a818937eee627656.tar.bz2 android_packages_apps_Gello-f5563b64f085505903495fc6a818937eee627656.zip |
Forward keyevents to AudioManager when browser activity is on top
Fixes-issue: SWE-3166
Change-Id: Ibd0e1f0c6d8a2582dedc1047476c810a573ea823
Diffstat (limited to 'src/com/android/browser/Controller.java')
-rw-r--r-- | src/com/android/browser/Controller.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index 397528df..6b5e4240 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -41,6 +41,7 @@ import android.database.sqlite.SQLiteException; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Rect; +import android.media.AudioManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; @@ -48,6 +49,7 @@ import android.net.http.SslError; import android.net.wifi.WifiManager; import android.net.wifi.ScanResult; import android.os.AsyncTask; +import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; @@ -1112,9 +1114,38 @@ public class Controller return false; } + private void handleMediaKeyEvent(KeyEvent event) { + + int keyCode = event.getKeyCode(); + // send media key events to audio manager + if (Build.VERSION.SDK_INT >= 19) { + + switch (keyCode) { + case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: + case KeyEvent.KEYCODE_MEDIA_STOP: + case KeyEvent.KEYCODE_MEDIA_NEXT: + case KeyEvent.KEYCODE_MEDIA_PREVIOUS: + case KeyEvent.KEYCODE_MEDIA_REWIND: + case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD: + case KeyEvent.KEYCODE_MUTE: + case KeyEvent.KEYCODE_MEDIA_PLAY: + case KeyEvent.KEYCODE_MEDIA_PAUSE: + case KeyEvent.META_SHIFT_RIGHT_ON: + case KeyEvent.KEYCODE_MEDIA_EJECT: + case KeyEvent.KEYCODE_MEDIA_RECORD: + case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: + + AudioManager audioManager = (AudioManager) mActivity.getApplicationContext() + .getSystemService(Context.AUDIO_SERVICE); + audioManager.dispatchMediaKeyEvent(event); + } + } + } + @Override public boolean onUnhandledKeyEvent(KeyEvent event) { if (!isActivityPaused()) { + handleMediaKeyEvent(event); if (event.getAction() == KeyEvent.ACTION_DOWN) { return mActivity.onKeyDown(event.getKeyCode(), event); } else { |