diff options
author | Luca Zanolin <zano@google.com> | 2013-02-20 14:31:37 +0000 |
---|---|---|
committer | Luca Zanolin <zano@google.com> | 2013-02-20 14:31:37 +0000 |
commit | 1b15ba5d194c1db71d0a34ee110bd1ab169c8a29 (patch) | |
tree | 3980261c5664310d42e20284eb7e1dbe14d7d409 /core/java/android/text/style | |
parent | 1b916301e044d1f6f672c9708c993090ecdf30cf (diff) | |
download | frameworks_base-1b15ba5d194c1db71d0a34ee110bd1ab169c8a29.zip frameworks_base-1b15ba5d194c1db71d0a34ee110bd1ab169c8a29.tar.gz frameworks_base-1b15ba5d194c1db71d0a34ee110bd1ab169c8a29.tar.bz2 |
Resubmitting "Enable correction/deleting notification via EasyEditSpan.""
Re-run "make update-api"
Original CL Ic227b8fd50066699915f69a54f225fb5330867c4
Change-Id: Ifb1a0f61801c544b01193435fbfdedd7f3888971
Diffstat (limited to 'core/java/android/text/style')
-rw-r--r-- | core/java/android/text/style/EasyEditSpan.java | 85 |
1 files changed, 82 insertions, 3 deletions
diff --git a/core/java/android/text/style/EasyEditSpan.java b/core/java/android/text/style/EasyEditSpan.java index 2feb719..03b4f60 100644 --- a/core/java/android/text/style/EasyEditSpan.java +++ b/core/java/android/text/style/EasyEditSpan.java @@ -16,6 +16,7 @@ package android.text.style; +import android.app.PendingIntent; import android.os.Parcel; import android.text.ParcelableSpan; import android.text.TextUtils; @@ -25,12 +26,62 @@ import android.widget.TextView; * Provides an easy way to edit a portion of text. * <p> * The {@link TextView} uses this span to allow the user to delete a chuck of text in one click. - * the text. {@link TextView} removes this span as soon as the text is edited, or the cursor moves. + * <p> + * {@link TextView} removes the span when the user deletes the whole text or modifies it. + * <p> + * This span can be also used to receive notification when the user deletes or modifies the text; */ public class EasyEditSpan implements ParcelableSpan { + /** + * The extra key field in the pending intent that describes how the text changed. + * + * @see #TEXT_DELETED + * @see #TEXT_MODIFIED + * @see #getPendingIntent() + */ + public static final String EXTRA_TEXT_CHANGED_TYPE = + "android.text.style.EXTRA_TEXT_CHANGED_TYPE"; + + /** + * The value of {@link #EXTRA_TEXT_CHANGED_TYPE} when the text wrapped by this span is deleted. + */ + public static final int TEXT_DELETED = 1; + + /** + * The value of {@link #EXTRA_TEXT_CHANGED_TYPE} when the text wrapped by this span is modified. + */ + public static final int TEXT_MODIFIED = 2; + + private final PendingIntent mPendingIntent; + + private boolean mDeleteEnabled; + + /** + * Creates the span. No intent is sent when the wrapped text is modified or + * deleted. + */ public EasyEditSpan() { - // Empty + mPendingIntent = null; + mDeleteEnabled = true; + } + + /** + * @param pendingIntent The intent will be sent when the wrapped text is deleted or modified. + * When the pending intent is sent, {@link #EXTRA_TEXT_CHANGED_TYPE} is + * added in the intent to describe how the text changed. + */ + public EasyEditSpan(PendingIntent pendingIntent) { + mPendingIntent = pendingIntent; + mDeleteEnabled = true; + } + + /** + * Constructor called from {@link TextUtils} to restore the span. + */ + public EasyEditSpan(Parcel source) { + mPendingIntent = source.readParcelable(null); + mDeleteEnabled = (source.readByte() == 1); } @Override @@ -40,11 +91,39 @@ public class EasyEditSpan implements ParcelableSpan { @Override public void writeToParcel(Parcel dest, int flags) { - // Empty + dest.writeParcelable(mPendingIntent, 0); + dest.writeByte((byte) (mDeleteEnabled ? 1 : 0)); } @Override public int getSpanTypeId() { return TextUtils.EASY_EDIT_SPAN; } + + /** + * @return True if the {@link TextView} should offer the ability to delete the text. + * + * @hide + */ + public boolean isDeleteEnabled() { + return mDeleteEnabled; + } + + /** + * Enables or disables the deletion of the text. + * + * @hide + */ + public void setDeleteEnabled(boolean value) { + mDeleteEnabled = value; + } + + /** + * @return the pending intent to send when the wrapped text is deleted or modified. + * + * @hide + */ + public PendingIntent getPendingIntent() { + return mPendingIntent; + } } |