feat(ui): Myne-style UI overhaul — 4 tabs, API fixes, theme

Phase 1: API fixes
- Removed health() endpoint (404 on server), replaced with getLibraries()-based check
- ProgressUpdateRequest/PlaybackProgressUpdateRequest already have required fields
- Fixed ServerStatusMonitor to use getLibraries() instead of health()
- cover_url passes through as full URL (no resolveCoverUrl needed)

Phase 2: Theme (Myne blue-teal palette)
- Replaced Color.kt with Myne palette (primary #0D6681, dark #89D0EE)
- Simplified Theme.kt: dynamic color (Android 12+), fallback to static, no custom fonts
- Added material-icons-extended dependency

Phase 3-4: Navigation + Common components
- 4 tabs: Books, Audiobooks, Search, Settings
- CustomBottomNavigationItem: pill-shaped, animated text, primary.copy(alpha=0.1f)
- CustomTopAppBar: bold 28sp title, divider 2dp, circle back button
- BookItemCard: horizontal card, cover + text, surfaceColorAtElevation(3dp), RoundedCornerShape(6dp)
- ProgressDots: animated dots loader

Phase 5-8: Screens
- BooksScreen: loads ebooks from bookshelf-api, LazyVerticalGrid adaptive
- AudiobooksScreen: loads audiobooks, shows duration
- SearchScreen: OutlinedTextField with RoundedCornerShape(24dp), search via POST /api/v1/search
- SettingsScreen: sections (Appearance, Server, About) with toggles and click items

Phase 11: NavGraph
- NavHost with 4 bottom bar routes

':app:assembleOssDebug' passes. APK deployed.
This commit is contained in:
Atte149 2026-06-27 07:09:47 +03:00
parent 7411f1bfb5
commit 1b43c9c1ec
20 changed files with 1295 additions and 159 deletions

View file

@ -226,6 +226,7 @@ dependencies {
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation("androidx.compose.material:material-icons-extended:1.7.8")
implementation(libs.androidx.material3.window.size.class1.android)
implementation(libs.androidx.credentials)