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

Commit 0706cb6c authored by Hyundo Moon's avatar Hyundo Moon Committed by Android (Google) Code Review
Browse files

Merge "Move MediaItem2 Builder to updatable"

parents 7c9123d1 70bc1959
Loading
Loading
Loading
Loading
+52 −3
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.annotation.Nullable;
import android.content.Context;
import android.media.DataSourceDesc;
import android.media.MediaItem2;
import android.media.MediaItem2.Builder;
import android.media.MediaItem2.Flags;
import android.media.MediaMetadata2;
import android.media.update.MediaItem2Provider;
@@ -43,7 +44,7 @@ public class MediaItem2Impl implements MediaItem2Provider {
    private DataSourceDesc mDataSourceDesc;

    // From the public API
    public MediaItem2Impl(Context context, MediaItem2 instance, String mediaId,
    public MediaItem2Impl(Context context, String mediaId,
            DataSourceDesc dsd, MediaMetadata2 metadata, @Flags int flags) {
        if (mediaId == null) {
            throw new IllegalArgumentException("mediaId shouldn't be null");
@@ -56,12 +57,12 @@ public class MediaItem2Impl implements MediaItem2Provider {
        }

        mContext = context;
        mInstance = instance;

        mId = mediaId;
        mDataSourceDesc = dsd;
        mMetadata = metadata;
        mFlags = flags;

        mInstance = new MediaItem2(this);
    }

    // Create anonymized version
@@ -157,4 +158,52 @@ public class MediaItem2Impl implements MediaItem2Provider {
    public @Nullable DataSourceDesc getDataSourceDesc_impl() {
        return mDataSourceDesc;
    }

    public static class BuilderImpl implements MediaItem2Provider.BuilderProvider {
        private Context mContext;
        private Builder mInstance;
        private @Flags int mFlags;
        private String mMediaId;
        private MediaMetadata2 mMetadata;
        private DataSourceDesc mDataSourceDesc;

        public BuilderImpl(Context context, Builder instance, int flags) {
            mContext = context;
            mInstance = instance;
            mFlags = flags;
        }

        @Override
        public Builder setMediaId_impl(@Nullable String mediaId) {
            mMediaId = mediaId;
            return mInstance;
        }

        @Override
        public Builder setMetadata_impl(@Nullable MediaMetadata2 metadata) {
            mMetadata = metadata;
            return mInstance;
        }

        @Override
        public Builder setDataSourceDesc_impl(@NonNull DataSourceDesc dataSourceDesc) {
            if (dataSourceDesc == null) {
                throw new IllegalArgumentException("dataSourceDesc shouldn't be null");
            }
            mDataSourceDesc = dataSourceDesc;
            return mInstance;
        }

        @Override
        public MediaItem2 build_impl() {
            String id = (mMetadata != null)
                    ? mMetadata.getString(MediaMetadata2.METADATA_KEY_MEDIA_ID) : null;
            if (id == null) {
                //  TODO(jaewan): Double check if its sufficient (e.g. Use UUID instead?)
                id = (mMediaId != null) ? mMediaId : toString();
            }
            return new MediaItem2Impl(mContext, id, mDataSourceDesc, mMetadata, mFlags)
                    .getInstance();
        }
    }
}
+7 −7
Original line number Diff line number Diff line
@@ -226,9 +226,9 @@ public class ApiFactory implements StaticProvider {
    }

    @Override
    public MediaItem2Provider createMediaItem2(Context context, MediaItem2 instance,
            String mediaId, DataSourceDesc dsd, MediaMetadata2 metadata, int flags) {
        return new MediaItem2Impl(context, instance, mediaId, dsd, metadata, flags);
    public MediaItem2Provider.BuilderProvider createMediaItem2Builder(
            Context context, MediaItem2.Builder instance, int flags) {
        return new MediaItem2Impl.BuilderImpl(context, instance, flags);
    }

    @Override
@@ -249,14 +249,14 @@ public class ApiFactory implements StaticProvider {

    @Override
    public MediaMetadata2Provider.BuilderProvider createMediaMetadata2Builder(
            Context context, MediaMetadata2.Builder builder) {
        return new MediaMetadata2Impl.BuilderImpl(context, builder);
            Context context, MediaMetadata2.Builder instance) {
        return new MediaMetadata2Impl.BuilderImpl(context, instance);
    }

    @Override
    public MediaMetadata2Provider.BuilderProvider createMediaMetadata2Builder(
            Context context, MediaMetadata2.Builder builder, MediaMetadata2 source) {
        return new MediaMetadata2Impl.BuilderImpl(context, builder, source);
            Context context, MediaMetadata2.Builder instance, MediaMetadata2 source) {
        return new MediaMetadata2Impl.BuilderImpl(context, instance, source);
    }

    @Override
+7 −8
Original line number Diff line number Diff line
@@ -241,13 +241,12 @@ public class MockMediaLibraryService2 extends MediaLibraryService2 {

    private MediaItem2 createMediaItem(String mediaId) {
        Context context = MockMediaLibraryService2.this;
        return new MediaItem2(
                context,
                mediaId,
                DATA_SOURCE_DESC,
                new MediaMetadata2.Builder(context)
        return new MediaItem2.Builder(context, 0 /* Flags */)
                .setMediaId(mediaId)
                .setDataSourceDesc(DATA_SOURCE_DESC)
                .setMetadata(new MediaMetadata2.Builder(context)
                                .putString(MediaMetadata2.METADATA_KEY_MEDIA_ID, mediaId)
                        .build(),
                0 /* Flags */);
                                .build())
                .build();
    }
}