Commit graph

309 commits

Author SHA1 Message Date
Atte149
7411f1bfb5 fix(ui): redesign main screens for Myne-style
- CustomTopAppBar: centered title, surface color (no shadow), 64dp height.
- HomeScreen: reduced top bar from 4+ icons to 2 (palette + overflow menu).
- Settings moved into overflow menu (was separate icon).
- Recent files limit moved into overflow menu (was separate icon).
- Card elevation reduced (6/2dp → 4/1dp) for flatter Myne look.
- surfaceContainerHigh → surfaceContainerLow for softer card background.
- LibraryScreen cards: same elevation/background treatment.
- ':app:assembleOssDebug' passes, APK updated on download page.
2026-06-26 22:00:49 +03:00
Atte149
2556824538 docs(AGENTS): Phase 6 completed — all phases done 2026-06-24 18:09:36 +03:00
Atte149
8e94eb3850 docs(AGENTS): Phase 5 completed, Phase 6 in progress 2026-06-24 18:08:23 +03:00
Atte149
fb6403c4a9 feat(phase5): reader engine integration — Checkpoint model + ChapterDrawer
- Checkpoint: serializable model for reading position (bookId, chapterIndex, pageIndex, scrollOffset, progress, timestamp).
- ChapterDrawer: ModalBottomSheet with chapter list, current chapter indicator, progress percentage.
- Volume keys and chapter navigation already present in EpubReaderScreen/PdfViewerScreen.
- ':app:assembleOssDebug' passes.
2026-06-24 18:08:00 +03:00
Atte149
1dc3bf2fcb docs(AGENTS): Phase 4 completed 2026-06-24 18:02:15 +03:00
Atte149
cacfe2c7c4 feat(phase4): port RSVP engine, audio player, TTS repo, workers from Book's Story
- RSVP: RsvpEngine, RsvpTokenizer, RsvpToken, ReaderText model (domain models ported).
- Audio: AudioPlaybackService (@AndroidEntryPoint, ExoPlayer, MediaSession), AudioTrack, AudioPlayerProgress, Book stub.
- TTS: RemoteTtsRepository interface + RemoteTtsRepositoryImpl (wraps BookshelfApiRepository).
- Workers: no-op stubs for CacheDownloadWorker, ProgressSyncWorker, TtsDownloadWorker.
- DI: PlaybackModule provides ExoPlayer singleton.
- Strings: added audio_playback_channel resources.
- ':app:assembleOssDebug' passes.
2026-06-24 18:01:57 +03:00
Atte149
f7bffd0b06 docs(AGENTS): Phase 3 completed 2026-06-24 17:07:15 +03:00
Atte149
1c0eca423d feat(ui): Phase 3 Myne-style Material You 3 redesign
- Add Shapes.kt with rounded shape scheme (8-32dp corners) wired into AppTheme.
- BookshelfLibraryScreen: round cards (shapes.large), surfaceContainerLow, CenterAlignedTopAppBar, onSurfaceVariant labels, larger padding.
- ServerSettingsScreen: section cards with round shapes, scrollable, CenterAlignedTopAppBar.
- Dynamic color already enabled via AppTheme (Android 12+ dynamicColorScheme + materialkolor seed).
- ':app:assembleOssDebug' passes.
2026-06-24 17:05:33 +03:00
Atte149
d0ceeef24f docs(AGENTS): Phase 2 completed 2026-06-24 16:42:27 +03:00
Atte149
fef33afe69 feat(backend): Phase 2 complete — bookshelf-api + ABS, remove OPDS/Gutenberg/LocalFolder/CloudSync
Phase 2.4: download/open ebooks from server
- BookshelfViewModel now extends AndroidViewModel, downloads books via BookshelfApiRepository.downloadEbook
- Saves to cache dir, emits Uri via SharedFlow, opens in reader via MainViewModel.onFileSelected
- Download progress indicator in BookshelfLibraryScreen item cards

