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

Commit 6736d380 authored by Chet Haase's avatar Chet Haase Committed by Android Git Automerger
Browse files

am bdb61865: Merge "Add equals() and hashcode() to SpannableString" into klp-dev

* commit 'bdb61865':
  Add equals() and hashcode() to SpannableString
parents 2dc3c739 bdb61865
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -1288,6 +1288,47 @@ public class SpannableStringBuilder implements CharSequence, GetChars, Spannable
        return mFilters;
    }

    // Same as SpannableStringInternal
    @Override
    public boolean equals(Object o) {
        if (o instanceof Spanned &&
                toString().equals(o.toString())) {
            // Check span data
            Object[] otherSpans = ((Spanned) o).getSpans(0,
                    ((Spanned) o).length(), Object.class);
            if (mSpanCount == otherSpans.length) {
                for (int i = 0; i < mSpanCount; ++i) {
                    Object thisSpan = mSpans[i];
                    Object otherSpan = otherSpans[i];
                    if (!thisSpan.equals(otherSpan) ||
                            getSpanStart(thisSpan) != getSpanStart(otherSpan) ||
                            getSpanEnd(thisSpan) != getSpanEnd(otherSpan) ||
                            getSpanFlags(thisSpan) != getSpanFlags(otherSpan)) {
                        return false;
                    }
                }
                return true;
            }

        }
        return false;
    }

    // Same as SpannableStringInternal
    @Override
    public int hashCode() {
        int hash = toString().hashCode();
        hash = hash * 31 + mSpanCount;
        for (int i = 0; i < mSpanCount; ++i) {
            Object span = mSpans[i];
            hash = hash * 31 + span.hashCode();
            hash = hash * 31 + getSpanStart(span);
            hash = hash * 31 + getSpanEnd(span);
            hash = hash * 31 + getSpanFlags(span);
        }
        return hash;
    }

    private static final InputFilter[] NO_FILTERS = new InputFilter[0];
    private InputFilter[] mFilters = NO_FILTERS;

+41 −0
Original line number Diff line number Diff line
@@ -358,6 +358,47 @@ import java.lang.reflect.Array;
        }
    }

    // Same as SpannableStringBuilder
    @Override
    public boolean equals(Object o) {
        if (o instanceof Spanned &&
                toString().equals(o.toString())) {
            // Check span data
            Object[] otherSpans = ((Spanned) o).getSpans(0,
                    ((Spanned) o).length(), Object.class);
            if (mSpanCount == otherSpans.length) {
                for (int i = 0; i < mSpanCount; ++i) {
                    Object thisSpan = mSpans[i];
                    Object otherSpan = otherSpans[i];
                    if (!thisSpan.equals(otherSpan) ||
                            getSpanStart(thisSpan) != getSpanStart(otherSpan) ||
                            getSpanEnd(thisSpan) != getSpanEnd(otherSpan) ||
                            getSpanFlags(thisSpan) != getSpanFlags(otherSpan)) {
                        return false;
                    }
                }
                return true;
            }

        }
        return false;
    }

    // Same as SpannableStringBuilder
    @Override
    public int hashCode() {
        int hash = toString().hashCode();
        hash = hash * 31 + mSpanCount;
        for (int i = 0; i < mSpanCount; ++i) {
            Object span = mSpans[i];
            hash = hash * 31 + span.hashCode();
            hash = hash * 31 + getSpanStart(span);
            hash = hash * 31 + getSpanEnd(span);
            hash = hash * 31 + getSpanFlags(span);
        }
        return hash;
    }

    private String mText;
    private Object[] mSpans;
    private int[] mSpanData;
+7 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.graphics.Color;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.TextView;

@@ -36,6 +37,9 @@ import java.util.Map;
 * @hide
 */
public class TextChange extends Transition {

    private static final String LOG_TAG = "TextChange";

    private static final String PROPNAME_TEXT = "android:textchange:text";
    private static final String PROPNAME_TEXT_COLOR = "android:textchange:textColor";

@@ -224,6 +228,9 @@ public class TextChange extends Transition {
                }
            };
            addListener(transitionListener);
            if (DBG) {
                Log.d(LOG_TAG, "createAnimator returning " + anim);
            }
            return anim;
        }
        return null;