Commit graph

169 commits

Author SHA1 Message Date
Atte149
a7a9f65391 Fix API contract: Response<ResponseBody> for endpoints returning JSON objects
- getBook, updateReadingProgress, updatePlaybackProgress: Response<String> → Response<ResponseBody>
- Fixes kotlinx-serialization converter crash on JSON object responses
- health(): Response<Unit> (already fixed)
- Fix hasUriScheme(): matches() → containsMatchIn()
- Full Russian translation of strings.xml (583 lines)
- Russian added as default language in CoreData
2026-06-19 21:05:29 +03:00
Atte149
6ddbb01973 Polish audio/TTS UI: move labels to strings.xml, fix TTS WorkManager observer leak 2026-06-16 19:57:52 +03:00
Atte149
37dfd74fc9 Merge feature/progress-sync: reading and playback progress sync 2026-06-16 12:19:45 +03:00
Atte149
f54ed847f7 Merge feature/tts: TTS jobs screen with bookshelf-api 2026-06-16 12:18:04 +03:00
Atte149
abe1a3db14 Merge feature/audio: audiobook player with ExoPlayer 2026-06-16 12:15:23 +03:00
Atte149
acff930d7b feat(audio): implement audiobook player with ExoPlayer and MediaSession
Add a full audiobook player for Audiobookshelf books:
- PlayerScreen/PlayerModel/PlayerContent with playback controls, progress, speed, skip
- AudioPlaybackService as MediaSessionService for background playback + notification
- ABS item lookup and per-file audio URLs using ServerSettings URL/token
- Hilt bindings, notification icon/strings, and required manifest permissions/service

Also removes the stale CacheRepositoryImpl import from RepositoryModule so the
worktree compiles after the cache files were deleted.
2026-06-16 12:04:53 +03:00
Atte149
a6f8b6782a feat(tts): implement TTS jobs screen with bookshelf-api integration
- Add domain models, repository, and use cases for TTS engines/voices/jobs
- Add TtsDownloadWorker to poll job status and download completed audio
- Add TtsScreen/TtsModel/TtsContent with engine/voice selection and job creation
- Add TTS button to RemoteLibraryContent book cards
- Add Hilt WorkManager support and repository binding
- Add TTS string resources
2026-06-16 11:58:10 +03:00
Atte149
a8a1417b9d feat(progress): implement reading and playback progress sync with bookshelf-api
- Add ProgressRepository + impl to push reading/playback progress to bookshelf-api
- Add SyncReadingProgressUseCase and SyncPlaybackProgressUseCase
- Add request models for bookshelf-api and Audiobookshelf progress endpoints
- Add audio progress fields (audioCurrentFile, audioCurrentPosition) to Book/BookEntity
- Add Room migration 17->18 and generated schema
- Add BookDao/BookRepository query for books with remote IDs
- Add ProgressSyncWorker scheduled from Application.onCreate
- Hook SyncReadingProgressUseCase into ReaderModel progress updates
- Add AudioPlayerProgress placeholder with TODO for playback sync hook
- Add Hilt binding for ProgressRepository and missing string resources
2026-06-16 11:50:06 +03:00
Atte149
d1257e1d60 feat(remote-library): add ebook opening from RemoteLibrary tab
- Add CacheRepository + CacheBookUseCase to download/cache remote ebooks
  via Audiobookshelf and upsert a local BookEntity/EbookFileEntity.
- Support plain local file paths in FileProviderImpl and CachedFile.canAccess
  so reader can open downloaded ebooks stored in app filesDir.
- Add Read button to RemoteLibraryContent for books with hasEbook=true.
- Wire RemoteLibraryModel/Screen to cache the ebook and navigate to
  ReaderScreen with the local book id.
- Add string resource for the Read button.
2026-06-16 11:48:30 +03:00
Atte149
ed3afc1f16 Merge feature/settings-validation (server validation, cache/TTS scaffold) into feature/ui-polish 2026-06-16 11:40:52 +03:00
Atte149
23298b0f26 feat(ui-polish): improve RemoteLibrary & BookshelfSettings UI, add icons/strings 2026-06-16 11:35:04 +03:00
Atte149
cff4db13ab Phase 5b: RemoteLibrary tab — fetch libraries/books, simple list UI 2026-06-16 09:58:26 +03:00
Atte149
0c2dfbd592 Phase 5a: server settings UI — BookshelfSettings screen, model, navigation, strings 2026-06-16 09:45:17 +03:00
Acclorite
06d41b8587
chore: update copyright 2026-01-01 12:39:08 +02:00
Acclorite
959a193e52
feat: add "horizontal limiter" option
* Option to show horizontal ruler and dim unfocused part of the screen (both height of the focused part and its vertical position can be customized)
* Option to hide horizontal ruler
* Option to change horizontal ruler's thickness
* Option to change dimming (0-100%)

Resolves: #197
2025-12-26 13:22:51 +02:00
Acclorite
bda2ed1b04
feat: remove help screen
Resolves: #286
2025-12-24 15:40:52 +02:00
Acclorite
24d3e3ba0a
feat: option to disable scrolling in the Reader
* Appears after enabling horizontal gesture

