Loading api/current.txt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -26359,6 +26359,7 @@ package android.media { method public boolean containsKey(String); method public boolean containsKey(String); method public int describeContents(); method public int describeContents(); method public android.graphics.Bitmap getBitmap(String); method public android.graphics.Bitmap getBitmap(String); method @IntRange(from=0) public int getBitmapDimensionLimit(); method @NonNull public android.media.MediaDescription getDescription(); method @NonNull public android.media.MediaDescription getDescription(); method public long getLong(String); method public long getLong(String); method public android.media.Rating getRating(String); method public android.media.Rating getRating(String); Loading Loading @@ -26408,6 +26409,7 @@ package android.media { method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method @NonNull public android.media.MediaMetadata.Builder setBitmapDimensionLimit(int); } } @Deprecated public abstract class MediaMetadataEditor { @Deprecated public abstract class MediaMetadataEditor { api/module-lib-current.txt +0 −4 Original line number Original line Diff line number Diff line Loading @@ -53,10 +53,6 @@ package android.media { field public static final int FLAG_FROM_KEY = 4096; // 0x1000 field public static final int FLAG_FROM_KEY = 4096; // 0x1000 } } public static final class MediaMetadata.Builder { ctor public MediaMetadata.Builder(@NonNull android.media.MediaMetadata, @IntRange(from=1) int); } public final class MediaParceledListSlice<T extends android.os.Parcelable> implements android.os.Parcelable { public final class MediaParceledListSlice<T extends android.os.Parcelable> implements android.os.Parcelable { ctor public MediaParceledListSlice(@NonNull java.util.List<T>); ctor public MediaParceledListSlice(@NonNull java.util.List<T>); method public int describeContents(); method public int describeContents(); Loading media/java/android/media/MediaMetadata.java +60 −34 Original line number Original line Diff line number Diff line Loading @@ -18,13 +18,13 @@ package android.media; import android.annotation.IntRange; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.StringDef; import android.annotation.StringDef; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.content.ContentResolver; import android.content.ContentResolver; import android.graphics.Bitmap; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory; import android.media.browse.MediaBrowser; import android.media.browse.MediaBrowser; import android.media.session.MediaController; import android.media.session.MediaController; import android.media.session.MediaSession; import android.net.Uri; import android.net.Uri; import android.os.Bundle; import android.os.Bundle; import android.os.Parcel; import android.os.Parcel; Loading Loading @@ -417,14 +417,17 @@ public final class MediaMetadata implements Parcelable { } } private final Bundle mBundle; private final Bundle mBundle; private final int mBitmapDimensionLimit; private MediaDescription mDescription; private MediaDescription mDescription; private MediaMetadata(Bundle bundle) { private MediaMetadata(Bundle bundle, int bitmapDimensionLimit) { mBundle = new Bundle(bundle); mBundle = new Bundle(bundle); mBitmapDimensionLimit = bitmapDimensionLimit; } } private MediaMetadata(Parcel in) { private MediaMetadata(Parcel in) { mBundle = in.readBundle(); mBundle = in.readBundle(); mBitmapDimensionLimit = Math.max(in.readInt(), 0); } } /** /** Loading Loading @@ -513,6 +516,22 @@ public final class MediaMetadata implements Parcelable { return bmp; return bmp; } } /** * Gets the width/height limit (in pixels) for the bitmaps when this metadata was created. * This method returns a positive value or zero. * <p> * If it returns a positive value, then all the bitmaps in this metadata has width/height * not greater than this limit. Bitmaps may have been scaled down according to the limit. * <p> * If it returns zero, then no scaling down was applied to the bitmaps when this metadata * was created. * * @see Builder#setBitmapDimensionLimit(int) */ public @IntRange(from = 0) int getBitmapDimensionLimit() { return mBitmapDimensionLimit; } @Override @Override public int describeContents() { public int describeContents() { return 0; return 0; Loading @@ -521,6 +540,7 @@ public final class MediaMetadata implements Parcelable { @Override @Override public void writeToParcel(Parcel dest, int flags) { public void writeToParcel(Parcel dest, int flags) { dest.writeBundle(mBundle); dest.writeBundle(mBundle); dest.writeInt(mBitmapDimensionLimit); } } /** /** Loading Loading @@ -718,6 +738,7 @@ public final class MediaMetadata implements Parcelable { */ */ public static final class Builder { public static final class Builder { private final Bundle mBundle; private final Bundle mBundle; private int mBitmapDimensionLimit; /** /** * Create an empty Builder. Any field that should be included in the * Create an empty Builder. Any field that should be included in the Loading @@ -736,30 +757,7 @@ public final class MediaMetadata implements Parcelable { */ */ public Builder(MediaMetadata source) { public Builder(MediaMetadata source) { mBundle = new Bundle(source.mBundle); mBundle = new Bundle(source.mBundle); } mBitmapDimensionLimit = source.mBitmapDimensionLimit; /** * Create a Builder using a {@link MediaMetadata} instance to set * initial values, but replace bitmaps with a scaled down copy if their width (or height) * is larger than maxBitmapSize. * * @param source The original metadata to copy. * @param maxBitmapSize The maximum height/width for bitmaps contained * in the metadata. * @hide */ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public Builder(@NonNull MediaMetadata source, @IntRange(from = 1) int maxBitmapSize) { this(source); for (String key : mBundle.keySet()) { Object value = mBundle.get(key); if (value != null && value instanceof Bitmap) { Bitmap bmp = (Bitmap) value; if (bmp.getHeight() > maxBitmapSize || bmp.getWidth() > maxBitmapSize) { putBitmap(key, scaleBitmap(bmp, maxBitmapSize)); } } } } } /** /** Loading Loading @@ -902,9 +900,9 @@ public final class MediaMetadata implements Parcelable { * <li>{@link #METADATA_KEY_DISPLAY_ICON}</li> * <li>{@link #METADATA_KEY_DISPLAY_ICON}</li> * </ul> * </ul> * <p> * <p> * Large bitmaps may be scaled down by the system when * Large bitmaps may be scaled down by the system with * {@link android.media.session.MediaSession#setMetadata} is called. * {@link Builder#setBitmapDimensionLimit(int)} when {@link MediaSession#setMetadata} * To pass full resolution images {@link Uri Uris} should be used with * is called. To pass full resolution images {@link Uri Uris} should be used with * {@link #putString}. * {@link #putString}. * * * @param key The key for referencing this value * @param key The key for referencing this value Loading @@ -922,19 +920,47 @@ public final class MediaMetadata implements Parcelable { return this; return this; } } /** * Sets the maximum width/height (in pixels) for the bitmaps in the metadata. * Bitmaps will be replaced with scaled down copies if their width (or height) is * larger than {@code bitmapDimensionLimit}. * <p> * In order to unset the limit, pass zero as {@code bitmapDimensionLimit}. * * @param bitmapDimensionLimit The maximum width/height (in pixels) for bitmaps * contained in the metadata. Pass {@code 0} to unset the limit. */ @NonNull public Builder setBitmapDimensionLimit(int bitmapDimensionLimit) { mBitmapDimensionLimit = Math.max(bitmapDimensionLimit, 0); return this; } /** /** * Creates a {@link MediaMetadata} instance with the specified fields. * Creates a {@link MediaMetadata} instance with the specified fields. * * * @return The new MediaMetadata instance * @return The new MediaMetadata instance */ */ public MediaMetadata build() { public MediaMetadata build() { return new MediaMetadata(mBundle); if (mBitmapDimensionLimit > 0) { for (String key : mBundle.keySet()) { Object value = mBundle.get(key); if (value instanceof Bitmap) { Bitmap bmp = (Bitmap) value; if (bmp.getHeight() > mBitmapDimensionLimit || bmp.getWidth() > mBitmapDimensionLimit) { putBitmap(key, scaleBitmap(bmp, mBitmapDimensionLimit)); } } } } return new MediaMetadata(mBundle, mBitmapDimensionLimit); } } private Bitmap scaleBitmap(Bitmap bmp, int maxSize) { private Bitmap scaleBitmap(Bitmap bmp, int maxDimension) { float maxSizeF = maxSize; float maxDimensionF = maxDimension; float widthScale = maxSizeF / bmp.getWidth(); float widthScale = maxDimensionF / bmp.getWidth(); float heightScale = maxSizeF / bmp.getHeight(); float heightScale = maxDimensionF / bmp.getHeight(); float scale = Math.min(widthScale, heightScale); float scale = Math.min(widthScale, heightScale); int height = (int) (bmp.getHeight() * scale); int height = (int) (bmp.getHeight() * scale); int width = (int) (bmp.getWidth() * scale); int width = (int) (bmp.getWidth() * scale); Loading media/java/android/media/session/MediaSession.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -464,7 +464,9 @@ public final class MediaSession { int fields = 0; int fields = 0; MediaDescription description = null; MediaDescription description = null; if (metadata != null) { if (metadata != null) { metadata = (new MediaMetadata.Builder(metadata, mMaxBitmapSize)).build(); metadata = new MediaMetadata.Builder(metadata) .setBitmapDimensionLimit(mMaxBitmapSize) .build(); if (metadata.containsKey(MediaMetadata.METADATA_KEY_DURATION)) { if (metadata.containsKey(MediaMetadata.METADATA_KEY_DURATION)) { duration = metadata.getLong(MediaMetadata.METADATA_KEY_DURATION); duration = metadata.getLong(MediaMetadata.METADATA_KEY_DURATION); } } Loading non-updatable-api/current.txt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -26317,6 +26317,7 @@ package android.media { method public boolean containsKey(String); method public boolean containsKey(String); method public int describeContents(); method public int describeContents(); method public android.graphics.Bitmap getBitmap(String); method public android.graphics.Bitmap getBitmap(String); method @IntRange(from=0) public int getBitmapDimensionLimit(); method @NonNull public android.media.MediaDescription getDescription(); method @NonNull public android.media.MediaDescription getDescription(); method public long getLong(String); method public long getLong(String); method public android.media.Rating getRating(String); method public android.media.Rating getRating(String); Loading Loading @@ -26366,6 +26367,7 @@ package android.media { method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method @NonNull public android.media.MediaMetadata.Builder setBitmapDimensionLimit(int); } } @Deprecated public abstract class MediaMetadataEditor { @Deprecated public abstract class MediaMetadataEditor { Loading
api/current.txt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -26359,6 +26359,7 @@ package android.media { method public boolean containsKey(String); method public boolean containsKey(String); method public int describeContents(); method public int describeContents(); method public android.graphics.Bitmap getBitmap(String); method public android.graphics.Bitmap getBitmap(String); method @IntRange(from=0) public int getBitmapDimensionLimit(); method @NonNull public android.media.MediaDescription getDescription(); method @NonNull public android.media.MediaDescription getDescription(); method public long getLong(String); method public long getLong(String); method public android.media.Rating getRating(String); method public android.media.Rating getRating(String); Loading Loading @@ -26408,6 +26409,7 @@ package android.media { method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method @NonNull public android.media.MediaMetadata.Builder setBitmapDimensionLimit(int); } } @Deprecated public abstract class MediaMetadataEditor { @Deprecated public abstract class MediaMetadataEditor {
api/module-lib-current.txt +0 −4 Original line number Original line Diff line number Diff line Loading @@ -53,10 +53,6 @@ package android.media { field public static final int FLAG_FROM_KEY = 4096; // 0x1000 field public static final int FLAG_FROM_KEY = 4096; // 0x1000 } } public static final class MediaMetadata.Builder { ctor public MediaMetadata.Builder(@NonNull android.media.MediaMetadata, @IntRange(from=1) int); } public final class MediaParceledListSlice<T extends android.os.Parcelable> implements android.os.Parcelable { public final class MediaParceledListSlice<T extends android.os.Parcelable> implements android.os.Parcelable { ctor public MediaParceledListSlice(@NonNull java.util.List<T>); ctor public MediaParceledListSlice(@NonNull java.util.List<T>); method public int describeContents(); method public int describeContents(); Loading
media/java/android/media/MediaMetadata.java +60 −34 Original line number Original line Diff line number Diff line Loading @@ -18,13 +18,13 @@ package android.media; import android.annotation.IntRange; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.StringDef; import android.annotation.StringDef; import android.annotation.SystemApi; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.content.ContentResolver; import android.content.ContentResolver; import android.graphics.Bitmap; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.BitmapFactory; import android.media.browse.MediaBrowser; import android.media.browse.MediaBrowser; import android.media.session.MediaController; import android.media.session.MediaController; import android.media.session.MediaSession; import android.net.Uri; import android.net.Uri; import android.os.Bundle; import android.os.Bundle; import android.os.Parcel; import android.os.Parcel; Loading Loading @@ -417,14 +417,17 @@ public final class MediaMetadata implements Parcelable { } } private final Bundle mBundle; private final Bundle mBundle; private final int mBitmapDimensionLimit; private MediaDescription mDescription; private MediaDescription mDescription; private MediaMetadata(Bundle bundle) { private MediaMetadata(Bundle bundle, int bitmapDimensionLimit) { mBundle = new Bundle(bundle); mBundle = new Bundle(bundle); mBitmapDimensionLimit = bitmapDimensionLimit; } } private MediaMetadata(Parcel in) { private MediaMetadata(Parcel in) { mBundle = in.readBundle(); mBundle = in.readBundle(); mBitmapDimensionLimit = Math.max(in.readInt(), 0); } } /** /** Loading Loading @@ -513,6 +516,22 @@ public final class MediaMetadata implements Parcelable { return bmp; return bmp; } } /** * Gets the width/height limit (in pixels) for the bitmaps when this metadata was created. * This method returns a positive value or zero. * <p> * If it returns a positive value, then all the bitmaps in this metadata has width/height * not greater than this limit. Bitmaps may have been scaled down according to the limit. * <p> * If it returns zero, then no scaling down was applied to the bitmaps when this metadata * was created. * * @see Builder#setBitmapDimensionLimit(int) */ public @IntRange(from = 0) int getBitmapDimensionLimit() { return mBitmapDimensionLimit; } @Override @Override public int describeContents() { public int describeContents() { return 0; return 0; Loading @@ -521,6 +540,7 @@ public final class MediaMetadata implements Parcelable { @Override @Override public void writeToParcel(Parcel dest, int flags) { public void writeToParcel(Parcel dest, int flags) { dest.writeBundle(mBundle); dest.writeBundle(mBundle); dest.writeInt(mBitmapDimensionLimit); } } /** /** Loading Loading @@ -718,6 +738,7 @@ public final class MediaMetadata implements Parcelable { */ */ public static final class Builder { public static final class Builder { private final Bundle mBundle; private final Bundle mBundle; private int mBitmapDimensionLimit; /** /** * Create an empty Builder. Any field that should be included in the * Create an empty Builder. Any field that should be included in the Loading @@ -736,30 +757,7 @@ public final class MediaMetadata implements Parcelable { */ */ public Builder(MediaMetadata source) { public Builder(MediaMetadata source) { mBundle = new Bundle(source.mBundle); mBundle = new Bundle(source.mBundle); } mBitmapDimensionLimit = source.mBitmapDimensionLimit; /** * Create a Builder using a {@link MediaMetadata} instance to set * initial values, but replace bitmaps with a scaled down copy if their width (or height) * is larger than maxBitmapSize. * * @param source The original metadata to copy. * @param maxBitmapSize The maximum height/width for bitmaps contained * in the metadata. * @hide */ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public Builder(@NonNull MediaMetadata source, @IntRange(from = 1) int maxBitmapSize) { this(source); for (String key : mBundle.keySet()) { Object value = mBundle.get(key); if (value != null && value instanceof Bitmap) { Bitmap bmp = (Bitmap) value; if (bmp.getHeight() > maxBitmapSize || bmp.getWidth() > maxBitmapSize) { putBitmap(key, scaleBitmap(bmp, maxBitmapSize)); } } } } } /** /** Loading Loading @@ -902,9 +900,9 @@ public final class MediaMetadata implements Parcelable { * <li>{@link #METADATA_KEY_DISPLAY_ICON}</li> * <li>{@link #METADATA_KEY_DISPLAY_ICON}</li> * </ul> * </ul> * <p> * <p> * Large bitmaps may be scaled down by the system when * Large bitmaps may be scaled down by the system with * {@link android.media.session.MediaSession#setMetadata} is called. * {@link Builder#setBitmapDimensionLimit(int)} when {@link MediaSession#setMetadata} * To pass full resolution images {@link Uri Uris} should be used with * is called. To pass full resolution images {@link Uri Uris} should be used with * {@link #putString}. * {@link #putString}. * * * @param key The key for referencing this value * @param key The key for referencing this value Loading @@ -922,19 +920,47 @@ public final class MediaMetadata implements Parcelable { return this; return this; } } /** * Sets the maximum width/height (in pixels) for the bitmaps in the metadata. * Bitmaps will be replaced with scaled down copies if their width (or height) is * larger than {@code bitmapDimensionLimit}. * <p> * In order to unset the limit, pass zero as {@code bitmapDimensionLimit}. * * @param bitmapDimensionLimit The maximum width/height (in pixels) for bitmaps * contained in the metadata. Pass {@code 0} to unset the limit. */ @NonNull public Builder setBitmapDimensionLimit(int bitmapDimensionLimit) { mBitmapDimensionLimit = Math.max(bitmapDimensionLimit, 0); return this; } /** /** * Creates a {@link MediaMetadata} instance with the specified fields. * Creates a {@link MediaMetadata} instance with the specified fields. * * * @return The new MediaMetadata instance * @return The new MediaMetadata instance */ */ public MediaMetadata build() { public MediaMetadata build() { return new MediaMetadata(mBundle); if (mBitmapDimensionLimit > 0) { for (String key : mBundle.keySet()) { Object value = mBundle.get(key); if (value instanceof Bitmap) { Bitmap bmp = (Bitmap) value; if (bmp.getHeight() > mBitmapDimensionLimit || bmp.getWidth() > mBitmapDimensionLimit) { putBitmap(key, scaleBitmap(bmp, mBitmapDimensionLimit)); } } } } return new MediaMetadata(mBundle, mBitmapDimensionLimit); } } private Bitmap scaleBitmap(Bitmap bmp, int maxSize) { private Bitmap scaleBitmap(Bitmap bmp, int maxDimension) { float maxSizeF = maxSize; float maxDimensionF = maxDimension; float widthScale = maxSizeF / bmp.getWidth(); float widthScale = maxDimensionF / bmp.getWidth(); float heightScale = maxSizeF / bmp.getHeight(); float heightScale = maxDimensionF / bmp.getHeight(); float scale = Math.min(widthScale, heightScale); float scale = Math.min(widthScale, heightScale); int height = (int) (bmp.getHeight() * scale); int height = (int) (bmp.getHeight() * scale); int width = (int) (bmp.getWidth() * scale); int width = (int) (bmp.getWidth() * scale); Loading
media/java/android/media/session/MediaSession.java +3 −1 Original line number Original line Diff line number Diff line Loading @@ -464,7 +464,9 @@ public final class MediaSession { int fields = 0; int fields = 0; MediaDescription description = null; MediaDescription description = null; if (metadata != null) { if (metadata != null) { metadata = (new MediaMetadata.Builder(metadata, mMaxBitmapSize)).build(); metadata = new MediaMetadata.Builder(metadata) .setBitmapDimensionLimit(mMaxBitmapSize) .build(); if (metadata.containsKey(MediaMetadata.METADATA_KEY_DURATION)) { if (metadata.containsKey(MediaMetadata.METADATA_KEY_DURATION)) { duration = metadata.getLong(MediaMetadata.METADATA_KEY_DURATION); duration = metadata.getLong(MediaMetadata.METADATA_KEY_DURATION); } } Loading
non-updatable-api/current.txt +2 −0 Original line number Original line Diff line number Diff line Loading @@ -26317,6 +26317,7 @@ package android.media { method public boolean containsKey(String); method public boolean containsKey(String); method public int describeContents(); method public int describeContents(); method public android.graphics.Bitmap getBitmap(String); method public android.graphics.Bitmap getBitmap(String); method @IntRange(from=0) public int getBitmapDimensionLimit(); method @NonNull public android.media.MediaDescription getDescription(); method @NonNull public android.media.MediaDescription getDescription(); method public long getLong(String); method public long getLong(String); method public android.media.Rating getRating(String); method public android.media.Rating getRating(String); Loading Loading @@ -26366,6 +26367,7 @@ package android.media { method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putRating(String, android.media.Rating); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putString(String, String); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method public android.media.MediaMetadata.Builder putText(String, CharSequence); method @NonNull public android.media.MediaMetadata.Builder setBitmapDimensionLimit(int); } } @Deprecated public abstract class MediaMetadataEditor { @Deprecated public abstract class MediaMetadataEditor {