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

Commit 1040dc46 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Improve clipboard API.

- Rename ClippedData to ClipData.
- Introudce ClipDescription subclass.
- Add convenience APIs for creating a ClipData.
- Add ClipboardManager API to get just the ClipDescription.
- Define MIME types associated with a clip.

Change-Id: If97ef91aa99a4dd0ec74ccaea504345c9ef12b5c
parent 59024f16
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/lib/libhwui.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/symbols/system/lib/libhwui.so)
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/libhwui.so)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/os/storage/*)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/content/IClipboard.P)

# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+310 −103
Original line number Diff line number Diff line
@@ -39293,15 +39293,31 @@
</parameter>
</method>
</class>
<class name="ClipboardManager"
 extends="android.text.ClipboardManager"
<class name="ClipData"
 extends="android.content.ClipDescription"
 abstract="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<method name="addPrimaryClipChangedListener"
<constructor name="ClipData"
 type="android.content.ClipData"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="label" type="java.lang.CharSequence">
</parameter>
<parameter name="mimeTypes" type="java.lang.String[]">
</parameter>
<parameter name="icon" type="android.graphics.Bitmap">
</parameter>
<parameter name="item" type="android.content.ClipData.Item">
</parameter>
</constructor>
<method name="addItem"
 return="void"
 abstract="false"
 native="false"
@@ -39311,11 +39327,11 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="what" type="android.content.ClipboardManager.OnPrimaryClipChangedListener">
<parameter name="item" type="android.content.ClipData.Item">
</parameter>
</method>
<method name="getPrimaryClip"
 return="android.content.ClippedData"
<method name="getIcon"
 return="android.graphics.Bitmap"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39325,19 +39341,21 @@
 visibility="public"
>
</method>
<method name="getText"
 return="java.lang.CharSequence"
<method name="getItem"
 return="android.content.ClipData.Item"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="deprecated"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="index" type="int">
</parameter>
</method>
<method name="hasPrimaryClip"
 return="boolean"
<method name="getItemCount"
 return="int"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39347,67 +39365,142 @@
 visibility="public"
>
</method>
<method name="hasText"
 return="boolean"
<method name="newIntent"
 return="android.content.ClipData"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="deprecated"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="label" type="java.lang.CharSequence">
</parameter>
<parameter name="icon" type="android.graphics.Bitmap">
</parameter>
<parameter name="intent" type="android.content.Intent">
</parameter>
</method>
<method name="removePrimaryClipChangedListener"
 return="void"
<method name="newPlainText"
 return="android.content.ClipData"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="what" type="android.content.ClipboardManager.OnPrimaryClipChangedListener">
<parameter name="label" type="java.lang.CharSequence">
</parameter>
<parameter name="icon" type="android.graphics.Bitmap">
</parameter>
<parameter name="text" type="java.lang.CharSequence">
</parameter>
</method>
<method name="setPrimaryClip"
 return="void"
<method name="newRawUri"
 return="android.content.ClipData"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="clip" type="android.content.ClippedData">
<parameter name="label" type="java.lang.CharSequence">
</parameter>
<parameter name="icon" type="android.graphics.Bitmap">
</parameter>
<parameter name="uri" type="android.net.Uri">
</parameter>
</method>
<method name="setText"
 return="void"
<method name="newUri"
 return="android.content.ClipData"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="deprecated"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="text" type="java.lang.CharSequence">
<parameter name="resolver" type="android.content.ContentResolver">
</parameter>
<parameter name="label" type="java.lang.CharSequence">
</parameter>
<parameter name="icon" type="android.graphics.Bitmap">
</parameter>
<parameter name="uri" type="android.net.Uri">
</parameter>
</method>
<field name="CREATOR"
 type="android.os.Parcelable.Creator"
 transient="false"
 volatile="false"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<interface name="ClipboardManager.OnPrimaryClipChangedListener"
 abstract="true"
<class name="ClipData.Item"
 extends="java.lang.Object"
 abstract="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<method name="onPrimaryClipChanged"
 return="void"
 abstract="true"
<constructor name="ClipData.Item"
 type="android.content.ClipData.Item"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="text" type="java.lang.CharSequence">
</parameter>
</constructor>
<constructor name="ClipData.Item"
 type="android.content.ClipData.Item"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="intent" type="android.content.Intent">
</parameter>
</constructor>
<constructor name="ClipData.Item"
 type="android.content.ClipData.Item"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="uri" type="android.net.Uri">
</parameter>
</constructor>
<constructor name="ClipData.Item"
 type="android.content.ClipData.Item"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="text" type="java.lang.CharSequence">
</parameter>
<parameter name="intent" type="android.content.Intent">
</parameter>
<parameter name="uri" type="android.net.Uri">
</parameter>
</constructor>
<method name="coerceToText"
 return="java.lang.CharSequence"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
@@ -39415,9 +39508,44 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="context" type="android.content.Context">
</parameter>
</method>
</interface>
<class name="ClippedData"
<method name="getIntent"
 return="android.content.Intent"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getText"
 return="java.lang.CharSequence"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getUri"
 return="android.net.Uri"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
</class>
<class name="ClipDescription"
 extends="java.lang.Object"
 abstract="false"
 static="false"
@@ -39427,8 +39555,8 @@
>
<implements name="android.os.Parcelable">
</implements>
<constructor name="ClippedData"
 type="android.content.ClippedData"
<constructor name="ClipDescription"
 type="android.content.ClipDescription"
 static="false"
 final="false"
 deprecated="not deprecated"
@@ -39436,22 +39564,32 @@
>
<parameter name="label" type="java.lang.CharSequence">
</parameter>
<parameter name="icon" type="android.graphics.Bitmap">
<parameter name="mimeTypes" type="java.lang.String[]">
</parameter>
<parameter name="item" type="android.content.ClippedData.Item">
</constructor>
<constructor name="ClipDescription"
 type="android.content.ClipDescription"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="o" type="android.content.ClipDescription">
</parameter>
</constructor>
<method name="addItem"
 return="void"
<method name="compareMimeTypes"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="item" type="android.content.ClippedData.Item">
<parameter name="concreteType" type="java.lang.String">
</parameter>
<parameter name="desiredType" type="java.lang.String">
</parameter>
</method>
<method name="describeContents"
@@ -39465,8 +39603,8 @@
 visibility="public"
>
</method>
<method name="getIcon"
 return="android.graphics.Bitmap"
<method name="filterMimeTypes"
 return="java.lang.String[]"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39475,9 +39613,22 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="mimeType" type="java.lang.String">
</parameter>
</method>
<method name="getItem"
 return="android.content.ClippedData.Item"
<method name="getLabel"
 return="java.lang.CharSequence"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getMimeType"
 return="java.lang.String"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39489,7 +39640,7 @@
<parameter name="index" type="int">
</parameter>
</method>
<method name="getItemCount"
<method name="getMimeTypeCount"
 return="int"
 abstract="false"
 native="false"
@@ -39500,8 +39651,8 @@
 visibility="public"
>
</method>
<method name="getLabel"
 return="java.lang.CharSequence"
<method name="hasMimeType"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39510,6 +39661,8 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="mimeType" type="java.lang.String">
</parameter>
</method>
<method name="writeToParcel"
 return="void"
@@ -39536,74 +39689,96 @@
 visibility="public"
>
</field>
</class>
<class name="ClippedData.Item"
 extends="java.lang.Object"
 abstract="false"
<field name="MIMETYPE_TEXT_INTENT"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;text/vnd.android.intent&quot;"
 static="true"
 final="false"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
<constructor name="ClippedData.Item"
 type="android.content.ClippedData.Item"
</field>
<field name="MIMETYPE_TEXT_PLAIN"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;text/plain&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
<field name="MIMETYPE_TEXT_URILIST"
 type="java.lang.String"
 transient="false"
 volatile="false"
 value="&quot;text/uri-list&quot;"
 static="true"
 final="true"
 deprecated="not deprecated"
 visibility="public"
>
</field>
</class>
<class name="ClipboardManager"
 extends="android.text.ClipboardManager"
 abstract="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="text" type="java.lang.CharSequence">
</parameter>
</constructor>
<constructor name="ClippedData.Item"
 type="android.content.ClippedData.Item"
<method name="addPrimaryClipChangedListener"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="intent" type="android.content.Intent">
<parameter name="what" type="android.content.ClipboardManager.OnPrimaryClipChangedListener">
</parameter>
</constructor>
<constructor name="ClippedData.Item"
 type="android.content.ClippedData.Item"
</method>
<method name="getPrimaryClip"
 return="android.content.ClipData"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="uri" type="android.net.Uri">
</parameter>
</constructor>
<constructor name="ClippedData.Item"
 type="android.content.ClippedData.Item"
</method>
<method name="getPrimaryClipDescription"
 return="android.content.ClipDescription"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="text" type="java.lang.CharSequence">
</parameter>
<parameter name="intent" type="android.content.Intent">
</parameter>
<parameter name="uri" type="android.net.Uri">
</parameter>
</constructor>
<method name="coerceToText"
</method>
<method name="getText"
 return="java.lang.CharSequence"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 deprecated="deprecated"
 visibility="public"
>
<parameter name="context" type="android.content.Context">
</parameter>
</method>
<method name="getIntent"
 return="android.content.Intent"
<method name="hasPrimaryClip"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39613,8 +39788,19 @@
 visibility="public"
>
</method>
<method name="getText"
 return="java.lang.CharSequence"
<method name="hasText"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="deprecated"
 visibility="public"
>
</method>
<method name="removePrimaryClipChangedListener"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39623,9 +39809,11 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="what" type="android.content.ClipboardManager.OnPrimaryClipChangedListener">
</parameter>
</method>
<method name="getUri"
 return="android.net.Uri"
<method name="setPrimaryClip"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
@@ -39634,8 +39822,42 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="clip" type="android.content.ClipData">
</parameter>
</method>
<method name="setText"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="deprecated"
 visibility="public"
>
<parameter name="text" type="java.lang.CharSequence">
</parameter>
</method>
</class>
<interface name="ClipboardManager.OnPrimaryClipChangedListener"
 abstract="true"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<method name="onPrimaryClipChanged"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
</interface>
<interface name="ComponentCallbacks"
 abstract="true"
 static="false"
@@ -39959,21 +40181,6 @@
<parameter name="values" type="android.content.ContentValues[]">
</parameter>
</method>
<method name="compareMimeTypes"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="concreteType" type="java.lang.String">
</parameter>
<parameter name="desiredType" type="java.lang.String">
</parameter>
</method>
<method name="delete"
 return="int"
 abstract="true"
+1 −1
Original line number Diff line number Diff line
@@ -16,4 +16,4 @@

package android.content;

parcelable ClippedData;
parcelable ClipData;
+126 −22
Original line number Diff line number Diff line
@@ -37,6 +37,14 @@ import java.util.ArrayList;
 * each of which can hold one or more representations of an item of data.
 * For display to the user, it also has a label and iconic representation.</p>
 *
 * <p>A ClipData is a sub-class of {@link ClipDescription}, which describes
 * important meta-data about the clip.  In particular, its {@link #getMimeType(int)}
 * must return correct MIME type(s) describing the data in the clip.  For help
 * in correctly constructing a clip with the correct MIME type, use
 * {@link #newPlainText(CharSequence, Bitmap, CharSequence)},
 * {@link #newUri(ContentResolver, CharSequence, Bitmap, Uri)}, and
 * {@link #newIntent(CharSequence, Bitmap, Intent)}.
 *
 * <p>Each Item instance can be one of three main classes of data: a simple
 * CharSequence of text, a single Intent object, or a Uri.  See {@link Item}
 * for more details.
@@ -53,11 +61,16 @@ import java.util.ArrayList;
 *
 * <p>If all you want is the textual representation of the clipped data, you
 * can use the convenience method {@link Item#coerceToText Item.coerceToText}.
 * In this case there is generally no need to worry about the MIME types
 * reported by {@link #getMimeType(int)}, since any clip item an always be
 * converted to a string.
 *
 * <p>More complicated exchanges will be done through URIs, in particular
 * "content:" URIs.  A content URI allows the recipient of a ClippedData item
 * to interact closely with the ContentProvider holding the data in order to
 * negotiate the transfer of that data.
 * negotiate the transfer of that data.  The clip must also be filled in with
 * the available MIME types; {@link #newUri(ContentResolver, CharSequence, Bitmap, Uri)}
 * will take care of correctly doing this.
 *
 * <p>For example, here is the paste function of a simple NotePad application.
 * When retrieving the data from the clipboard, it can do either two things:
@@ -120,9 +133,12 @@ import java.util.ArrayList;
 * into an editor), then {@link Item#coerceToText(Context)} will ask the content
 * provider for the clip URI as text and successfully paste the entire note.
 */