Resolves: #186
2025-10-25 15:24:18 +03:00
Acclorite
bd7dbecce2
feat: option to hide navigation labels
* Added an option to hide navigation bar labels under icons
2025-10-19 19:55:55 +03:00
Acclorite
b28e6e7858
feat: add note to the LibrarySortSubcategory 2025-10-01 13:51:28 +03:00
Acclorite
30ee74cfff
feat: select all books button in library
* Added "Select all books" button to the Library which selects all books in the current category
2025-09-28 17:48:48 +03:00
Acclorite
b4c6a63878
refactor: datastore(settings) refactor 2025-07-17 12:14:52 +03:00
Acclorite
7a028c1172
refactor: pass app name via placeholder in start_welcome string 2025-07-09 17:39:01 +03:00
Acclorite
5cab499417
refactor: replace app_version string with BuildConfig.VERSION_NAME 2025-07-09 17:28:40 +03:00
Acclorite
57afade51a
feat: "Iapetus" gray theme 2025-06-29 11:53:21 +03:00
Acclorite
ff7c0482f7
feat: disable images' captions option
Resolves: #189
2025-06-29 11:25:06 +03:00
Acclorite
c70338a14d
feat(library): custom categories
* Custom categories
* New customization options
* Sorting

Resolves: #79
2025-04-28 09:18:14 +03:00
Acclorite
e22e172ddb
chore(release): v1.7.1 2025-04-26 12:21:37 +03:00
Acclorite
60b2a04e82
🌍 Rephrase "You're successfully done basic setup of the app" in Start screen
Resolves: #205
2025-04-22 21:05:04 +03:00
Acclorite
bc95edaa10 🛠️ Remove (OLED) from "Pure dark (OLED)"
Resolves: #203
2025-04-22 15:25:32 +03:00
Acclorite
87b53745e9 🛠️ Prevent crash when no file manager app
* When choosing a folder in Browse (scan) it crashed when there is no file manager app to handle such action

Resolves: #198
2025-03-22 10:31:27 +02:00
Acclorite
ba3f5f3b7a 🚀 Crash screen
* Shows app crash log
* Copy or report (share)
* Logs are saved in app's internal storage (/crash)

Resolves: #188
2025-03-21 19:16:11 +02:00
Acclorite
c49e7f9500 🛡️ Release v1.7.0 2025-03-14 18:05:14 +02:00
Acclorite
e4cc80ab08 🚀 Horizontal gesture "Pull animation" option
* Enables or disables pull animation when using horizontal gesture
2025-03-12 19:27:46 +02:00
Acclorite
1c0e259179 🛠️ Change "Visibility animation" to Switch
* Changed from Slider (0-100) to Switch (off-on)
2025-03-11 19:52:08 +02:00
Acclorite
78e7d710ea 🚀 Horizontal gesture "Animate visibility" option
* Option to change how much (in %) the visibility animates when using horizontal gesture
2025-03-11 09:06:04 +02:00
Acclorite
7d6f7fec9d 🌍 Rename strings
* Renamed "browse_layout" to "layout" (for global use)
2025-03-09 19:18:37 +02:00
Acclorite
9fe7a497e8 🚀 Move Browse "General" subcategory to "Display"
* Moved Browse "General" subcategory to "Display" subcategory
2025-03-09 10:04:49 +02:00
Acclorite
750c9ffbeb 🚀 New options in About
* Reverted UI to old style
* Removed some options
* Added new options and badges
2025-03-08 09:49:20 +02:00
Acclorite
8cbe14b0e0 🚀 Storage Access Framework
* Per-folder storage access
* Easily revoke per-folder access
* No storage permission
* Privacy focus (Milestone #5)

Resolves: #38
2025-03-02 13:09:10 +02:00
Acclorite
ec19a5e455 🚀 Remove network permission
* Removed network permission along with notifications
* Removed check for updates feature (no longer makes sense without network access)

Resolves: #172
2025-02-13 16:26:03 +02:00
Acclorite
cd18c430a5 🚀 Nested Chapters in Reader
* Fixed issue with incorrect navigation
* Added Nested Chapters, e.g. Book -> Chapter

Resolves: #130
2025-02-10 12:43:36 +02:00
Acclorite
81ae50585c 🛠️ Add license notice to all files 2025-02-03 13:05:36 +02:00
Acclorite
88b04df01c 🗽 Release v1.6.0 2025-01-30 13:00:17 +02:00
Acclorite
40f9122a65 🚀 Change Path option
* Changes path to the file of the book

Resolves: #152
2025-01-28 10:42:36 +02:00
Acclorite
de3b45e6a1 🌍 Remove redundant string resources 2025-01-27 20:07:47 +02:00
Acclorite
cf4cb62061 🚀 BookInfo UI update
* Updated UI of BookInfo screen
* Dialogs to update fields (title, author and description)
* Simplified updating mechanism
2025-01-27 19:19:02 +02:00
Acclorite
f232cd3688 🛠️ New dialog & update default
* Updated default dialog
* Added new dialog with text field
2025-01-24 14:15:36 +02:00
Acclorite
4f8da6ba8e 🌍 Remove unused string resources 2025-01-21 20:04:37 +02:00
Acclorite
ad41bc9a1a 🚀 Progress Count option
* Option to change Progress Count method (Percentage/Quantity)
* Improved progress calculation
2025-01-21 19:49:32 +02:00
Acclorite
fe269fd8a0 🚀 Font thickness option
* Changes default font thickness

Resolves: #150
2025-01-19 18:59:05 +02:00