Issue 1 (MusicService): wrap DefaultHttpDataSource in CacheBitmapLoader so Media3 notification artwork is fetched once and served from memory on every subsequent auto-advance. warmArtworkCache() pre-loads current+next 3 tracks on both onMediaItemTransition and onTimelineChanged (queue replace via setQueue). Adds explicit media3-datasource dependency. Issue 2 (back button): replace deprecated onKeyDown with OnBackPressedCallback. WebBridge.setOverlayState(bool) tracks whether JS has an overlay open; consumeBackPress() is called first — if true, MainActivity delegates to window.NSPlayer.handleBack() which closes the topmost layer. Falls back to webView.goBack() then moveTaskToBack(true) so the MusicService binding survives. JS side: _syncOverlayState() + MutationObserver keep the native flag current; handleBack covers NP overlay, queue panel, action sheet, all modals, sidebar. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
1.1 KiB
TOML
23 lines
1.1 KiB
TOML
[versions]
|
|
agp = "8.13.2"
|
|
kotlin = "1.9.23"
|
|
coreKtx = "1.13.1"
|
|
appcompat = "1.7.0"
|
|
material = "1.12.0"
|
|
media3 = "1.4.1"
|
|
coroutines = "1.8.0"
|
|
|
|
[libraries]
|
|
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
|
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
|
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
|
media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" }
|
|
media3-session = { group = "androidx.media3", name = "media3-session", version.ref = "media3" }
|
|
media3-common = { group = "androidx.media3", name = "media3-common", version.ref = "media3" }
|
|
media3-datasource = { group = "androidx.media3", name = "media3-datasource", version.ref = "media3" }
|
|
kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|