public class ClippedData implements Parcelable {
    CharSequence mLabel;
    Bitmap mIcon;
public class ClipData extends ClipDescription {
    static final String[] MIMETYPES_TEXT_PLAIN = new String[] { MIMETYPE_TEXT_PLAIN };
    static final String[] MIMETYPES_TEXT_URILIST = new String[] { MIMETYPE_TEXT_URILIST };
    static final String[] MIMETYPES_TEXT_INTENT = new String[] { MIMETYPE_TEXT_INTENT };

    final Bitmap mIcon;

    final ArrayList<Item> mItems = new ArrayList<Item>();

@@ -146,28 +162,34 @@ public class ClippedData implements Parcelable {
     * </ul>
     */
    public static class Item {
        CharSequence mText;
        Intent mIntent;
        Uri mUri;
        final CharSequence mText;
        final Intent mIntent;
        final Uri mUri;

        /**
         * Create an Item consisting of a single block of (possibly styled) text.
         */
        public Item(CharSequence text) {
            mText = text;
            mIntent = null;
            mUri = null;
        }

        /**
         * Create an Item consisting of an arbitrary Intent.
         */
        public Item(Intent intent) {
            mText = null;
            mIntent = intent;
            mUri = null;
        }

        /**
         * Create an Item consisting of an arbitrary URI.
         */
        public Item(Uri uri) {
            mText = null;
            mIntent = null;
            mUri = uri;
        }

@@ -292,19 +314,103 @@ public class ClippedData implements Parcelable {
     * Create a new clip.
     *
     * @param label Label to show to the user describing this clip.
     * @param mimeTypes An array of MIME types this data is available as.
     * @param icon Bitmap providing the user with an iconing representation of
     * the clip.
     * @param item The contents of the first item in the clip.
     */
    public ClippedData(CharSequence label, Bitmap icon, Item item) {
    public ClipData(CharSequence label, String[] mimeTypes, Bitmap icon, Item item) {
        super(label, mimeTypes);
        if (item == null) {
            throw new NullPointerException("item is null");
        }
        mLabel = label;
        mIcon = icon;
        mItems.add(item);
    }

    /**
     * Create a new ClipData holding data of the type {@link #MIMETYPE_TEXT_PLAIN}.
     *
     * @param label User-visible label for the clip data.
     * @param icon Iconic representation of the clip data.
     * @param text The actual text in the clip.
     * @return Returns a new ClipData containing the specified data.
     */
    static public ClipData newPlainText(CharSequence label, Bitmap icon, CharSequence text) {
        Item item = new Item(text);
        return new ClipData(label, MIMETYPES_TEXT_PLAIN, icon, item);
    }

    /**
     * Create a new ClipData holding an Intent with MIME type {@link #MIMETYPE_TEXT_INTENT}.
     *
     * @param label User-visible label for the clip data.
     * @param icon Iconic representation of the clip data.
     * @param intent The actual Intent in the clip.
     * @return Returns a new ClipData containing the specified data.
     */
    static public ClipData newIntent(CharSequence label, Bitmap icon, Intent intent) {
        Item item = new Item(intent);
        return new ClipData(label, MIMETYPES_TEXT_INTENT, icon, item);
    }

    /**
     * Create a new ClipData holding a URI.  If the URI is a content: URI,
     * this will query the content provider for the MIME type of its data and
     * use that as the MIME type.  Otherwise, it will use the MIME type
     * {@link #MIMETYPE_TEXT_URILIST}.
     *
     * @param resolver ContentResolver used to get information about the URI.
     * @param label User-visible label for the clip data.
     * @param icon Iconic representation of the clip data.
     * @param uri The URI in the clip.
     * @return Returns a new ClipData containing the specified data.
     */
    static public ClipData newUri(ContentResolver resolver, CharSequence label,
            Bitmap icon, Uri uri) {
        Item item = new Item(uri);
        String[] mimeTypes = null;
        if ("content".equals(uri.getScheme())) {
            String realType = resolver.getType(uri);
            mimeTypes = resolver.getStreamTypes(uri, "*/*");
            if (mimeTypes == null) {
                if (realType != null) {
                    mimeTypes = new String[] { realType, MIMETYPE_TEXT_URILIST };
                }
            } else {
                String[] tmp = new String[mimeTypes.length + (realType != null ? 2 : 1)];
                int i = 0;
                if (realType != null) {
                    tmp[0] = realType;
                    i++;
                }
                System.arraycopy(mimeTypes, 0, tmp, i, mimeTypes.length);
                tmp[i + mimeTypes.length] = MIMETYPE_TEXT_URILIST;
                mimeTypes = tmp;
            }
        }
        if (mimeTypes == null) {
            mimeTypes = MIMETYPES_TEXT_URILIST;
        }
        return new ClipData(label, mimeTypes, icon, item);
    }

    /**
     * Create a new ClipData holding an URI with MIME type {@link #MIMETYPE_TEXT_URILIST}.
     * Unlike {@link #newUri(ContentResolver, CharSequence, Bitmap, Uri)}, nothing
     * is inferred about the URI -- if it is a content: URI holding a bitmap,
     * the reported type will still be uri-list.  Use this with care!
     *
     * @param label User-visible label for the clip data.
     * @param icon Iconic representation of the clip data.
     * @param uri The URI in the clip.
     * @return Returns a new ClipData containing the specified data.
     */
    static public ClipData newRawUri(CharSequence label, Bitmap icon, Uri uri) {
        Item item = new Item(uri);
        return new ClipData(label, MIMETYPES_TEXT_URILIST, icon, item);
    }

    public void addItem(Item item) {
        if (item == null) {
            throw new NullPointerException("item is null");
@@ -312,10 +418,6 @@ public class ClippedData implements Parcelable {
        mItems.add(item);
    }

    public CharSequence getLabel() {
        return mLabel;
    }

    public Bitmap getIcon() {
        return mIcon;
    }
@@ -335,7 +437,7 @@ public class ClippedData implements Parcelable {

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        TextUtils.writeToParcel(mLabel, dest, flags);
        super.writeToParcel(dest, flags);
        if (mIcon != null) {
            dest.writeInt(1);
            mIcon.writeToParcel(dest, flags);
@@ -362,10 +464,12 @@ public class ClippedData implements Parcelable {
        }
    }

    ClippedData(Parcel in) {
        mLabel = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
    ClipData(Parcel in) {
        super(in);
        if (in.readInt() != 0) {
            mIcon = Bitmap.CREATOR.createFromParcel(in);
        } else {
            mIcon = null;
        }
        final int N = in.readInt();
        for (int i=0; i<N; i++) {
@@ -376,15 +480,15 @@ public class ClippedData implements Parcelable {
        }
    }

    public static final Parcelable.Creator<ClippedData> CREATOR =
        new Parcelable.Creator<ClippedData>() {
    public static final Parcelable.Creator<ClipData> CREATOR =
        new Parcelable.Creator<ClipData>() {

            public ClippedData createFromParcel(Parcel source) {
                return new ClippedData(source);
            public ClipData createFromParcel(Parcel source) {
                return new ClipData(source);
            }

            public ClippedData[] newArray(int size) {
                return new ClippedData[size];
            public ClipData[] newArray(int size) {
                return new ClipData[size];
            }
        };
}
+19 −0
Original line number Diff line number Diff line
/**
 * Copyright (c) 2010, The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.content;

parcelable ClipDescription;
Loading