From 9bc27a49eb4926733bf6af02d7a06e33aa691c51 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Mon, 29 Jul 2024 18:25:06 -0600 Subject: [PATCH] music: start indexing after bind/start command --- app/src/main/java/org/oxycblt/auxio/AuxioService.kt | 7 ++++--- .../main/java/org/oxycblt/auxio/music/MusicRepository.kt | 3 --- .../oxycblt/auxio/music/service/IndexerServiceFragment.kt | 6 ++++++ 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/oxycblt/auxio/AuxioService.kt b/app/src/main/java/org/oxycblt/auxio/AuxioService.kt index 64121e6d1..a8cb344cf 100644 --- a/app/src/main/java/org/oxycblt/auxio/AuxioService.kt +++ b/app/src/main/java/org/oxycblt/auxio/AuxioService.kt @@ -43,24 +43,25 @@ class AuxioService : MediaLibraryService(), ForegroundListener { } override fun onBind(intent: Intent?): IBinder? { - handleIntent(intent) + start(intent) return super.onBind(intent) } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { // TODO: Start command occurring from a foreign service basically implies a detached // service, we might need more handling here. - handleIntent(intent) + start(intent) return super.onStartCommand(intent, flags, startId) } - private fun handleIntent(intent: Intent?) { + private fun start(intent: Intent?) { val nativeStart = intent?.getBooleanExtra(INTENT_KEY_NATIVE_START, false) ?: false if (!nativeStart) { // Some foreign code started us, no guarantees about foreground stability. Figure // out what to do. mediaSessionFragment.handleNonNativeStart() } + indexingFragment.start() } override fun onTaskRemoved(rootIntent: Intent?) { diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt index b8a3d2b26..7d60f825d 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt @@ -280,9 +280,6 @@ constructor( } logD("Registering worker $worker") indexingWorker = worker - if (indexingState == null) { - worker.requestIndex(true) - } } @Synchronized diff --git a/app/src/main/java/org/oxycblt/auxio/music/service/IndexerServiceFragment.kt b/app/src/main/java/org/oxycblt/auxio/music/service/IndexerServiceFragment.kt index 6362def6b..571e96ca7 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/service/IndexerServiceFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/service/IndexerServiceFragment.kt @@ -79,6 +79,12 @@ constructor( foregroundListener = null } + fun start() { + if (musicRepository.indexingState == null) { + requestIndex(true) + } + } + fun createNotification(post: (IndexerNotification?) -> Unit) { val state = musicRepository.indexingState if (state is IndexingState.Indexing) {