diff options
author | 2014-01-10 12:05:24 +0900 | |
---|---|---|
committer | 2014-01-10 12:18:26 +0900 | |
commit | 84a3047e801923bd486b0cff2f9ea0de25d7e3ba (patch) | |
tree | e78c6ea3d4abe226449f37d306573c081309ff04 /java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java | |
parent | ee35e69eae734448d0aa90e46037273cc3f1e6ad (diff) | |
download | latinime-84a3047e801923bd486b0cff2f9ea0de25d7e3ba.tar.gz latinime-84a3047e801923bd486b0cff2f9ea0de25d7e3ba.tar.xz latinime-84a3047e801923bd486b0cff2f9ea0de25d7e3ba.zip |
Fix build.
Change-Id: I6d0b572190080e58e95f72856ad39e72a49537b7
Diffstat (limited to 'java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java index 3daa63ff4..b3c787e44 100644 --- a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java @@ -20,13 +20,16 @@ import android.content.ContentValues; import android.content.Context; import android.content.res.AssetManager; import android.content.res.Resources; +import android.text.TextUtils; import android.util.Log; +import com.android.inputmethod.annotations.UsedForTesting; import com.android.inputmethod.latin.AssetFileAddress; import com.android.inputmethod.latin.BinaryDictionaryGetter; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.makedict.BinaryDictIOUtils; import com.android.inputmethod.latin.makedict.FormatSpec.FileHeader; +import com.android.inputmethod.latin.settings.SpacingAndPunctuations; import java.io.File; import java.util.ArrayList; @@ -364,4 +367,29 @@ public class DictionaryInfoUtils { return dictList; } + + @UsedForTesting + public static boolean looksValidForDictionaryInsertion(final CharSequence text, + final SpacingAndPunctuations spacingAndPunctuations) { + if (TextUtils.isEmpty(text)) return false; + final int length = text.length(); + int i = 0; + int digitCount = 0; + while (i < length) { + final int codePoint = Character.codePointAt(text, i); + final int charCount = Character.charCount(codePoint); + i += charCount; + if (Character.isDigit(codePoint)) { + // Count digits: see below + digitCount += charCount; + continue; + } + if (!spacingAndPunctuations.isWordCodePoint(codePoint)) return false; + } + // We reject strings entirely comprised of digits to avoid using PIN codes or credit + // card numbers. It would come in handy for word prediction though; a good example is + // when writing one's address where the street number is usually quite discriminative, + // as well as the postal code. + return digitCount < length; + } } |