diff options
| author | Chih-Chung Chang <chihchung@google.com> | 2011-11-29 14:21:11 +0800 |
|---|---|---|
| committer | Chih-Chung Chang <chihchung@google.com> | 2011-11-29 15:12:14 +0800 |
| commit | fc8c503d1351c6ee62d233a944f2bd5220e64a55 (patch) | |
| tree | bc4209a3f9f02e76eb537c806d72b0eab8fb3c4b /src | |
| parent | f36d8f299d57849a1afb1b0c271bb4be0d336e43 (diff) | |
| download | android_packages_apps_Gallery2-fc8c503d1351c6ee62d233a944f2bd5220e64a55.tar.gz android_packages_apps_Gallery2-fc8c503d1351c6ee62d233a944f2bd5220e64a55.tar.bz2 android_packages_apps_Gallery2-fc8c503d1351c6ee62d233a944f2bd5220e64a55.zip | |
Fix 5661035: Accepts bluetooth keys while playing a video from gallery.
Change-Id: I8174b1a97baad563d8bbd685b9aab3a8ca428ead
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/gallery3d/app/MovieActivity.java | 13 | ||||
| -rw-r--r-- | src/com/android/gallery3d/app/MoviePlayer.java | 50 |
2 files changed, 63 insertions, 0 deletions
diff --git a/src/com/android/gallery3d/app/MovieActivity.java b/src/com/android/gallery3d/app/MovieActivity.java index 95e0c74d3..099e9f59e 100644 --- a/src/com/android/gallery3d/app/MovieActivity.java +++ b/src/com/android/gallery3d/app/MovieActivity.java @@ -26,6 +26,7 @@ import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.provider.MediaStore.Video.VideoColumns; +import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -170,4 +171,16 @@ public class MovieActivity extends Activity { mPlayer.onDestroy(); super.onDestroy(); } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + return mPlayer.onKeyDown(keyCode, event) + || super.onKeyDown(keyCode, event); + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + return mPlayer.onKeyUp(keyCode, event) + || super.onKeyUp(keyCode, event); + } } diff --git a/src/com/android/gallery3d/app/MoviePlayer.java b/src/com/android/gallery3d/app/MoviePlayer.java index 9c81c79c2..3de534b97 100644 --- a/src/com/android/gallery3d/app/MoviePlayer.java +++ b/src/com/android/gallery3d/app/MoviePlayer.java @@ -30,6 +30,7 @@ import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.os.Handler; +import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -333,6 +334,55 @@ public class MoviePlayer implements startVideo(); } + // Below are key events passed from MovieActivity. + public boolean onKeyDown(int keyCode, KeyEvent event) { + + // Some headsets will fire off 7-10 events on a single click + if (event.getRepeatCount() > 0) { + return isMediaKey(keyCode); + } + + switch (keyCode) { + case KeyEvent.KEYCODE_HEADSETHOOK: + case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: + if (mVideoView.isPlaying()) { + pauseVideo(); + } else { + playVideo(); + } + return true; + case KeyEvent.KEYCODE_MEDIA_PAUSE: + if (mVideoView.isPlaying()) { + pauseVideo(); + } + return true; + case KeyEvent.KEYCODE_MEDIA_PLAY: + if (!mVideoView.isPlaying()) { + playVideo(); + } + return true; + case KeyEvent.KEYCODE_MEDIA_PREVIOUS: + case KeyEvent.KEYCODE_MEDIA_NEXT: + // TODO: Handle next / previous accordingly, for now we're + // just consuming the events. + return true; + } + return false; + } + + public boolean onKeyUp(int keyCode, KeyEvent event) { + return isMediaKey(keyCode); + } + + private static boolean isMediaKey(int keyCode) { + return keyCode == KeyEvent.KEYCODE_HEADSETHOOK + || keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS + || keyCode == KeyEvent.KEYCODE_MEDIA_NEXT + || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE + || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY + || keyCode == KeyEvent.KEYCODE_MEDIA_PAUSE; + } + // We want to pause when the headset is unplugged. private class AudioBecomingNoisyReceiver extends BroadcastReceiver { |
