From c8383eda8bb05e25b22fe6d66100248f7d0e33fa Mon Sep 17 00:00:00 2001 From: Ken Wakasa Date: Sat, 12 Oct 2013 16:41:37 +0900 Subject: Fix wrong commitText parameter in sendKeyCodePoint() Small optimization on generating a String instance from a single code point too. bug: 11181913 Change-Id: I0f905e4dc6ec7841092bb4d3d940daf3b2303f5b --- java/src/com/android/inputmethod/latin/utils/StringUtils.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'java/src/com/android/inputmethod/latin/utils/StringUtils.java') diff --git a/java/src/com/android/inputmethod/latin/utils/StringUtils.java b/java/src/com/android/inputmethod/latin/utils/StringUtils.java index 121aecf0f..a36548392 100644 --- a/java/src/com/android/inputmethod/latin/utils/StringUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/StringUtils.java @@ -48,6 +48,16 @@ public final class StringUtils { return text.codePointCount(0, text.length()); } + public static String newSingleCodePointString(int codePoint) { + if (Character.charCount(codePoint) == 1) { + // Optimization: avoid creating an temporary array for characters that are + // represented by a single char value + return String.valueOf((char) codePoint); + } + // For surrogate pair + return new String(Character.toChars(codePoint)); + } + public static boolean containsInArray(final String text, final String[] array) { for (final String element : array) { if (text.equals(element)) return true; -- cgit v1.2.3-83-g751a