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

Commit 85478a04 authored by Jason Hsu's avatar Jason Hsu Committed by Automerger Merge Worker
Browse files

Merge "Fix talkback did not speak out ReplacementSpan's content description."...

Merge "Fix talkback did not speak out ReplacementSpan's content description." into rvc-dev am: dac6071a

Change-Id: I85cd80e5a2b14184ce8b36098113de29635c09d6
parents f6c9e584 dac6071a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -738,7 +738,7 @@ public class TextUtils {
    /** @hide */
    public static final int ACCESSIBILITY_REPLACEMENT_SPAN = 29;
    /** @hide */
    public static final int LAST_SPAN = LINE_HEIGHT_SPAN;
    public static final int LAST_SPAN = ACCESSIBILITY_REPLACEMENT_SPAN;

    /**
     * Flatten a CharSequence and whatever styles can be copied across processes
+13 −8
Original line number Diff line number Diff line
@@ -22,30 +22,35 @@ import android.os.Parcel;
import android.os.Parcelable;
import android.text.ParcelableSpan;
import android.text.TextUtils;
import android.view.accessibility.AccessibilityNodeInfo;

/**
 * This class serves as a parcelable placeholder for the ReplacementSpans.
 * This class serves as a parcelable placeholder for the {@link ReplacementSpan}.
 *
 * This span contains content description of original span to let Accessibility service to do the
 * substitution for it.
 * It is used to replace ReplacementSpans in {@link AccessibilityNodeInfo#setText(CharSequence)}.
 *
 * @hide
 */
public class AccessibilityReplacementSpan extends ReplacementSpan
        implements ParcelableSpan {
    // The content description of the span this one replaces
    private CharSequence mContentDescription;

    /**
     * Sets the content description to the parent class.
     *
     * @param contentDescription The content description of the span this one replaces
     */
    public AccessibilityReplacementSpan(CharSequence contentDescription) {
        this.setContentDescription(contentDescription);
        mContentDescription = contentDescription;
    }

    /**
     * Sets the content description to the parent class.
     *
     * @param p The parcel to de-serialize from
     */
    public AccessibilityReplacementSpan(Parcel p) {
        mContentDescription = p.readCharSequence();
        final CharSequence contentDescription = p.readCharSequence();
        this.setContentDescription(contentDescription);
    }

    @Override
@@ -70,7 +75,7 @@ public class AccessibilityReplacementSpan extends ReplacementSpan

    @Override
    public void writeToParcelInternal(Parcel dest, int flags) {
        dest.writeCharSequence(mContentDescription);
        dest.writeCharSequence(this.getContentDescription());
    }

    @Override