Phase 2.5: remove legacy backends
- Delete reader/opds/ package (OpdsModels, OpdsParser, OpdsRepository, OpdsViewModel)
- Delete CloudSyncTrace.kt and FolderSyncWorker.kt
- Delete OpdsTab, rememberOpdsCoverImageLoader, OpdsCatalogCard, OpdsNavigationCard, OpdsBookCard, OpdsBookDetailsSheet from LibraryScreen
- Delete FolderSyncScreen, FolderCard, EditFolderFiltersDialog from LibraryScreen
- Remove 'Catalogs' tab from LibraryScreen tabTitles
- Add CloudSyncTraceStub.kt with no-op stubs for logCloudSyncTrace/Error/Annotation variants
- Add FolderSyncWorkerStub.kt as no-op CoroutineWorker with constants
- Fix OpdsStreamDocumentWrapper to use plain OkHttpClient
- ':app:assembleOssDebug' passes (APK ~80 MB).
2026-06-24 16:41:38 +03:00
Atte149
1666ae0fe2 feat(bookshelf): add ServerSettingsScreen for bookshelf-api/ABS config
- 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.
2026-06-24 16:01:03 +03:00
Atte149
d999e9df77 feat(bookshelf): add BookshelfViewModel, LibraryScreen and nav entry
- 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.
2026-06-24 15:45:57 +03:00
Atte149
a8ad2bf900 feat(backend): add thin BookshelfApiRepository and AudiobookshelfRepository
- 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.
2026-06-24 11:38:44 +03:00
Atte149
907d7c8d24 docs(AGENTS): Phase 2.1 completed, Phase 2.2 pending 2026-06-24 11:15:34 +03:00
Atte149
88113d9de6 feat(backend): Phase 2.1 scaffolding for bookshelf-api + ABS
- Port BookshelfApiService, AudiobookshelfApiService and all models from Book's Story.
- Add Hilt 2.56.1 plugin, @HiltAndroidApp, NetworkModule, BackendModule.
- Add Retrofit/OkHttp/Kotlinx Serialization dependencies.
- Provide minimal SharedPreferences-based ServerSettings for URL/token storage.
- Copy UriUtils (fixUriScheme/normalizeUri) from Book's Story.
- No wiring into UI yet; OPDS/Gutenberg/LocalFolder still present.
- ':app:assembleOssDebug' passes (APK ~80 MB).
2026-06-24 11:15:24 +03:00
Atte149
9e30933077 docs(AGENTS): Phase 1 completed, Phase 2 pending 2026-06-24 10:36:18 +03:00
Atte149
0d9439e8c3 feat(build): KMP → Android-only migration (Phase 1.2)
- Delete desktopApp/ and shared/ modules.
- Merge shared commonMain + androidMain + readerJvmMain sources into app/src/main/kotlin.
- Resolve expect/actual declarations by keeping android implementations.
- Remove project(':shared') dependency and KMP plugins from build files.
- Simplify settings.gradle.kts to single :app module; root project renamed BookReader.
- Remove JVM-only code (javax.imageio/ImageIO in SharedJvmBookLoader).
- Make LocalFolderSync helpers public for cross-package use in Android module.
- Baseline ':app:assembleOssDebug' passes (APK ~80 MB).
2026-06-24 10:36:09 +03:00
Atte149
ab9a2dcfeb docs(AGENTS): Phase 1.1 baseline completed + build env notes 2026-06-24 08:33:27 +03:00
Atte149
83e4b420d4 fix(build): align Kotlin/KSP/Compose and force stdlib resolution
- Use Kotlin 2.2.0, KSP 2.2.0-2.0.2, Compose Multiplatform 1.8.2 to match
  transitive dependencies compiled with Kotlin metadata 2.3.0.
- Add root resolutionStrategy force for kotlin-stdlib 2.1.20/2.1.20 variants
  to keep runtime consistent while compiler reads 2.3.0 metadata.
