Skip to content

Commit 9f6bfb1

Browse files
authored
Remove Presentation hints (#754)
1 parent d3a8d6f commit 9f6bfb1

37 files changed

Lines changed: 365 additions & 766 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ All notable changes to this project will be documented in this file. Take a look
2525

2626
* Removed title inference based on folder names within image and audio archives. Use the archive's filename instead.
2727

28+
#### Shared
29+
30+
* The Presentation Hints properties are deprecated from the Readium Web Publication Manifest models. [See the official documentation](https://readium.org/webpub-manifest/profiles/epub.html#appendix-b---deprecated-properties).
31+
2832
### Fixed
2933

3034
#### Shared

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@ package org.readium.r2.navigator.epub
1111
import androidx.fragment.app.FragmentFactory
1212
import org.readium.r2.shared.ExperimentalReadiumApi
1313
import org.readium.r2.shared.InternalReadiumApi
14+
import org.readium.r2.shared.publication.Layout
1415
import org.readium.r2.shared.publication.Link
1516
import org.readium.r2.shared.publication.Locator
1617
import org.readium.r2.shared.publication.Publication
17-
import org.readium.r2.shared.publication.epub.EpubLayout
18-
import org.readium.r2.shared.publication.presentation.presentation
1918

2019
/**
2120
* Factory of the EPUB navigator and related components.
@@ -38,8 +37,8 @@ public class EpubNavigatorFactory(
3837
val defaults: EpubDefaults = EpubDefaults(),
3938
)
4039

41-
private val layout: EpubLayout =
42-
publication.metadata.presentation.layout ?: EpubLayout.REFLOWABLE
40+
private val layout: Layout =
41+
publication.metadata.layout ?: Layout.REFLOWABLE
4342

4443
/**
4544
* Creates a factory for [EpubNavigatorFragment].
@@ -69,7 +68,7 @@ public class EpubNavigatorFactory(
6968
initialPreferences = initialPreferences,
7069
listener = listener,
7170
paginationListener = paginationListener,
72-
epubLayout = layout,
71+
layout = layout,
7372
defaults = this.configuration.defaults,
7473
configuration = configuration
7574
)

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

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,10 @@ import org.readium.r2.shared.ExperimentalReadiumApi
8484
import org.readium.r2.shared.InternalReadiumApi
8585
import org.readium.r2.shared.extensions.tryOrLog
8686
import org.readium.r2.shared.publication.Href
87+
import org.readium.r2.shared.publication.Layout
8788
import org.readium.r2.shared.publication.Link
8889
import org.readium.r2.shared.publication.Locator
8990
import org.readium.r2.shared.publication.Publication
90-
import org.readium.r2.shared.publication.epub.EpubLayout
91-
import org.readium.r2.shared.publication.presentation.presentation
9291
import org.readium.r2.shared.publication.services.positionsByReadingOrder
9392
import org.readium.r2.shared.util.AbsoluteUrl
9493
import org.readium.r2.shared.util.Url
@@ -116,7 +115,7 @@ public class EpubNavigatorFragment internal constructor(
116115
private val initialPreferences: EpubPreferences,
117116
internal val listener: Listener?,
118117
internal val paginationListener: PaginationListener?,
119-
epubLayout: EpubLayout,
118+
layout: Layout,
120119
private val defaults: EpubDefaults,
121120
configuration: Configuration,
122121
) : NavigatorFragment(publication),
@@ -311,7 +310,7 @@ public class EpubNavigatorFragment internal constructor(
311310
config = this.config,
312311
initialPreferences = initialPreferences,
313312
listener = listener,
314-
layout = epubLayout,
313+
layout = layout,
315314
defaults = defaults
316315
)
317316
}
@@ -351,7 +350,7 @@ public class EpubNavigatorFragment internal constructor(
351350
positions = positionsByReadingOrder.flatten()
352351

353352
when (viewModel.layout) {
354-
EpubLayout.REFLOWABLE -> {
353+
Layout.REFLOWABLE, Layout.SCROLLED -> {
355354
resourcesSingle = readingOrder.mapIndexed { index, link ->
356355
PageResource.EpubReflowable(
357356
link = link,
@@ -361,7 +360,7 @@ public class EpubNavigatorFragment internal constructor(
361360
}
362361
}
363362

364-
EpubLayout.FIXED -> {
363+
Layout.FIXED -> {
365364
val resourcesSingle = mutableListOf<PageResource>()
366365
val resourcesDouble = mutableListOf<PageResource>()
367366

@@ -413,7 +412,7 @@ public class EpubNavigatorFragment internal constructor(
413412
resetResourcePager()
414413

415414
// Fixed layout publications cannot intercept JS events yet.
416-
if (publication.metadata.presentation.layout == EpubLayout.FIXED) {
415+
if (publication.metadata.layout == Layout.FIXED) {
417416
view = KeyInterceptorView(view, inputListener)
418417
}
419418

@@ -430,9 +429,9 @@ public class EpubNavigatorFragment internal constructor(
430429

431430
resourcePager = R2ViewPager(requireContext())
432431
resourcePager.id = R.id.resourcePager
433-
resourcePager.publicationType = when (publication.metadata.presentation.layout) {
434-
EpubLayout.REFLOWABLE, null -> R2ViewPager.PublicationType.EPUB
435-
EpubLayout.FIXED -> R2ViewPager.PublicationType.FXL
432+
resourcePager.publicationType = when (publication.metadata.layout) {
433+
Layout.REFLOWABLE, Layout.SCROLLED, null -> R2ViewPager.PublicationType.EPUB
434+
Layout.FIXED -> R2ViewPager.PublicationType.FXL
436435
}
437436
resourcePager.setBackgroundColor(viewModel.settings.value.effectiveBackgroundColor)
438437
// Let the page views handle the keyboard events.
@@ -472,11 +471,11 @@ public class EpubNavigatorFragment internal constructor(
472471
}
473472

474473
private fun resetResourcePagerAdapter() {
475-
adapter = when (publication.metadata.presentation.layout) {
476-
EpubLayout.REFLOWABLE, null -> {
474+
adapter = when (publication.metadata.layout) {
475+
Layout.REFLOWABLE, Layout.SCROLLED, null -> {
477476
R2PagerAdapter(childFragmentManager, resourcesSingle)
478477
}
479-
EpubLayout.FIXED -> {
478+
Layout.FIXED -> {
480479
when (viewModel.dualPageMode) {
481480
// FIXME: Properly implement DualPage.AUTO depending on the device orientation.
482481
DualPage.OFF, DualPage.AUTO -> {
@@ -560,7 +559,7 @@ public class EpubNavigatorFragment internal constructor(
560559
resourcePager.setBackgroundColor(new.effectiveBackgroundColor)
561560
}
562561

563-
if (viewModel.layout == EpubLayout.REFLOWABLE) {
562+
if (viewModel.layout == Layout.REFLOWABLE) {
564563
if (previous.fontSize != new.fontSize) {
565564
r2PagerAdapter?.setFontSize(new.fontSize)
566565
}
@@ -577,7 +576,7 @@ public class EpubNavigatorFragment internal constructor(
577576

578577
private inner class PagerAdapterListener : R2PagerAdapter.Listener {
579578
override fun onCreatePageFragment(fragment: Fragment) {
580-
if (viewModel.layout == EpubLayout.REFLOWABLE) {
579+
if (viewModel.layout == Layout.REFLOWABLE) {
581580
if (!config.useReadiumCssFontSize) {
582581
(fragment as? R2EpubPageFragment)?.setFontSize(settings.value.fontSize)
583582
}
@@ -633,7 +632,7 @@ public class EpubNavigatorFragment internal constructor(
633632
r2PagerAdapter?.loadLocatorAt(index, locator)
634633
}
635634

636-
if (publication.metadata.presentation.layout != EpubLayout.FIXED) {
635+
if (publication.metadata.layout != Layout.FIXED) {
637636
setCurrent(resourcesSingle)
638637
} else {
639638
when (viewModel.dualPageMode) {
@@ -868,7 +867,7 @@ public class EpubNavigatorFragment internal constructor(
868867
}
869868

870869
override fun goForward(animated: Boolean): Boolean {
871-
if (publication.metadata.presentation.layout == EpubLayout.FIXED) {
870+
if (publication.metadata.layout == Layout.FIXED) {
872871
return goToNextResource(jump = false, animated = animated)
873872
}
874873

@@ -885,7 +884,7 @@ public class EpubNavigatorFragment internal constructor(
885884
}
886885

887886
override fun goBackward(animated: Boolean): Boolean {
888-
if (publication.metadata.presentation.layout == EpubLayout.FIXED) {
887+
if (publication.metadata.layout == Layout.FIXED) {
889888
return goToPreviousResource(jump = false, animated = animated)
890889
}
891890

@@ -1003,10 +1002,10 @@ public class EpubNavigatorFragment internal constructor(
10031002
if (!::resourcePager.isInitialized) return null
10041003

10051004
return when (viewModel.layout) {
1006-
EpubLayout.FIXED ->
1005+
Layout.FIXED ->
10071006
currentLocator.value
10081007

1009-
EpubLayout.REFLOWABLE -> {
1008+
Layout.REFLOWABLE, Layout.SCROLLED -> {
10101009
val resource = readingOrder[resourcePager.currentItem]
10111010
currentReflowablePageFragment?.webView?.findFirstVisibleLocator()
10121011
?.copy(
@@ -1123,7 +1122,7 @@ public class EpubNavigatorFragment internal constructor(
11231122
initialPreferences = EpubPreferences(),
11241123
listener = null,
11251124
paginationListener = null,
1126-
epubLayout = EpubLayout.REFLOWABLE,
1125+
layout = Layout.REFLOWABLE,
11271126
defaults = EpubDefaults(),
11281127
configuration = Configuration()
11291128
)

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ import org.readium.r2.shared.ExperimentalReadiumApi
3131
import org.readium.r2.shared.InternalReadiumApi
3232
import org.readium.r2.shared.extensions.mapStateIn
3333
import org.readium.r2.shared.publication.Href
34+
import org.readium.r2.shared.publication.Layout
3435
import org.readium.r2.shared.publication.Link
3536
import org.readium.r2.shared.publication.Publication
36-
import org.readium.r2.shared.publication.epub.EpubLayout
3737
import org.readium.r2.shared.util.AbsoluteUrl
3838
import org.readium.r2.shared.util.RelativeUrl
3939
import org.readium.r2.shared.util.Url
@@ -50,7 +50,7 @@ internal class EpubNavigatorViewModel(
5050
val publication: Publication,
5151
val config: EpubNavigatorFragment.Configuration,
5252
initialPreferences: EpubPreferences,
53-
val layout: EpubLayout,
53+
val layout: Layout,
5454
val listener: EpubNavigatorFragment.Listener?,
5555
private val defaults: EpubDefaults,
5656
private val server: WebViewServer,
@@ -91,7 +91,7 @@ internal class EpubNavigatorViewModel(
9191
.mapStateIn(viewModelScope) { settings ->
9292
SimpleOverflow(
9393
readingProgression = settings.readingProgression,
94-
scroll = if (layout == EpubLayout.REFLOWABLE) {
94+
scroll = if (layout == Layout.REFLOWABLE) {
9595
settings.scroll
9696
} else {
9797
false
@@ -264,12 +264,12 @@ internal class EpubNavigatorViewModel(
264264
*/
265265
val dualPageMode: DualPage get() =
266266
when (layout) {
267-
EpubLayout.FIXED -> when (settings.value.spread) {
267+
Layout.FIXED -> when (settings.value.spread) {
268268
Spread.AUTO -> DualPage.AUTO
269269
Spread.ALWAYS -> DualPage.ON
270270
Spread.NEVER -> DualPage.OFF
271271
}
272-
EpubLayout.REFLOWABLE -> when (settings.value.columnCount) {
272+
else -> when (settings.value.columnCount) {
273273
ColumnCount.ONE -> DualPage.OFF
274274
ColumnCount.TWO -> DualPage.ON
275275
ColumnCount.AUTO -> DualPage.AUTO
@@ -281,7 +281,7 @@ internal class EpubNavigatorViewModel(
281281
*/
282282
val isScrollEnabled: StateFlow<Boolean> get() =
283283
settings.mapStateIn(viewModelScope) {
284-
if (layout == EpubLayout.REFLOWABLE) it.scroll else false
284+
if (layout == Layout.REFLOWABLE) it.scroll else false
285285
}
286286

287287
// Selection
@@ -371,7 +371,7 @@ internal class EpubNavigatorViewModel(
371371
fun createFactory(
372372
application: Application,
373373
publication: Publication,
374-
layout: EpubLayout,
374+
layout: Layout,
375375
listener: EpubNavigatorFragment.Listener?,
376376
defaults: EpubDefaults,
377377
config: EpubNavigatorFragment.Configuration,

0 commit comments

Comments
 (0)