diff options
author | 2014-10-31 13:15:47 +0900 | |
---|---|---|
committer | 2014-10-31 16:20:20 +0900 | |
commit | 9dc3ae84eecb8adbcac7d31a5ceab1d3ab95cd53 (patch) | |
tree | 4501648692fe51b4e8f0177ccff11ef08de41fa8 /java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java | |
parent | 04a492cb490e2dc38214f5cfa99283a886e6acbb (diff) | |
download | latinime-9dc3ae84eecb8adbcac7d31a5ceab1d3ab95cd53.tar.gz latinime-9dc3ae84eecb8adbcac7d31a5ceab1d3ab95cd53.tar.xz latinime-9dc3ae84eecb8adbcac7d31a5ceab1d3ab95cd53.zip |
Add helper methods to convert flags to readable text
Change-Id: I23608927cef8a897ff4ad8c938560cc78093ddac
Diffstat (limited to 'java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java b/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java index 0db63fd9f..0dbc7c858 100644 --- a/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java @@ -24,6 +24,7 @@ import com.android.inputmethod.latin.common.Constants; import com.android.inputmethod.latin.common.StringUtils; import com.android.inputmethod.latin.settings.SpacingAndPunctuations; +import java.util.ArrayList; import java.util.Locale; public final class CapsModeUtils { @@ -326,4 +327,31 @@ public final class CapsModeUtils { // Here we arrived at the start of the line. This should behave exactly like whitespace. return (START == state || LETTER == state) ? noCaps : caps; } + + /** + * Convert capitalize mode flags into human readable text. + * + * @param capsFlags The modes flags to be converted. It may be any combination of + * {@link TextUtils#CAP_MODE_CHARACTERS}, {@link TextUtils#CAP_MODE_WORDS}, and + * {@link TextUtils#CAP_MODE_SENTENCES}. + * @return the text that describe the <code>capsMode</code>. + */ + public static String flagsToString(final int capsFlags) { + final int capsFlagsMask = TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_WORDS + | TextUtils.CAP_MODE_SENTENCES; + if ((capsFlags & ~capsFlagsMask) != 0) { + return "unknown<0x" + Integer.toHexString(capsFlags) + ">"; + } + final ArrayList<String> builder = new ArrayList<>(); + if ((capsFlags & android.text.TextUtils.CAP_MODE_CHARACTERS) != 0) { + builder.add("characters"); + } + if ((capsFlags & android.text.TextUtils.CAP_MODE_WORDS) != 0) { + builder.add("words"); + } + if ((capsFlags & android.text.TextUtils.CAP_MODE_SENTENCES) != 0) { + builder.add("sentences"); + } + return builder.isEmpty() ? "none" : TextUtils.join("|", builder); + } } |