Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9f47b84c authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Android (Google) Code Review
Browse files

Merge "AudioAttributes: parcelable, hide support for tags"

parents 38f65081 b45c2730
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -13776,11 +13776,12 @@ package android.media {
    method public void stop();
  }
  public final class AudioAttributes {
  public final class AudioAttributes implements android.os.Parcelable {
    method public int describeContents();
    method public int getContentType();
    method public int getFlags();
    method public java.util.Set<java.lang.String> getTags();
    method public int getUsage();
    method public void writeToParcel(android.os.Parcel, int);
    field public static final int CONTENT_TYPE_MOVIE = 3; // 0x3
    field public static final int CONTENT_TYPE_MUSIC = 2; // 0x2
    field public static final int CONTENT_TYPE_SONIFICATION = 4; // 0x4
@@ -13807,7 +13808,6 @@ package android.media {
  public static class AudioAttributes.Builder {
    ctor public AudioAttributes.Builder();
    ctor public AudioAttributes.Builder(android.media.AudioAttributes);
    method public android.media.AudioAttributes.Builder addTag(java.lang.String);
    method public android.media.AudioAttributes build();
    method public android.media.AudioAttributes.Builder setContentType(int);
    method public android.media.AudioAttributes.Builder setFlags(int);
+48 −1
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
package android.media;

import android.annotation.IntDef;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.Log;

import java.lang.annotation.Retention;
@@ -29,7 +31,7 @@ import java.util.Set;
 * A class to encapsulate a collection of attributes describing information about an audio
 * player or recorder.
 */
public final class AudioAttributes {
public final class AudioAttributes implements Parcelable {
    private final static String TAG = "AudioAttributes";

    /**
@@ -192,6 +194,7 @@ public final class AudioAttributes {
    }

    /**
     * @hide
     * Return the set of tags.
     * @return a read-only set of all tags stored as strings.
     */
@@ -324,6 +327,7 @@ public final class AudioAttributes {
        }

        /**
         * @hide
         * Add a custom tag stored as a string
         * @param tag
         * @return the same Builder instance.
@@ -410,6 +414,49 @@ public final class AudioAttributes {
                + " tags=" + mTags);
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(mUsage);
        dest.writeInt(mContentType);
        dest.writeInt(mFlags);
        String[] tagsArray = new String[mTags.size()];
        mTags.toArray(tagsArray);
        dest.writeStringArray(tagsArray);
    }

    private AudioAttributes(Parcel in) {
        mUsage = in.readInt();
        mContentType = in.readInt();
        mFlags = in.readInt();
        mTags = new HashSet<String>();
        String[] tagsArray = in.readStringArray();
        for (int i = tagsArray.length - 1 ; i >= 0 ; i--) {
            mTags.add(tagsArray[i]);
        }
    }

    /** @hide */
    public static final Parcelable.Creator<AudioAttributes> CREATOR
            = new Parcelable.Creator<AudioAttributes>() {
        /**
         * Rebuilds an AudioAttributes previously stored with writeToParcel().
         * @param p Parcel object to read the AudioAttributes from
         * @return a new AudioAttributes created from the data in the parcel
         */
        public AudioAttributes createFromParcel(Parcel p) {
            return new AudioAttributes(p);
        }
        public AudioAttributes[] newArray(int size) {
            return new AudioAttributes[size];
        }
    };


    /** @hide */
    @IntDef({
        USAGE_UNKNOWN,