diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml index 131e44d798..c224ad564b 100644 --- a/.idea/kotlinc.xml +++ b/.idea/kotlinc.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/readium.library-conventions.gradle.kts b/buildSrc/src/main/kotlin/readium.library-conventions.gradle.kts index 46580662bd..bedd86a04c 100644 --- a/buildSrc/src/main/kotlin/readium.library-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/readium.library-conventions.gradle.kts @@ -1,4 +1,5 @@ import com.vanniktech.maven.publish.SonatypeHost +import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { // FIXME: For now, we cannot use the versions catalog in precompiled scripts: https://github.com/gradle/gradle/issues/15383 @@ -21,16 +22,11 @@ android { } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 isCoreLibraryDesugaringEnabled = true } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() - allWarningsAsErrors = true - } - testOptions { unitTests.isIncludeAndroidResources = true } @@ -50,10 +46,17 @@ android { kotlin { explicitApi() + + compilerOptions { + freeCompilerArgs.add("-Xannotation-default-target=param-property") + jvmTarget = JvmTarget.JVM_11 + allWarningsAsErrors = true + } } dependencies { - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") + //noinspection UseTomlInstead + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5") } mavenPublishing { diff --git a/demos/navigator/build.gradle.kts b/demos/navigator/build.gradle.kts index 8ed8801cb2..d76072ad17 100644 --- a/demos/navigator/build.gradle.kts +++ b/demos/navigator/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + plugins { id("com.android.application") kotlin("android") @@ -10,7 +12,7 @@ android { compileSdk = (property("android.compileSdk") as String).toInt() defaultConfig { - minSdk = 23 + minSdk = (property("android.minSdk") as String).toInt() targetSdk = (property("android.targetSdk") as String).toInt() applicationId = "org.readium.navigator.demo" @@ -22,14 +24,11 @@ android { } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 isCoreLibraryDesugaringEnabled = true } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() - freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlin.RequiresOptIn" - } + buildFeatures { viewBinding = true compose = true @@ -59,6 +58,14 @@ android { namespace = "org.readium.demo.navigator" } +kotlin { + + compilerOptions { + jvmTarget = JvmTarget.JVM_11 + freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn") + } +} + dependencies { implementation(project(":readium:readium-shared")) implementation(project(":readium:readium-streamer")) diff --git a/demos/navigator/src/main/java/org/readium/demo/navigator/decorations/CustomDecorationStyles.kt b/demos/navigator/src/main/java/org/readium/demo/navigator/decorations/CustomDecorationStyles.kt index cddeff63ac..7727609047 100644 --- a/demos/navigator/src/main/java/org/readium/demo/navigator/decorations/CustomDecorationStyles.kt +++ b/demos/navigator/src/main/java/org/readium/demo/navigator/decorations/CustomDecorationStyles.kt @@ -26,7 +26,7 @@ import org.readium.r2.shared.publication.epub.pageList * * This is an example of a custom Decoration Style declaration. */ -data class DecorationStyleAnnotationMark(@ColorInt val tint: Int) : Decoration.Style +data class DecorationStyleAnnotationMark(@param:ColorInt val tint: Int) : Decoration.Style /** * Decoration Style for a page number label. diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 588bc40489..7a51c63b0d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,41 +1,41 @@ [versions] -kotlin = "2.1.21" -agp = "8.10.1" +kotlin = "2.2.20" +agp = "8.11.1" desugar_jdk_libs = "2.1.5" gradle-maven-publish-plugin = "0.32.0" -androidx-activity = "1.10.1" +androidx-activity = "1.11.0" androidx-annotation = "1.9.1" -androidx-appcompat = "1.7.0" -androidx-browser = "1.8.0" +androidx-appcompat = "1.7.1" +androidx-browser = "1.9.0" androidx-cardview = "1.0.0" -androidx-compose-animation = "1.8.2" -androidx-compose-foundation = "1.8.2" -androidx-compose-material = "1.8.2" +androidx-compose-animation = "1.9.2" +androidx-compose-foundation = "1.9.2" +androidx-compose-material = "1.9.2" androidx-compose-material-icons = "1.7.8" -androidx-compose-material3 = "1.3.2" -androidx-compose-runtime = "1.8.2" -androidx-compose-ui = "1.8.2" +androidx-compose-material3 = "1.4.0" +androidx-compose-runtime = "1.9.2" +androidx-compose-ui = "1.9.2" androidx-constraintlayout = "2.2.1" -androidx-core = "1.16.0" +androidx-core = "1.17.0" androidx-datastore = "1.1.7" -androidx-fragment-ktx = "1.8.7" +androidx-fragment-ktx = "1.8.9" androidx-legacy = "1.0.0" -androidx-lifecycle = "2.9.0" -androidx-media3 = "1.7.1" -androidx-navigation = "2.9.0" +androidx-lifecycle = "2.9.4" +androidx-media3 = "1.8.0" +androidx-navigation = "2.9.5" androidx-paging = "3.3.6" androidx-recyclerview = "1.4.0" -androidx-room = "2.7.1" +androidx-room = "2.8.1" androidx-viewpager2 = "1.1.0" -androidx-webkit = "1.13.0" +androidx-webkit = "1.14.0" -assertj = "3.27.3" +assertj = "3.27.6" dokka = "1.9.20" -google-material = "1.12.0" +google-material = "1.13.0" joda-time = "2.14.0" #Do not upgrade without fixing unit tests in HtmlResourceContentIteratorTest and regression testing @@ -52,7 +52,7 @@ kotlinx-collections-immutable = "0.4.0" # Make sure to align with the Kotlin version. # See https://github.com/google/ksp/releases -ksp = "2.1.21-2.0.1" +ksp = "2.2.20-2.0.3" ktlint = "12.1.1" @@ -62,8 +62,8 @@ pdf-viewer = "3.2.8" picasso = "2.8" pspdfkit = "8.4.1" -robolectric = "4.14.1" -mockk = "1.14.2" +robolectric = "4.16" +mockk = "1.14.6" timber = "5.0.1" diff --git a/readium/lcp/build.gradle.kts b/readium/lcp/build.gradle.kts index eccda9fcf6..8638eaf90c 100644 --- a/readium/lcp/build.gradle.kts +++ b/readium/lcp/build.gradle.kts @@ -11,10 +11,12 @@ plugins { android { namespace = "org.readium.r2.lcp" +} - kotlinOptions { +kotlin { + compilerOptions { // See https://github.com/readium/kotlin-toolkit/pull/525#issuecomment-2300084041 - freeCompilerArgs = freeCompilerArgs + ("-Xconsistent-data-class-copy-visibility") + freeCompilerArgs.add("-Xconsistent-data-class-copy-visibility") } } diff --git a/readium/navigator/build.gradle.kts b/readium/navigator/build.gradle.kts index e3d0795204..81f4e60008 100644 --- a/readium/navigator/build.gradle.kts +++ b/readium/navigator/build.gradle.kts @@ -17,8 +17,13 @@ android { } kotlinOptions { + } +} + +kotlin { + compilerOptions { // See https://github.com/readium/kotlin-toolkit/pull/525#issuecomment-2300084041 - freeCompilerArgs = freeCompilerArgs + ("-Xconsistent-data-class-copy-visibility") + freeCompilerArgs.add("-Xconsistent-data-class-copy-visibility") } } diff --git a/readium/navigator/src/main/java/org/readium/r2/navigator/extensions/Extensions.kt b/readium/navigator/src/main/java/org/readium/r2/navigator/extensions/Extensions.kt index 3e70a8e332..c8e9b76fce 100644 --- a/readium/navigator/src/main/java/org/readium/r2/navigator/extensions/Extensions.kt +++ b/readium/navigator/src/main/java/org/readium/r2/navigator/extensions/Extensions.kt @@ -14,7 +14,7 @@ import androidx.core.content.ContextCompat /** returns true if the resolved layout direction of the content view in this * activity is ViewCompat.LAYOUT_DIRECTION_RTL. Otherwise false. */ internal fun Activity.layoutDirectionIsRTL(): Boolean { - return findViewById(android.R.id.content).layoutDirection == View.LAYOUT_DIRECTION_RTL + return findViewById(android.R.id.content).layoutDirection == View.LAYOUT_DIRECTION_RTL } @ColorInt diff --git a/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2RTLViewPager.java b/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2RTLViewPager.java index ed63bdbfd2..578c70759a 100644 --- a/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2RTLViewPager.java +++ b/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2RTLViewPager.java @@ -31,6 +31,7 @@ import androidx.viewpager.widget.ViewPager; import org.readium.r2.navigator.preferences.ReadingProgression; +import org.readium.r2.shared.InternalReadiumApi; import java.util.HashMap; @@ -44,7 +45,8 @@ * OnPageChangeListeners so that clients can be agnostic to layout direction and * modifications are kept internal to RtlViewPager. */ -class R2RTLViewPager extends ViewPager { +@InternalReadiumApi +public class R2RTLViewPager extends ViewPager { public ReadingProgression direction = ReadingProgression.LTR; private int mLayoutDirection = ViewCompat.LAYOUT_DIRECTION_LTR; private HashMap mPageChangeListeners = new HashMap<>(); @@ -59,9 +61,9 @@ public R2RTLViewPager(Context context, AttributeSet attrs) { @Override public void onRtlPropertiesChanged(int layoutDirection) { super.onRtlPropertiesChanged(layoutDirection); - int viewCompatLayoutDirection = layoutDirection == View.LAYOUT_DIRECTION_RTL ? ViewCompat.LAYOUT_DIRECTION_RTL : ViewCompat.LAYOUT_DIRECTION_LTR; + int viewCompatLayoutDirection = layoutDirection == View.LAYOUT_DIRECTION_RTL ? View.LAYOUT_DIRECTION_RTL : ViewCompat.LAYOUT_DIRECTION_LTR; if (direction == ReadingProgression.RTL) { - viewCompatLayoutDirection = ViewCompat.LAYOUT_DIRECTION_RTL; + viewCompatLayoutDirection = View.LAYOUT_DIRECTION_RTL; } if (viewCompatLayoutDirection != mLayoutDirection) { PagerAdapter adapter = super.getAdapter(); diff --git a/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2ViewPager.kt b/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2ViewPager.kt index b16cb3853c..645803e483 100644 --- a/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2ViewPager.kt +++ b/readium/navigator/src/main/java/org/readium/r2/navigator/pager/R2ViewPager.kt @@ -14,9 +14,12 @@ import android.content.Context import android.util.AttributeSet import android.view.MotionEvent import org.readium.r2.navigator.BuildConfig.DEBUG +import org.readium.r2.shared.InternalReadiumApi import timber.log.Timber -internal class R2ViewPager : R2RTLViewPager { +// See https://youtrack.jetbrains.com/issue/KTLC-271 for visibility issue. +@InternalReadiumApi +public class R2ViewPager : R2RTLViewPager { internal enum class PublicationType { EPUB, @@ -29,8 +32,8 @@ internal class R2ViewPager : R2RTLViewPager { internal lateinit var publicationType: PublicationType - constructor(context: Context) : super(context) - constructor(context: Context, attrs: AttributeSet) : super(context, attrs) + internal constructor(context: Context) : super(context) + internal constructor(context: Context, attrs: AttributeSet) : super(context, attrs) override fun setCurrentItem(item: Int) { super.setCurrentItem(item, false) diff --git a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/AudioFocusManager.kt b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/AudioFocusManager.kt index b5be163103..a94069e0a5 100644 --- a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/AudioFocusManager.kt +++ b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/AudioFocusManager.kt @@ -20,6 +20,7 @@ import android.content.Context import android.media.AudioFocusRequest import android.media.AudioManager import android.media.AudioManager.OnAudioFocusChangeListener +import android.os.Build import android.os.Handler import androidx.annotation.IntDef import androidx.annotation.RequiresApi @@ -30,7 +31,6 @@ import androidx.media3.common.Player import androidx.media3.common.util.Log import androidx.media3.common.util.Util import java.util.Objects -import org.readium.navigator.media.tts.session.AudioFocusManager.PlayerControl @androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class) /** Manages requesting and responding to changes in audio focus. @@ -186,7 +186,7 @@ internal class AudioFocusManager( return PLAYER_COMMAND_PLAY_WHEN_READY } val requestResult = - if (Util.SDK_INT >= 26) requestAudioFocusV26() else requestAudioFocusDefault() + if (Build.VERSION.SDK_INT >= 26) requestAudioFocusV26() else requestAudioFocusDefault() return if (requestResult == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { setAudioFocusState(AUDIO_FOCUS_STATE_HAVE_FOCUS) PLAYER_COMMAND_PLAY_WHEN_READY @@ -200,7 +200,7 @@ internal class AudioFocusManager( if (audioFocusState == AUDIO_FOCUS_STATE_NO_FOCUS) { return } - if (Util.SDK_INT >= 26) { + if (Build.VERSION.SDK_INT >= 26) { abandonAudioFocusV26() } else { abandonAudioFocusDefault() @@ -407,11 +407,8 @@ internal class AudioFocusManager( -> AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK C.USAGE_ASSISTANT -> - if (Util.SDK_INT >= 19) { - AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE - } else { - AUDIOFOCUS_GAIN_TRANSIENT - } + AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE + C.USAGE_ASSISTANCE_ACCESSIBILITY -> { if (audioAttributes.contentType == C.AUDIO_CONTENT_TYPE_SPEECH) { // Voice shouldn't be interrupted by other playback. diff --git a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/StreamVolumeManager.kt b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/StreamVolumeManager.kt index 8e40bd0297..610c808b90 100644 --- a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/StreamVolumeManager.kt +++ b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/StreamVolumeManager.kt @@ -20,11 +20,11 @@ import android.content.Context import android.content.Intent import android.content.IntentFilter import android.media.AudioManager +import android.os.Build import android.os.Handler import androidx.media3.common.C import androidx.media3.common.util.Assertions import androidx.media3.common.util.Log -import androidx.media3.common.util.Util @androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class) /** A manager that wraps [AudioManager] to control/listen audio stream volume. */ @@ -82,7 +82,7 @@ internal class StreamVolumeManager(context: Context, eventHandler: Handler, list * Gets the minimum volume for the current audio stream. It can be changed if [ ][.setStreamType] is called. */ val minVolume: Int - get() = if (Util.SDK_INT >= 28) audioManager.getStreamMinVolume(streamType) else 0 + get() = if (Build.VERSION.SDK_INT >= 28) audioManager.getStreamMinVolume(streamType) else 0 /** * Gets the maximum volume for the current audio stream. It can be changed if [ ][.setStreamType] is called. @@ -138,16 +138,11 @@ internal class StreamVolumeManager(context: Context, eventHandler: Handler, list /** Sets the mute state of the current audio stream. */ fun setMuted(muted: Boolean) { - if (Util.SDK_INT >= 23) { - audioManager.adjustStreamVolume( - streamType, - if (muted) AudioManager.ADJUST_MUTE else AudioManager.ADJUST_UNMUTE, - VOLUME_FLAGS - ) - } else { - @Suppress("Deprecation") - audioManager.setStreamMute(streamType, muted) - } + audioManager.adjustStreamVolume( + streamType, + if (muted) AudioManager.ADJUST_MUTE else AudioManager.ADJUST_UNMUTE, + VOLUME_FLAGS + ) updateVolumeAndNotifyIfChanged() } @@ -210,11 +205,7 @@ internal class StreamVolumeManager(context: Context, eventHandler: Handler, list audioManager: AudioManager, streamType: @C.StreamType Int, ): Boolean { - return if (Util.SDK_INT >= 23) { - audioManager.isStreamMute(streamType) - } else { - getVolumeFromManager(audioManager, streamType) == 0 - } + return audioManager.isStreamMute(streamType) } } } diff --git a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/TtsSessionAdapter.kt b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/TtsSessionAdapter.kt index 8ff52c20ce..0649af6839 100644 --- a/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/TtsSessionAdapter.kt +++ b/readium/navigators/media/tts/src/main/java/org/readium/navigator/media/tts/session/TtsSessionAdapter.kt @@ -127,7 +127,7 @@ internal class TtsSessionAdapter( .onEach { playbackParameters -> notifyListenersPlaybackParametersChanged(lastPlaybackParameters, playbackParameters) lastPlaybackParameters = playbackParameters - } + }.launchIn(coroutineScope) } private var listeners: ListenerSet = @@ -347,11 +347,6 @@ internal class TtsSessionAdapter( return previousMediaItemIndex != INDEX_UNSET } - @Deprecated("Deprecated in Java", ReplaceWith("TODO(\"Not yet implemented\")")) - override fun seekToPreviousWindow() { - seekToPreviousMediaItem() - } - override fun seekToPreviousMediaItem() { val previousMediaItemIndex = previousMediaItemIndex if (previousMediaItemIndex != INDEX_UNSET) { @@ -380,30 +375,10 @@ internal class TtsSessionAdapter( } } - @Deprecated("Deprecated in Java", ReplaceWith("hasNextMediaItem()")) - override fun hasNext(): Boolean { - return hasNextMediaItem() - } - - @Deprecated("Deprecated in Java", ReplaceWith("hasNextMediaItem()")) - override fun hasNextWindow(): Boolean { - return hasNextMediaItem() - } - override fun hasNextMediaItem(): Boolean { return nextMediaItemIndex != INDEX_UNSET } - @Deprecated("Deprecated in Java", ReplaceWith("seekToNextMediaItem()")) - override fun next() { - seekToNextMediaItem() - } - - @Deprecated("Deprecated in Java", ReplaceWith("seekToNextMediaItem()")) - override fun seekToNextWindow() { - seekToNextMediaItem() - } - override fun seekToNextMediaItem() { val nextMediaItemIndex = nextMediaItemIndex if (nextMediaItemIndex != INDEX_UNSET) { diff --git a/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/gestures/Fling2DBehavior.kt b/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/gestures/Fling2DBehavior.kt index 3fcd755114..a6152bf4bf 100644 --- a/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/gestures/Fling2DBehavior.kt +++ b/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/gestures/Fling2DBehavior.kt @@ -73,7 +73,7 @@ internal class NullFling2DBehavior : Fling2DBehavior { } } -public fun FlingBehavior.toFling2DBehavior(orientation: Orientation) = +public fun FlingBehavior.toFling2DBehavior(orientation: Orientation): Fling2DBehavior = object : Fling2DBehavior { override suspend fun Scroll2DScope.performFling( initialVelocity: Velocity, diff --git a/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/ComposeTypes.kt b/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/ComposeTypes.kt index ddac31f874..99f53fe7ef 100644 --- a/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/ComposeTypes.kt +++ b/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/ComposeTypes.kt @@ -23,7 +23,7 @@ public fun ReadingProgression.toLayoutDirection(): LayoutDirection = ReadingProgression.RTL -> LayoutDirection.Rtl } -public fun Axis.toOrientation() = when (this) { +public fun Axis.toOrientation(): Orientation = when (this) { Axis.HORIZONTAL -> Orientation.Horizontal Axis.VERTICAL -> Orientation.Vertical } diff --git a/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/Geometry.kt b/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/Geometry.kt index 4cfc21a60b..7fbd5343c2 100644 --- a/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/Geometry.kt +++ b/readium/navigators/web/internals/src/main/kotlin/org/readium/navigator/web/internals/util/Geometry.kt @@ -9,7 +9,7 @@ package org.readium.navigator.web.internals.util import androidx.compose.ui.unit.DpOffset import androidx.compose.ui.unit.DpRect -public fun DpRect.shift(offset: DpOffset) = DpRect( +public fun DpRect.shift(offset: DpOffset): DpRect = DpRect( left = left + offset.x, right = right + offset.x, top = top + offset.y, diff --git a/readium/shared/src/main/java/org/readium/r2/shared/util/MemoryObserver.kt b/readium/shared/src/main/java/org/readium/r2/shared/util/MemoryObserver.kt index 7e48abc85b..1486874a3a 100644 --- a/readium/shared/src/main/java/org/readium/r2/shared/util/MemoryObserver.kt +++ b/readium/shared/src/main/java/org/readium/r2/shared/util/MemoryObserver.kt @@ -54,6 +54,7 @@ public interface MemoryObserver { object : ComponentCallbacks2 { override fun onConfigurationChanged(config: Configuration) {} + @Suppress("OVERRIDE_DEPRECATION") @Deprecated("Deprecated in Java") override fun onLowMemory() {} diff --git a/readium/shared/src/main/java/org/readium/r2/shared/util/zip/compress/archivers/zip/ExtraFieldUtils.java b/readium/shared/src/main/java/org/readium/r2/shared/util/zip/compress/archivers/zip/ExtraFieldUtils.java index d69a0da0f2..b25f62113d 100644 --- a/readium/shared/src/main/java/org/readium/r2/shared/util/zip/compress/archivers/zip/ExtraFieldUtils.java +++ b/readium/shared/src/main/java/org/readium/r2/shared/util/zip/compress/archivers/zip/ExtraFieldUtils.java @@ -33,7 +33,7 @@ /** * ZipExtraField related methods - * @NotThreadSafe because the HashMap is not synch. + * @NotThreadSafe because the HashMap is not sync. */ // CheckStyle:HideUtilityClassConstructorCheck OFF (bc) public class ExtraFieldUtils { diff --git a/readium/shared/src/test/java/org/readium/r2/shared/util/resource/DirectoryContainerTest.kt b/readium/shared/src/test/java/org/readium/r2/shared/util/resource/DirectoryContainerTest.kt index 46b0871458..b926348619 100644 --- a/readium/shared/src/test/java/org/readium/r2/shared/util/resource/DirectoryContainerTest.kt +++ b/readium/shared/src/test/java/org/readium/r2/shared/util/resource/DirectoryContainerTest.kt @@ -9,7 +9,6 @@ package org.readium.r2.shared.util.resource -import android.webkit.MimeTypeMap import java.nio.charset.StandardCharsets import kotlin.test.assertEquals import kotlin.test.assertNotNull @@ -26,7 +25,6 @@ import org.readium.r2.shared.util.data.Container import org.readium.r2.shared.util.file.DirectoryContainer import org.readium.r2.shared.util.toAbsoluteUrl import org.robolectric.RobolectricTestRunner -import org.robolectric.Shadows @RunWith(RobolectricTestRunner::class) class DirectoryContainerTest { @@ -114,11 +112,6 @@ class DirectoryContainerTest { fun `Computing entries works well`() { runBlocking { // FIXME: Test media types - Shadows.shadowOf(MimeTypeMap.getSingleton()).apply { - addExtensionMimeTypeMapping("txt", "text/plain") - addExtensionMimeTypeMapping("mp3", "audio/mpeg") - } - val entries = sut().entries assertThat(entries).contains( Url("subdirectory/hello.mp3")!!, diff --git a/settings.gradle.kts b/settings.gradle.kts index 9e1bfbd193..cecf327a4b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -46,21 +46,21 @@ include(":readium:navigators:common") project(":readium:navigators:common") .name = "readium-navigator-common" -// include(":readium:navigators:web:common") -// project(":readium:navigators:web:common") -// .name = "readium-navigator-web-common" -// -// include(":readium:navigators:web:internals") -// project(":readium:navigators:web:internals") -// .name = "readium-navigator-web-internals" -// -// include(":readium:navigators:web:reflowable") -// project(":readium:navigators:web:reflowable") -// .name = "readium-navigator-web-reflowable" -// -// include(":readium:navigators:web:fixedlayout") -// project(":readium:navigators:web:fixedlayout") -// .name = "readium-navigator-web-fixedlayout" +include(":readium:navigators:web:common") +project(":readium:navigators:web:common") + .name = "readium-navigator-web-common" + +include(":readium:navigators:web:internals") +project(":readium:navigators:web:internals") + .name = "readium-navigator-web-internals" + +include(":readium:navigators:web:reflowable") +project(":readium:navigators:web:reflowable") + .name = "readium-navigator-web-reflowable" + +include(":readium:navigators:web:fixedlayout") +project(":readium:navigators:web:fixedlayout") + .name = "readium-navigator-web-fixedlayout" include(":readium:navigators:media:common") project(":readium:navigators:media:common") @@ -91,4 +91,4 @@ project(":readium:streamer") .name = "readium-streamer" include("test-app") -// include(":demos:navigator") +include(":demos:navigator") diff --git a/test-app/build.gradle.kts b/test-app/build.gradle.kts index 1047b8fdb9..ce0e95621a 100644 --- a/test-app/build.gradle.kts +++ b/test-app/build.gradle.kts @@ -1,3 +1,5 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + /* * Copyright 2021 Readium Foundation. All rights reserved. * Use of this source code is governed by the BSD-style license @@ -30,14 +32,11 @@ android { ndk.abiFilters.add("x86_64") } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 isCoreLibraryDesugaringEnabled = true } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() - freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlin.RequiresOptIn" - } + buildFeatures { viewBinding = true compose = true @@ -63,6 +62,13 @@ android { namespace = "org.readium.r2.testapp" } +kotlin { + compilerOptions { + jvmTarget = JvmTarget.JVM_11 + freeCompilerArgs.add("-Xannotation-default-target=param-property") + } +} + dependencies { coreLibraryDesugaring(libs.desugar.jdk.libs)