Add build rule for updatable media 1.0 APIs

Bug: 119539849, Bug: 119539141
Test: build and boot,
    atest CtsMediaTestCases:android.media.cts.MediaSessionTest,
    atest CtsMediaTestCases:android.media.cts.MediaControllerTest
Change-Id: Iaf07842de5aa00da5987b993b77960efa9a602bf
This commit is contained in:
Sungsoo Lim
2019-01-23 13:17:53 +09:00
parent f86a56c591
commit bb3b401d42
26 changed files with 105 additions and 87 deletions

View File

@@ -50,6 +50,7 @@ java_defaults {
":framework-javastream-protos",
// TODO: Remove this after introduce corresponding srcs under media/java/
":media1-srcs",
":mediasession2-srcs",
"core/java/android/accessibilityservice/IAccessibilityServiceConnection.aidl",
@@ -503,11 +504,7 @@ java_defaults {
"media/java/android/media/session/ICallback.aidl",
"media/java/android/media/session/IOnMediaKeyListener.aidl",
"media/java/android/media/session/IOnVolumeKeyLongPressListener.aidl",
"media/java/android/media/session/ISession.aidl",
"media/java/android/media/session/ISession2TokensListener.aidl",
"media/java/android/media/session/ISessionCallback.aidl",
"media/java/android/media/session/ISessionController.aidl",
"media/java/android/media/session/ISessionControllerCallback.aidl",
"media/java/android/media/session/ISessionManager.aidl",
"media/java/android/media/soundtrigger/ISoundTriggerDetectionService.aidl",
"media/java/android/media/soundtrigger/ISoundTriggerDetectionServiceClient.aidl",
@@ -1271,6 +1268,7 @@ stubs_defaults {
":non_openjdk_javadoc_files",
":android_icu4j_src_files_for_docs",
":conscrypt_public_api_files",
":media1-stubs-srcs",
":mediasession2-stubs-srcs",
":mediaplayer2-srcs",
"test-mock/src/**/*.java",
@@ -1334,6 +1332,7 @@ stubs_defaults {
":non_openjdk_javadoc_files",
":android_icu4j_src_files_for_docs",
":conscrypt_public_api_files",
":media1-stubs-srcs",
":mediasession2-stubs-srcs",
":mediaplayer2-srcs",
],
@@ -1790,6 +1789,7 @@ filegroup {
"core/java/android/annotation/RequiresPermission.java",
"core/java/android/annotation/SdkConstant.java",
"core/java/android/annotation/StringDef.java",
"core/java/android/annotation/SystemApi.java",
"core/java/android/annotation/TestApi.java",
"core/java/android/annotation/UnsupportedAppUsage.java",
"core/java/com/android/internal/annotations/GuardedBy.java",

View File

@@ -1,17 +1,65 @@
java_library {
name: "media1",
name: "updatable-media",
srcs: [
":media1-srcs",
":mediasession2-srcs",
":mediaplayer2-srcs",
":framework-media-annotation-srcs",
],
static_libs: [
"mediaplayer2-protos",
],
aidl: {
export_include_dirs: [
"apex/java",
],
include_dirs: [
"frameworks/base/core/java",
"frameworks/base/media/java",
],
},
installable: true,
// Make sure that the implementaion only relies on SDK or system APIs.
sdk_version: "system_current",
}
filegroup {
name: "media1-srcs",
srcs: [
"java/android/media/session/MediaSessionProviderService.java",
"apex/java/android/media/MediaMetadata.java",
"apex/java/android/media/MediaParceledListSlice.java",
"apex/java/android/media/VolumeProvider.java",
"apex/java/android/media/session/ControllerCallbackLink.java",
"apex/java/android/media/session/ControllerLink.java",
"apex/java/android/media/session/ISession.aidl",
"apex/java/android/media/session/ISessionCallback.aidl",
"apex/java/android/media/session/ISessionController.aidl",
"apex/java/android/media/session/ISessionControllerCallback.aidl",
"apex/java/android/media/session/MediaController.java",
"apex/java/android/media/session/MediaSessionEngine.java",
"apex/java/android/media/session/MediaSessionProviderService.java",
"apex/java/android/media/session/PlaybackState.java",
"apex/java/android/media/session/SessionCallbackLink.java",
"apex/java/android/media/session/SessionLink.java",
],
}
filegroup {
name: "media1-stubs-srcs",
srcs: [
":media1-srcs",
],
exclude_srcs: [
"apex/java/android/media/session/ISession.aidl",
"apex/java/android/media/session/ISessionCallback.aidl",
"apex/java/android/media/session/ISessionController.aidl",
"apex/java/android/media/session/ISessionControllerCallback.aidl",
],
}
@@ -46,35 +94,6 @@ filegroup {
],
}
java_library {
name: "updatable-media",
srcs: [
":mediasession2-srcs",
":mediaplayer2-srcs",
":framework-media-annotation-srcs",
],
static_libs: [
"mediaplayer2-protos",
],
aidl: {
export_include_dirs: [
"apex/java",
],
include_dirs: [
"frameworks/base/core/java",
],
},
installable: true,
// Make sure that the implementaion only relies on SDK or system APIs.
sdk_version: "system_current",
}
filegroup {
name: "mediaplayer2-srcs",
srcs: [

View File

@@ -250,16 +250,16 @@ public final class MediaMetadata implements Parcelable {
* second line for media described by this metadata this should be preferred
* to other fields if present.
*/
public static final String METADATA_KEY_DISPLAY_SUBTITLE
= "android.media.metadata.DISPLAY_SUBTITLE";
public static final String METADATA_KEY_DISPLAY_SUBTITLE =
"android.media.metadata.DISPLAY_SUBTITLE";
/**
* A description that is suitable for display to the user. When displaying
* more information for media described by this metadata this should be
* preferred to other fields if present.
*/
public static final String METADATA_KEY_DISPLAY_DESCRIPTION
= "android.media.metadata.DISPLAY_DESCRIPTION";
public static final String METADATA_KEY_DISPLAY_DESCRIPTION =
"android.media.metadata.DISPLAY_DESCRIPTION";
/**
* An icon or thumbnail that is suitable for display to the user. When
@@ -270,8 +270,8 @@ public final class MediaMetadata implements Parcelable {
* if it is too large. For higher resolution artwork
* {@link #METADATA_KEY_DISPLAY_ICON_URI} should be used instead.
*/
public static final String METADATA_KEY_DISPLAY_ICON
= "android.media.metadata.DISPLAY_ICON";
public static final String METADATA_KEY_DISPLAY_ICON =
"android.media.metadata.DISPLAY_ICON";
/**
* A Uri formatted String for an icon or thumbnail that is suitable for
@@ -285,8 +285,8 @@ public final class MediaMetadata implements Parcelable {
* {@link ContentResolver#EXTRA_SIZE} for retrieving scaled artwork through
* {@link ContentResolver#openTypedAssetFileDescriptor(Uri, String, Bundle)}.
*/
public static final String METADATA_KEY_DISPLAY_ICON_URI
= "android.media.metadata.DISPLAY_ICON_URI";
public static final String METADATA_KEY_DISPLAY_ICON_URI =
"android.media.metadata.DISPLAY_ICON_URI";
/**
* A String key for identifying the content. This value is specific to the
@@ -320,8 +320,8 @@ public final class MediaMetadata implements Parcelable {
* <li>{@link MediaDescription#BT_FOLDER_TYPE_YEARS}</li>
* </ul>
*/
public static final String METADATA_KEY_BT_FOLDER_TYPE
= "android.media.metadata.BT_FOLDER_TYPE";
public static final String METADATA_KEY_BT_FOLDER_TYPE =
"android.media.metadata.BT_FOLDER_TYPE";
private static final @TextKey String[] PREFERRED_DESCRIPTION_ORDER = {
METADATA_KEY_TITLE,

View File

@@ -158,7 +158,10 @@ public abstract class VolumeProvider {
* @hide
*/
@SystemApi
public static abstract class Callback {
public abstract static class Callback {
/**
* Called when volume changed.
*/
public abstract void onVolumeChanged(VolumeProvider volumeProvider);
}
}

View File

@@ -206,6 +206,7 @@ public final class MediaController {
} catch (RuntimeException e) {
Log.wtf(TAG, "Error calling adjustVolumeBy", e);
}
break;
}
case KeyEvent.ACTION_UP: {
@@ -319,7 +320,7 @@ public final class MediaController {
*
* @return The current set of flags for the session.
*/
public @MediaSession.SessionFlags long getFlags() {
public long getFlags() {
try {
return mSessionBinder.getFlags();
} catch (RuntimeException e) {
@@ -582,7 +583,7 @@ public final class MediaController {
return null;
}
private final void postMessage(int what, Object obj, Bundle data) {
private void postMessage(int what, Object obj, Bundle data) {
synchronized (mLock) {
for (int i = mCallbacks.size() - 1; i >= 0; i--) {
mCallbacks.get(i).post(what, obj, data);
@@ -594,7 +595,7 @@ public final class MediaController {
* Callback for receiving updates from the session. A Callback can be
* registered using {@link #registerCallback}.
*/
public static abstract class Callback {
public abstract static class Callback {
/**
* Override to handle the session being destroyed. The session is no
* longer valid after this call and calls to it will be ignored.
@@ -1191,11 +1192,11 @@ public final class MediaController {
}
}
private final static class MessageHandler extends Handler {
private static final class MessageHandler extends Handler {
private final MediaController.Callback mCallback;
private boolean mRegistered = false;
public MessageHandler(Looper looper, MediaController.Callback cb) {
MessageHandler(Looper looper, MediaController.Callback cb) {
super(looper);
mCallback = cb;
}

View File

@@ -53,7 +53,7 @@ import java.util.Objects;
*/
@SystemApi
public final class MediaSessionEngine implements AutoCloseable {
private static final String TAG = MediaSession.TAG;
private static final String TAG = "MediaSession";
private final Object mLock = new Object();
private final int mMaxBitmapSize;
@@ -172,7 +172,7 @@ public final class MediaSessionEngine implements AutoCloseable {
*
* @param flags The flags to set for this session.
*/
public void setFlags(@MediaSession.SessionFlags int flags) {
public void setFlags(int flags) {
try {
mSessionLink.setFlags(flags);
} catch (RuntimeException e) {
@@ -409,7 +409,7 @@ public final class MediaSessionEngine implements AutoCloseable {
* <li>{@link Rating#RATING_THUMB_UP_DOWN}</li>
* </ul>
*/
public void setRatingType(@Rating.Style int type) {
public void setRatingType(int type) {
try {
mSessionLink.setRatingType(type);
} catch (RuntimeException e) {

View File

@@ -41,7 +41,7 @@ public final class PlaybackState implements Parcelable {
/**
* @hide
*/
@LongDef(flag=true, value={ACTION_STOP, ACTION_PAUSE, ACTION_PLAY, ACTION_REWIND,
@LongDef(flag = true, value = {ACTION_STOP, ACTION_PAUSE, ACTION_PLAY, ACTION_REWIND,
ACTION_SKIP_TO_PREVIOUS, ACTION_SKIP_TO_NEXT, ACTION_FAST_FORWARD, ACTION_SET_RATING,
ACTION_SEEK_TO, ACTION_PLAY_PAUSE, ACTION_PLAY_FROM_MEDIA_ID, ACTION_PLAY_FROM_SEARCH,
ACTION_SKIP_TO_QUEUE_ITEM, ACTION_PLAY_FROM_URI, ACTION_PREPARE,
@@ -191,42 +191,42 @@ public final class PlaybackState implements Parcelable {
* @see Builder#setState(int, long, float)
* @see Builder#setState(int, long, float, long)
*/
public final static int STATE_NONE = 0;
public static final int STATE_NONE = 0;
/**
* State indicating this item is currently stopped.
*
* @see Builder#setState
*/
public final static int STATE_STOPPED = 1;
public static final int STATE_STOPPED = 1;
/**
* State indicating this item is currently paused.
*
* @see Builder#setState
*/
public final static int STATE_PAUSED = 2;
public static final int STATE_PAUSED = 2;
/**
* State indicating this item is currently playing.
*
* @see Builder#setState
*/
public final static int STATE_PLAYING = 3;
public static final int STATE_PLAYING = 3;
/**
* State indicating this item is currently fast forwarding.
*
* @see Builder#setState
*/
public final static int STATE_FAST_FORWARDING = 4;
public static final int STATE_FAST_FORWARDING = 4;
/**
* State indicating this item is currently rewinding.
*
* @see Builder#setState
*/
public final static int STATE_REWINDING = 5;
public static final int STATE_REWINDING = 5;
/**
* State indicating this item is currently buffering and will begin playing
@@ -234,7 +234,7 @@ public final class PlaybackState implements Parcelable {
*
* @see Builder#setState
*/
public final static int STATE_BUFFERING = 6;
public static final int STATE_BUFFERING = 6;
/**
* State indicating this item is currently in an error state. The error
@@ -242,7 +242,7 @@ public final class PlaybackState implements Parcelable {
*
* @see Builder#setState
*/
public final static int STATE_ERROR = 7;
public static final int STATE_ERROR = 7;
/**
* State indicating the class doing playback is currently connecting to a
@@ -252,21 +252,21 @@ public final class PlaybackState implements Parcelable {
*
* @see Builder#setState
*/
public final static int STATE_CONNECTING = 8;
public static final int STATE_CONNECTING = 8;
/**
* State indicating the player is currently skipping to the previous item.
*
* @see Builder#setState
*/
public final static int STATE_SKIPPING_TO_PREVIOUS = 9;
public static final int STATE_SKIPPING_TO_PREVIOUS = 9;
/**
* State indicating the player is currently skipping to the next item.
*
* @see Builder#setState
*/
public final static int STATE_SKIPPING_TO_NEXT = 10;
public static final int STATE_SKIPPING_TO_NEXT = 10;
/**
* State indicating the player is currently skipping to a specific item in
@@ -274,12 +274,12 @@ public final class PlaybackState implements Parcelable {
*
* @see Builder#setState
*/
public final static int STATE_SKIPPING_TO_QUEUE_ITEM = 11;
public static final int STATE_SKIPPING_TO_QUEUE_ITEM = 11;
/**
* Use this value for the position to indicate the position is not known.
*/
public final static long PLAYBACK_POSITION_UNKNOWN = -1;
public static final long PLAYBACK_POSITION_UNKNOWN = -1;
private final int mState;
private final long mPosition;
@@ -534,19 +534,19 @@ public final class PlaybackState implements Parcelable {
return 0;
}
public static final Parcelable.Creator<PlaybackState.CustomAction> CREATOR
= new Parcelable.Creator<PlaybackState.CustomAction>() {
public static final Parcelable.Creator<PlaybackState.CustomAction> CREATOR =
new Parcelable.Creator<PlaybackState.CustomAction>() {
@Override
public PlaybackState.CustomAction createFromParcel(Parcel p) {
return new PlaybackState.CustomAction(p);
}
@Override
public PlaybackState.CustomAction createFromParcel(Parcel p) {
return new PlaybackState.CustomAction(p);
}
@Override
public PlaybackState.CustomAction[] newArray(int size) {
return new PlaybackState.CustomAction[size];
}
};
@Override
public PlaybackState.CustomAction[] newArray(int size) {
return new PlaybackState.CustomAction[size];
}
};
/**
* Returns the action of the {@link CustomAction}.
@@ -588,10 +588,7 @@ public final class PlaybackState implements Parcelable {
@Override
public String toString() {
return "Action:" +
"mName='" + mName +
", mIcon=" + mIcon +
", mExtras=" + mExtras;
return "Action:" + "mName='" + mName + ", mIcon=" + mIcon + ", mExtras=" + mExtras;
}
/**

View File

@@ -23,8 +23,6 @@ import android.app.PendingIntent;
import android.media.AudioAttributes;
import android.media.MediaMetadata;
import android.media.MediaParceledListSlice;
import android.media.Rating;
import android.media.VolumeProvider;
import android.media.session.MediaSession.QueueItem;
import android.os.Bundle;
import android.os.IBinder;
@@ -234,7 +232,7 @@ public final class SessionLink implements Parcelable {
*
* @param type the rating type.
*/
void setRatingType(@Rating.Style int type) {
void setRatingType(int type) {
try {
mISession.setRatingType(type);
} catch (RemoteException e) {
@@ -261,7 +259,7 @@ public final class SessionLink implements Parcelable {
* @param control the volume control type
* @param max the max volume
*/
void setPlaybackToRemote(@VolumeProvider.ControlType int control, int max) {
void setPlaybackToRemote(int control, int max) {
try {
mISession.setPlaybackToRemote(control, max);
} catch (RemoteException e) {