@@ -4,8 +4,13 @@ import android.os.Bundle
44import android.os.ConditionVariable
55import androidx.media3.common.MediaItem
66import androidx.media3.common.util.UnstableApi
7- import androidx.media3.session.*
7+ import androidx.media3.session.LibraryResult
8+ import androidx.media3.session.MediaLibraryService
89import 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
914import com.google.common.util.concurrent.Futures
1015import com.google.common.util.concurrent.ListenableFuture
1116import 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