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

Commit e0d9a1e0 authored by Nikita Dubrovsky's avatar Nikita Dubrovsky Committed by Automerger Merge Worker
Browse files

Merge "Update ContentInfo to implement Parcelable" into sc-dev am: 686e4780

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14341829

Change-Id: I6e8aeb2f48056ceb533be2f617513147de9877a8
parents 4782c610 686e4780
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -46817,12 +46817,15 @@ package android.view {
    method public void onActionViewExpanded();
  }
  public final class ContentInfo {
  public final class ContentInfo implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public android.content.ClipData getClip();
    method @Nullable public android.os.Bundle getExtras();
    method public int getFlags();
    method @Nullable public android.net.Uri getLinkUri();
    method public int getSource();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.view.ContentInfo> CREATOR;
    field public static final int FLAG_CONVERT_TO_PLAIN_TEXT = 1; // 0x1
    field public static final int SOURCE_APP = 0; // 0x0
    field public static final int SOURCE_AUTOFILL = 4; // 0x4
+1 −1
Original line number Diff line number Diff line
@@ -2672,7 +2672,7 @@ package android.view {
    field public static final int CALLBACK_ANIMATION = 1; // 0x1
  }

  public final class ContentInfo {
  public final class ContentInfo implements android.os.Parcelable {
    method @NonNull public android.util.Pair<android.view.ContentInfo,android.view.ContentInfo> partition(@NonNull java.util.function.Predicate<android.content.ClipData.Item>);
    method public void releasePermissions();
  }
+74 −1
Original line number Diff line number Diff line
@@ -25,6 +25,8 @@ import android.content.ClipData;
import android.content.ClipDescription;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.Pair;
import android.view.inputmethod.InputContentInfo;

@@ -39,7 +41,7 @@ import java.util.function.Predicate;
/**
 * Holds all the relevant data for a request to {@link View#performReceiveContent}.
 */
public final class ContentInfo {
public final class ContentInfo implements Parcelable {

    /**
     * Specifies the UI through which content is being inserted. Future versions of Android may
@@ -420,4 +422,75 @@ public final class ContentInfo {
            return new ContentInfo(this);
        }
    }

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

    /**
     * Writes this object into the given parcel.
     *
     * @param dest  The parcel to write into.
     * @param flags The flags to use for parceling.
     */
    @Override
    public void writeToParcel(@NonNull Parcel dest, int flags) {
        mClip.writeToParcel(dest, flags);
        dest.writeInt(mSource);
        dest.writeInt(mFlags);
        Uri.writeToParcel(dest, mLinkUri);
        dest.writeBundle(mExtras);
        if (mInputContentInfo == null) {
            dest.writeInt(0);
        } else {
            dest.writeInt(1);
            mInputContentInfo.writeToParcel(dest, flags);
        }
        if (mDragAndDropPermissions == null) {
            dest.writeInt(0);
        } else {
            dest.writeInt(1);
            mDragAndDropPermissions.writeToParcel(dest, flags);
        }
    }

    /**
     * Creates {@link ContentInfo} instances from parcels.
     */
    @NonNull
    public static final Parcelable.Creator<ContentInfo> CREATOR =
            new Parcelable.Creator<ContentInfo>() {
        @Override
        public ContentInfo createFromParcel(Parcel parcel) {
            ClipData clip = ClipData.CREATOR.createFromParcel(parcel);
            int source = parcel.readInt();
            int flags = parcel.readInt();
            Uri linkUri = Uri.CREATOR.createFromParcel(parcel);
            Bundle extras = parcel.readBundle();
            InputContentInfo inputContentInfo = null;
            if (parcel.readInt() != 0) {
                inputContentInfo = InputContentInfo.CREATOR.createFromParcel(parcel);
            }
            DragAndDropPermissions dragAndDropPermissions = null;
            if (parcel.readInt() != 0) {
                dragAndDropPermissions = DragAndDropPermissions.CREATOR.createFromParcel(parcel);
            }
            return new ContentInfo.Builder(clip, source)
                    .setFlags(flags)
                    .setLinkUri(linkUri)
                    .setExtras(extras)
                    .setInputContentInfo(inputContentInfo)
                    .setDragAndDropPermissions(dragAndDropPermissions)
                    .build();
        }

        @Override
        public ContentInfo[] newArray(int size) {
            return new ContentInfo[size];
        }
    };
}