* Enhance Cloud TTS with navigation controls and shared UI overlay in desktop app
* Refactor Cloud TTS voice settings and remove standalone settings overlay on desktop app
* Persist reader window state and improve slider interaction in desktop app
* Improve PDF page transitions and refine focus management in desktop app
* Refactor scrollbar interaction and adjust desktop modal focus handling
* Improve PDF sidecar synchronization and cross-platform metadata compatibility
* Refactor PDF annotation comment logic to shared module and implement Desktop UI
* Refactor reader screen to use tap-to-toggle and full-width styling in desktop app
* Refactor reader workspace layout and chrome-panel interactions
* Implement global search keyboard shortcuts and focusable chrome layers
* Implement flavor-specific legal links and update the About UI
* Refactor reader UI controls on desktop app
* Enhance desktop folder sync with background metadata extraction and improved error handling
* Refactor Library UI and remove redundant Home tab in desktop app
* Add custom tooltips to reader icon buttons in desktop app
* Integrate app theme controls into reader interfaces on desktop
* Add right-to-left pagination support and improve focus restoration on desktop app
* Improve EPUB pagination geometry and diagnostic logging for layout cutoffs on desktop app
* Update desktop reader defaults and implement settings migration
* Implement block-based position tracking in ReaderLocator
* Enhance EPUB highlighting reliability in desktop app
* Add support for custom reader themes and update highlight palette logic in desktop app
* Replace the Tools panel with a "More" dropdown menu and refactor account UI
* Implement account profile header in desktop sidebar
* Implement cloud sync reliability improvements and sidebar toggle on desktop app
* Improve EPUB annotation synchronization and highlight mapping accuracy in desktop app
* Integrate WebView2 for EPUB vertical rendering on Windows
* Refactor reader layout logic and enhance WebView2 diagnostics
* Improve vertical reading layout and WebView2 resizing on Desktop
* Refine vertical reading mode layout and margin handling
* Enhance reader locator precision and Desktop mode-switching reliability
* Implement chapter-level caching and warm-start pagination in desktop app
* Replace bundled KCEF with native system webviews via SWT
* Refactor EPUB page info bar visibility and layout logic
* Improve PDF toolbar persistence and fix tab reactivation logic
* Enable multi-selection and bulk operations for custom fonts
* Refactor instrumentation tests
* Add EPUB UI test fixture and initial instrumentation tests
* Expand EpubReader UI tests and improve accessibility
* Add instrumentation tests and test tags for library and reader screens
* Enhance OPDS parser logic and catalog integration
* Add support for toggling local synchronization on a per-folder basis.
* Implement tri-state sizing for the TTS overlay
* Persist TTS overlay size across sessions
* Refactor reader brightness control and add incremental step buttons
* Improve CSS support, pagination control, and style-aware semantic caching
* Improve link handling, interaction, and diagnostics in the paginated reader
* crash fixes
* Implement persistent pending removal for external files
* Implement book-specific word replacements
* Add native vertical reading mode with custom renderer
* Implement text selection and navigation improvements for the native vertical reader
* Implement locator-based navigation and improved vertical scrolling in native vertical mode in epub
* Implement lazy loading and chapter prefetching for native vertical reader
* Improve window lifecycle and disposal handling on Desktop
* Optimize vertical reading performance in desktop app
* Enhance TTS start accuracy and diagnostic logging on desktop
* Refactor AI settings visibility on desktop
* Improve pagination height measurement and enhance cutoff diagnostics
* Implement lifecycle management and improve justified text splitting for pagination
* Refine AI usage tracking and force AI feature visibility on Desktop
* Add descriptive context comments and usage examples to string and plural resources.
* Optimize performance and memory usage in search and state mapping
* Replace reader page sliders with minimal slider and navigation controls
* Add support for CBT comic archives
* Harden file path validation and XML parsing to prevent security vulnerabilities
* Implement local account profile caching and optimize desktop performance
* Improve desktop persistence reliability and add Linux secure storage support
* Improved PDF zoom stability and layout prediction during zoom commits
* Improved PDF spread layout prediction, reader focus restoration, and account profile caching
* Enhance highlight precision and scoping using block-local offsets and CFIs
* Enhance cloud book content synchronization and background downloads
* Implement granular timestamp tracking for reading positions and PDF annotations
* Restrict diagnostic logging and stack traces to debug builds
* Refine PDF page gaps and reader chrome interaction logic
* Refactor PDF highlight rendering and overhaul Desktop sidebar UI
* Implement a new interaction dock and undo/redo history for PDF annotations in desktop
* Enhance PDF color picker and improve navigation scroll restoration
* Add highlight palette customization and improve selection menu UI in desktop app epub reader
* Enhance desktop shelf management and library organization
* Added PDF top tab strip visibility toggle and fixed WebView hit test NPE
* Refactored desktop reader screens and state management into specialized components
* Added image gallery to reader sidebar and refactored desktop PDF UI components
* Implemented EPUB image gallery
* Refactored reader and library models to use shared common types, centralizing file type resolution and texture management while removing redundant mapping logic
* Standardized UI styling and refactored app navigation layout
* Implemented auto-hiding reader chrome and activity tracking in desktop
* Refactored reader panels into distinct left and right modal layers with platform-specific sizing and keyboard navigation support.
* Added PPTX support for desktop and refactored parsing into a shared module
* Implement paid AI features and account management for the desktop application.
* Implement AI Hub and enhanced Cloud TTS integration for Desktop
* Implement streaming support for AI definition and summarization features
* Implement support for password-protected PDFs and file actions in the desktop reader.
* Implement cloud synchronization for desktop using Firestore and Google Drive
* Implement PDF reflow and "Text View" for the desktop reader
* Refactor OPDS logic to use SharedOpdsController
* Optimize PDF tile rendering performance
* Implement two-page spread support for PDF pagination
* Implement two-page spread support for the PDF viewer
* Improved shared spread zoom in PDF viewer
* Improve PDF spread navigation with fling support and configurable page gaps
* Add brightness control to PDF and EPUB readers
* Refactor folder synchronization to use shared logic engine
* Implement safe string formatting and validation for localized resources
* Implement TTS chunk skip navigation
* Implement deep-linking and playback controls for TTS media sessions
* Implement start index for TTS playback
* Improve TTS navigation, prefetching, and notification duration reporting
* Implement TTS mini playback bar for background reading
* Implement multi-window reader support for the desktop application
* Improve desktop modal window management and visibility syncing
* Implement localized string support for Desktop and shared UI
* Implement language selection and persistence for Desktop
* Implement plural string support for Desktop and migrate hardcoded counts to plurals.xml
* Implement localized banner messages and UI strings using resource-backed SharedText
* Implement compact badge styling for small book covers
* Refactor PDF native interaction and improve HTML import memory safety
* fix language persistence
* Refactor reader overflow menus to use section-based logic
* Refactor PDF layout remapping and improve text box interaction
* Improve CFI resolution and TTS resume accuracy using dynamic chunk offsets
* Centralize PDF annotation export mapping and improve metadata handling
* Add support for threaded comments in PDF highlight annotations
* Flatten highlight comments into a single thread for PDF export and allow author editing
* Integrate page slider into reader chrome and persist toggle state
* Handle fragments and queries in EPUB chapter paths
* Implement dynamic, theme-aware coloring for the reader slider
* Implement customizable app-wide font preference
* Implement one-hand zoom gestures in the PDF viewer
* Implement File Information dialog for PDF and EPUB readers
* Bump version to 1.0.49 (53)
* Refactor PDF reader logic into modular components
* Add ProGuard rules to prevent R8 optimization issues in EPUB reader screens
* Add option to use PDF filenames as display names
* Fix preservation of PDF filename display preference in library projection
* Added Hindi language support
* Added Simplified Chinese support and implemented search in language selection dialog
* Added support for Italian, Polish, Vietnamese, and Brazilian Portuguese languages
* Added Belarusian language support and fixed activity recreation on locale change
* Added support for right text alignment in epub reader
* Added tabs management to PDF navigation drawer
* Implemented unified selection menu placement logic
* Added reset functionality for toolbar customization
* Improved highlight filtering in epub pagination
* Migrated hardcoded UI strings to string resources
* Extracted desktop application logic from Main.kt into modular files
* Refactored Main.kt by extracting PDF and EPUB logic into specialized files
* Added Spanish language support
* Added system default option to app language selection
* Centralize library management logic and introduce support for plain text and HTML formats
* Centralize library management logic and introduce support for plain text and HTML formats
* Expand unit test coverage for library state management, UI models, and MainViewModel features.
* Add comprehensive unit tests for PDF reader core logic, preferences, and data persistence
* Add unit tests for EPUB parsing, content loading, search functionality, and reader JavaScript bridges.
* Add unit tests for OPDS parsing and Smart Collection engine, and integrate Kover plugin
* Add comprehensive unit tests
* Centralize library snapshot serialization in the `shared` module and improve filtering and sorting logic.
* Implement text selection, highlighting, and reading state persistence for PDF and EPUB engines in desktop version
* Folder import support for desktop app
* Introduce Smart Shelves with rule-based filtering in desktop version
* Implement shared EPUB annotation serialization and highlight rendering
* Centralize file type capabilities and platform-specific support logic
* Refactor reader state management to use a central reducer
* Implement customizable reader toolbar and advanced formatting settings in shared
* Implement locator-based navigation and customizable highlight palette for desktop app
* Enhance reader customization and expand search functionality in desktop app
* Redesign reader settings and tools into a tabbed control panel in desktop app
* Enhance reader navigation and highlight precision in desktop app
* Implement bidirectional position synchronization and dynamic highlights in the desktop reader
* Implement shared state management and enhanced search for the PDF reader in desktop app
* Add vertical scroll support to the desktop PDF reader
* Implement ink, text, and eraser annotation support in desktop PDF viewer
* Implement PDF bookmarks, Table of Contents, and annotation editing in desktop app
* Implement link handling and navigation for PDF and EPUB readers in desktop app
* Implement PDF jump history for navigation in desktop app
* Enhance PDF ink rendering and annotation capabilities in desktop app
* Implement advanced PDF text annotations with inline editing and rich styling in desktop app
* Add move handle and movement logic for PDF text annotations in desktop app
* Implement local folder synchronization and metadata sidecar support in desktop app
* Implement book metadata extraction and drag-and-drop import for Desktop
* Implement dynamic and custom app theme management for desktop
* Introduce canonical PDF annotation codec and support for multi-segment highlights
* Implement rich text editing and pagination support for the PDF reader in desktop app
* Improve PDF rich text pagination, synchronization, and observability in desktop
* Hide trailing structural page breaks in rich text editor
* Implement a unified JVM book loader and expand supported formats on Desktop
* Add comic archive support for Desktop and enhance MOBI parsing
* Implement shared OPDS catalog support and UI for Android and Desktop
* Improve native WebView lifecycle and surface transition management on Desktop
* Enable Compose Swing interop blending and simplify Desktop WebView management
* Integrate BYOK AI features and Cloud TTS for desktop
* Enhance Desktop TTS with streaming audio and improved secure storage for AI key
* Implement scoped Cloud TTS with synchronized highlighting for EPUB and PDF in desktop app
* Implement custom font management and utility screens in desktop app
* Implement PDFium-based PDF annotation export
* Remove PdfBox dependency and standardize PDF export via Pdfium
* Implement local audio caching and playback controls for Gemini Cloud TTS in desktop app
* Implement reader themes and custom texture support in desktop app
* Redesign non-reader UI with responsive navigation and enhanced library management in desktop app
* Introduce ReaderWorkspaceShell to unify EPUB and PDF reader layouts in desktop app
* Exclude manual-only files from automated sync and import
* Implement customizable Text-to-Speech (TTS) word replacements
* Optimize reader performance with persistent layout caching and decoupled theme rendering
* Improve position restoration during reader reconfiguration in epub pagination
* Use independent thickness for eraser tool and stylus override
* Add performance and stylus debugging logs
* Refactor and decouple UI models from `MainViewModel`
* Refactor library state management and projection logic
* Implement desktop shell using Compose Multiplatform
* Implement desktop shell using Compose Multiplatform
* Implement desktop shell using Compose Multiplatform
* Introduce ReaderEngine and enhance EPUB reader features in windows app
* Move core paginated reader logic to a Kotlin Multiplatform `shared` module and introduce experimental desktop support.
* Implement PDF rendering and text extraction for desktop using Pdfium
* Add `NonReaderScreens.kt` and UI dependencies
* Refactor and centralize library state management and models to improve cross-platform consistency
* Implement JSON persistence for desktop library and enhance library management features including shelf CRUD, tagging, and metadata editing
* Implement PDF annotation system and enhanced zoom controls for the desktop viewer
* Implement WebView-based EPUB rendering for desktop using CEF and embedded resources
* Optimize UI state projection, navigation state handling, and main screen pager performance
* Implement Bring Your Own Key (BYOK) support for AI features in OSS version
* Support Gemini-based Cloud TTS with BYOK support for OSS builds
* Refactor table cell image sizing in `PaginatedReader` and improve `MobiParser` native library loading and error handling.
* crash fixes
* Enhance navigation stability with lifecycle-aware safety checks and update `navigation-compose` to 2.9.6
* Implement dynamic bottom padding for the page info bar to account for device rounded corners
* Implement bidirectional jump history navigation and replace the jump-back pill with a dedicated `PdfJumpHistoryBar`
* Optimize PDF tiling performance and refine pan-and-fling gesture handling
* Implement customizable toolbars with drag-and-drop reordering and placement for PDF and EPUB readers
* Updated UI for customize toolbar
* Refine drag-and-drop reordering and section assignment for PDF and EPUB reader controls
* restructure PDF viewer UI component hierarchy to fix verifier crash
* Implement separate text dimming factors for light and dark themes
* Synchronize Pdfium access and improve resource lifecycle safety across Kotlin and native layers
* Enhance image alignment in paginated and EPUB readers through anchor detection and style-based positioning
* Centralize file type resolution logic and implement HTML sanitization during import
* Introduce vertical margin customization and configurable progress bar positioning
* texture support in epub reader
* Enhance TTS session management, progress tracking, and diagnostic logging
* Optimize library state projection and folder synchronization performance by refactoring collection lookups and refining metadata extraction logic.
* Refine TTS page mapping for PDF and overhaul TTS control UI
* Implement natural session completion logic in `TtsPlaybackManager` for cloud tts
* Replace Snackbar with `CustomTopBanner` for notifications in `PdfViewerScreen`
* Refine TTS playback continuity across PDF pages and improve state management for session transitions
* Implement global texture transparency and enhance textured theme support across PDF and EPUB readers.
* Update reader themes and improve texture rendering in page animations, EPUB UI, and immersive mode
* Add Support Project screen
* Optimize library performance via projection caching, batch database updates, and scoped folder synchronization.
* Enhance folder synchronization with fallback query mechanisms and refactor annotation sidecar importing logic
* Bump version to 1.0.47 (51)
* Remove custom-onnxruntime-arm64.aar
* Refactor remaining, hardcoded UI strings into localizable resources and added French and Russian to language list
* Fix background auto-advance for Text-to-Speech (TTS)
* add a UI trigger for demo annotations
* Implement internal link navigation
* Simplify bottom padding logic in `EpubReaderScreen` for vertical scroll mode
* Add support for Calibre metadata
* Implement advanced library management with Room-backed collections, tags, and smart rules.
* Display book series information in book details and remove tags from home screen
* Implement zoom reset functionality in PDF viewer
* Add a "Pages" thumbnail view to the PDF navigation drawer
* Implement jump-back navigation in PDF viewer
* MainViewModel: disable FolderSyncWorker, add log export, and enhance PDF position logging
* Replace Gson with Kotlin Serialization in SmartCollectionEngine
* Implement ONNX-based speech bubble detection
* Implement speech bubble detection in PDF viewer
* Implement "Smart Comic Zoom" feature for PDF manga/comic reading
* Implement reader session persistence and restoration in `MainViewModel`
* Add tap-to-turn page feature to PDF viewer
* Improve book cache management and recovery
* Refactor top overlay padding logic in `PdfViewerScreen`
* Implement stylus eraser support in PDF reader
* Refactor ReaderTextFormatPanel to use ModalBottomSheet and add new formatting controls
* Introduce a customizable horizontal margin setting for the EPUB reader
* Refine folder sync and metadata handling for better conflict resolution and stability.
* Introduce user-adjustable image scaling for the EPUB reader
* Use maxWidthPx as default width fallback for blocks
* Improve cross-page text selection and header styling in the paginated reader
* Refactor speech bubble detection and UI to support segmentation masks and interactive scaling
* Improve speech bubble detection masking and rendering quality
* Update ONNX speech bubble detector to use `.ort` model and optimize inference
* Improve pagination accuracy
* Implement hierarchical folder navigation for the library.
* Refactor library item layout for improved space efficiency
* Add support for browsing and downloading Google Fonts
* Persist library landing state and add shelf search functionality
* Fix base tts sample.
* Move SpeechBubbleDetector to main source set and update ONNX dependency
* Implement a "locate" feature and improve synchronization for TTS (Text-to-Speech) playback across EPUB and PDF readers.
* Refine TTS synchronization and voice management in the EPUB reader
* Adjust OCR checks for OSS flavor and optimize external dictionary intent flags
* Add "Locate" button to PDF drawer's pages tab and move the page number to bottom right of thumbnail
* fix various crashes
* Refactor SpeechBubbleDetector into product flavors
* Implement speech bubble detection caching and background prefetching
* Implement on-demand download for Bubble Zoom ML model
* Add smooth animation for PDF speech bubble expansion
* fixes#252
* hide Google Fonts option, in FontsScreen, for offline variant
* Bump version to 1.0.46(46)
* Implemented ML-based comic panel detection and a panel popup viewer.
* Optimized `ComicPanelDetector` for performance and memory efficiency.
* Optimized comic panel detection performance by introducing a dedicated single-thread dispatcher for ML tasks, replacing mutex-based synchronization.
* Refactored system UI handling and layout padding in `PdfViewerScreen`.
* Refactor `PdfViewerScreen.kt` by extracting components and logic into specialized files.
* replace hardcoded padding with dynamic header height and adjust IME layout logic
* Improve `PdfTextBox` interaction and visual consistency during zoom and pan.
* improve PDF text box dragging and scaling behavior across zoom levels
* optimize color scheme calculation using remember and expand text dimming coverage
* Implement in-app language selection and per-app language preferences.
* Improve PDF lock stability in `PdfVerticalReader`
* Implement "Preserve Image Colors" option for PDF themes
* Optimize TOC locate in ReaderDrawer
* Update library and home screen UI components
* smoother page turn animation in epub pagination mode
* Implement automatic page skipping for TTS when no text is found in PDF viewer
* Refine status bar handling and window insets across main screens
* Optimize ViewModel initialization and integrate AndroidX SplashScreen
* Move ComicPanelDetector to debug source set and introduce IPanelDetector interface
* Optimize TOC scrolling in PdfNavigationDrawerContent
* Bump version to 1.0.45(45)
* Updated `.gitattributes` to correctly vendor all files within the `libmobi` and `woff2` directories.
* Improved TTS chapter transition handling
* Improved TTS stability and chapter advancement in the EPUB reader.
* Implemented PDF metadata extraction for titles and authors using PdfiumCore in `MainViewModel` and `MetadataExtractionWorker`.
* Implemented support for interactive footnotes in the EPUB vertical reader.
* Added support for footnotes in the paginated EPUB reader.
* Implemented a customizable app theming system.
* Added support for app-wide contrast and text brightness customization in the "App Theme" option.
* option to adjust pull-to-chapter-change drag in the EPUB vertical reader under visual options.
* Updated `PdfViewerScreen` to replace the standalone full-screen toggle with a more comprehensive "Visual Options" system UI management tool.
* Added support for AI and Cloud credits in the Pro flavor.
* Implemented credit-based authentication and authorization for AI features and Cloud TTS.
* Updated AI feature access and purchase handling to a credit-based system.
* Refactored and enhanced the Text-to-Speech (TTS) system with persistent caching and a redesigned UI.
* Improved TTS cache management by organizing audio files by book title and adding a detailed cache storage UI.
* Refactored the TTS service to use a WebSocket-based Gemini Live connection for cloud audio generation.
* Removed the TTS cache settings tab and simplified voice sample playback by removing local caching logic.
* Implemented a low-latency streaming mechanism for Cloud TTS using a custom `ConcurrentInputStream` and `ExoPlayer` data source.
* Improved cloud TTS stability and prefetching logic in `TtsService` and `TtsPlaybackManager`.
* Implemented AI summarization caching and cost tracking in the EPUB reader.
* Enhanced chapter summary caching and UI feedback.
* limit summaries for pro users to 10 per day
* Implemented local caching for Cloud TTS audio chunks.
* Removed the Free tier tab from `ProScreen` and simplified the subscription interface. Updated tab logic to focus on Pro and Credits, including a new cost breakdown section for AI and Cloud TTS features.
* Refactored HTML parsing to include all child nodes during content chunking and semantic block parsing.
* Improved image rendering consistency in epub pagination reader
* Improved HTML parsing in `HtmlParser.kt` to better handle complex nested structures
* Improved CSS styling support in the epub paginated reader for word spacing and text decorations.
* Implemented scroll throttling in `epub_reader.js` to improve performance during scroll events
* Improved CFI resolution and scrolling reliability in EPUB reader
* Optimized PaginatedReader performance by caching text decorations.
* Implemented batching for recent file database operations to handle large datasets and introduced `RecentFileSummary` to optimize data retrieval by excluding heavy JSON columns.
* Improved navigation stability by wrapping `navController.navigate` and `popBackStack` calls in a try-catch block to handle `IllegalStateException` during concurrent transitions. Additionally, refined the backstack check for the main route to prevent redundant pops.
* feat(tts): redesign TTS controls with overlay UI and cache management
* Expanded and improved the TTS (Text-to-Speech) capabilities, particularly for Cloud voices.
* Improved TTS playback control and cache management.
* Integrated the TTS cache manager into the settings sheet and improved the TTS configuration UI.
* Updated `DeviceVoicesTab` to respect the current TTS mode, disabling voice selection when not in `BASE` mode.
* Improved error handling and state management for Cloud TTS in `TtsService` and `TtsPlaybackManager`.
* Improved TTS voice selection UI and sample playback logic.
* Updated `TtsUtils` and `TtsService` to remove `chunkIndex` from TTS cache filenames. Refined the cache file naming convention to rely on text and speaker hashes, and updated the cache file filter logic to correctly identify speakers in both legacy and new filename formats.
* Optimized tile rendering and state propagation in PDF viewer
* Added "Expand All", "Collapse All", and "Locate" functionality to the Table of Contents in both EPUB and PDF readers.
* Added sign-in requirement for credit purchases and improved purchase migration logic.
* Updated `EpubReaderTts` to support authenticated TTS requests by passing an auth token provider. The `ttsController.start` method now includes an `authToken` retrieved via `getAuthToken` and explicitly sets the `playbackSource` to "READER".
* feat(ai): replace summarization popup with a comprehensive AI Hub Bottom Sheet
* Improved locator logic and block traversal in `BookPaginator`.
* Updated AI features and Cloud TTS logic.
* Added manual clear and auto-reset functionality for AI summaries and recaps
* Optimized file importing, EPUB parsing, and TTS playback concurrency.
* Restricted TTS mode to BASE in OSS flavor and fixed TTS mode persistence in PDF viewer
* Bump version to 1.0.43(44)
* Refactored the EPUB reader to use localized string resources instead of hardcoded strings across multiple components.
* Refactored the PDF viewer and annotation components to use centralized string resources instead of hardcoded text.
* Updated `strings.xml` with extensive translation hints and localization metadata.
* Optimized PDF tile rendering performance and quality.
* Added support for adjusting TTS voice speed and pitch.
* Updated the TTS settings UI and playback logic to support real-time parameter adjustments.
* Added horizontal scrolling to the PDF viewer bottom toolbar and updated tool arrangement to use fixed spacing.
* Refined cross-page selection and text extraction in `PaginatedReader`
* Updated EPUB reader styling logic to refine typography and layout controls.
* Bump version to 1.0.42(43)
* Updated folder synchronization logic and redesigned the file type filter dialog.
* Fixed CFI generation and navigation stability in the EPUB reader.
* Improved CFI scrolling and position calculation in the EPUB reader by implementing text node traversal using `TreeWalker`. This ensures accurate positioning and scrolling when a CFI offset spans multiple fragmented text nodes.
* fix fb2 multiline titles, retain footnotes, and prevent stream leaks
- Fix FB2 titles with multiple paragraphs by inserting breaks/spaces
- Prevent resource leaks by properly closing InputStreams in all importers
- Retain "notes" and "comments" sections in FB2 instead of skipping them
- Add support for FB2 poem, stanza, cite, and link tags
* Implement persistence for zoom and pan states when pan lock is enabled in the PDF reader.
* Added `FileTypeBadge` to home and library screens
* Bump version to 1.0.41(42)
* Add visual options and seamless transitions to the EPUB reader
* Add support for DOCX file format
* Refine padding and status bar inset handling in Epub pagination mode
* Add file size parameter for recent files and sorting
* Refactor book data cleanup logic into a centralized method
* Bump version to 1.0.40(41)
* Added support for FB2 book format
* Add support for CBZ files by introducing a `ReaderDocument` abstraction.
Key changes:
- Defined `ReaderDocument`, `ReaderPage`, and `ReaderTextPage` interfaces to provide a unified API for different document types.
- Implemented `PdfDocumentWrapper` and `CbzDocumentWrapper` to handle PDF and CBZ files respectively.
- Updated `PdfViewerScreen`, `PdfPageComposable`, and `MainViewModel` to use the new unified document interfaces.
- Added CBZ file type detection and cover generation logic.
* Add support for CBR and CB7 comic book formats
- Add `me.zhanghai.android.libarchive` dependency to support RAR and 7z archives.
- Implement `ArchiveDocumentWrapper` using `libarchive` to handle CBZ, CBR, and CB7 files uniformly, replacing the previous CBZ-only implementation.
- Update `MainViewModel` and `DocumentFactory` to recognize and process `.cbr` and `.cb7` extensions and their associated MIME types.
- Add support for extracting and caching cover images from CBR and CB7 archives.
- Update UI components (`HomeScreen`, `LibraryScreen`, `AppNavigation`) to handle the new comic book file types.
* build: bump version to 1.0.38 and improve CFI page lookup logic
* fix: resolve duplicate TTS audio and broken highlights in Vertical Mode
Updated the text extraction logic in epub_reader.js to pick only the most granular matching elements, preventing duplication when elements like <p> are nested inside <li>.
* Added print functionality to PDF viewer
* feat(pdf): add interactive button support and visibility reveal heuristic
* Moved search state management to MainViewModel and improved search UI interaction.
* Updated `pdfiumandroid` to version 2.0.0 and handled resulting API changes, including nullable page/text page returns and revised native pointer access.
increased compileSdk to 36.
* Fixed Table of Contents (TOC) truncation bug and improved the TOC UI in `PdfViewerScreen`.
- Implemented `getFixedTableOfContents` using reflection to bypass a library issue where sibling nodes were incorrectly truncated during traversal.
- Enhanced the TOC drawer with a nested, expandable tree structure using the new `PdfTocTreeItem` component.
- Added a custom `VerticalScrollbar` with draggable support for better navigation within long TOC lists.
- Integrated `animateColorAsState` and `animateFloatAsState` for smoother UI transitions in the TOC and scrollbar.
- Optimized TOC loading by flattening the tree structure and managing expansion states with `rememberSaveable`.
* Improved zoom pivot calculation and interaction handling in PdfVerticalReader
* Fixed high-res PDF tile bleeding by implementing clipRect in PdfBitmapLayer
* fix(pdf): resolve zoom stuttering, in pagination mode, by removing eager scale snapping
* Added book pinning and library filtering functionality
* Updated folder sync logic, improved metadata extraction, and added persistent banner message while syncing
* build: bump version to 1.0.37 (38)
* Added print functionality to PDF viewer
* feat(pdf): add interactive button support and visibility reveal heuristic
* Moved search state management to MainViewModel and improved search UI interaction.
* Updated `pdfiumandroid` to version 2.0.0 and handled resulting API changes, including nullable page/text page returns and revised native pointer access.
increased compileSdk to 36.
* Fixed Table of Contents (TOC) truncation bug and improved the TOC UI in `PdfViewerScreen`.
- Implemented `getFixedTableOfContents` using reflection to bypass a library issue where sibling nodes were incorrectly truncated during traversal.
- Enhanced the TOC drawer with a nested, expandable tree structure using the new `PdfTocTreeItem` component.
- Added a custom `VerticalScrollbar` with draggable support for better navigation within long TOC lists.
- Integrated `animateColorAsState` and `animateFloatAsState` for smoother UI transitions in the TOC and scrollbar.
- Optimized TOC loading by flattening the tree structure and managing expansion states with `rememberSaveable`.
* Improved zoom pivot calculation and interaction handling in PdfVerticalReader
* Fixed high-res PDF tile bleeding by implementing clipRect in PdfBitmapLayer
* fix(pdf): resolve zoom stuttering, in pagination mode, by removing eager scale snapping
* fix: reproducible build paths for native libs and strip unused brotli sos
* build: improve build reproducibility in CMake
* build: disable dependencies information in APK and Bundle
* Fixed virtualization data indexing and improved text file to EPUB conversion logic.
- Corrected array indexing for `chunksData` and `chunkHeights` in `epub_reader.js` to prevent overwriting entire arrays.
- Refined virtualization intersection observer to properly restore and unload chunk content using index-based caching.
- Updated `SingleFileImporter.kt` to convert plain text into structured HTML paragraphs instead of a single `pre` tag.
- Enhanced CSS styles for imported single-file documents and added HTML entity escaping.
* Adjusted text layout and enhanced pagination mismatch logging
* Configured `PlatformTextStyle` and `LineHeightStyle` to improve text measurement consistency.
* Updated `checkLayoutMismatch` to include text snippets and handle zero expected height.
* Refined `Modifier` application order in the reader view.
* Ensured `maxHeight` is set to `Infinity` during text measurement in `Paginator`.
* enable cloud tts but only in pro(flavor) debug mode for testing
* Added a device voice settings sheet to allow users to select and preview system-level TTS voices.
* Refactored `DeviceVoiceSettingsSheet` to improve voice selection and filtering, and updated `BaseTtsSynthesizer` for better language handling.
* Added realistic page turn animation option in epub pagination mode
* Added volume key navigation support for paginated render mode and added page turn animation to "tap to change page" and "volume button to change page"
Key changes:
* The `pdfiumandroid` directory, which contained the local library source, has been completely removed.
* The `settings.gradle.kts` file is updated to remove the `:pdfiumandroid` and `:pdfiumandroid:arrow` includes.
* The main `app/build.gradle.kts` is modified to depend on the published `io.legere:pdfiumandroid:1.0.35` artifact from a remote repository instead of the local project module.
* Code in `PdfPageComposable.kt` that depended on `PdfPageObjectType` and logic for handling image objects in dark mode has been removed, simplifying the rendering process.
* updated auto-scroll logic for EPUB and PDF
* Refactored auto-scroll to use temporary debounced pauses instead of hard stops on manual interaction.
* Updated tap handling to allow toggling bars without interrupting scroll.
* Added a 2-second orientation pause on EPUB chapter transitions.
* Enhanced AutoScrollControls UI with circular progress overlay to indicate the "temporarily paused" state.
* Refactored auto-scroll controls
This commit refactors the auto-scroll controls for both EPUB and PDF readers, introducing a more advanced and user-friendly interface.
Key changes:
- Redesigned the auto-scroll controls UI into a collapsible and lockable card.
- Added a "lock" feature to hide controls during scrolling.
- Introduced an alternative slider-based input for speed adjustment, which can be toggled.
- Persisted the lock and input mode states in SharedPreferences.
- Improved the EPUB auto-scroll mechanism using `translate3d` for smoother sub-pixel scrolling.
This commit introduces a complete overhaul of the `README.md` to improve project presentation. Key changes include:
• Adds a new header with the app icon and a Google Play badge.
• Updates the feature graphic and includes a note distinguishing the OSS version from the Play Store version.
• Refines the "Open Source Libraries" section to be more structured.
• Moves the main preview image into the `docs` directory.
Additionally, the `app/build.gradle.kts` file is updated to configure a standardized naming convention for output APK files, including flavor, version, and build type.