From 042373123cc18eea106461c134e96bc3953af1d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Menu?= Date: Wed, 23 Mar 2022 14:59:47 +0100 Subject: [PATCH 1/3] Use `startForegroundService()` for the `MediaService` --- .../org/readium/r2/navigator/media/MediaService.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/readium/navigator/src/main/java/org/readium/r2/navigator/media/MediaService.kt b/readium/navigator/src/main/java/org/readium/r2/navigator/media/MediaService.kt index d88d0000b4..c80ba2ccd4 100644 --- a/readium/navigator/src/main/java/org/readium/r2/navigator/media/MediaService.kt +++ b/readium/navigator/src/main/java/org/readium/r2/navigator/media/MediaService.kt @@ -11,6 +11,7 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.graphics.Bitmap +import android.os.Build import android.os.Bundle import android.os.Process import android.os.ResultReceiver @@ -303,7 +304,7 @@ open class MediaService : MediaBrowserServiceCompat(), CoroutineScope by MainSco val currentNavigator: StateFlow get() = navigator fun getNavigator(context: Context, publication: Publication, publicationId: PublicationId, initialLocator: Locator?): MediaSessionNavigator { - context.startService(Intent(context, serviceClass)) + context.startForegroundServiceCompat(Intent(context, serviceClass)) currentNavigator.value ?.takeIf { it.publicationId == publicationId } @@ -329,6 +330,14 @@ open class MediaService : MediaBrowserServiceCompat(), CoroutineScope by MainSco } +private fun Context.startForegroundServiceCompat(intent: Intent) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + startForegroundService(intent) + } else { + startService(intent) + } +} + // FIXME: Move to r2-shared internal fun createIfNull(property: KMutableProperty0, owner: Any, factory: () -> T): T = property.get() ?: synchronized(owner) { From 5ac3e815369c48ec3b099fca0729de5d265f9b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Menu?= Date: Tue, 29 Mar 2022 18:25:19 +0200 Subject: [PATCH 2/3] Deprecate Fuel's `Request.promise()` extension --- .../src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt b/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt index a6d186a83a..7a6b79f559 100644 --- a/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt +++ b/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt @@ -16,6 +16,7 @@ import nl.komponents.kovenant.Promise import nl.komponents.kovenant.deferred import nl.komponents.kovenant.task +@Deprecated("Dependency to Fuel will eventually be removed from the Readium Toolkit") fun Request.promise(): Promise, Exception> { val deferred = deferred, Exception>() task { response() } success { From ac7af38cde8acae2daf1f2d5fb47a295db735220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mickae=CC=88l=20Menu?= Date: Mon, 11 Apr 2022 12:04:16 +0200 Subject: [PATCH 3/3] Fix deprecation comment --- .../src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt b/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt index 7a6b79f559..555f827b18 100644 --- a/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt +++ b/readium/shared/src/main/java/org/readium/r2/shared/FuelPromiseExtension.kt @@ -16,7 +16,7 @@ import nl.komponents.kovenant.Promise import nl.komponents.kovenant.deferred import nl.komponents.kovenant.task -@Deprecated("Dependency to Fuel will eventually be removed from the Readium Toolkit") +@Deprecated("Dependency to Fuel and kovenant will eventually be removed from the Readium Toolkit") fun Request.promise(): Promise, Exception> { val deferred = deferred, Exception>() task { response() } success {