diff --git a/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt b/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt index 421586db9..e40d5b077 100644 --- a/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt +++ b/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt @@ -19,9 +19,7 @@ import android.app.Activity import android.content.* import android.database.Cursor import android.net.Uri -import android.os.Handler import android.os.IBinder -import android.os.Looper import android.provider.DocumentsContract import android.widget.Toast import androidx.core.content.ContextCompat @@ -117,7 +115,12 @@ object MusicPlayerRemote : KoinComponent { val realActivity = (context as Activity).parent ?: context val contextWrapper = ContextWrapper(realActivity) val intent = Intent(contextWrapper, MusicService::class.java) - Handler(Looper.getMainLooper()).post { + + // https://issuetracker.google.com/issues/76112072#comment184 + // Workaround for ForegroundServiceDidNotStartInTimeException + try { + context.startService(intent) + } catch (e: Exception) { ContextCompat.startForegroundService(context, intent) } diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt b/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt index 0119e9a9c..72f9550ff 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt @@ -156,7 +156,9 @@ class MediaButtonIntentReceiver : MediaButtonReceiver() { private fun startService(context: Context, command: String?) { val intent = Intent(context, MusicService::class.java) intent.action = command - Handler(Looper.getMainLooper()).post { + try { + context.startService(intent) + } catch (e: Exception) { ContextCompat.startForegroundService(context, intent) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt index 729e83161..bb3ad50d2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.kt @@ -1228,7 +1228,13 @@ class MusicService : MediaBrowserServiceCompat(), } private fun playFromPlaylist(intent: Intent) { - val playlist: AbsSmartPlaylist? = intent.extras?.let { BundleCompat.getParcelable(it, INTENT_EXTRA_PLAYLIST, AbsSmartPlaylist::class.java) } + val playlist: AbsSmartPlaylist? = intent.extras?.let { + BundleCompat.getParcelable( + it, + INTENT_EXTRA_PLAYLIST, + AbsSmartPlaylist::class.java + ) + } val shuffleMode = intent.getIntExtra(INTENT_EXTRA_SHUFFLE_MODE, getShuffleMode()) if (playlist != null) { val playlistSongs = playlist.songs()