Skip to content

Commit ed2d39a

Browse files
authored
fix: access DB on a background thread (#306)
1 parent 846061a commit ed2d39a

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

app/src/main/kotlin/org/fossify/musicplayer/playback/MediaSessionCallback.kt

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,13 @@ import android.os.Bundle
44
import android.os.ConditionVariable
55
import androidx.media3.common.MediaItem
66
import androidx.media3.common.util.UnstableApi
7-
import androidx.media3.session.*
7+
import androidx.media3.session.LibraryResult
8+
import androidx.media3.session.MediaLibraryService
89
import androidx.media3.session.MediaLibraryService.MediaLibrarySession
10+
import androidx.media3.session.MediaSession
11+
import androidx.media3.session.SessionCommand
12+
import androidx.media3.session.SessionError
13+
import androidx.media3.session.SessionResult
914
import com.google.common.util.concurrent.Futures
1015
import com.google.common.util.concurrent.ListenableFuture
1116
import com.google.common.util.concurrent.MoreExecutors
@@ -189,15 +194,16 @@ internal fun PlaybackService.getMediaSessionCallback() = object : MediaLibrarySe
189194
controller: MediaSession.ControllerInfo,
190195
mediaItems: List<MediaItem>
191196
): ListenableFuture<List<MediaItem>> {
192-
val items = mediaItems.map { mediaItem ->
193-
if (mediaItem.requestMetadata.searchQuery != null) {
194-
getMediaItemFromSearchQuery(mediaItem.requestMetadata.searchQuery!!)
195-
} else {
196-
mediaItemProvider[mediaItem.mediaId] ?: mediaItem
197+
return callWhenSourceReady {
198+
val items = mediaItems.map { mediaItem ->
199+
if (mediaItem.requestMetadata.searchQuery != null) {
200+
getMediaItemFromSearchQuery(mediaItem.requestMetadata.searchQuery!!)
201+
} else {
202+
mediaItemProvider[mediaItem.mediaId] ?: mediaItem
203+
}
197204
}
205+
items
198206
}
199-
200-
return Futures.immediateFuture(items)
201207
}
202208

203209
private fun getMediaItemFromSearchQuery(query: String): MediaItem {

0 commit comments

Comments
 (0)