summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-07-30 13:01:44 +0900
committerJean Chalard <jchalard@google.com>2014-07-30 15:58:43 +0900
commit3a729d4ed8f3018663af74abc2ae4ac3f4bb33d7 (patch)
tree3ff896db8b80c16eed5d6debdf7d6b74ca6dd311
parent7c5cd5ec89c0d90c3dbac032c61ee04468ecdc87 (diff)
downloadandroid_packages_inputmethods_LatinIME-3a729d4ed8f3018663af74abc2ae4ac3f4bb33d7.tar.gz
android_packages_inputmethods_LatinIME-3a729d4ed8f3018663af74abc2ae4ac3f4bb33d7.tar.bz2
android_packages_inputmethods_LatinIME-3a729d4ed8f3018663af74abc2ae4ac3f4bb33d7.zip
[SD12] Add the last remaining scripts
Add scripts for Bengali, Devanagari, Kannada, Malayalam, and Tamil. Also include a very minor fix for Arabic. This concludes work on: Bug: 15840116 Change-Id: Iade313fc70030a67c68d424d8cb0cac245b883d1
-rw-r--r--java/res/values/attrs.xml5
-rw-r--r--java/res/xml/keyboard_layout_set_bengali.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_hindi.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_hindi_compact.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_kannada.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_malayalam.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_marathi.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_nepali_romanized.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_nepali_traditional.xml2
-rw-r--r--java/res/xml/keyboard_layout_set_tamil.xml2
-rw-r--r--java/src/com/android/inputmethod/latin/utils/ScriptUtils.java24
11 files changed, 45 insertions, 2 deletions
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 80a657346..a18ab766d 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -494,6 +494,11 @@
<enum name="sinhala" value="10" />
<enum name="thai" value="11" />
<enum name="telugu" value="12" />
+ <enum name="devanagari" value="13" />
+ <enum name="bengali" value="14" />
+ <enum name="tamil" value="15" />
+ <enum name="kannada" value="16" />
+ <enum name="malayalam" value="17" />
</attr>
</declare-styleable>
diff --git a/java/res/xml/keyboard_layout_set_bengali.xml b/java/res/xml/keyboard_layout_set_bengali.xml
index 6e40e6de4..de48a0ceb 100644
--- a/java/res/xml/keyboard_layout_set_bengali.xml
+++ b/java/res/xml/keyboard_layout_set_bengali.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="bengali" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_bengali"
diff --git a/java/res/xml/keyboard_layout_set_hindi.xml b/java/res/xml/keyboard_layout_set_hindi.xml
index e850c7ebc..ee41b2ae7 100644
--- a/java/res/xml/keyboard_layout_set_hindi.xml
+++ b/java/res/xml/keyboard_layout_set_hindi.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="devanagari" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_hindi"
diff --git a/java/res/xml/keyboard_layout_set_hindi_compact.xml b/java/res/xml/keyboard_layout_set_hindi_compact.xml
index 77d02fbbc..147b2993f 100644
--- a/java/res/xml/keyboard_layout_set_hindi_compact.xml
+++ b/java/res/xml/keyboard_layout_set_hindi_compact.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="devanagari" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_hindi_compact"
diff --git a/java/res/xml/keyboard_layout_set_kannada.xml b/java/res/xml/keyboard_layout_set_kannada.xml
index 8dcf99657..14323e7ef 100644
--- a/java/res/xml/keyboard_layout_set_kannada.xml
+++ b/java/res/xml/keyboard_layout_set_kannada.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="kannada" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_kannada"
diff --git a/java/res/xml/keyboard_layout_set_malayalam.xml b/java/res/xml/keyboard_layout_set_malayalam.xml
index 14c76baf0..f6086f6cb 100644
--- a/java/res/xml/keyboard_layout_set_malayalam.xml
+++ b/java/res/xml/keyboard_layout_set_malayalam.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="malayalam" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_malayalam"
diff --git a/java/res/xml/keyboard_layout_set_marathi.xml b/java/res/xml/keyboard_layout_set_marathi.xml
index e5c68e7ce..6aea17546 100644
--- a/java/res/xml/keyboard_layout_set_marathi.xml
+++ b/java/res/xml/keyboard_layout_set_marathi.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="devanagari" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_marathi"
diff --git a/java/res/xml/keyboard_layout_set_nepali_romanized.xml b/java/res/xml/keyboard_layout_set_nepali_romanized.xml
index fbbc6a5a0..5bad83537 100644
--- a/java/res/xml/keyboard_layout_set_nepali_romanized.xml
+++ b/java/res/xml/keyboard_layout_set_nepali_romanized.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="devanagari" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_nepali_romanized"
diff --git a/java/res/xml/keyboard_layout_set_nepali_traditional.xml b/java/res/xml/keyboard_layout_set_nepali_traditional.xml
index 4a3b60153..6f11dee58 100644
--- a/java/res/xml/keyboard_layout_set_nepali_traditional.xml
+++ b/java/res/xml/keyboard_layout_set_nepali_traditional.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="devanagari" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_nepali_traditional"
diff --git a/java/res/xml/keyboard_layout_set_tamil.xml b/java/res/xml/keyboard_layout_set_tamil.xml
index 5c0491505..27f4a3266 100644
--- a/java/res/xml/keyboard_layout_set_tamil.xml
+++ b/java/res/xml/keyboard_layout_set_tamil.xml
@@ -20,6 +20,8 @@
<KeyboardLayoutSet
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+ <Feature
+ latin:supportedScript="tamil" />
<Element
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_tamil"
diff --git a/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java b/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
index f3df63f45..722591c68 100644
--- a/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
@@ -39,6 +39,11 @@ public class ScriptUtils {
public static final int SCRIPT_SINHALA = 10;
public static final int SCRIPT_THAI = 11;
public static final int SCRIPT_TELUGU = 12;
+ public static final int SCRIPT_DEVANAGARI = 13;
+ public static final int SCRIPT_BENGALI = 14;
+ public static final int SCRIPT_TAMIL = 15;
+ public static final int SCRIPT_KANNADA = 16;
+ public static final int SCRIPT_MALAYALAM = 17;
public static final TreeMap<String, Integer> mSpellCheckerLanguageToScript;
static {
// List of the supported languages and their associated script. We won't check
@@ -102,12 +107,12 @@ public class ScriptUtils {
case SCRIPT_ARABIC:
// Arabic letters can be in any of the following blocks:
// Arabic U+0600..U+06FF
- // Arabic Supplement U+0750..U+077F
+ // Arabic Supplement, Thaana U+0750..U+077F, U+0780..U+07BF
// Arabic Extended-A U+08A0..U+08FF
// Arabic Presentation Forms-A U+FB50..U+FDFF
// Arabic Presentation Forms-B U+FE70..U+FEFF
return (codePoint >= 0x600 && codePoint <= 0x6FF)
- || (codePoint >= 0x750 && codePoint <= 0x77F)
+ || (codePoint >= 0x750 && codePoint <= 0x7BF)
|| (codePoint >= 0x8A0 && codePoint <= 0x8FF)
|| (codePoint >= 0xFB50 && codePoint <= 0xFDFF)
|| (codePoint >= 0xFE70 && codePoint <= 0xFEFF);
@@ -153,6 +158,21 @@ public class ScriptUtils {
case SCRIPT_TELUGU:
// Telugu unicode block is U+0C00..U+0C7F
return (codePoint >= 0xC00 && codePoint <= 0xC7F);
+ case SCRIPT_DEVANAGARI:
+ // Devanagari unicode block is +0900..U+097F
+ return (codePoint >= 0x900 && codePoint <= 0x97F);
+ case SCRIPT_BENGALI:
+ // Bengali unicode block is U+0980..U+09FF
+ return (codePoint >= 0x980 && codePoint <= 0x9FF);
+ case SCRIPT_TAMIL:
+ // Tamil unicode block is U+0B80..U+0BFF
+ return (codePoint >= 0xB80 && codePoint <= 0xBFF);
+ case SCRIPT_KANNADA:
+ // Kannada unicode block is U+0C80..U+0CFF
+ return (codePoint >= 0xC80 && codePoint <= 0xCFF);
+ case SCRIPT_MALAYALAM:
+ // Malayalam unicode block is U+0D00..U+0D7F
+ return (codePoint >= 0xD00 && codePoint <= 0xD7F);
case SCRIPT_UNKNOWN:
return true;
default: