All Downloads are FREE. Search and download functionalities are using the official Maven repository.

android.text.style.EasyEditSpan Maven / Gradle / Ivy

Go to download

A library jar that provides APIs for Applications written for the Google Android Platform.

There is a newer version: 14-robolectric-10818077
Show newest version
/*
 * Copyright (C) 2011 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.text.style;

import android.app.PendingIntent;
import android.os.Parcel;
import android.text.ParcelableSpan;
import android.text.TextUtils;
import android.widget.TextView;

/**
 * Provides an easy way to edit a portion of text.
 * 

* The {@link TextView} uses this span to allow the user to delete a chuck of text in one click. *

* {@link TextView} removes the span when the user deletes the whole text or modifies it. *

* 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() { 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 public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { 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; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy