Skip to content

cyclopsgd/chronicle-modern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

330 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Opus - Audiobook Player ๐ŸŽง

A modern, premium Plex audiobook player for Android

Bringing your self-hosted audiobook library to life

License: GPL v3 Android Kotlin API

Features โ€ข Roadmap โ€ข Tech Stack โ€ข Contributing


๐Ÿ“– About

Opus is a complete modernization of the Chronicle Plex audiobook player, rebuilt from the ground up with 2025's best Android development practices.

The Vision

A premium audiobook experience that rivals commercial apps like Audible, while maintaining the flexibility and privacy of self-hosted Plex:

  • ๐Ÿ—๏ธ Modern architecture - Multi-module design, Hilt DI, Jetpack Compose
  • ๐ŸŽจ Premium UX - Cover-art-dominant design, car mode, smart features
  • โšก Rock-solid reliability - Robust playback, offline handling, progress sync
  • ๐Ÿš€ Active development - Continuous improvement, not just bug fixes

๐ŸŽจ Brand Identity

Element Value
Name Opus - Audiobook Player
Primary Color Amber #FFAB40
Secondary Color Soft Green #81C784
Background #121212
Surface #1E1E1E
Logo "O" with audio waveform
Launcher Icon Adaptive icon with vector drawable

Brand assets are in docs/Logos/.


โœจ Features

Currently Available

  • โœ… Stream audiobooks from your Plex server
  • โœ… Offline playback with downloads
  • โœ… Playback progress sync with Plex
  • โœ… Variable playback speed (0.5x - 3.0x, per-book memory)
  • โœ… Sleep timer with shake-to-extend
  • โœ… Chapter navigation (including M4B chapters)
  • โœ… Android Auto support
  • โœ… Smart auto-rewind on resume
  • โœ… Skip silent audio
  • โœ… Network-aware playback recovery
  • โœ… Car Mode - Giant buttons, Bluetooth auto-detection
  • โœ… Compose Library - Grid view, filters, search
  • โœ… Modern Now Playing - Cover-art-dominant design

โœ… Recently Completed (February 2026)

๐Ÿš€ Performance Optimization Sprint

  • โšก Baseline Profiles - 30-50% faster app startup on release builds
  • ๐Ÿ—ƒ๏ธ Database Indices - 5 new indices for lightning-fast library queries
  • ๐ŸŽจ Compose Stability - @Immutable annotations on 16 UI classes for smoother scrolling
  • ๐Ÿงน Code Cleanup - Deleted 22 unused XML fragments/ViewModels (5,000+ lines removed)

๐Ÿ› Critical Bug Fixes

  • ๐Ÿ’พ Position Persistence - Fixed race condition causing position loss when switching books
  • ๐Ÿ“ฑ Mini Player State - Auto-restores after app restart (no more "lost audiobook link")
  • ๐Ÿ“œ Library Scroll Jank - Smooth scrolling during playback (smart progress updates)
  • ๐Ÿ“– Chapter Buffering - Fixed chapter clicks starting at 0:00 instead of chapter position
  • ๐Ÿ”ง Bottom Nav Clipping - Fixed navigation bar being cut off on some devices

๐ŸŽจ UI Modernization (Compose Migration)

  • โœ… Home Screen - Netflix-style categories with Continue Listening
  • โœ… Library Screen - Grid/list view with filters and search
  • โœ… Book Details - Cover-dominant design with chapter list
  • โœ… Settings - Modern Compose preferences
  • โœ… Collections - Beautiful grid view
  • โœ… Now Playing - Full-screen player with bottom sheets
  • โœ… Car Mode - Giant buttons for safe driving

Previous Major Milestones

  • ๐ŸŽจ Phase 2 - Now-Playing Screen (Compose, sleep timer, chapters, speed selector)
  • ๐Ÿ“š Phase 3 - Library Screen (grid view, filters, search, progress indicators)
  • โฌ‡๏ธ Phases 4-5 - Downloads & Sync (WorkManager, SD card, Plex progress sync)
  • ๐Ÿš— Phase 6 - Car Mode (giant 140dp button, Bluetooth auto-detection)

๐Ÿ”ฎ Coming Soon

Phase 7: Stats & Polish

  • ๐Ÿ“Š Listening statistics (time, streaks, books finished)
  • โœจ Additional UI polish and animation refinements
  • ๐ŸŽต Full Media3 migration (in progress)

๐Ÿ—๏ธ Tech Stack

Modern Android Development

  • Language: Kotlin 2.1
  • Min SDK: 26 (Android 8.0)
  • Target SDK: 35 (Android 15)
  • Build: Gradle Kotlin DSL + Version Catalog

Architecture & Dependencies

  • DI: Hilt 2.54
  • Architecture: Multi-module MVVM
  • UI: Jetpack Compose + XML Views (80% migrated to Compose)
  • Async: Coroutines + Flow
  • Database: Room with optimized indices
  • Performance: Baseline Profiles for fast startup

Media & Networking

  • Playback: ExoPlayer / Media3
  • HTTP: Retrofit 2 + OkHttp 4
  • JSON: Moshi
  • Images: Coil (Compose) + Fresco (Views)

๐Ÿš€ Getting Started

Prerequisites

  • Android Studio: Ladybug (2024.2.1) or newer
  • JDK: 17 or higher
  • Plex Server: With at least one audiobook library

Build Instructions

# Clone the repository
git clone https://github.com/cyclopsgd/chronicle-modern.git
cd chronicle-modern

# Build debug APK
./gradlew assembleDebug

# Install to connected device
./gradlew installDebug

First Run Setup

  1. Launch the app
  2. Login with your Plex account
  3. Select your server and audiobook library
  4. Start listening! ๐ŸŽง

๐Ÿ“ˆ Development Roadmap

Phase 1: Foundation โœ… Complete

  • Multi-module architecture
  • Hilt dependency injection migration
  • Android SDK 35, Kotlin 2.1
  • Core reliability fixes (smart rewind, error recovery, position persistence)
  • Opus branding
  • Launcher icon (vector drawable)
  • Dark theme bottom navigation

Phase 2: Now-Playing Screen โœ… Complete

  • Compose theme (OpusTheme)
  • NowPlayingScreen composable
  • NowPlayingViewModel
  • Wire into app navigation
  • Full-screen mode (hides bottom nav)
  • High-resolution cover art
  • Chapter-relative progress tracking
  • Chapter list bottom sheet (Compose)
  • Sleep timer bottom sheet (Compose)
  • Speed selector bottom sheet (Compose)
  • Per-book speed memory

Phase 3: Library Screen โœ… Complete

  • Grid view with cover art
  • Progress indicator overlay on covers
  • Filters: Not Started / In Progress / Finished / Downloaded
  • Sort: Title / Author / Date Added / Recently Played / Duration

Phase 4: Downloads & Offline โœ… Complete

  • Download management with WorkManager
  • SD card storage support
  • Download progress indicators
  • Storage management in settings

Phase 5: Progress Sync โœ… Complete

  • Report playback progress to Plex server
  • Read progress from Plex on library refresh
  • Handle conflicts (most recent wins)
  • Offline-first architecture

Phase 6: Car Mode โœ… Complete

  • Dedicated car mode screen (Compose)
  • Auto-detect Bluetooth car audio
  • Giant play/pause button (140dp)
  • Disable sleep timer while in car mode
  • Car mode entry from Now Playing screen
  • Auto-enter car mode setting

Phase 7: Stats & Polish ๐Ÿšง In Progress

  • Stats tab in bottom navigation
  • Listening time tracking
  • Books finished count
  • UI polish and animation refinements
  • Full Media3 migration

๐Ÿค Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

Quick Start

  1. Fork & clone
  2. Create feature branch from main
  3. Follow existing patterns (Hilt DI, MVVM, Compose for new UI)
  4. Submit PR with clear description

๐Ÿ“„ License

Licensed under GNU General Public License v3.0 - see LICENSE


๐Ÿ™ Credits

Original Project

Chronicle by Matt Vaughn (@mattttvaughn) - The foundation this project builds upon.

Built With


Built with โค๏ธ for the Plex audiobook community

โญ Star โ€ข ๐Ÿ› Report Bug โ€ข ๐Ÿ’ก Request Feature

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages