Reading System Engine
ReadingSystemEngine is the entry point to the Colibrio Reading System API. It is used for loading publications, accessing the ReaderView, creating SyncMediaPlayers and more.
You get an engine instance from ColibrioReadingSystemView.readingSystemEngine.
Threading
Use the whole reading system API from the main thread - this engine, its ReaderView, the publications it loads and their timelines and SyncMediaPlayers. This includes the suspend overloads: call them from a coroutine on the main dispatcher rather than switching dispatchers first. The reading system drives an Android WebView, whose state is confined to the main thread.
Calls from another thread are not supported. The framework logs an error when it detects one, but the call may still lose its result or leave the reading system inconsistent.
That rule covers calls you make into the reading system. The reading system also calls into code you implement. Those calls arrive on the main thread, except for the resource interfaces: com.colibrio.core.io.ResourceProvider, com.colibrio.core.io.RandomAccessDataSource and com.colibrio.core.io.ResourceResponse. The reading system may call those from any thread, and from more than one at once, so they must be thread safe.
The callback-style overloads invoke their onSuccess and onError callbacks on the main thread.
Loading publications
Call loadEpub or loadPdf to load a publication into the ReadingSystemEngine. The returned ReaderPublication can be used with the readerView to render content.
Engine Events
The reading system lets you listen and react to events. This can for example be, the user clicking a link or an image, or a ReaderView navigating to the next page.
You can use the various add event listener methods on the framework classes such as the ReaderView.
Event listeners
Registering the same listener twice has no effect. Removing a listener that is not registered has no effect.
Each event goes to the listeners registered when its dispatch began. You may therefore add or remove listeners from inside a callback. A listener removed during a callback still receives the event being dispatched, and no event after it. A listener added during a callback first receives the next event.
Properties
Gets the API that can be used for searching in ReaderDocuments.
Currently loaded ReaderPublications.
The ReaderView is responsible for everything related to presentation and navigation of publication contents.
All SyncMediaPlayer instances created using this ReadingSystemEngine.
Functions
Adds an instance of OnLicenseEventListener to receive events related to Colibrio License Server validation.
Creates a new SyncMediaPlayer from an existing ColibrioAudioPlayer.
Creates a new SyncMediaPlayer. Use for playing synchronized media such as EPUB Media Overlays or TTS (Text-To-Speech). You can create SyncMediaTimeline instances from publications using the format specific ReaderPublication instances. For example EpubReaderPublication.createMediaOverlaySyncMediaTimeline() or PdfReaderPublication.createTtsSyncMediaTimeline()`.
Creates a new ZipResourceProvider using byte data provided by dataSource. The dataSource must return data from a valid ZIP file, such as an EPUB file for example.
Destroys a SyncMediaPlayer created using this ReadingSystemEngine. Throws an error if the SyncMediaPlayer was not created using this ReadingSystemEngine.
Loads an EPUB file into the ReadingSystemEngine.
Loads a PDF file into the ReadingSystemEngine.
Removes a previously added instance of OnLicenseEventListener.
Unloads readerPublication from the reading system. readerPublication must have been loaded using this ReadingSystemEngine instance, and its readerDocuments must not currently be in use by readerView.