diff --git a/readium/adapters/exoplayer/audio/build.gradle.kts b/readium/adapters/exoplayer/audio/build.gradle.kts
new file mode 100644
index 0000000000..93fd839bb3
--- /dev/null
+++ b/readium/adapters/exoplayer/audio/build.gradle.kts
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2022 Readium Foundation. All rights reserved.
+ * Use of this source code is governed by the BSD-style license
+ * available in the top-level LICENSE file of the project.
+ */
+
+plugins {
+ id("com.android.library")
+ kotlin("android")
+ kotlin("plugin.parcelize")
+ kotlin("plugin.serialization")
+}
+
+android {
+ resourcePrefix = "readium_"
+
+ compileSdk = 34
+
+ defaultConfig {
+ minSdk = 21
+ targetSdk = 34
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_17.toString()
+ freeCompilerArgs = freeCompilerArgs + listOf(
+ "-opt-in=kotlin.RequiresOptIn",
+ "-opt-in=org.readium.r2.shared.InternalReadiumApi"
+ )
+ }
+ buildTypes {
+ getByName("release") {
+ isMinifyEnabled = false
+ proguardFiles(getDefaultProguardFile("proguard-android.txt"))
+ }
+ }
+ buildFeatures {
+ viewBinding = true
+ }
+ namespace = "org.readium.adapter.exoplayer.audio"
+}
+
+kotlin {
+ explicitApi()
+}
+
+rootProject.ext["publish.artifactId"] = "readium-navigator-exoplayer-audio"
+apply(from = "$rootDir/scripts/publish-module.gradle")
+
+dependencies {
+ api(project(":readium:readium-shared"))
+ api(project(":readium:navigators:media:readium-navigator-media-audio"))
+
+ implementation(libs.androidx.media3.common)
+ implementation(libs.androidx.media3.exoplayer)
+ implementation(libs.timber)
+ implementation(libs.bundles.coroutines)
+ implementation(libs.kotlinx.serialization.json)
+
+ // Tests
+ testImplementation(libs.junit)
+}
diff --git a/readium/adapters/pdfium/pdfium-document/src/main/AndroidManifest.xml b/readium/adapters/exoplayer/audio/src/main/AndroidManifest.xml
similarity index 100%
rename from readium/adapters/pdfium/pdfium-document/src/main/AndroidManifest.xml
rename to readium/adapters/exoplayer/audio/src/main/AndroidManifest.xml
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoAudiobookPlayer.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoAudiobookPlayer.kt
similarity index 97%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoAudiobookPlayer.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoAudiobookPlayer.kt
index 92cd9735ac..e76564f9f1 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoAudiobookPlayer.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoAudiobookPlayer.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import androidx.media3.common.ForwardingPlayer
import androidx.media3.exoplayer.ExoPlaybackException
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerAliases.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerAliases.kt
similarity index 93%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerAliases.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerAliases.kt
index 2a09db751a..d095ad6729 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerAliases.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerAliases.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import org.readium.navigator.media.audio.AudioNavigator
import org.readium.navigator.media.audio.AudioNavigatorFactory
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerDataSource.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerDataSource.kt
similarity index 92%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerDataSource.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerDataSource.kt
index bcd3e2bc49..1d82911ec0 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerDataSource.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerDataSource.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import android.net.Uri
import androidx.media3.common.C.LENGTH_UNSET
@@ -21,13 +21,13 @@ import org.readium.r2.shared.util.resource.Resource
import org.readium.r2.shared.util.resource.buffered
import org.readium.r2.shared.util.toUrl
-public sealed class ExoPlayerDataSourceException(message: String, cause: Throwable?) : IOException(
+internal sealed class ExoPlayerDataSourceException(message: String, cause: Throwable?) : IOException(
message,
cause
) {
- public class NotOpened(message: String) : ExoPlayerDataSourceException(message, null)
- public class NotFound(message: String) : ExoPlayerDataSourceException(message, null)
- public class ReadFailed(uri: Uri, offset: Int, readLength: Int, cause: Throwable) : ExoPlayerDataSourceException(
+ class NotOpened(message: String) : ExoPlayerDataSourceException(message, null)
+ class NotFound(message: String) : ExoPlayerDataSourceException(message, null)
+ class ReadFailed(uri: Uri, offset: Int, readLength: Int, cause: Throwable) : ExoPlayerDataSourceException(
"Failed to read $readLength bytes of URI $uri at offset $offset.",
cause
)
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerDefaults.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerDefaults.kt
similarity index 93%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerDefaults.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerDefaults.kt
index 444636dd78..81bba2f128 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerDefaults.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerDefaults.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import org.readium.r2.shared.ExperimentalReadiumApi
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerEngine.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerEngine.kt
similarity index 99%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerEngine.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerEngine.kt
index 8c5f0907fe..491047a6d5 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerEngine.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerEngine.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import android.app.Application
import androidx.media3.common.*
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerEngineProvider.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerEngineProvider.kt
similarity index 98%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerEngineProvider.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerEngineProvider.kt
index e73753bc50..601316aa8f 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerEngineProvider.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerEngineProvider.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import android.app.Application
import androidx.media3.datasource.DataSource
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferences.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferences.kt
similarity index 95%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferences.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferences.kt
index 8a0db3323c..cac4a12758 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferences.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferences.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import org.readium.r2.navigator.preferences.Configurable
import org.readium.r2.shared.ExperimentalReadiumApi
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferencesEditor.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesEditor.kt
similarity index 98%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferencesEditor.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesEditor.kt
index d1bad79f9e..c17da9f058 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferencesEditor.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesEditor.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import org.readium.r2.navigator.extensions.format
import org.readium.r2.navigator.preferences.DoubleIncrement
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferencesSerializer.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesSerializer.kt
similarity index 94%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferencesSerializer.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesSerializer.kt
index ef6a33f2f3..4dae0d4aed 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerPreferencesSerializer.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesSerializer.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import kotlinx.serialization.json.Json
import org.readium.r2.navigator.preferences.PreferencesSerializer
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerSettings.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettings.kt
similarity index 92%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerSettings.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettings.kt
index 9fac074e79..67b2e013f3 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerSettings.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettings.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import org.readium.r2.navigator.preferences.Configurable
import org.readium.r2.shared.ExperimentalReadiumApi
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerSettingsResolver.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettingsResolver.kt
similarity index 93%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerSettingsResolver.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettingsResolver.kt
index 8de9ff5ff3..8a7719394a 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/ExoPlayerSettingsResolver.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettingsResolver.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import org.readium.r2.shared.ExperimentalReadiumApi
diff --git a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/SmartSeeker.kt b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/SmartSeeker.kt
similarity index 97%
rename from readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/SmartSeeker.kt
rename to readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/SmartSeeker.kt
index 0388f82da6..68e42c62a2 100644
--- a/readium/adapters/exoplayer/src/main/java/org/readium/adapter/exoplayer/SmartSeeker.kt
+++ b/readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/SmartSeeker.kt
@@ -4,7 +4,7 @@
* available in the top-level LICENSE file of the project.
*/
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
diff --git a/readium/adapters/exoplayer/src/test/java/org/readium/adapter/exoplayer/SmartSeekerTest.kt b/readium/adapters/exoplayer/audio/src/test/java/org/readium/adapter/exoplayer/audio/SmartSeekerTest.kt
similarity index 98%
rename from readium/adapters/exoplayer/src/test/java/org/readium/adapter/exoplayer/SmartSeekerTest.kt
rename to readium/adapters/exoplayer/audio/src/test/java/org/readium/adapter/exoplayer/audio/SmartSeekerTest.kt
index 089f798aec..f410850119 100644
--- a/readium/adapters/exoplayer/src/test/java/org/readium/adapter/exoplayer/SmartSeekerTest.kt
+++ b/readium/adapters/exoplayer/audio/src/test/java/org/readium/adapter/exoplayer/audio/SmartSeekerTest.kt
@@ -1,4 +1,4 @@
-package org.readium.adapter.exoplayer
+package org.readium.adapter.exoplayer.audio
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
diff --git a/readium/adapters/exoplayer/build.gradle.kts b/readium/adapters/exoplayer/build.gradle.kts
index 984679a172..c36ab5a491 100644
--- a/readium/adapters/exoplayer/build.gradle.kts
+++ b/readium/adapters/exoplayer/build.gradle.kts
@@ -8,7 +8,6 @@ plugins {
id("com.android.library")
kotlin("android")
kotlin("plugin.parcelize")
- kotlin("plugin.serialization")
}
android {
@@ -38,9 +37,6 @@ android {
proguardFiles(getDefaultProguardFile("proguard-android.txt"))
}
}
- buildFeatures {
- viewBinding = true
- }
namespace = "org.readium.adapter.exoplayer"
}
@@ -48,19 +44,9 @@ kotlin {
explicitApi()
}
-rootProject.ext["publish.artifactId"] = "readium-navigator-exoplayer"
+rootProject.ext["publish.artifactId"] = "readium-adapter-exoplayer"
apply(from = "$rootDir/scripts/publish-module.gradle")
dependencies {
- api(project(":readium:readium-shared"))
- api(project(":readium:navigators:media:readium-navigator-media-audio"))
-
- implementation(libs.androidx.media3.common)
- implementation(libs.androidx.media3.exoplayer)
- implementation(libs.timber)
- implementation(libs.bundles.coroutines)
- implementation(libs.kotlinx.serialization.json)
-
- // Tests
- testImplementation(libs.junit)
+ api(project(":readium:adapters:exoplayer:readium-adapter-exoplayer-audio"))
}
diff --git a/readium/adapters/pdfium/pdfium-document/build.gradle.kts b/readium/adapters/pdfium/document/build.gradle.kts
similarity index 100%
rename from readium/adapters/pdfium/pdfium-document/build.gradle.kts
rename to readium/adapters/pdfium/document/build.gradle.kts
diff --git a/readium/adapters/pspdfkit/pspdfkit-document/src/main/AndroidManifest.xml b/readium/adapters/pdfium/document/src/main/AndroidManifest.xml
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-document/src/main/AndroidManifest.xml
rename to readium/adapters/pdfium/document/src/main/AndroidManifest.xml
diff --git a/readium/adapters/pdfium/pdfium-document/src/main/java/org/readium/adapter/pdfium/document/PdfiumDocument.kt b/readium/adapters/pdfium/document/src/main/java/org/readium/adapter/pdfium/document/PdfiumDocument.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-document/src/main/java/org/readium/adapter/pdfium/document/PdfiumDocument.kt
rename to readium/adapters/pdfium/document/src/main/java/org/readium/adapter/pdfium/document/PdfiumDocument.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/build.gradle.kts b/readium/adapters/pdfium/navigator/build.gradle.kts
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/build.gradle.kts
rename to readium/adapters/pdfium/navigator/build.gradle.kts
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/AndroidManifest.xml b/readium/adapters/pdfium/navigator/src/main/AndroidManifest.xml
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/AndroidManifest.xml
rename to readium/adapters/pdfium/navigator/src/main/AndroidManifest.xml
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDefaults.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDefaults.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDefaults.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDefaults.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDocumentFragment.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDocumentFragment.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDocumentFragment.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDocumentFragment.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumEngineProvider.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumEngineProvider.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumEngineProvider.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumEngineProvider.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumNavigator.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumNavigator.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumNavigator.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumNavigator.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferences.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferences.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferences.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferences.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesEditor.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesEditor.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesEditor.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesEditor.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesFilters.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesFilters.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesFilters.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesFilters.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesSerializer.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesSerializer.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesSerializer.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesSerializer.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettings.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettings.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettings.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettings.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettingsResolver.kt b/readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettingsResolver.kt
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettingsResolver.kt
rename to readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettingsResolver.kt
diff --git a/readium/adapters/pdfium/pdfium-navigator/src/main/res/layout/readium_pspdfkit_fragment.xml b/readium/adapters/pdfium/navigator/src/main/res/layout/readium_pspdfkit_fragment.xml
similarity index 100%
rename from readium/adapters/pdfium/pdfium-navigator/src/main/res/layout/readium_pspdfkit_fragment.xml
rename to readium/adapters/pdfium/navigator/src/main/res/layout/readium_pspdfkit_fragment.xml
diff --git a/readium/adapters/pspdfkit/pspdfkit-document/build.gradle.kts b/readium/adapters/pspdfkit/document/build.gradle.kts
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-document/build.gradle.kts
rename to readium/adapters/pspdfkit/document/build.gradle.kts
diff --git a/readium/adapters/pspdfkit/document/src/main/AndroidManifest.xml b/readium/adapters/pspdfkit/document/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..2d10029868
--- /dev/null
+++ b/readium/adapters/pspdfkit/document/src/main/AndroidManifest.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/readium/adapters/pspdfkit/pspdfkit-document/src/main/java/org/readium/adapter/pspdfkit/document/PsPdfKitDocument.kt b/readium/adapters/pspdfkit/document/src/main/java/org/readium/adapter/pspdfkit/document/PsPdfKitDocument.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-document/src/main/java/org/readium/adapter/pspdfkit/document/PsPdfKitDocument.kt
rename to readium/adapters/pspdfkit/document/src/main/java/org/readium/adapter/pspdfkit/document/PsPdfKitDocument.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-document/src/main/java/org/readium/adapter/pspdfkit/document/ResourceDataProvider.kt b/readium/adapters/pspdfkit/document/src/main/java/org/readium/adapter/pspdfkit/document/ResourceDataProvider.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-document/src/main/java/org/readium/adapter/pspdfkit/document/ResourceDataProvider.kt
rename to readium/adapters/pspdfkit/document/src/main/java/org/readium/adapter/pspdfkit/document/ResourceDataProvider.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/build.gradle.kts b/readium/adapters/pspdfkit/navigator/build.gradle.kts
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/build.gradle.kts
rename to readium/adapters/pspdfkit/navigator/build.gradle.kts
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/AndroidManifest.xml b/readium/adapters/pspdfkit/navigator/src/main/AndroidManifest.xml
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/AndroidManifest.xml
rename to readium/adapters/pspdfkit/navigator/src/main/AndroidManifest.xml
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDefaults.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDefaults.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDefaults.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDefaults.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDocumentFragment.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDocumentFragment.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDocumentFragment.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDocumentFragment.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitEngineProvider.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitEngineProvider.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitEngineProvider.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitEngineProvider.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitNavigator.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitNavigator.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitNavigator.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitNavigator.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferences.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferences.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferences.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferences.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesEditor.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesEditor.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesEditor.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesEditor.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesFilters.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesFilters.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesFilters.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesFilters.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesSerializer.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesSerializer.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesSerializer.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesSerializer.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettings.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettings.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettings.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettings.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettingsResolver.kt b/readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettingsResolver.kt
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettingsResolver.kt
rename to readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettingsResolver.kt
diff --git a/readium/adapters/pspdfkit/pspdfkit-navigator/src/main/res/values/ids.xml b/readium/adapters/pspdfkit/navigator/src/main/res/values/ids.xml
similarity index 100%
rename from readium/adapters/pspdfkit/pspdfkit-navigator/src/main/res/values/ids.xml
rename to readium/adapters/pspdfkit/navigator/src/main/res/values/ids.xml
diff --git a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/TtsPlayer.kt b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/TtsPlayer.kt
index 0e1fd5919f..62ffed75e0 100644
--- a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/TtsPlayer.kt
+++ b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/TtsPlayer.kt
@@ -12,16 +12,23 @@ import android.media.AudioManager
import android.media.AudioTrack
import android.os.Build
import kotlin.coroutines.coroutineContext
-import kotlinx.coroutines.*
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.MainScope
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.cancelAndJoin
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.isActive
+import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import org.readium.r2.navigator.preferences.Configurable
import org.readium.r2.shared.ExperimentalReadiumApi
import org.readium.r2.shared.extensions.tryOrNull
import org.readium.r2.shared.publication.Locator
+import timber.log.Timber
/**
* Plays the content from a [TtsUtteranceIterator] with a [TtsEngine].
@@ -190,7 +197,6 @@ internal class TtsPlayer,
coroutineScope.launch {
// WORKAROUND to get the media buttons correctly working.
fakePlayingAudio()
-
playAsync()
}
}
@@ -205,7 +211,6 @@ internal class TtsPlayer,
val audioFormat =
AudioFormat.Builder()
.setEncoding(AudioFormat.ENCODING_PCM_16BIT)
- .setSampleRate(44100)
.setChannelMask(AudioFormat.CHANNEL_OUT_STEREO)
.build()
@@ -213,21 +218,26 @@ internal class TtsPlayer,
val audioTrack =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- AudioTrack.Builder()
- .setAudioAttributes(audioAttributes)
- .setAudioFormat(audioFormat)
- .setBufferSizeInBytes(bufferSize)
- .build()
+ tryOrNull {
+ AudioTrack.Builder()
+ .setAudioAttributes(audioAttributes)
+ .setAudioFormat(audioFormat)
+ .setBufferSizeInBytes(bufferSize)
+ .build()
+ }
} else {
AudioTrack(
audioAttributes,
audioFormat,
bufferSize,
- AudioTrack.MODE_STATIC,
+ AudioTrack.MODE_STREAM,
AudioManager.AUDIO_SESSION_ID_GENERATE
- )
+ ).takeIf { it.state == AudioTrack.STATE_INITIALIZED }
}
- audioTrack.play()
+
+ audioTrack
+ ?.play()
+ ?: run { Timber.e("Couldn't fake playing audio.") }
}
private suspend fun playAsync() = mutex.withLock {
diff --git a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/android/AndroidTtsEngine.kt b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/android/AndroidTtsEngine.kt
index 94303630a2..b406322130 100644
--- a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/android/AndroidTtsEngine.kt
+++ b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/android/AndroidTtsEngine.kt
@@ -22,6 +22,7 @@ import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import org.readium.navigator.media.tts.TtsEngine
import org.readium.r2.shared.ExperimentalReadiumApi
+import org.readium.r2.shared.extensions.tryOrNull
import org.readium.r2.shared.util.Language
/*
@@ -57,7 +58,7 @@ public class AndroidTtsEngine private constructor(
val textToSpeech = initializeTextToSpeech(context)
?: return null
- val voices = textToSpeech.voices
+ val voices = tryOrNull { textToSpeech.voices } // throws on Nexus 4
?.map { it.toTtsEngineVoice() }
?.toSet()
.orEmpty()
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 0946d6b408..7fd4f8dcfb 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -44,20 +44,20 @@ dependencyResolutionManagement {
rootProject.name = "Readium"
-include(":readium:adapters:pdfium:pdfium-document")
-project(":readium:adapters:pdfium:pdfium-document")
+include(":readium:adapters:pdfium:document")
+project(":readium:adapters:pdfium:document")
.name = "readium-adapter-pdfium-document"
-include(":readium:adapters:pdfium:pdfium-navigator")
-project(":readium:adapters:pdfium:pdfium-navigator")
+include(":readium:adapters:pdfium:navigator")
+project(":readium:adapters:pdfium:navigator")
.name = "readium-adapter-pdfium-navigator"
-include(":readium:adapters:pspdfkit:pspdfkit-document")
-project(":readium:adapters:pspdfkit:pspdfkit-document")
+include(":readium:adapters:pspdfkit:document")
+project(":readium:adapters:pspdfkit:document")
.name = "readium-adapter-pspdfkit-document"
-include(":readium:adapters:pspdfkit:pspdfkit-navigator")
-project(":readium:adapters:pspdfkit:pspdfkit-navigator")
+include(":readium:adapters:pspdfkit:navigator")
+project(":readium:adapters:pspdfkit:navigator")
.name = "readium-adapter-pspdfkit-navigator"
include(":readium:lcp")
@@ -84,9 +84,9 @@ include(":readium:navigator-media2")
project(":readium:navigator-media2")
.name = "readium-navigator-media2"
-include(":readium:adapters:exoplayer")
-project(":readium:adapters:exoplayer")
- .name = "readium-adapter-exoplayer"
+include(":readium:adapters:exoplayer:audio")
+project(":readium:adapters:exoplayer:audio")
+ .name = "readium-adapter-exoplayer-audio"
include(":readium:opds")
project(":readium:opds")
diff --git a/test-app/build.gradle.kts b/test-app/build.gradle.kts
index 7e68b3830f..f7a9edbf3a 100644
--- a/test-app/build.gradle.kts
+++ b/test-app/build.gradle.kts
@@ -73,7 +73,7 @@ dependencies {
implementation(project(":readium:navigators:media:readium-navigator-media-audio"))
implementation(project(":readium:navigators:media:readium-navigator-media-tts"))
// Only required if you want to support audiobooks using ExoPlayer.
- implementation(project(":readium:adapters:readium-adapter-exoplayer"))
+ implementation(project(":readium:adapters:exoplayer"))
implementation(project(":readium:readium-navigator-media2"))
implementation(project(":readium:readium-opds"))
implementation(project(":readium:readium-lcp"))
diff --git a/test-app/src/main/java/org/readium/r2/testapp/reader/AudioReaderFragment.kt b/test-app/src/main/java/org/readium/r2/testapp/reader/AudioReaderFragment.kt
index aaf3dfad02..0095436e98 100644
--- a/test-app/src/main/java/org/readium/r2/testapp/reader/AudioReaderFragment.kt
+++ b/test-app/src/main/java/org/readium/r2/testapp/reader/AudioReaderFragment.kt
@@ -23,8 +23,8 @@ import kotlin.time.DurationUnit
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
-import org.readium.adapter.exoplayer.ExoPlayerPreferences
-import org.readium.adapter.exoplayer.ExoPlayerSettings
+import org.readium.adapter.exoplayer.audio.ExoPlayerPreferences
+import org.readium.adapter.exoplayer.audio.ExoPlayerSettings
import org.readium.navigator.media.common.MediaNavigator
import org.readium.navigator.media.common.TimeBasedMediaNavigator
import org.readium.r2.navigator.preferences.Configurable
diff --git a/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderInitData.kt b/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderInitData.kt
index bec5be28c6..8897f5633b 100644
--- a/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderInitData.kt
+++ b/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderInitData.kt
@@ -8,9 +8,9 @@
package org.readium.r2.testapp.reader
-import org.readium.adapter.exoplayer.ExoPlayerNavigator
-import org.readium.adapter.exoplayer.ExoPlayerNavigatorFactory
-import org.readium.adapter.exoplayer.ExoPlayerPreferences
+import org.readium.adapter.exoplayer.audio.ExoPlayerNavigator
+import org.readium.adapter.exoplayer.audio.ExoPlayerNavigatorFactory
+import org.readium.adapter.exoplayer.audio.ExoPlayerPreferences
import org.readium.adapter.pdfium.navigator.PdfiumNavigatorFactory
import org.readium.adapter.pdfium.navigator.PdfiumPreferences
import org.readium.navigator.media.tts.AndroidTtsNavigatorFactory
diff --git a/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderRepository.kt b/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderRepository.kt
index 3505d4bb19..b9cf00c210 100644
--- a/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderRepository.kt
+++ b/test-app/src/main/java/org/readium/r2/testapp/reader/ReaderRepository.kt
@@ -11,7 +11,7 @@ import androidx.annotation.StringRes
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences as JetpackPreferences
import org.json.JSONObject
-import org.readium.adapter.exoplayer.ExoPlayerEngineProvider
+import org.readium.adapter.exoplayer.audio.ExoPlayerEngineProvider
import org.readium.adapter.pdfium.navigator.PdfiumEngineProvider
import org.readium.navigator.media.audio.AudioNavigatorFactory
import org.readium.navigator.media.tts.TtsNavigatorFactory
diff --git a/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/PreferencesManagers.kt b/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/PreferencesManagers.kt
index bbf5d43a55..623045fbc9 100644
--- a/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/PreferencesManagers.kt
+++ b/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/PreferencesManagers.kt
@@ -19,8 +19,8 @@ import kotlinx.coroutines.flow.SharingStarted
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.map
-import org.readium.adapter.exoplayer.ExoPlayerPreferences
-import org.readium.adapter.exoplayer.ExoPlayerPreferencesSerializer
+import org.readium.adapter.exoplayer.audio.ExoPlayerPreferences
+import org.readium.adapter.exoplayer.audio.ExoPlayerPreferencesSerializer
import org.readium.adapter.pdfium.navigator.PdfiumPreferences
import org.readium.adapter.pdfium.navigator.PdfiumPreferencesSerializer
import org.readium.adapter.pdfium.navigator.PdfiumPublicationPreferencesFilter
diff --git a/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferences.kt b/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferences.kt
index 1b95beacbe..3f784264ba 100644
--- a/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferences.kt
+++ b/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferences.kt
@@ -18,7 +18,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
-import org.readium.adapter.exoplayer.ExoPlayerPreferencesEditor
+import org.readium.adapter.exoplayer.audio.ExoPlayerPreferencesEditor
import org.readium.adapter.pdfium.navigator.PdfiumPreferencesEditor
import org.readium.navigator.media.tts.android.AndroidTtsEngine
import org.readium.r2.navigator.epub.EpubPreferencesEditor
diff --git a/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferencesViewModel.kt b/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferencesViewModel.kt
index 6940469f57..f8c4d2130f 100644
--- a/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferencesViewModel.kt
+++ b/test-app/src/main/java/org/readium/r2/testapp/reader/preferences/UserPreferencesViewModel.kt
@@ -14,8 +14,8 @@ import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
-import org.readium.adapter.exoplayer.ExoPlayerPreferences
-import org.readium.adapter.exoplayer.ExoPlayerSettings
+import org.readium.adapter.exoplayer.audio.ExoPlayerPreferences
+import org.readium.adapter.exoplayer.audio.ExoPlayerSettings
import org.readium.adapter.pdfium.navigator.PdfiumPreferences
import org.readium.adapter.pdfium.navigator.PdfiumSettings
import org.readium.r2.navigator.epub.EpubPreferences