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

Commit 06976771 authored by Alan Viverette's avatar Alan Viverette
Browse files

Remove strict mode violation from value to string coercion

The legitimate uses of value to string coercion, including the
interaction between lax attribute formatting and AAPT type inference,
combined with the low likelihood of unintentional coercion and low cost
of most string coercions, makes the value to string coercion violation
overkill.

Bug: 21563086
Change-Id: I7892e776d3e5479fcba507749b074c2abdf1b781
parent bdd500ec
Loading
Loading
Loading
Loading
+0 −23
Original line number Diff line number Diff line
@@ -160,7 +160,6 @@ public class TypedArray {

        final TypedValue v = mValue;
        if (getValueAt(index, v)) {
            StrictMode.noteResourceMismatch(v);
            return v.coerceToString();
        }

@@ -183,24 +182,6 @@ public class TypedArray {
     */
    @Nullable
    public String getString(int index) {
        return getString(index, true);
    }

    /**
     * Returns a string representation of the value at the given index,
     * optionally throwing a resource mismatch strict mode violation if the
     * value must be coerced to a string.
     *
     * @param index the index of the attribute to retrieve
     * @param strict {@code true} to throw a strict mode violation for string
     *               coercion, {@code false} otherwise
     * @return a string representation of the value at the given index, or
     *         {@code null} if the resource could not be coerced to a string
     * @see StrictMode#noteResourceMismatch(Object)
     * @hide Used internally for view attribute inspection.
     */
    @Nullable
    public String getString(int index, boolean strict) {
        if (mRecycled) {
            throw new RuntimeException("Cannot make calls to a recycled instance!");
        }
@@ -216,9 +197,6 @@ public class TypedArray {

        final TypedValue v = mValue;
        if (getValueAt(index, v)) {
            if (strict) {
                StrictMode.noteResourceMismatch(v);
            }
            final CharSequence cs = v.coerceToString();
            return cs != null ? cs.toString() : null;
        }
@@ -292,7 +270,6 @@ public class TypedArray {

        final TypedValue v = mValue;
        if (getValueAt(index, v)) {
            StrictMode.noteResourceMismatch(v);
            final CharSequence cs = v.coerceToString();
            return cs != null ? cs.toString() : null;
        }
+1 −1
Original line number Diff line number Diff line
@@ -4510,7 +4510,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            }
            attributes[i] = resourceName;
            attributes[i + 1] = t.getString(index, false);
            attributes[i + 1] = t.getString(index);
            i += 2;
        }