1b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake/* 2b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * Copyright (C) 2014 The Android Open Source Project 3b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * 4b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * Licensed under the Apache License, Version 2.0 (the "License"); 5b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * you may not use this file except in compliance with the License. 6b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * You may obtain a copy of the License at 7b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * 8b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * http://www.apache.org/licenses/LICENSE-2.0 9b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * 10b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * Unless required by applicable law or agreed to in writing, software 11b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * distributed under the License is distributed on an "AS IS" BASIS, 12b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * See the License for the specific language governing permissions and 14b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake * limitations under the License. 15b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake */ 16b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake 17b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lakepackage android.support.v4.media.session; 18b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake 19b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lakeimport android.net.Uri; 20b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lakeimport android.os.Bundle; 21b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake 22b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lakeclass MediaSessionCompatApi23 { 23b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake 24b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake public static Object createCallback(Callback callback) { 25b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake return new CallbackProxy<Callback>(callback); 26b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake } 27b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake 287075eac10d9549feb4a4f24895553572ef4001b1Sungsoo Lim public interface Callback extends MediaSessionCompatApi21.Callback { 29b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake public void onPlayFromUri(Uri uri, Bundle extras); 30b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake } 31b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake 32b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake static class CallbackProxy<T extends Callback> extends MediaSessionCompatApi21.CallbackProxy<T> { 33b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake public CallbackProxy(T callback) { 34b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake super(callback); 35b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake } 36b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake 37b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake @Override 38b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake public void onPlayFromUri(Uri uri, Bundle extras) { 39b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake mCallback.onPlayFromUri(uri, extras); 40b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake } 41b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake } 42b51f456b92aeb62d5aa9d67e1fb2725b2035fdddIan Lake} 43