feat: ABS full playback on Android — chapters, speed, sleep timer, progress sync

- AbsClient: add session API (startSession, closeSession, getProgress, saveProgress, getItemChapters) and data classes (AbsChapter, AbsAudioTrack, AbsPlaySession, AbsProgress)
- AbsPlayerController (new): standalone ExoPlayer controller for ABS audio; tracks global time across multi-track audiobooks, syncs progress to ABS every 30 s, chapter navigation, speed control, sleep timer
- AbsScreen: book detail screen with cover/meta/progress/chapter list/play button; AbsNowPlayingScreen overlay (progress bar, prev/+30s/play/-30s/next controls, speed picker, sleep timer, chapter list with auto-scroll)
- AppNavigation: create AbsPlayerController, wire up book detail and player overlay, hardware back button handling for all ABS sub-screens
- PrefsStore + SettingsViewModel + SettingsScreen: absChapterTrackMode toggle — progress bar shows current chapter length instead of full book
- README: update ABS section to cover both web and Android features

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Sonnet 4.6 committed 2026-06-16 00:15:30 +02:00
1 parent 3280ffee37
commit 820a75f40b
8 files changed
+1093 -46

No files matched your search

+7 -2
View File
@@ -50,8 +50,13 @@ Built with Vite + vanilla ES modules (web) and Jetpack Compose + Media3/ExoPlaye
- Create, edit, delete playlists; add / remove tracks
### Audiobookshelf Integration
- **Web:** browse libraries, stream audiobooks, chapter navigation, playback speed, sleep timer, progress sync
- **Android:** browse libraries and audiobook list (tab hidden until ABS is configured in Settings)
- Browse libraries and audiobooks on both Web and Android
- Stream audiobooks with chapter-by-chapter navigation
- Playback speed control (0.5× – 2.0×)
- Sleep timer
- Progress sync — current position saved back to ABS server every 30 s
- Chapter track mode — progress bar shows current chapter length instead of full book (toggle in Settings)
- Tab/section hidden until ABS is configured in Settings
### App — Web PWA
- Installable on Android / iOS / desktop