Skip to content

Commit

Permalink
Promote the Preferences API to stable (#568)
Browse files Browse the repository at this point in the history
  • Loading branch information
mickael-menu authored Sep 18, 2024
1 parent 160668d commit 775f742
Show file tree
Hide file tree
Showing 42 changed files with 23 additions and 112 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@

package org.readium.adapter.exoplayer.audio

import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Default values for the ExoPlayer engine.
*
Expand All @@ -16,7 +14,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
*
* @see ExoPlayerPreferences
*/
@ExperimentalReadiumApi
public data class ExoPlayerDefaults(
val pitch: Double? = null,
val speed: Double? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,13 @@
package org.readium.adapter.exoplayer.audio

import org.readium.r2.navigator.preferences.Configurable
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Preferences for the the ExoPlayer engine.
*
* @param pitch Playback pitch rate.
* @param speed Playback speed rate.
*/
@ExperimentalReadiumApi
@kotlinx.serialization.Serializable
public data class ExoPlayerPreferences(
val pitch: Double? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import org.readium.r2.navigator.preferences.DoubleIncrement
import org.readium.r2.navigator.preferences.PreferencesEditor
import org.readium.r2.navigator.preferences.RangePreference
import org.readium.r2.navigator.preferences.RangePreferenceDelegate
import org.readium.r2.shared.ExperimentalReadiumApi
import org.readium.r2.shared.InternalReadiumApi
import org.readium.r2.shared.publication.Metadata

Expand All @@ -24,7 +23,6 @@ import org.readium.r2.shared.publication.Metadata
* existing preferences. It includes rules for adjusting preferences, such as the supported values
* or ranges.
*/
@ExperimentalReadiumApi
public class ExoPlayerPreferencesEditor(
initialPreferences: ExoPlayerPreferences,
@Suppress("UNUSED_PARAMETER") publicationMetadata: Metadata,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@ package org.readium.adapter.exoplayer.audio

import kotlinx.serialization.json.Json
import org.readium.r2.navigator.preferences.PreferencesSerializer
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* JSON serializer of [ExoPlayerPreferences].
*/
@ExperimentalReadiumApi
public class ExoPlayerPreferencesSerializer : PreferencesSerializer<ExoPlayerPreferences> {

override fun serialize(preferences: ExoPlayerPreferences): String =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,12 @@
package org.readium.adapter.exoplayer.audio

import org.readium.r2.navigator.preferences.Configurable
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Settings values of the ExoPlayer engine.
*
* @see ExoPlayerPreferences
*/
@ExperimentalReadiumApi
public data class ExoPlayerSettings(
val pitch: Double,
val speed: Double
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ package org.readium.adapter.exoplayer.audio

import org.readium.r2.shared.ExperimentalReadiumApi

@ExperimentalReadiumApi
@OptIn(ExperimentalReadiumApi::class)
internal class ExoPlayerSettingsResolver(
private val defaults: ExoPlayerDefaults
) : ExoPlayerEngine.SettingsResolver {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
package org.readium.adapter.pdfium.navigator

import org.readium.r2.navigator.preferences.ReadingProgression
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Default values for the PDF navigator with the PDFium adapter.
Expand All @@ -16,7 +15,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
*
* @see PdfiumPreferences
*/
@ExperimentalReadiumApi
public data class PdfiumDefaults(
val pageSpacing: Double? = null,
val readingProgression: ReadingProgression? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import org.readium.r2.navigator.preferences.Axis
import org.readium.r2.navigator.preferences.Configurable
import org.readium.r2.navigator.preferences.Fit
import org.readium.r2.navigator.preferences.ReadingProgression
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Preferences for the PDF navigator with the PDFium adapter.
Expand All @@ -21,7 +20,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
* @param readingProgression Direction of the horizontal progression across pages.
* @param scrollAxis Indicates the axis along which pages should be laid out in scroll mode.
*/
@ExperimentalReadiumApi
@Serializable
public data class PdfiumPreferences(
val fit: Fit? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ package org.readium.adapter.pdfium.navigator

import org.readium.r2.navigator.extensions.format
import org.readium.r2.navigator.preferences.*
import org.readium.r2.shared.ExperimentalReadiumApi
import org.readium.r2.shared.InternalReadiumApi
import org.readium.r2.shared.publication.Metadata

Expand All @@ -21,7 +20,6 @@ import org.readium.r2.shared.publication.Metadata
* existing preferences. It includes rules for adjusting preferences, such as the supported values
* or ranges.
*/
@ExperimentalReadiumApi
public class PdfiumPreferencesEditor internal constructor(
initialPreferences: PdfiumPreferences,
publicationMetadata: Metadata,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@
package org.readium.adapter.pdfium.navigator

import org.readium.r2.navigator.preferences.PreferencesFilter
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Suggested filter to keep only shared [PdfiumPreferences].
*/
@ExperimentalReadiumApi
public object PdfiumSharedPreferencesFilter : PreferencesFilter<PdfiumPreferences> {

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

override fun filter(preferences: PdfiumPreferences): PdfiumPreferences =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@ package org.readium.adapter.pdfium.navigator

import kotlinx.serialization.json.Json
import org.readium.r2.navigator.preferences.PreferencesSerializer
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* JSON serializer of [PdfiumPreferences].
*/
@ExperimentalReadiumApi
public class PdfiumPreferencesSerializer : PreferencesSerializer<PdfiumPreferences> {

override fun serialize(preferences: PdfiumPreferences): String =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,12 @@
package org.readium.adapter.pdfium.navigator

import org.readium.r2.navigator.preferences.*
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Settings values of the PDF navigator with the PDFium adapter.
*
* @see PdfiumPreferences
*/
@ExperimentalReadiumApi
public data class PdfiumSettings(
val fit: Fit,
val pageSpacing: Double,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@ package org.readium.adapter.pdfium.navigator
import org.readium.r2.navigator.preferences.Axis
import org.readium.r2.navigator.preferences.Fit
import org.readium.r2.navigator.preferences.ReadingProgression
import org.readium.r2.shared.ExperimentalReadiumApi
import org.readium.r2.shared.publication.Metadata
import org.readium.r2.shared.publication.ReadingProgression as PublicationReadingProgression

@ExperimentalReadiumApi
internal class PdfiumSettingsResolver(
private val metadata: Metadata,
private val defaults: PdfiumDefaults
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ package org.readium.adapter.pspdfkit.navigator

import org.readium.r2.navigator.preferences.ReadingProgression
import org.readium.r2.navigator.preferences.Spread
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Default values for the PDF navigator with the PSPDFKit adapter.
Expand All @@ -17,7 +16,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
*
* @see PsPdfKitPreferences
*/
@ExperimentalReadiumApi
public data class PsPdfKitDefaults(
val offsetFirstPage: Boolean? = null,
val pageSpacing: Double? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ package org.readium.adapter.pspdfkit.navigator

import kotlinx.serialization.Serializable
import org.readium.r2.navigator.preferences.*
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Preferences for the PDF navigator with the PSPDFKit adapter.
Expand All @@ -21,7 +20,6 @@ import org.readium.r2.shared.ExperimentalReadiumApi
* @param scrollAxis Indicates the axis along which pages should be laid out in scroll mode.
* @param spread Indicates if the publication should be rendered with a synthetic spread (dual-page).
*/
@ExperimentalReadiumApi
@Serializable
public data class PsPdfKitPreferences(
val fit: Fit? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ import org.readium.r2.navigator.preferences.RangePreference
import org.readium.r2.navigator.preferences.RangePreferenceDelegate
import org.readium.r2.navigator.preferences.ReadingProgression
import org.readium.r2.navigator.preferences.Spread
import org.readium.r2.shared.ExperimentalReadiumApi
import org.readium.r2.shared.InternalReadiumApi
import org.readium.r2.shared.publication.Metadata

Expand All @@ -32,7 +31,6 @@ import org.readium.r2.shared.publication.Metadata
* existing preferences. It includes rules for adjusting preferences, such as the supported values
* or ranges.
*/
@ExperimentalReadiumApi
public class PsPdfKitPreferencesEditor internal constructor(
initialPreferences: PsPdfKitPreferences,
publicationMetadata: Metadata,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@
package org.readium.adapter.pspdfkit.navigator

import org.readium.r2.navigator.preferences.PreferencesFilter
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Suggested filter to keep only shared [PsPdfKitPreferences].
*/
@ExperimentalReadiumApi
public object PsPdfKitSharedPreferencesFilter : PreferencesFilter<PsPdfKitPreferences> {

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

override fun filter(preferences: PsPdfKitPreferences): PsPdfKitPreferences =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,10 @@ package org.readium.adapter.pspdfkit.navigator

import kotlinx.serialization.json.Json
import org.readium.r2.navigator.preferences.PreferencesSerializer
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* JSON serializer of [PsPdfKitPreferences].
*/
@ExperimentalReadiumApi
public class PsPdfKitPreferencesSerializer : PreferencesSerializer<PsPdfKitPreferences> {

override fun serialize(preferences: PsPdfKitPreferences): String =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,12 @@
package org.readium.adapter.pspdfkit.navigator

import org.readium.r2.navigator.preferences.*
import org.readium.r2.shared.ExperimentalReadiumApi

/**
* Settings values of the PDF navigator with the PSPDFKit adapter.
*
* @see PsPdfKitPreferences
*/
@ExperimentalReadiumApi
public data class PsPdfKitSettings(
val fit: Fit,
val offsetFirstPage: Boolean,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ import org.readium.r2.navigator.preferences.Axis
import org.readium.r2.navigator.preferences.Fit
import org.readium.r2.navigator.preferences.ReadingProgression
import org.readium.r2.navigator.preferences.Spread
import org.readium.r2.shared.ExperimentalReadiumApi
import org.readium.r2.shared.publication.Metadata
import org.readium.r2.shared.publication.ReadingProgression as PublicationReadingProgression

@ExperimentalReadiumApi
internal class PsPdfKitSettingsResolver(
private val metadata: Metadata,
private val defaults: PsPdfKitDefaults
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ import org.readium.r2.shared.util.Language
*
* @see EpubPreferences
*/
@ExperimentalReadiumApi
public data class EpubDefaults(
public data class EpubDefaults @ExperimentalReadiumApi constructor(
val columnCount: ColumnCount? = null,
val fontSize: Double? = null,
val fontWeight: Double? = null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import org.readium.r2.shared.publication.presentation.presentation
* @param publication EPUB publication to render in the navigator.
* @param configuration Configuration of the factory to create.
*/
@ExperimentalReadiumApi
@OptIn(ExperimentalReadiumApi::class)
public class EpubNavigatorFactory(
private val publication: Publication,
private val configuration: Configuration = Configuration()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,8 @@ import org.readium.r2.shared.util.Language
* no preference is given.
* @param wordSpacing Space between words.
*/
@ExperimentalReadiumApi
@Serializable
public data class EpubPreferences(
public data class EpubPreferences @ExperimentalReadiumApi constructor(
val backgroundColor: Color? = null,
val columnCount: ColumnCount? = null,
val fontFamily: FontFamily? = null,
Expand Down Expand Up @@ -88,6 +87,7 @@ public data class EpubPreferences(
require(wordSpacing == null || wordSpacing >= 0)
}

@OptIn(ExperimentalReadiumApi::class)
override operator fun plus(other: EpubPreferences): EpubPreferences =
EpubPreferences(
backgroundColor = other.backgroundColor ?: backgroundColor,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import org.readium.r2.shared.util.Language
* existing preferences. It includes rules for adjusting preferences, such as the supported values
* or ranges.
*/
@ExperimentalReadiumApi
@OptIn(ExperimentalReadiumApi::class)
public class EpubPreferencesEditor internal constructor(
initialPreferences: EpubPreferences,
publicationMetadata: Metadata,
Expand All @@ -50,6 +50,7 @@ public class EpubPreferencesEditor internal constructor(
/**
* Reset all preferences.
*/
@OptIn(ExperimentalReadiumApi::class)
override fun clear() {
updateValues { EpubPreferences() }
}
Expand Down Expand Up @@ -81,6 +82,7 @@ public class EpubPreferencesEditor internal constructor(
* - the publication is reflowable
* - [scroll] is off
*/
@ExperimentalReadiumApi
public val columnCount: EnumPreference<ColumnCount> =
EnumPreferenceDelegate(
getValue = { preferences.columnCount },
Expand Down Expand Up @@ -246,6 +248,7 @@ public class EpubPreferencesEditor internal constructor(
*
* Only effective with reflowable publications.
*/
@ExperimentalReadiumApi
public val pageMargins: RangePreference<Double> =
RangePreferenceDelegate(
getValue = { preferences.pageMargins },
Expand Down Expand Up @@ -425,6 +428,7 @@ public class EpubPreferencesEditor internal constructor(
* - the publication is reflowable
* - [publisherStyles] is off
*/
@ExperimentalReadiumApi
public val typeScale: RangePreference<Double> =
RangePreferenceDelegate(
getValue = { preferences.typeScale },
Expand Down
Loading

0 comments on commit 775f742

Please sign in to comment.