Merge "Slightly more precise RTL check in BoringLayout.isBoring()" into mnc-dev
diff --git a/core/java/android/text/BoringLayout.java b/core/java/android/text/BoringLayout.java
index e78cf8f..aa8b71c 100644
--- a/core/java/android/text/BoringLayout.java
+++ b/core/java/android/text/BoringLayout.java
@@ -269,7 +269,15 @@
             for (int a = 0; a < n; a++) {
                 char c = temp[a];
 
-                if (c == '\n' || c == '\t' || c >= FIRST_RIGHT_TO_LEFT) {
+                if (c == '\n' || c == '\t' ||
+                        (c >= 0x0590 && c <= 0x08FF) ||  // RTL scripts
+                        c == 0x200F ||  // Bidi format character
+                        (c >= 0x202A && c <= 0x202E) ||  // Bidi format characters
+                        (c >= 0x2066 && c <= 0x2069) ||  // Bidi format characters
+                        (c >= 0xD800 && c <= 0xDFFF) ||  // surrogate pairs
+                        (c >= 0xFB1D && c <= 0xFDFF) ||  // Hebrew and Arabic presentation forms
+                        (c >= 0xFE70 && c <= 0xFEFE) // Arabic presentation forms
+                   ) {
                     boring = false;
                     break outer;
                 }