blob: 14b23c8168f6f4802f52a956b3b9df8d2ffd9a10 [file] [log] [blame]
/*
* Copyright (C) 2017 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.annotation.Nullable;
import android.app.PendingIntent;
import android.content.Context;
import android.media.DataSourceDesc;
import android.media.MediaBrowser2;
import android.media.MediaBrowser2.BrowserCallback;
import android.media.MediaController2;
import android.media.MediaController2.ControllerCallback;
import android.media.MediaItem2;
import android.media.MediaLibraryService2;
import android.media.MediaLibraryService2.MediaLibrarySession;
import android.media.MediaLibraryService2.MediaLibrarySessionCallback;
import android.media.MediaMetadata2;
import android.media.MediaPlayerInterface;
import android.media.MediaSession2;
import android.media.MediaSession2.SessionCallback;
import android.media.MediaSessionService2;
import android.media.SessionPlayer2;
import android.media.SessionToken2;
import android.media.VolumeProvider;
import android.media.update.MediaLibraryService2Provider.MediaLibrarySessionProvider;
import android.media.update.MediaSession2Provider.ControllerInfoProvider;
import android.os.Bundle;
import android.os.IInterface;
import android.util.AttributeSet;
import android.widget.MediaControlView2;
import android.widget.VideoView2;
import java.util.concurrent.Executor;
/**
* Interface for connecting the public API to an updatable implementation.
*
* This interface provides access to constructors and static methods that are otherwise not directly
* accessible via an implementation object.
* @hide
*/
public interface StaticProvider {
MediaControlView2Provider createMediaControlView2(
MediaControlView2 instance, ViewProvider superProvider);
VideoView2Provider createVideoView2(
VideoView2 instance, ViewProvider superProvider,
@Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes);
MediaSession2Provider createMediaSession2(Context context, MediaSession2 instance,
MediaPlayerInterface player, String id, VolumeProvider volumeProvider, int ratingType,
PendingIntent sessionActivity, Executor executor, SessionCallback callback);
ControllerInfoProvider createMediaSession2ControllerInfoProvider(Context context,
MediaSession2.ControllerInfo instance, int uid, int pid,
String packageName, IInterface callback);
MediaController2Provider createMediaController2(Context context, MediaController2 instance,
SessionToken2 token, Executor executor, ControllerCallback callback);
MediaBrowser2Provider createMediaBrowser2(Context context, MediaBrowser2 instance,
SessionToken2 token, Executor executor, BrowserCallback callback);
MediaSessionService2Provider createMediaSessionService2(MediaSessionService2 instance);
MediaSessionService2Provider createMediaLibraryService2(MediaLibraryService2 instance);
MediaLibrarySessionProvider createMediaLibraryService2MediaLibrarySession(Context context,
MediaLibrarySession instance, MediaPlayerInterface player, String id,
VolumeProvider volumeProvider, int ratingType, PendingIntent sessionActivity,
Executor executor, MediaLibrarySessionCallback callback);
SessionToken2Provider createSessionToken2(Context context, SessionToken2 instance,
String packageName, String serviceName, int uid);
SessionToken2 SessionToken2_fromBundle(Context context, Bundle bundle);
SessionPlayer2Provider createSessionPlayer2(Context context, SessionPlayer2 instance);
MediaItem2Provider createMediaItem2Provider(Context context, MediaItem2 mediaItem2,
String mediaId, DataSourceDesc dsd, MediaMetadata2 metadata, int flags);
MediaItem2 fromBundle_MediaItem2(Context context, Bundle bundle);
}