* 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
* 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 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)
* Added support for ODT and FODT file formats.
* Improved `OdtParser` to support enhanced document formatting and external assets
* Added support for viewing CSV, TSV, JSON, XML, logs, and source code files by dynamically converting them to HTML.
* 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)
* feat(EPUB): adapt status bar icon visibility to reader theme
Pass the reader's active isDarkTheme state to EpubReaderSystemUiController to ensure status bar icons automatically switch between light and dark to remain visible against the selected background/page color.
* Implement storage tracking and optimize cache management
This commit introduces a `StorageTracker` to monitor disk usage and implements several optimizations to prevent cache bloat and handle orphaned files.
* refactor: unify book extraction paths and fix cache leaks
- Replaced random UUID and title-based hashing with stable `bookId` for extraction directories across Epub, Mobi, and FB2 parsers.
- Standardized all temporary extraction paths to `cache/imported_file_${bookId}`.
- Updated MainViewModel and MetadataExtractionWorker to provide the mandatory `bookId` during parsing.
- Ensured `clearImportedFileCache` successfully targets the correct directories on book deletion.
- Added a legacy cleanup task in `sweepOrphanedCache` to reclaim storage from old `extracted_epubs` folders.
* fix(pdf): handle NoClassDefFoundError for PdfPasswordException
Updated the PDF loading logic in PdfViewerScreen to catch Throwable
instead of Exception. This prevents the app from crashing when the
underlying pdfium library attempts to throw a PdfPasswordException
that is missing from the runtime classpath (NoClassDefFoundError).
* fix(tts): set language before voice to prevent variant reset
* EpubReaderScreen: increase scroll-hide ignore duration for tap toggles
Increase the threshold for ignoring tap toggles after bars are hidden by scrolling from 250ms to 400ms. This prevents accidental UI toggles caused by "sloppy taps" immediately following a scroll action.
* fix: resolve large bitmap crash on tall PDF pages
- Caps base layer bitmap dimensions to 3000px to prevent GPU texture limit crashes.
- Enables tiled rendering for large pages even at 1x zoom to maintain sharpness.
- Optimizes PdfBitmapPool to support rectangular bitmap allocations.
* Common.kt: ensure unique keys in voice list
* fix: handle ActivityNotFoundException in folder sync screen
* Improve file deletion logic and fix chapter index bounds in epub reader
* fix: ensure WebView bridge callbacks run on UI thread
This resolves a WebViewMethodCalledOnWrongThreadViolation in vertical mode that was preventing chapter chunks from loading beyond the initial viewport.
* 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.