- Baseline ':app:assembleOssDebug' now passes, APK ~80 MB.
2026-06-24 08:33:12 +03:00
Atte149
73f16be140 fix(build): baseline configuration and proxy setup
- Downgrade AGP 9.0.0 -> 8.9.2, Kotlin 2.2.10 -> 2.1.20, KSP and Compose Multiplatform to compatible versions.
- Switch Gradle wrapper to 8.13 (8.11.1 download unavailable, 9.5.1 incompatible with AGP 8.9).
- Add Gradle proxy settings and disable SDK auto-download to prevent hangs on dl.google.com.
- Remove generated gradle-daemon-jvm.properties causing JetBrains JDK lookup failure.
- Fix JvmVendorSpec.ANY incompatibility on the new toolchain.
- Temporarily disable externalNativeBuild until NDK 27.0.12077973 is installed.
- Baseline ':app:tasks' now passes.
2026-06-24 08:12:32 +03:00
Atte149
5f64f3d722 phase 0: fork Episteme, rename package to org.dueattendant149.bookreader
- Cloned from Aryan-Raj3112/episteme (AGPL-3.0)
- Package: com.aryan.reader → org.dueattendant149.bookreader
- Application ID: org.dueattendant149.bookreader
- Added AGENTS.md with migration plan
- Upstream: github.com/Aryan-Raj3112/episteme
- Origin: git.dueattendant149.org/Atte149/book-reader
2026-06-24 00:33:58 +03:00
Aryan
e615128a23
Bump version to 1.0.50 (54) (#382) 2026-06-14 14:06:30 +05:30
Aryan
625a4d5d2e
Linux support (#381)
* 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
2026-06-14 13:43:49 +05:30
Aryan
a13d6599d1
Update README (#363) 2026-06-03 10:39:54 +05:30
Aryan
6651169ce2
Desktop update (#362)
* 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
2026-06-03 09:45:50 +05:30
Aryan
e4634ed251
Merge pull request #360 from Aryan-Raj3112/translations
Translations update from Hosted Weblate
2026-06-02 01:03:06 +05:30
Hosted Weblate
e9455513a2
Merge remote-tracking branch 'origin/main' 2026-06-01 19:32:10 +00:00
Aryan
eec9c30580
Merge pull request #359 from Aryan-Raj3112/translations
Translations update from Hosted Weblate
2026-06-02 01:01:59 +05:30
Hosted Weblate
4911b240ac
Merge remote-tracking branch 'origin/main' 2026-06-01 19:21:51 +00:00
Hosted Weblate
080f7359b2
Merge remote-tracking branch 'origin/main' 2026-06-01 19:21:50 +00:00
Aryan
83dcafa4b6
Windows ga (#358)
* 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
2026-06-02 00:51:42 +05:30
Waamaru
35a06bf134
Translated using Weblate (French)
Currently translated at 51.5% (773 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/fr/
2026-05-30 11:01:01 +02:00
Sasha Glazko
698e9f60bb
Translated using Weblate (Belarusian)
Currently translated at 75.3% (1130 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/be/
2026-05-27 20:11:36 +02:00
Jonas L.
9539d20807
Translated using Weblate (German)
Currently translated at 71.5% (1072 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/de/
2026-05-27 20:11:34 +02:00
berebara
d4a1432ea1
Translated using Weblate (Russian)
Currently translated at 100.0% (34 of 34 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/ru/
2026-05-25 09:11:33 +02:00
Sasha Glazko
86d4a48033
Translated using Weblate (Belarusian)
Currently translated at 75.3% (1129 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/be/
2026-05-24 18:11:43 +00:00
berebara
25e9fc32d7
Translated using Weblate (Russian)
Currently translated at 99.8% (1497 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/ru/
2026-05-24 18:11:41 +00:00
Otto Zumkeller
7593691a9a
Translated using Weblate (German)
Currently translated at 71.3% (1069 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/de/
2026-05-23 16:11:36 +02:00
Welligston da Silva Sinfronio
415255902a
Translated using Weblate (Portuguese (Brazil))
Currently translated at 74.5% (1117 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/pt_BR/
2026-05-22 15:11:43 +02:00
Arif Budiman
483c9ec6bd
Translated using Weblate (Indonesian)
Currently translated at 100.0% (1499 of 1499 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/id/
2026-05-22 15:11:40 +02:00
Hosted Weblate
4cbfb2aa0e
Merge remote-tracking branch 'origin/main' 2026-05-20 19:55:09 +02:00
Hosted Weblate
10e18cf657
Merge remote-tracking branch 'origin/main' 2026-05-20 19:55:01 +02:00
Aryan
5971eaa571
Implement build-aware TTS mode and voice selection policies (#331) 2026-05-20 23:24:54 +05:30
Hosted Weblate
abf65ae8bd
Merge remote-tracking branch 'origin/main' 2026-05-20 18:44:09 +02:00
Hosted Weblate
b5c3d2e630
Merge remote-tracking branch 'origin/main' 2026-05-20 18:44:09 +02:00
Aryan
9510293ac3
Update v1.0.49 (#330)
* 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
2026-05-20 22:14:01 +05:30
Priit Jõerüüt
e556008ff4
Translated using Weblate (Estonian)
Currently translated at 2.9% (33 of 1111 strings)

Translation: Episteme/strings
Translate-URL: https://hosted.weblate.org/projects/episteme/strings/et/
2026-05-20 10:11:32 +00:00
Priit Jõerüüt
ab6ec33e25
Translated using Weblate (Estonian)
Currently translated at 38.4% (5 of 13 strings)

Translation: Episteme/plurals
Translate-URL: https://hosted.weblate.org/projects/episteme/plurals/et/
2026-05-20 09:11:32 +00:00
Priit Jõerüüt
2ba0213b30
Added translation using Weblate (Estonian) 2026-05-19 09:26:20 +02:00
Priit Jõerüüt
4a340ee642
Added translation using Weblate (Estonian) 2026-05-19 09:26:19 +02:00