[Android] Prevent crash on Oreo when app is in background
Geoffrey Métais
git at videolan.org
Fri Mar 30 16:51:38 CEST 2018
vlc-android | branch: 3.0.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Fri Mar 30 09:45:03 2018 +0200| [deb6b64035367b1788d2a4bfa10b1e1b20b6b684] | committer: Geoffrey Métais
Prevent crash on Oreo when app is in background
(cherry picked from commit 73845dd1d2e0aca436c9bfe6faf6e4cf240eed09)
> https://code.videolan.org/videolan/vlc-android/commit/deb6b64035367b1788d2a4bfa10b1e1b20b6b684
---
.../src/org/videolan/vlc/RemoteControlClientReceiver.java | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/vlc-android/src/org/videolan/vlc/RemoteControlClientReceiver.java b/vlc-android/src/org/videolan/vlc/RemoteControlClientReceiver.java
index 65302b48e..a66d8adf8 100644
--- a/vlc-android/src/org/videolan/vlc/RemoteControlClientReceiver.java
+++ b/vlc-android/src/org/videolan/vlc/RemoteControlClientReceiver.java
@@ -44,13 +44,20 @@ public class RemoteControlClientReceiver extends MediaButtonReceiver {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
+ if (action == null) return;
final KeyEvent event = intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event != null && action.equalsIgnoreCase(Intent.ACTION_MEDIA_BUTTON)) {
if (event.getKeyCode() != KeyEvent.KEYCODE_HEADSETHOOK &&
event.getKeyCode() != KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) {
- super.onReceive(context, intent);
+ if (!AndroidUtil.isOOrLater || VLCApplication.isForeground()) super.onReceive(context, intent);
+ else if (event.getAction() == KeyEvent.ACTION_DOWN &&
+ event.getKeyCode() == KeyEvent.KEYCODE_MEDIA_PLAY) {
+ intent = new Intent(context, PlaybackService.class);
+ intent.setAction(Constants.ACTION_REMOTE_PLAYPAUSE);
+ Util.startService(context, intent);
+ }
return;
}
More information about the Android
mailing list