From 08fc89a58592088c037066be7a76ff75e8dfd9e6 Mon Sep 17 00:00:00 2001 From: bachinger Date: Mon, 23 May 2022 11:23:30 +0100 Subject: [PATCH] Implement onSubscribe in session demo service Immediately notify a subscribing client about the availability of child items of a parent ID to make the client load the children. PiperOrigin-RevId: 450396690 --- .../media3/demo/session/PlaybackService.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt index 0790db6919..a3839ae538 100644 --- a/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt +++ b/demos/session/src/main/java/androidx/media3/demo/session/PlaybackService.kt @@ -116,6 +116,21 @@ class PlaybackService : MediaLibraryService() { return SessionResult.RESULT_ERROR_NOT_SUPPORTED } } + + override fun onSubscribe( + session: MediaLibrarySession, + browser: MediaSession.ControllerInfo, + parentId: String, + params: LibraryParams? + ): ListenableFuture> { + val children = + MediaItemTree.getChildren(parentId) + ?: return Futures.immediateFuture( + LibraryResult.ofError(LibraryResult.RESULT_ERROR_BAD_VALUE) + ) + session.notifyChildrenChanged(browser, parentId, children.size, params) + return Futures.immediateFuture(LibraryResult.ofVoid()) + } } private class CustomMediaItemFiller : MediaSession.MediaItemFiller {