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

Commit 5d5d14fd authored by Ian Rogers's avatar Ian Rogers
Browse files

Move FLATTENED_PATTERN to inner class.

Avoid AOT compilation/initialization in ART failing due to regex.Pattern
requiring native support.

Bug: 14646037

Change-Id: I9d9c7fd9ed9fab7e21d37f9b31c00d037fc5a691
parent e3e2c471
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -36,9 +36,21 @@ public final class Rect implements Parcelable {
    public int right;
    public int bottom;

    /**
     * A helper class for flattened rectange pattern recognition. A separate
     * class to avoid an initialization dependency on a regular expression
     * causing Rect to not be initializable with an ahead-of-time compilation
     * scheme.
     */
    private static final class UnflattenHelper {
        private static final Pattern FLATTENED_PATTERN = Pattern.compile(
            "(-?\\d+) (-?\\d+) (-?\\d+) (-?\\d+)");

        static Matcher getMatcher(String str) {
            return FLATTENED_PATTERN.matcher(str);
        }
    }

    /**
     * Create a new empty Rect. All coordinates are initialized to 0.
     */
@@ -152,7 +164,7 @@ public final class Rect implements Parcelable {
     * or null if the string is not of that form.
     */
    public static Rect unflattenFromString(String str) {
        Matcher matcher = FLATTENED_PATTERN.matcher(str);
        Matcher matcher = UnflattenHelper.getMatcher(str);
        if (!matcher.matches()) {
            return null;
        }