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