1cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten/*
2cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * Copyright (C) 2017 The Android Open Source Project
3cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten *
4cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * Licensed under the Apache License, Version 2.0 (the "License");
5cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * you may not use this file except in compliance with the License.
6cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * You may obtain a copy of the License at
7cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten *
8cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten *      http://www.apache.org/licenses/LICENSE-2.0
9cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten *
10cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * Unless required by applicable law or agreed to in writing, software
11cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * distributed under the License is distributed on an "AS IS" BASIS,
12cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * See the License for the specific language governing permissions and
14cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten * limitations under the License.
15cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten */
16cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten
17cae43346c0191b55efa421f32fb594d55b005728Christofer Åkerstenpackage com.android.media.update;
18cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten
196b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kimimport android.app.Notification;
2035a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.content.Context;
2192fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9Christofer Åkerstenimport android.content.pm.ApplicationInfo;
22735f3430f9cd1224a68e87b015baca0789debe22Jaewan Kimimport android.media.MediaBrowser2;
23735f3430f9cd1224a68e87b015baca0789debe22Jaewan Kimimport android.media.MediaBrowser2.BrowserCallback;
2435a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.MediaController2;
25c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kimimport android.media.MediaController2.ControllerCallback;
26bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kimimport android.media.MediaItem2;
275aec249a238ff2dcb9bb5bc0434b7a17fa96a035Jaewan Kimimport android.media.MediaLibraryService2;
28ddec9db69160943228ccb5b3d24917cd31ad7593Jaewan Kimimport android.media.MediaLibraryService2.LibraryRoot;
292bb5626f2dda50ea42a2c686e4c280f72b34181bJaewan Kimimport android.media.MediaLibraryService2.MediaLibrarySession;
3081c1b87234bdab435259acd355ba2df4730da3ceJaewan Kimimport android.media.MediaLibraryService2.MediaLibrarySession.MediaLibrarySessionCallback;
31bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kimimport android.media.MediaMetadata2;
325348b91dcfd87be1f9339f7765f778ad890fc8dcSungsoo Limimport android.media.MediaPlaylistAgent;
3335a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.MediaSession2;
34d5b878d0cf0c987caf18be697a0e1637fb632d66Jaewan Kimimport android.media.SessionCommand2;
35d5b878d0cf0c987caf18be697a0e1637fb632d66Jaewan Kimimport android.media.SessionCommandGroup2;
3635a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.MediaSession2.ControllerInfo;
3735a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.MediaSession2.SessionCallback;
3835a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.MediaSessionService2;
396b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kimimport android.media.MediaSessionService2.MediaNotification;
4024f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kimimport android.media.Rating2;
417027e8019ad974d2e474a7fcaf43adedbdf08f23Jaewan Kimimport android.media.SessionToken2;
42a7a0502ec7cdd3582f35e0f8eb449d4d89d778e6Hyundo Moonimport android.media.VolumeProvider2;
43735f3430f9cd1224a68e87b015baca0789debe22Jaewan Kimimport android.media.update.MediaBrowser2Provider;
44080b934e6da4c1e09c91e236f5d0705edbd6cb0cInsun Kangimport android.media.update.MediaControlView2Provider;
4535a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.update.MediaController2Provider;
46bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kimimport android.media.update.MediaItem2Provider;
47ddec9db69160943228ccb5b3d24917cd31ad7593Jaewan Kimimport android.media.update.MediaLibraryService2Provider.LibraryRootProvider;
486b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kimimport android.media.update.MediaMetadata2Provider;
495348b91dcfd87be1f9339f7765f778ad890fc8dcSungsoo Limimport android.media.update.MediaPlaylistAgentProvider;
5035a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.update.MediaSession2Provider;
51d0cff6b094c88bf857cfab80d733728f66ea212cChristofer Åkerstenimport android.media.update.MediaSession2Provider.BuilderBaseProvider;
528a5018744ab11899483c12ca93b29be43c911fb0Jaewan Kimimport android.media.update.MediaSession2Provider.CommandButtonProvider.BuilderProvider;
5335a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport android.media.update.MediaSessionService2Provider;
546b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kimimport android.media.update.MediaSessionService2Provider.MediaNotificationProvider;
55dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kimimport android.media.update.SessionToken2Provider;
56cae43346c0191b55efa421f32fb594d55b005728Christofer Åkerstenimport android.media.update.StaticProvider;
57a7a0502ec7cdd3582f35e0f8eb449d4d89d778e6Hyundo Moonimport android.media.update.VideoView2Provider;
585135ac1345395dc5c2974f8e735dfb4eb2706d02Christofer Åkerstenimport android.media.update.ViewGroupProvider;
59a7a0502ec7cdd3582f35e0f8eb449d4d89d778e6Hyundo Moonimport android.media.update.VolumeProvider2Provider;
60dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kimimport android.os.Bundle;
61c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kimimport android.os.IInterface;
62080b934e6da4c1e09c91e236f5d0705edbd6cb0cInsun Kangimport android.support.annotation.Nullable;
63080b934e6da4c1e09c91e236f5d0705edbd6cb0cInsun Kangimport android.util.AttributeSet;
64080b934e6da4c1e09c91e236f5d0705edbd6cb0cInsun Kangimport android.widget.MediaControlView2;
65f58d11072313fa3322707113c9f97148177fcdefSungsoo Limimport android.widget.VideoView2;
66cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten
6798f280314350160874af3bc3fd660aa3e9a0fabeSungsoo Limimport com.android.media.IMediaController2;
68735f3430f9cd1224a68e87b015baca0789debe22Jaewan Kimimport com.android.media.MediaBrowser2Impl;
6935a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport com.android.media.MediaController2Impl;
70bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kimimport com.android.media.MediaItem2Impl;
715aec249a238ff2dcb9bb5bc0434b7a17fa96a035Jaewan Kimimport com.android.media.MediaLibraryService2Impl;
72ddec9db69160943228ccb5b3d24917cd31ad7593Jaewan Kimimport com.android.media.MediaLibraryService2Impl.LibraryRootImpl;
736b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kimimport com.android.media.MediaMetadata2Impl;
745348b91dcfd87be1f9339f7765f778ad890fc8dcSungsoo Limimport com.android.media.MediaPlaylistAgentImpl;
7535a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport com.android.media.MediaSession2Impl;
7635a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport com.android.media.MediaSessionService2Impl;
7724f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kimimport com.android.media.Rating2Impl;
78dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kimimport com.android.media.SessionToken2Impl;
79a7a0502ec7cdd3582f35e0f8eb449d4d89d778e6Hyundo Moonimport com.android.media.VolumeProvider2Impl;
80080b934e6da4c1e09c91e236f5d0705edbd6cb0cInsun Kangimport com.android.widget.MediaControlView2Impl;
81f58d11072313fa3322707113c9f97148177fcdefSungsoo Limimport com.android.widget.VideoView2Impl;
82cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten
8335a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kimimport java.util.concurrent.Executor;
8435a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim
8592fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9Christofer Åkerstenpublic final class ApiFactory implements StaticProvider {
8692fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9Christofer Åkersten    private ApiFactory() { }
8792fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9Christofer Åkersten
880de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public static StaticProvider initialize(ApplicationInfo updatableInfo) {
8992fd9a9e07a33a01d12ef9c47f73b2c7193a5fd9Christofer Åkersten        ApiHelper.initialize(updatableInfo);
907153c26698069e4b3ed47d04120e188940a8b89dSungsoo Lim        return new ApiFactory();
91cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten    }
92cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten
93cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten    @Override
9435a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim    public MediaController2Provider createMediaController2(
95c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kim            Context context, MediaController2 instance, SessionToken2 token,
96c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kim            Executor executor, ControllerCallback callback) {
97c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kim        return new MediaController2Impl(context, instance, token, executor, callback);
9835a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim    }
9935a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim
10035a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim    @Override
101c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kim    public MediaBrowser2Provider createMediaBrowser2(Context context, MediaBrowser2 instance,
102c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kim            SessionToken2 token, Executor executor, BrowserCallback callback) {
103c21a36910245a441d60f5f3c053e3e1bdaa24d5eJaewan Kim        return new MediaBrowser2Impl(context, instance, token, executor, callback);
104735f3430f9cd1224a68e87b015baca0789debe22Jaewan Kim    }
105735f3430f9cd1224a68e87b015baca0789debe22Jaewan Kim
106735f3430f9cd1224a68e87b015baca0789debe22Jaewan Kim    @Override
107a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim    public MediaSession2Provider.CommandProvider createMediaSession2Command(
108d5b878d0cf0c987caf18be697a0e1637fb632d66Jaewan Kim            SessionCommand2 instance, int commandCode, String action, Bundle extra) {
10978e257713ebf4805647772f32fac433d2621405eSungsoo Lim        if (action == null && extra == null) {
11078e257713ebf4805647772f32fac433d2621405eSungsoo Lim            return new MediaSession2Impl.CommandImpl(instance, commandCode);
11178e257713ebf4805647772f32fac433d2621405eSungsoo Lim        }
11278e257713ebf4805647772f32fac433d2621405eSungsoo Lim        return new MediaSession2Impl.CommandImpl(instance, action, extra);
11378e257713ebf4805647772f32fac433d2621405eSungsoo Lim    }
11478e257713ebf4805647772f32fac433d2621405eSungsoo Lim
11578e257713ebf4805647772f32fac433d2621405eSungsoo Lim    @Override
116d5b878d0cf0c987caf18be697a0e1637fb632d66Jaewan Kim    public SessionCommand2 fromBundle_MediaSession2Command(Bundle command) {
1170de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return MediaSession2Impl.CommandImpl.fromBundle_impl(command);
11878e257713ebf4805647772f32fac433d2621405eSungsoo Lim    }
11978e257713ebf4805647772f32fac433d2621405eSungsoo Lim
12078e257713ebf4805647772f32fac433d2621405eSungsoo Lim    @Override
121a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim    public MediaSession2Provider.CommandGroupProvider createMediaSession2CommandGroup(
122d5b878d0cf0c987caf18be697a0e1637fb632d66Jaewan Kim            SessionCommandGroup2 instance, SessionCommandGroup2 other) {
1230de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new MediaSession2Impl.CommandGroupImpl(instance,
124a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim                (other == null) ? null : other.getProvider());
125a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim    }
126a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim
127a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim    @Override
128d5b878d0cf0c987caf18be697a0e1637fb632d66Jaewan Kim    public SessionCommandGroup2 fromBundle_MediaSession2CommandGroup(Bundle commands) {
1290de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return MediaSession2Impl.CommandGroupImpl.fromBundle_impl(commands);
130a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim    }
131a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim
132e6d6cf49eac07730406e51e4940f02e344648267Jaewan Kim    @Override
1336b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    public MediaSession2Provider.ControllerInfoProvider createMediaSession2ControllerInfo(
134a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim            Context context, ControllerInfo instance, int uid, int pid, String packageName,
135a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim            IInterface callback) {
136a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim        return new MediaSession2Impl.ControllerInfoImpl(context,
13798f280314350160874af3bc3fd660aa3e9a0fabeSungsoo Lim                instance, uid, pid, packageName, (IMediaController2) callback);
138a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim    }
139a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim
140a7df615bfd29af892861e334df8e793cc623aaf8Sungsoo Lim    @Override
1410de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public BuilderProvider createMediaSession2CommandButtonBuilder(
14281c1b87234bdab435259acd355ba2df4730da3ceJaewan Kim            MediaSession2.CommandButton.Builder instance) {
1430de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new MediaSession2Impl.CommandButtonImpl.BuilderImpl(instance);
1448a5018744ab11899483c12ca93b29be43c911fb0Jaewan Kim    }
1458a5018744ab11899483c12ca93b29be43c911fb0Jaewan Kim
146d0cff6b094c88bf857cfab80d733728f66ea212cChristofer Åkersten    public BuilderBaseProvider<MediaSession2, SessionCallback> createMediaSession2Builder(
147f82f720c00cf35a8f0f9a6135551ee47855dd6a0Sungsoo Lim            Context context, MediaSession2.Builder instance) {
148f82f720c00cf35a8f0f9a6135551ee47855dd6a0Sungsoo Lim        return new MediaSession2Impl.BuilderImpl(context, instance);
149d0cff6b094c88bf857cfab80d733728f66ea212cChristofer Åkersten    }
150d0cff6b094c88bf857cfab80d733728f66ea212cChristofer Åkersten
151e6d6cf49eac07730406e51e4940f02e344648267Jaewan Kim    @Override
1520de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public MediaSessionService2Provider createMediaSessionService2(MediaSessionService2 instance) {
15335a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim        return new MediaSessionService2Impl(instance);
15435a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim    }
15535a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim
15635a6aa31951fa0178efe7245fe09e628275c2200Jaewan Kim    @Override
1570de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public MediaNotificationProvider createMediaSessionService2MediaNotification(
1586b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kim            MediaNotification instance, int notificationId, Notification notification) {
1596b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kim        return new MediaSessionService2Impl.MediaNotificationImpl(
1600de7babb75683eba98af2db52101d262372235daChristofer Åkersten                instance, notificationId, notification);
1616b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kim    }
1626b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kim
1636b1c183e07a03e129df8a9ca4f26664d5866ce71Jaewan Kim    @Override
1640de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public MediaSessionService2Provider createMediaLibraryService2(MediaLibraryService2 instance) {
1655aec249a238ff2dcb9bb5bc0434b7a17fa96a035Jaewan Kim        return new MediaLibraryService2Impl(instance);
1665aec249a238ff2dcb9bb5bc0434b7a17fa96a035Jaewan Kim    }
1675aec249a238ff2dcb9bb5bc0434b7a17fa96a035Jaewan Kim
1685aec249a238ff2dcb9bb5bc0434b7a17fa96a035Jaewan Kim    @Override
169d0cff6b094c88bf857cfab80d733728f66ea212cChristofer Åkersten    public BuilderBaseProvider<MediaLibrarySession, MediaLibrarySessionCallback>
17081c1b87234bdab435259acd355ba2df4730da3ceJaewan Kim        createMediaLibraryService2Builder(MediaLibraryService2 service,
171f82f720c00cf35a8f0f9a6135551ee47855dd6a0Sungsoo Lim            MediaLibrarySession.Builder instance, Executor callbackExecutor,
172f82f720c00cf35a8f0f9a6135551ee47855dd6a0Sungsoo Lim            MediaLibrarySessionCallback callback) {
173f82f720c00cf35a8f0f9a6135551ee47855dd6a0Sungsoo Lim        return new MediaLibraryService2Impl.BuilderImpl(service, instance, callbackExecutor,
174d0cff6b094c88bf857cfab80d733728f66ea212cChristofer Åkersten                callback);
1752bb5626f2dda50ea42a2c686e4c280f72b34181bJaewan Kim    }
1762bb5626f2dda50ea42a2c686e4c280f72b34181bJaewan Kim
1772bb5626f2dda50ea42a2c686e4c280f72b34181bJaewan Kim    @Override
1780de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public LibraryRootProvider createMediaLibraryService2LibraryRoot(
179ddec9db69160943228ccb5b3d24917cd31ad7593Jaewan Kim            LibraryRoot instance, String rootId, Bundle extras) {
1800de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new LibraryRootImpl(instance, rootId, extras);
181ddec9db69160943228ccb5b3d24917cd31ad7593Jaewan Kim    }
182ddec9db69160943228ccb5b3d24917cd31ad7593Jaewan Kim
183ddec9db69160943228ccb5b3d24917cd31ad7593Jaewan Kim    @Override
1845135ac1345395dc5c2974f8e735dfb4eb2706d02Christofer Åkersten    public MediaControlView2Provider createMediaControlView2(MediaControlView2 instance,
1855135ac1345395dc5c2974f8e735dfb4eb2706d02Christofer Åkersten            ViewGroupProvider superProvider, ViewGroupProvider privateProvider,
1865135ac1345395dc5c2974f8e735dfb4eb2706d02Christofer Åkersten            @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
1875135ac1345395dc5c2974f8e735dfb4eb2706d02Christofer Åkersten        return new MediaControlView2Impl(instance, superProvider, privateProvider);
188cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten    }
189f58d11072313fa3322707113c9f97148177fcdefSungsoo Lim
190f58d11072313fa3322707113c9f97148177fcdefSungsoo Lim    @Override
191080b934e6da4c1e09c91e236f5d0705edbd6cb0cInsun Kang    public VideoView2Provider createVideoView2(
1925135ac1345395dc5c2974f8e735dfb4eb2706d02Christofer Åkersten            VideoView2 instance, ViewGroupProvider superProvider, ViewGroupProvider privateProvider,
193080b934e6da4c1e09c91e236f5d0705edbd6cb0cInsun Kang            @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
1945135ac1345395dc5c2974f8e735dfb4eb2706d02Christofer Åkersten        return new VideoView2Impl(instance, superProvider, privateProvider);
195f58d11072313fa3322707113c9f97148177fcdefSungsoo Lim    }
196dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kim
197dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kim    @Override
198dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kim    public SessionToken2Provider createSessionToken2(Context context, SessionToken2 instance,
1995830d047eda8c4b9401214b590efbf1b9e8a1622Jaewan Kim            String packageName, String serviceName, int uid) {
2005830d047eda8c4b9401214b590efbf1b9e8a1622Jaewan Kim        return new SessionToken2Impl(context, instance, packageName, serviceName, uid);
201dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kim    }
202dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kim
203dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kim    @Override
2040de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public SessionToken2 fromBundle_SessionToken2(Bundle bundle) {
2050de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return SessionToken2Impl.fromBundle_impl(bundle);
206dd4397861fd98aefae95e6d6036a96f499eaf8b1Jaewan Kim    }
2072bf325a54a6be66f5abb519b789167f7f13af401Jaewan Kim
2082bf325a54a6be66f5abb519b789167f7f13af401Jaewan Kim    @Override
2090de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public MediaItem2Provider.BuilderProvider createMediaItem2Builder(MediaItem2.Builder instance,
2100de7babb75683eba98af2db52101d262372235daChristofer Åkersten            int flags) {
2110de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new MediaItem2Impl.BuilderImpl(instance, flags);
212bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kim    }
213bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kim
214bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kim    @Override
2150de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public MediaItem2 fromBundle_MediaItem2(Bundle bundle) {
2160de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return MediaItem2Impl.fromBundle_impl(bundle);
217bf38c7537bf132d7ec0247897f75fdf8455e5dc7Jaewan Kim    }
2186b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim
2196b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    @Override
2200de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public VolumeProvider2Provider createVolumeProvider2(VolumeProvider2 instance, int controlType,
2210de7babb75683eba98af2db52101d262372235daChristofer Åkersten            int maxVolume, int currentVolume) {
2220de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new VolumeProvider2Impl(instance, controlType, maxVolume, currentVolume);
223a7a0502ec7cdd3582f35e0f8eb449d4d89d778e6Hyundo Moon    }
224a7a0502ec7cdd3582f35e0f8eb449d4d89d778e6Hyundo Moon
225a7a0502ec7cdd3582f35e0f8eb449d4d89d778e6Hyundo Moon    @Override
2260de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public MediaMetadata2 fromBundle_MediaMetadata2(Bundle bundle) {
2270de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return MediaMetadata2Impl.fromBundle_impl(bundle);
2286b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    }
2296b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim
2306b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    @Override
2316b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    public MediaMetadata2Provider.BuilderProvider createMediaMetadata2Builder(
2320de7babb75683eba98af2db52101d262372235daChristofer Åkersten            MediaMetadata2.Builder instance) {
2330de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new MediaMetadata2Impl.BuilderImpl(instance);
2346b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    }
2356b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim
2366b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    @Override
2376b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    public MediaMetadata2Provider.BuilderProvider createMediaMetadata2Builder(
2380de7babb75683eba98af2db52101d262372235daChristofer Åkersten            MediaMetadata2.Builder instance, MediaMetadata2 source) {
2390de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new MediaMetadata2Impl.BuilderImpl(instance, source);
2406b360d144c21914851bf6bfe418e6c3463eecf8cJaewan Kim    }
24124f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim
24224f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    @Override
2430de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public Rating2 fromBundle_Rating2(Bundle bundle) {
2440de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return Rating2Impl.fromBundle_impl(bundle);
24524f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    }
24624f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim
24724f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    @Override
2480de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public Rating2 newUnratedRating_Rating2(int ratingStyle) {
2490de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return Rating2Impl.newUnratedRating_impl(ratingStyle);
25024f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    }
25124f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim
25224f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    @Override
2530de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public Rating2 newHeartRating_Rating2(boolean hasHeart) {
2540de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return Rating2Impl.newHeartRating_impl(hasHeart);
25524f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    }
25624f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim
25724f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    @Override
2580de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public Rating2 newThumbRating_Rating2(boolean thumbIsUp) {
2590de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return Rating2Impl.newThumbRating_impl(thumbIsUp);
26024f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    }
26124f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim
26224f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    @Override
2630de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public Rating2 newStarRating_Rating2(int starRatingStyle, float starRating) {
2640de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return Rating2Impl.newStarRating_impl(starRatingStyle, starRating);
26524f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    }
26624f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim
26724f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    @Override
2680de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public Rating2 newPercentageRating_Rating2(float percent) {
2690de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return Rating2Impl.newPercentageRating_impl(percent);
27024f525c3c3e29ba2a9c6e12b75be757477112c47Jaewan Kim    }
271f9248adb5af4b8b4c35a21d8abcbecb653d2c205Jaewan Kim
272f9248adb5af4b8b4c35a21d8abcbecb653d2c205Jaewan Kim    @Override
2730de7babb75683eba98af2db52101d262372235daChristofer Åkersten    public MediaPlaylistAgentProvider createMediaPlaylistAgent(MediaPlaylistAgent instance) {
2740de7babb75683eba98af2db52101d262372235daChristofer Åkersten        return new MediaPlaylistAgentImpl(instance);
2755348b91dcfd87be1f9339f7765f778ad890fc8dcSungsoo Lim    }
276cae43346c0191b55efa421f32fb594d55b005728Christofer Åkersten}
277