Loading media/java/android/media/IMediaSession2.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,11 @@ interface IMediaSession2 { PlaybackState getPlaybackState(); ////////////////////////////////////////////////////////////////////////////////////////////// // Get browser service specific ////////////////////////////////////////////////////////////////////////////////////////////// oneway void getBrowserRoot(IMediaSession2Callback callback, in Bundle rootHints); ////////////////////////////////////////////////////////////////////////////////////////////// // Callbacks -- remove them ////////////////////////////////////////////////////////////////////////////////////////////// Loading media/java/android/media/MediaBrowser2.java 0 → 100644 +69 −0 Original line number Diff line number Diff line /* * Copyright 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media; import android.annotation.Nullable; import android.content.Context; import android.media.update.ApiLoader; import android.media.update.MediaBrowser2Provider; import android.os.Bundle; import java.util.concurrent.Executor; /** * Browses media content offered by a {@link MediaLibraryService2}. * @hide */ public class MediaBrowser2 extends MediaController2 { // Equals to the ((MediaBrowser2Provider) getProvider()) private final MediaBrowser2Provider mProvider; /** * Callback to listen events from {@link MediaLibraryService2}. */ public abstract static class BrowserCallback extends MediaController2.ControllerCallback { /** * Called with the result of {@link #getBrowserRoot(Bundle)}. * <p> * {@code rootMediaId} and {@code rootExtra} can be {@code null} if the browser root isn't * available. * * @param rootHints rootHints that you previously requested. * @param rootMediaId media id of the browser root. Can be {@code null} * @param rootExtra extra of the browser root. Can be {@code null} */ public abstract void onGetRootResult(Bundle rootHints, @Nullable String rootMediaId, @Nullable Bundle rootExtra); } public MediaBrowser2(Context context, SessionToken token, BrowserCallback callback, Executor executor) { super(context, token, callback, executor); mProvider = (MediaBrowser2Provider) getProvider(); } @Override MediaBrowser2Provider createProvider(Context context, SessionToken token, ControllerCallback callback, Executor executor) { return ApiLoader.getProvider(context) .createMediaBrowser2(this, context, token, (BrowserCallback) callback, executor); } public void getBrowserRoot(Bundle rootHints) { mProvider.getBrowserRoot_impl(rootHints); } } media/java/android/media/MediaController2.java +7 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,13 @@ public class MediaController2 extends MediaPlayerBase { // session whose session binder is only valid while it's active. // prevent a controller from reusable after the // session is released and recreated. mProvider = ApiLoader.getProvider(context) mProvider = createProvider(context, token, callback, executor); } MediaController2Provider createProvider(@NonNull Context context, @NonNull SessionToken token, @NonNull ControllerCallback callback, @NonNull Executor executor) { return ApiLoader.getProvider(context) .createMediaController2(this, context, token, callback, executor); } Loading media/java/android/media/update/MediaBrowser2Provider.java 0 → 100644 +26 −0 Original line number Diff line number Diff line /* * Copyright 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.update; import android.os.Bundle; /** * @hide */ public interface MediaBrowser2Provider extends MediaController2Provider { void getBrowserRoot_impl(Bundle rootHints); } media/java/android/media/update/StaticProvider.java +7 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,10 @@ package android.media.update; import android.annotation.Nullable; import android.content.Context; import android.media.IMediaSession2Callback; import android.media.MediaBrowser2; import android.media.MediaBrowser2.BrowserCallback; import android.media.MediaController2; import android.media.MediaController2.ControllerCallback; import android.media.MediaPlayerBase; import android.media.MediaSession2; import android.media.MediaSessionService2; Loading Loading @@ -53,7 +56,10 @@ public interface StaticProvider { String packageName, IMediaSession2Callback callback); MediaController2Provider createMediaController2( MediaController2 instance, Context context, SessionToken token, MediaController2.ControllerCallback callback, Executor executor); ControllerCallback callback, Executor executor); MediaBrowser2Provider createMediaBrowser2( MediaBrowser2 instance, Context context, SessionToken token, BrowserCallback callback, Executor executor); MediaSessionService2Provider createMediaSessionService2( MediaSessionService2 instance); } Loading
media/java/android/media/IMediaSession2.aidl +5 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,11 @@ interface IMediaSession2 { PlaybackState getPlaybackState(); ////////////////////////////////////////////////////////////////////////////////////////////// // Get browser service specific ////////////////////////////////////////////////////////////////////////////////////////////// oneway void getBrowserRoot(IMediaSession2Callback callback, in Bundle rootHints); ////////////////////////////////////////////////////////////////////////////////////////////// // Callbacks -- remove them ////////////////////////////////////////////////////////////////////////////////////////////// Loading
media/java/android/media/MediaBrowser2.java 0 → 100644 +69 −0 Original line number Diff line number Diff line /* * Copyright 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media; import android.annotation.Nullable; import android.content.Context; import android.media.update.ApiLoader; import android.media.update.MediaBrowser2Provider; import android.os.Bundle; import java.util.concurrent.Executor; /** * Browses media content offered by a {@link MediaLibraryService2}. * @hide */ public class MediaBrowser2 extends MediaController2 { // Equals to the ((MediaBrowser2Provider) getProvider()) private final MediaBrowser2Provider mProvider; /** * Callback to listen events from {@link MediaLibraryService2}. */ public abstract static class BrowserCallback extends MediaController2.ControllerCallback { /** * Called with the result of {@link #getBrowserRoot(Bundle)}. * <p> * {@code rootMediaId} and {@code rootExtra} can be {@code null} if the browser root isn't * available. * * @param rootHints rootHints that you previously requested. * @param rootMediaId media id of the browser root. Can be {@code null} * @param rootExtra extra of the browser root. Can be {@code null} */ public abstract void onGetRootResult(Bundle rootHints, @Nullable String rootMediaId, @Nullable Bundle rootExtra); } public MediaBrowser2(Context context, SessionToken token, BrowserCallback callback, Executor executor) { super(context, token, callback, executor); mProvider = (MediaBrowser2Provider) getProvider(); } @Override MediaBrowser2Provider createProvider(Context context, SessionToken token, ControllerCallback callback, Executor executor) { return ApiLoader.getProvider(context) .createMediaBrowser2(this, context, token, (BrowserCallback) callback, executor); } public void getBrowserRoot(Bundle rootHints) { mProvider.getBrowserRoot_impl(rootHints); } }
media/java/android/media/MediaController2.java +7 −1 Original line number Diff line number Diff line Loading @@ -104,7 +104,13 @@ public class MediaController2 extends MediaPlayerBase { // session whose session binder is only valid while it's active. // prevent a controller from reusable after the // session is released and recreated. mProvider = ApiLoader.getProvider(context) mProvider = createProvider(context, token, callback, executor); } MediaController2Provider createProvider(@NonNull Context context, @NonNull SessionToken token, @NonNull ControllerCallback callback, @NonNull Executor executor) { return ApiLoader.getProvider(context) .createMediaController2(this, context, token, callback, executor); } Loading
media/java/android/media/update/MediaBrowser2Provider.java 0 → 100644 +26 −0 Original line number Diff line number Diff line /* * Copyright 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.media.update; import android.os.Bundle; /** * @hide */ public interface MediaBrowser2Provider extends MediaController2Provider { void getBrowserRoot_impl(Bundle rootHints); }
media/java/android/media/update/StaticProvider.java +7 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,10 @@ package android.media.update; import android.annotation.Nullable; import android.content.Context; import android.media.IMediaSession2Callback; import android.media.MediaBrowser2; import android.media.MediaBrowser2.BrowserCallback; import android.media.MediaController2; import android.media.MediaController2.ControllerCallback; import android.media.MediaPlayerBase; import android.media.MediaSession2; import android.media.MediaSessionService2; Loading Loading @@ -53,7 +56,10 @@ public interface StaticProvider { String packageName, IMediaSession2Callback callback); MediaController2Provider createMediaController2( MediaController2 instance, Context context, SessionToken token, MediaController2.ControllerCallback callback, Executor executor); ControllerCallback callback, Executor executor); MediaBrowser2Provider createMediaBrowser2( MediaBrowser2 instance, Context context, SessionToken token, BrowserCallback callback, Executor executor); MediaSessionService2Provider createMediaSessionService2( MediaSessionService2 instance); }