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
diff --git a/graphics/java/android/graphics/Rect.java b/graphics/java/android/graphics/Rect.java
index 8b5609f..437d2f4 100644
--- a/graphics/java/android/graphics/Rect.java
+++ b/graphics/java/android/graphics/Rect.java
@@ -36,9 +36,21 @@
     public int right;
     public int bottom;
 
-    private static final Pattern FLATTENED_PATTERN = Pattern.compile(
+    /**
+     * 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 @@
      * 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;
         }