Skip to content

Commit 775f742

Browse files
authored
Promote the Preferences API to stable (#568)
1 parent 160668d commit 775f742

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+23
-112
lines changed

readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerDefaults.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
package org.readium.adapter.exoplayer.audio
88

9-
import org.readium.r2.shared.ExperimentalReadiumApi
10-
119
/**
1210
* Default values for the ExoPlayer engine.
1311
*
@@ -16,7 +14,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
1614
*
1715
* @see ExoPlayerPreferences
1816
*/
19-
@ExperimentalReadiumApi
2017
public data class ExoPlayerDefaults(
2118
val pitch: Double? = null,
2219
val speed: Double? = null

readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferences.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@
77
package org.readium.adapter.exoplayer.audio
88

99
import org.readium.r2.navigator.preferences.Configurable
10-
import org.readium.r2.shared.ExperimentalReadiumApi
1110

1211
/**
1312
* Preferences for the the ExoPlayer engine.
1413
*
1514
* @param pitch Playback pitch rate.
1615
* @param speed Playback speed rate.
1716
*/
18-
@ExperimentalReadiumApi
1917
@kotlinx.serialization.Serializable
2018
public data class ExoPlayerPreferences(
2119
val pitch: Double? = null,

readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesEditor.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import org.readium.r2.navigator.preferences.DoubleIncrement
1313
import org.readium.r2.navigator.preferences.PreferencesEditor
1414
import org.readium.r2.navigator.preferences.RangePreference
1515
import org.readium.r2.navigator.preferences.RangePreferenceDelegate
16-
import org.readium.r2.shared.ExperimentalReadiumApi
1716
import org.readium.r2.shared.InternalReadiumApi
1817
import org.readium.r2.shared.publication.Metadata
1918

@@ -24,7 +23,6 @@ import org.readium.r2.shared.publication.Metadata
2423
* existing preferences. It includes rules for adjusting preferences, such as the supported values
2524
* or ranges.
2625
*/
27-
@ExperimentalReadiumApi
2826
public class ExoPlayerPreferencesEditor(
2927
initialPreferences: ExoPlayerPreferences,
3028
@Suppress("UNUSED_PARAMETER") publicationMetadata: Metadata,

readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerPreferencesSerializer.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ package org.readium.adapter.exoplayer.audio
88

99
import kotlinx.serialization.json.Json
1010
import org.readium.r2.navigator.preferences.PreferencesSerializer
11-
import org.readium.r2.shared.ExperimentalReadiumApi
1211

1312
/**
1413
* JSON serializer of [ExoPlayerPreferences].
1514
*/
16-
@ExperimentalReadiumApi
1715
public class ExoPlayerPreferencesSerializer : PreferencesSerializer<ExoPlayerPreferences> {
1816

1917
override fun serialize(preferences: ExoPlayerPreferences): String =

readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettings.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,12 @@
77
package org.readium.adapter.exoplayer.audio
88

99
import org.readium.r2.navigator.preferences.Configurable
10-
import org.readium.r2.shared.ExperimentalReadiumApi
1110

1211
/**
1312
* Settings values of the ExoPlayer engine.
1413
*
1514
* @see ExoPlayerPreferences
1615
*/
17-
@ExperimentalReadiumApi
1816
public data class ExoPlayerSettings(
1917
val pitch: Double,
2018
val speed: Double

readium/adapters/exoplayer/audio/src/main/java/org/readium/adapter/exoplayer/audio/ExoPlayerSettingsResolver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package org.readium.adapter.exoplayer.audio
88

99
import org.readium.r2.shared.ExperimentalReadiumApi
1010

11-
@ExperimentalReadiumApi
11+
@OptIn(ExperimentalReadiumApi::class)
1212
internal class ExoPlayerSettingsResolver(
1313
private val defaults: ExoPlayerDefaults
1414
) : ExoPlayerEngine.SettingsResolver {

readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumDefaults.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
package org.readium.adapter.pdfium.navigator
88

99
import org.readium.r2.navigator.preferences.ReadingProgression
10-
import org.readium.r2.shared.ExperimentalReadiumApi
1110

1211
/**
1312
* Default values for the PDF navigator with the PDFium adapter.
@@ -16,7 +15,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
1615
*
1716
* @see PdfiumPreferences
1817
*/
19-
@ExperimentalReadiumApi
2018
public data class PdfiumDefaults(
2119
val pageSpacing: Double? = null,
2220
val readingProgression: ReadingProgression? = null

readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferences.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import org.readium.r2.navigator.preferences.Axis
1111
import org.readium.r2.navigator.preferences.Configurable
1212
import org.readium.r2.navigator.preferences.Fit
1313
import org.readium.r2.navigator.preferences.ReadingProgression
14-
import org.readium.r2.shared.ExperimentalReadiumApi
1514

1615
/**
1716
* Preferences for the PDF navigator with the PDFium adapter.
@@ -21,7 +20,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
2120
* @param readingProgression Direction of the horizontal progression across pages.
2221
* @param scrollAxis Indicates the axis along which pages should be laid out in scroll mode.
2322
*/
24-
@ExperimentalReadiumApi
2523
@Serializable
2624
public data class PdfiumPreferences(
2725
val fit: Fit? = null,

readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesEditor.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package org.readium.adapter.pdfium.navigator
1010

1111
import org.readium.r2.navigator.extensions.format
1212
import org.readium.r2.navigator.preferences.*
13-
import org.readium.r2.shared.ExperimentalReadiumApi
1413
import org.readium.r2.shared.InternalReadiumApi
1514
import org.readium.r2.shared.publication.Metadata
1615

@@ -21,7 +20,6 @@ import org.readium.r2.shared.publication.Metadata
2120
* existing preferences. It includes rules for adjusting preferences, such as the supported values
2221
* or ranges.
2322
*/
24-
@ExperimentalReadiumApi
2523
public class PdfiumPreferencesEditor internal constructor(
2624
initialPreferences: PdfiumPreferences,
2725
publicationMetadata: Metadata,

readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesFilters.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@
77
package org.readium.adapter.pdfium.navigator
88

99
import org.readium.r2.navigator.preferences.PreferencesFilter
10-
import org.readium.r2.shared.ExperimentalReadiumApi
1110

1211
/**
1312
* Suggested filter to keep only shared [PdfiumPreferences].
1413
*/
15-
@ExperimentalReadiumApi
1614
public object PdfiumSharedPreferencesFilter : PreferencesFilter<PdfiumPreferences> {
1715

1816
override fun filter(preferences: PdfiumPreferences): PdfiumPreferences =
@@ -24,7 +22,6 @@ public object PdfiumSharedPreferencesFilter : PreferencesFilter<PdfiumPreference
2422
/**
2523
* Suggested filter to keep only publication-specific [PdfiumPreferences].
2624
*/
27-
@ExperimentalReadiumApi
2825
public object PdfiumPublicationPreferencesFilter : PreferencesFilter<PdfiumPreferences> {
2926

3027
override fun filter(preferences: PdfiumPreferences): PdfiumPreferences =

readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumPreferencesSerializer.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ package org.readium.adapter.pdfium.navigator
88

99
import kotlinx.serialization.json.Json
1010
import org.readium.r2.navigator.preferences.PreferencesSerializer
11-
import org.readium.r2.shared.ExperimentalReadiumApi
1211

1312
/**
1413
* JSON serializer of [PdfiumPreferences].
1514
*/
16-
@ExperimentalReadiumApi
1715
public class PdfiumPreferencesSerializer : PreferencesSerializer<PdfiumPreferences> {
1816

1917
override fun serialize(preferences: PdfiumPreferences): String =

readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettings.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,12 @@
77
package org.readium.adapter.pdfium.navigator
88

99
import org.readium.r2.navigator.preferences.*
10-
import org.readium.r2.shared.ExperimentalReadiumApi
1110

1211
/**
1312
* Settings values of the PDF navigator with the PDFium adapter.
1413
*
1514
* @see PdfiumPreferences
1615
*/
17-
@ExperimentalReadiumApi
1816
public data class PdfiumSettings(
1917
val fit: Fit,
2018
val pageSpacing: Double,

readium/adapters/pdfium/navigator/src/main/java/org/readium/adapter/pdfium/navigator/PdfiumSettingsResolver.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@ package org.readium.adapter.pdfium.navigator
99
import org.readium.r2.navigator.preferences.Axis
1010
import org.readium.r2.navigator.preferences.Fit
1111
import org.readium.r2.navigator.preferences.ReadingProgression
12-
import org.readium.r2.shared.ExperimentalReadiumApi
1312
import org.readium.r2.shared.publication.Metadata
1413
import org.readium.r2.shared.publication.ReadingProgression as PublicationReadingProgression
1514

16-
@ExperimentalReadiumApi
1715
internal class PdfiumSettingsResolver(
1816
private val metadata: Metadata,
1917
private val defaults: PdfiumDefaults

readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitDefaults.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ package org.readium.adapter.pspdfkit.navigator
88

99
import org.readium.r2.navigator.preferences.ReadingProgression
1010
import org.readium.r2.navigator.preferences.Spread
11-
import org.readium.r2.shared.ExperimentalReadiumApi
1211

1312
/**
1413
* Default values for the PDF navigator with the PSPDFKit adapter.
@@ -17,7 +16,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
1716
*
1817
* @see PsPdfKitPreferences
1918
*/
20-
@ExperimentalReadiumApi
2119
public data class PsPdfKitDefaults(
2220
val offsetFirstPage: Boolean? = null,
2321
val pageSpacing: Double? = null,

readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferences.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ package org.readium.adapter.pspdfkit.navigator
88

99
import kotlinx.serialization.Serializable
1010
import org.readium.r2.navigator.preferences.*
11-
import org.readium.r2.shared.ExperimentalReadiumApi
1211

1312
/**
1413
* Preferences for the PDF navigator with the PSPDFKit adapter.
@@ -21,7 +20,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
2120
* @param scrollAxis Indicates the axis along which pages should be laid out in scroll mode.
2221
* @param spread Indicates if the publication should be rendered with a synthetic spread (dual-page).
2322
*/
24-
@ExperimentalReadiumApi
2523
@Serializable
2624
public data class PsPdfKitPreferences(
2725
val fit: Fit? = null,

readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesEditor.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import org.readium.r2.navigator.preferences.RangePreference
2121
import org.readium.r2.navigator.preferences.RangePreferenceDelegate
2222
import org.readium.r2.navigator.preferences.ReadingProgression
2323
import org.readium.r2.navigator.preferences.Spread
24-
import org.readium.r2.shared.ExperimentalReadiumApi
2524
import org.readium.r2.shared.InternalReadiumApi
2625
import org.readium.r2.shared.publication.Metadata
2726

@@ -32,7 +31,6 @@ import org.readium.r2.shared.publication.Metadata
3231
* existing preferences. It includes rules for adjusting preferences, such as the supported values
3332
* or ranges.
3433
*/
35-
@ExperimentalReadiumApi
3634
public class PsPdfKitPreferencesEditor internal constructor(
3735
initialPreferences: PsPdfKitPreferences,
3836
publicationMetadata: Metadata,

readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesFilters.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,10 @@
77
package org.readium.adapter.pspdfkit.navigator
88

99
import org.readium.r2.navigator.preferences.PreferencesFilter
10-
import org.readium.r2.shared.ExperimentalReadiumApi
1110

1211
/**
1312
* Suggested filter to keep only shared [PsPdfKitPreferences].
1413
*/
15-
@ExperimentalReadiumApi
1614
public object PsPdfKitSharedPreferencesFilter : PreferencesFilter<PsPdfKitPreferences> {
1715

1816
override fun filter(preferences: PsPdfKitPreferences): PsPdfKitPreferences =
@@ -26,7 +24,6 @@ public object PsPdfKitSharedPreferencesFilter : PreferencesFilter<PsPdfKitPrefer
2624
/**
2725
* Suggested filter to keep only publication-specific [PsPdfKitPreferences].
2826
*/
29-
@ExperimentalReadiumApi
3027
public object PsPdfKitPublicationPreferencesFilter : PreferencesFilter<PsPdfKitPreferences> {
3128

3229
override fun filter(preferences: PsPdfKitPreferences): PsPdfKitPreferences =

readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitPreferencesSerializer.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ package org.readium.adapter.pspdfkit.navigator
88

99
import kotlinx.serialization.json.Json
1010
import org.readium.r2.navigator.preferences.PreferencesSerializer
11-
import org.readium.r2.shared.ExperimentalReadiumApi
1211

1312
/**
1413
* JSON serializer of [PsPdfKitPreferences].
1514
*/
16-
@ExperimentalReadiumApi
1715
public class PsPdfKitPreferencesSerializer : PreferencesSerializer<PsPdfKitPreferences> {
1816

1917
override fun serialize(preferences: PsPdfKitPreferences): String =

readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettings.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,12 @@
77
package org.readium.adapter.pspdfkit.navigator
88

99
import org.readium.r2.navigator.preferences.*
10-
import org.readium.r2.shared.ExperimentalReadiumApi
1110

1211
/**
1312
* Settings values of the PDF navigator with the PSPDFKit adapter.
1413
*
1514
* @see PsPdfKitPreferences
1615
*/
17-
@ExperimentalReadiumApi
1816
public data class PsPdfKitSettings(
1917
val fit: Fit,
2018
val offsetFirstPage: Boolean,

readium/adapters/pspdfkit/navigator/src/main/java/org/readium/adapter/pspdfkit/navigator/PsPdfKitSettingsResolver.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,9 @@ import org.readium.r2.navigator.preferences.Axis
1010
import org.readium.r2.navigator.preferences.Fit
1111
import org.readium.r2.navigator.preferences.ReadingProgression
1212
import org.readium.r2.navigator.preferences.Spread
13-
import org.readium.r2.shared.ExperimentalReadiumApi
1413
import org.readium.r2.shared.publication.Metadata
1514
import org.readium.r2.shared.publication.ReadingProgression as PublicationReadingProgression
1615

17-
@ExperimentalReadiumApi
1816
internal class PsPdfKitSettingsResolver(
1917
private val metadata: Metadata,
2018
private val defaults: PsPdfKitDefaults

readium/navigator/src/main/java/org/readium/r2/navigator/epub/EpubDefaults.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@ import org.readium.r2.shared.util.Language
1717
*
1818
* @see EpubPreferences
1919
*/
20-
@ExperimentalReadiumApi
21-
public data class EpubDefaults(
20+
public data class EpubDefaults @ExperimentalReadiumApi constructor(
2221
val columnCount: ColumnCount? = null,
2322
val fontSize: Double? = null,
2423
val fontWeight: Double? = null,

readium/navigator/src/main/java/org/readium/r2/navigator/epub/EpubNavigatorFactory.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import org.readium.r2.shared.publication.presentation.presentation
2323
* @param publication EPUB publication to render in the navigator.
2424
* @param configuration Configuration of the factory to create.
2525
*/
26-
@ExperimentalReadiumApi
26+
@OptIn(ExperimentalReadiumApi::class)
2727
public class EpubNavigatorFactory(
2828
private val publication: Publication,
2929
private val configuration: Configuration = Configuration()

readium/navigator/src/main/java/org/readium/r2/navigator/epub/EpubPreferences.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ import org.readium.r2.shared.util.Language
4747
* no preference is given.
4848
* @param wordSpacing Space between words.
4949
*/
50-
@ExperimentalReadiumApi
5150
@Serializable
52-
public data class EpubPreferences(
51+
public data class EpubPreferences @ExperimentalReadiumApi constructor(
5352
val backgroundColor: Color? = null,
5453
val columnCount: ColumnCount? = null,
5554
val fontFamily: FontFamily? = null,
@@ -88,6 +87,7 @@ public data class EpubPreferences(
8887
require(wordSpacing == null || wordSpacing >= 0)
8988
}
9089

90+
@OptIn(ExperimentalReadiumApi::class)
9191
override operator fun plus(other: EpubPreferences): EpubPreferences =
9292
EpubPreferences(
9393
backgroundColor = other.backgroundColor ?: backgroundColor,

readium/navigator/src/main/java/org/readium/r2/navigator/epub/EpubPreferencesEditor.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import org.readium.r2.shared.util.Language
2424
* existing preferences. It includes rules for adjusting preferences, such as the supported values
2525
* or ranges.
2626
*/
27-
@ExperimentalReadiumApi
27+
@OptIn(ExperimentalReadiumApi::class)
2828
public class EpubPreferencesEditor internal constructor(
2929
initialPreferences: EpubPreferences,
3030
publicationMetadata: Metadata,
@@ -50,6 +50,7 @@ public class EpubPreferencesEditor internal constructor(
5050
/**
5151
* Reset all preferences.
5252
*/
53+
@OptIn(ExperimentalReadiumApi::class)
5354
override fun clear() {
5455
updateValues { EpubPreferences() }
5556
}
@@ -81,6 +82,7 @@ public class EpubPreferencesEditor internal constructor(
8182
* - the publication is reflowable
8283
* - [scroll] is off
8384
*/
85+
@ExperimentalReadiumApi
8486
public val columnCount: EnumPreference<ColumnCount> =
8587
EnumPreferenceDelegate(
8688
getValue = { preferences.columnCount },
@@ -246,6 +248,7 @@ public class EpubPreferencesEditor internal constructor(
246248
*
247249
* Only effective with reflowable publications.
248250
*/
251+
@ExperimentalReadiumApi
249252
public val pageMargins: RangePreference<Double> =
250253
RangePreferenceDelegate(
251254
getValue = { preferences.pageMargins },
@@ -425,6 +428,7 @@ public class EpubPreferencesEditor internal constructor(
425428
* - the publication is reflowable
426429
* - [publisherStyles] is off
427430
*/
431+
@ExperimentalReadiumApi
428432
public val typeScale: RangePreference<Double> =
429433
RangePreferenceDelegate(
430434
getValue = { preferences.typeScale },

0 commit comments

Comments
 (0)