readium/swift-toolkit

Aligning the Publication models with Kotlin

mickael-menu opened this issue · 0 comments

readium/r2-shared-swift#83, readium/r2-streamer-swift#153 and readium/r2-navigator-swift#106 partially fix this issue, I'll strike the items progressively.

This Kotlin PR refactored the Publication models and introduced a lot of changes needing to be replicated on Swift:

  • Add missing values in ReadingProgression
  • Fix the computing of the ReadingProgression (see readium/architecture#113)
  • Review the Date parsing from ISO 8601
  • Use an interface for PositionListFactory and add unit tests for each format
    • (POSTPONED: Let's see how the Streamer API will look like first)
  • Use a dictionary for LocalizedString
  • Add the Presentation Hints extension
    • Move Page and Orientation from Properties to Presentation
    • Remove scrollContinuous
  • Publication
  • OPDS
    • Move OPDSPrice, OPDSAcquisition to the OPDS folder
    • Add missing OPDS objects and extensions
    • Rename indirectAcquisition to indirectAcquisitions
  • EPUB
    • Remove media-overlay from the EPUB extension and from Link
    • Move metadata.layout to metadata.presentation.layout
    • Rename listOfAudioFiles to listOfAudioClips, and listOfVideos to listOfVideoClips
    • Remove EPUBRendition and use EPUBLayout instead
    • Move EPUBLayout.fromEPUB to the EPUB parser
    • Extract the encrypted object to a new Encryption extension
      • Rename original-length to originalLength (but still parse the old one for backward compatibility)
    • (streamer) Don't parse <readingOrder>, only <spine> is valid in the OPF
    • in otherMetadata, resolve dc metadata to the dcterms UR.
  • Locators:
    • Add HTML extension
  • Review the new unit tests in r2-streamer-kotlin, in particular:
    • Fix OEBPS 1.2 DTD
    • Additions in NCX
    • OPF tests regarding the EPUB versions