diff options
-rw-r--r-- | core/java/android/pim/vcard/VCardUtils.java | 10 | ||||
-rw-r--r-- | core/java/android/text/TextUtils.java | 22 |
2 files changed, 24 insertions, 8 deletions
diff --git a/core/java/android/pim/vcard/VCardUtils.java b/core/java/android/pim/vcard/VCardUtils.java index ec75a98..11b112b 100644 --- a/core/java/android/pim/vcard/VCardUtils.java +++ b/core/java/android/pim/vcard/VCardUtils.java @@ -359,18 +359,12 @@ public class VCardUtils { if (values == null) { return true; } - final int asciiFirst = 0x20; - final int asciiLast = 0x7E; // included for (final String value : values) { if (TextUtils.isEmpty(value)) { continue; } - final int length = value.length(); - for (int i = 0; i < length; i = value.offsetByCodePoints(i, 1)) { - final int c = value.codePointAt(i); - if (!((asciiFirst <= c && c <= asciiLast) || c == '\r' || c == '\n')) { - return false; - } + if (!TextUtils.isPrintableAsciiOnly(value)) { + return false; } } return true; diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java index 53096dd..afb22ac 100644 --- a/core/java/android/text/TextUtils.java +++ b/core/java/android/text/TextUtils.java @@ -1501,6 +1501,28 @@ public class TextUtils { } /** + * @hide + */ + public static boolean isPrintableAscii(final char c) { + final int asciiFirst = 0x20; + final int asciiLast = 0x7E; // included + return (asciiFirst <= c && c <= asciiLast) || c == '\r' || c == '\n'; + } + + /** + * @hide + */ + public static boolean isPrintableAsciiOnly(final CharSequence str) { + final int len = str.length(); + for (int i = 0; i < len; i++) { + if (!isPrintableAscii(str.charAt(i))) { + return false; + } + } + return true; + } + + /** * Capitalization mode for {@link #getCapsMode}: capitalize all * characters. This value is explicitly defined to be the same as * {@link InputType#TYPE_TEXT_FLAG_CAP_CHARACTERS}. |