- Create ServerSettingsViewModel (Hilt) backed by SharedPreferences ServerSettings.
- Create ServerSettingsScreen Compose UI with URL/token fields and Save button.
- Add SERVER_SETTINGS_ROUTE to AppDestinations and wire in AppNavigation.
- Add settings icon in BookshelfLibraryScreen top bar to open settings.
- ':app:assembleOssDebug' passes.
- Create BookshelfViewModel (Hilt) for browsing remote libraries via BookshelfApiRepository.
- Create BookshelfLibraryScreen Compose UI: libraries list → items list.
- Add BOOKSHELF_LIBRARY_ROUTE to AppDestinations and wire composable in AppNavigation using hiltViewModel().
- Add Cloud icon button in LibraryScreen top bar to open server library.
- ':app:assembleOssDebug' passes.
- BookshelfApiRepository exposes all bookshelf-api endpoints as Result<T>.
- AudiobookshelfRepository exposes direct ABS audio/cover/progress endpoints.
- Wire both repositories into BackendModule for Hilt injection.
- ':app:assembleOssDebug' still passes.
* Add desktop release CI and support for Arch Linux packaging
* Make Gradle wrapper executable in desktop-release workflow
* Make Gradle wrapper executable in desktop-release workflow
* Make Gradle wrapper executable in desktop-release workflow
* Configure Gradle and update Java environment in desktop-release workflow
* Update Java setup and AUR packaging in desktop release workflow
* Update Java setup and AUR packaging in desktop release workflow
* Add MSIX packaging support for Windows desktop distribution
* Update AUR packaging metadata and validation
* Use spine toc attribute for NCX resolution
* crash fixes
* Implement automatic discovery and injection of EPUB font face siblings
* Enhance custom font support with family grouping and variable font handling
* Optimize metadata loading and improve TTS highlighting
* Add keyboard navigation support for EPUB reader
* Refine PDF spread page sizing to respect aspect ratios
* Implement responsive maximum height for reader popups and sheets
* Handle TTS generation failures by skipping problematic chunks
* Refactor PDF tile rendering logic and zoom indicator behavior
* Prefer block and offset locators over page index in native vertical flow
* Implement save and share actions for original book files
* Add Estonian language support
* Implement temporary viewing mode for external files
* Implement direct opening for temporary external files without library persistence
* fix failing tests
* Import SharedFileCapabilities in DesktopLibraryUi
* Improve native vertical reader progress, persistence, and image support
* Center target in viewport for native vertical reader and support animated scrolling
* Update documentation images
* Introduce native vertical EPUB reader for Desktop
* Add libsecret support for Linux secret storage
* Update localized strings and plurals across multiple languages
* Update PDF annotation UI and highlighter settings on desktop
* 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
* Implement build profiles and feature policy for offline desktop builds
* Introduce unified cross-platform Settings Hub
* Refactor main settings into a hierarchical page-based navigation model
* Refactor library projection to use shared multiplatform logic
* Refactor UI state consumption by removing intermediate screen models
* Introduce AndroidSharedStateBridge to centralize state mapping and reduction logic
* Refactor state management for tabs, selection, and pinning to use shared bridge logic
* Refactor file type management and validation into a centralized shared module
* Centralize file type resolution and improve handling of unknown types
* Centralize book import logic with SharedImportPlanner
* Refactor magnifier geometry logic and coordinate mapping
* Properly handle orientation changes in scroll-locked PDF reader
* Add screen orientation controls to EPUB and PDF readers
* Implement right-to-left (RTL) pagination support and refactor reader menus
* Separate right-to-left pagination settings for PDF and EPUB
* Ensure PDF page data is scoped by document key for multi tab support
* Implement theme-aware link styling for the epub reader
* Implement jump history for back and forward navigation in the epub reader
* Improve locator handling and navigation logic in paginated reader mode
* Implement stable pagination navigation and location tracking
* Centralize banner message management and auto-dismiss logic in MainViewModel
* Implement zoom and pan state preservation for PDF pan lock mode
* Enhance reader navigation UI and workspace layout management in desktop app
* Refactor reader navigation sidebar and relocate search controls in desktop app
* Enhance reader UI with redesigned selection menus and bottom sheet overlays
* Implement custom highlight palettes and reader theme customization in desktop app
* Implement cross-platform modal layer and refine reader UI styling
* Improve highlight accuracy and implement metadata enrichment on book open in desktop app
* Implement two-page spread layout for paginated reader on desktop
* Implement persistent caching for book loading and pagination in desktop app
* Implement persistent caching for book loading and pagination in desktop app
* Optimize reader settings updates by separating layout and appearance changes in desktop app
* Improve desktop window branding and native Windows styling
* Enhance reader selection interactions and UI across EPUB and PDF viewers in desktop app
* Refine selection handle positioning and interaction logic
* Implement EPUB selection debug logging and improve handle targeting
* Optimize desktop book loading performance and UI responsiveness
* Implement anchored zoom gestures and rendering optimizations for the Desktop PDF viewer.
* Implement smooth zoom preview for the PDF reader in desktop app
* Optimize PDF rendering performance and responsiveness in the desktop reader
* Implement conditional diagnostic logging and update desktop build configuration
* Implemented hierarchical TOC, custom scrollbars, and improved desktop modal handling
* Added management options for annotations and highlights in the sidebar in desktop app
* Implemented `SharedStableOutlinedTextField` and updated text input fields to use `TextFieldValue` for improved cursor and selection stability.
* Refined library filters and enhanced OPDS functionality in desktop app
* Improved EPUB pagination measurement and implemented layout diagnostic logging for desktop app
* Added PPTX support including document parsing, rendering, and indexing
* Improved PPTX rendering and layout accuracy
* Implemented text autofit support for PPTX rendering
* Enhanced PPTX rendering with support for custom geometry, automatic numbering, table styles, and image opacity
* Improved EPUB pagination accuracy and added layout telemetry in desktop app
* Improved folder synchronization with metadata-only mode and hashed sidecar management in desktop app
* Implemented rich text font scaling and migrated desktop ink tools to custom pointer input handling
* Implemented billing account obfuscation
* Implemented hierarchical folder navigation and improved library selection functionality in desktop app
* Implemented platform-aware directory resolution and multi-platform native library support for desktop
* Added full-screen mode for the reader workspace
* Added PDF zoom indicator and interactive vertical scrollbar with page tooltips
* Refactored speech bubble prefetching to use a limited radius and improved ML detector initialization and lifecycle management
* Updated PDF indexing to replace existing page text and removed search result item keys
* Implemented "preparing" foreground notification for TTS service
* Optimized PDF rendering performance by pre-calculating page-specific annotations
* Refactored desktop packaging tasks and improved distribution configuration
* Optimized EPUB parser memory usage and added path traversal protection
* Refactored WorkManager monitoring logic and added work pruning
* Implemented comprehensive resource cleanup and memory management for WebView-based components to prevent memory leaks
* Implemented bitmap size limits and scaling to prevent canvas rendering errors
* Split long text paragraphs into multiple semantic blocks during HTML parsing
* Implemented local ActionMode for text selection to prevent platform crashes
* Refactored PPTX text layout, optimized HtmlParser block detection, and improved banner dismissal logic
* Added desktop startup splash screen and deferred WebView initialization
* Reorganized settings hub and added separate PDF reader defaults
* Implemented embedded cover extraction and metadata support for MOBI and FB2 formats
* Implemented batching for MetadataExtractionWorker and optimized EPUB metadata extraction performance.
* Implemented procedurally generated book covers and replaced static placeholders
* Redesigned search UI with a top bar and results overlay in desktop app
* Added PDF page gap and overlay visibility options and implemented DesktopBookImporter
* Refactored PDF reader UI with tabbed inspector and improved theme background handling in desktop
* Implemented PDF viewport persistence for zoom and scroll positions in desktop app
* Improved desktop fullscreen implementation and state restoration
* Implemented desktop window state persistence
* Implemented flavor-based branding and ProGuard configuration for desktop builds
* Implemented precise reader positioning and improved highlight rendering logic in desktop app
* Added support for user-editable book metadata
* Enhanced book metadata support and integrated info/edit dialogs
* Implemented embedded EPUB metadata editing
* Improved highlight mapping and added custom scrollbar styling for the reader.
* Reduced desktop WebView bundle size by excluding unused locales and runtime files
* Added neutral pan mode as the default PDF interaction state.
* Refactored library empty states and updated primary navigation tabs in desktop app
* Implemented native paginated reader and unified content rendering architecture in desktop epub reader
* Implemented native EPUB image rendering for desktop and improved block layout spacing with margin collapsing.
* Improved pagination overflow detection in desktop
* Implemented multi-block text selection with interactive handles and CFI support in desktop epub pagination
Three WebView setup paths exist in the app. MyApplication.kt already wraps
setWebContentsDebuggingEnabled in 'if (BuildConfig.DEBUG)'. The other two
paths were missing the guard:
- MainActivity.onCreate calls WebView.setWebContentsDebuggingEnabled(true)
unconditionally at the end of onCreate. On a release build that leaves
chrome://inspect attachable from any USB-connected machine for any
WebView the app spawns later. CWE-489.
- MathMLRenderer.setupWebView does the same thing before constructing
the renderer WebView. Same exposure.
While in MathMLRenderer, drop settings.allowFileAccess = true. The
renderer only ever loads file:///android_asset/MathML-template.html, and
the android_asset scheme is permitted on every supported Android version
even when setAllowFileAccess(false) is in force. The flag is dead and
the WebView is set up with javaScriptEnabled = true + a JS bridge, so
leaving it on widens the surface for no benefit.
ChapterWebView intentionally keeps allowFileAccess = true because the
custom-font path renders @font-face src: url('file://<path>') against
the user-picked font file.