summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Controller.java
diff options
context:
space:
mode:
authorTarun Nainani <tnainani@codeaurora.org>2015-01-21 18:52:59 -0800
committerWebTech Code Review <code-review@localhost>2015-01-23 11:27:06 -0800
commitf5563b64f085505903495fc6a818937eee627656 (patch)
treee1f98e03f30fad22d0eef162f4fbde0c0b9acc40 /src/com/android/browser/Controller.java
parentd106f37bfc4dd3eef12cdf5a0c7075b5f8110671 (diff)
downloadandroid_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.java31
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 {