flureadium_platform_interface 0.7.0
flureadium_platform_interface: ^0.7.0 copied to clipboard
Platform interface for Flureadium, providing shared models, exceptions, and the abstract FlureadiumPlatform class for EPUB, PDF, and audiobook reading.
0.7.0 #
New Features #
- Add
extractPageThumbnail(href, maxHeight, quality)toFlureadiumPlatformandMethodChannelFlureadium. - The method-channel implementation sends
extractPageThumbnailwith[href, maxHeight, quality]and returns nullableUint8ListJPEG bytes.
Bug Fixes #
- Locator href encoding:
Locator.fromJsonnow decodes percent-encoded hrefs so the internal representation is always in decoded form.Locator.toJsonencodes hrefs for safe transport to native platforms. FixesPlatformException(InvalidArgument, Failed to parse locator)on iOS when navigating CBZ files with special characters (spaces, brackets) in filenames.
Testing #
- Add method-channel integration tests for thumbnail argument forwarding, nullable byte results, and native exception propagation.
- Add 8 unit tests for href encoding: fromJson decoding, toJson encoding, roundtrip idempotency, and edge cases (spaces-only, brackets-only, mixed special characters).
0.6.0 #
New Features #
- Add
ttsCanSpeak()toFlureadiumPlatformandMethodChannelFlureadium— checks whether the device TTS engine can speak for the current publication's language. - Add
ttsRequestInstallVoice()— opens the platform voice-data installer when the required language pack is missing. - Add
TtsErrorTypeenum toReadiumTimebasedState— surfaces structured TTS errors (languageMissingData,languageNotSupported,synthesisError,networkError). - Add
ttsGetSystemVoices()— returns all system-level TTS voices, independent of publication language. - Add optional
fromLocatorparameter tottsEnable()— allows restoring TTS playback position after re-enabling.
Testing #
- Add regression test for
ttsSetPreferenceswith nullvoiceIdentifierin method channel integration tests.
0.5.0 #
Breaking Changes #
- EPUBPreferences: Remove navigation config fields
enableEdgeTapNavigation,enableSwipeNavigation,edgeTapAreaPoints. UsesetNavigationConfig(ReaderNavigationConfig)instead. - PDFPreferences: Remove navigation config fields
enableEdgeTapNavigation,enableSwipeNavigation,edgeTapAreaPoints,disableDoubleTapZoom,disableTextSelection,disableDragGestures,disableDoubleTapTextSelection. UsesetNavigationConfig(ReaderNavigationConfig)instead.
New Features #
- Add
ReaderNavigationConfig— dedicated type for app-developer navigation UX settings (edge tap, swipe, gesture disabling). These are separate from Readium user reading preferences. - Add
setNavigationConfig(ReaderNavigationConfig)toFlureadiumPlatform,MethodChannelFlureadium,ReadiumReaderWidgetInterface,_ReadiumReaderWidgetState, andReadiumReaderChannel.
0.4.0 #
Breaking Changes #
- PDFPreferences: Rename
disableTextSelectionMenutodisableDoubleTapTextSelection. The old name was misleading — this preference removesUITextNonEditableInteractionfromPDFTextInputView, preventing double-tap word selection entirely. Long-press text selection and the Look Up/Translate/ Search Web menu remain fully functional.
0.3.1 #
- Add
edgeTapAreaPointstoEPUBPreferences— configures the edge tap zone width in absolute points (44–120pt). iOS only. Defaults to 44pt (iOS HIG minimum tap target) when null. - Add
edgeTapAreaPointstoPDFPreferences— same control for the PDF reader.
0.3.0 #
- Add
renderFirstPagemethod toFlureadiumPlatformandMethodChannelFlureadium— renders the first page of a PDF as a JPEG image for cover generation.
0.2.0 #
- Add
enableEdgeTapNavigationandenableSwipeNavigationtoPDFPreferences— allows independently controlling edge tap and swipe page navigation on iOS. - Add
enableEdgeTapNavigationandenableSwipeNavigationtoEPUBPreferences— same controls for EPUB reader on iOS.
0.1.0 #
- Initial public release of the Flureadium platform interface.
- Abstract
FlureadiumPlatformclass with full API for EPUB, PDF, and audiobook reading. - Method channel implementation (
MethodChannelFlureadium). - Readium shared models:
Publication,Locator,Metadata,Link,MediaType, and more. - Reader preference models:
EPUBPreferences,PDFPreferences,TTSPreferences,AudioPreferences. - Reader decoration API for highlights and annotations.
- TTS voice model and platform-specific voice name mappings.
- Exception types for structured error handling.
- OPDS feed and publication models.
- Extension utilities for colors, durations, locators, and strings.