From 091374f922c6864797bb2764123a42d03c02d1d1 Mon Sep 17 00:00:00 2001 From: Nite Date: Thu, 2 Jul 2020 17:20:06 +0200 Subject: [PATCH] Fixed wired headset handling Fixed MediaPlayer start timeout for slow phones --- .../ultrasonic/service/MediaPlayerLifecycleSupport.java | 1 + .../org/moire/ultrasonic/service/MediaPlayerService.java | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java index 96bc5849..59057b7d 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerLifecycleSupport.java @@ -184,6 +184,7 @@ public class MediaPlayerLifecycleSupport int keyCode = event.getKeyCode(); boolean autoStart = (keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || + keyCode == KeyEvent.KEYCODE_HEADSETHOOK || keyCode == KeyEvent.KEYCODE_MEDIA_PREVIOUS || keyCode == KeyEvent.KEYCODE_MEDIA_NEXT); diff --git a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java index 5cd9e008..c389f978 100644 --- a/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java +++ b/ultrasonic/src/main/java/org/moire/ultrasonic/service/MediaPlayerService.java @@ -82,7 +82,7 @@ public class MediaPlayerService extends Service public static MediaPlayerService getInstance(Context context) { synchronized (instanceLock) { - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 20; i++) { if (instance != null) return instance; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { @@ -113,6 +113,12 @@ public class MediaPlayerService extends Service public void run() { MediaPlayerService instance = getInstance(context); + if (instance == null) + { + Log.e(TAG, "ExecuteOnStartedMediaPlayerService failed to get a MediaPlayerService instance!"); + return; + } + taskToExecute.accept(instance); } };