Fix Tamil keyboard

This CL adds Tamil (Sri Lanka) and Tamil (Singapore) subtypes.
This CL also fixes Sinhala Keyboard's currency symbol.

Bug: 9978106
Bug: 6911143
Change-Id: I2060978097882d0f4b1ec10f1103260ed8a447d0
diff --git a/java/res/xml/key_styles_currency.xml b/java/res/xml/key_styles_currency.xml
index 900c9bb..cfe9a90 100644
--- a/java/res/xml/key_styles_currency.xml
+++ b/java/res/xml/key_styles_currency.xml
@@ -84,7 +84,6 @@
              lo: Lao (Kip)
              mn: Mongolian (Tugrik)
              ne: Nepali (Nepalese Rupee)
-             ta_IN: Tamil (Tamil Rupee)
              th: Thai (Baht)
              uk: Ukrainian (Hryvnia)
              vi: Vietnamese (Dong)  -->
@@ -92,29 +91,24 @@
              its unicode, although there is no font glyph for it as of November 2012. -->
         <!-- TODO: The currency sign of Armenian Dram was created in 2012 and assigned U+058F for
              its unicode, although there is no font glyph for it as of September 2013. -->
-        <case latin:languageCode="fa|hi|iw|lo|mn|ne|ta|th|uk|vi">
-            <!-- U+00A3: "£" POUND SIGN
-                 U+20AC: "€" EURO SIGN
-                 U+00A2: "¢" CENT SIGN -->
-            <key-style
-                latin:styleName="currencyKeyStyle"
-                latin:keySpec="!text/keyspec_currency"
-                latin:moreKeys="!text/morekeys_currency" />
-            <key-style
-                latin:styleName="moreCurrency1KeyStyle"
-                latin:keySpec="&#x00A3;" />
-            <key-style
-                latin:styleName="moreCurrency2KeyStyle"
-                latin:keySpec="&#x20AC;" />
-            <key-style
-                latin:styleName="moreCurrency3KeyStyle"
-                latin:keySpec="$"
-                latin:moreKeys="&#x00A2;" />
-            <key-style
-                latin:styleName="moreCurrency4KeyStyle"
-                latin:keySpec="&#x00A2;" />
+        <!-- TODO: The currency sign of Russian Ruble was created in 2014 and assigned U+20BD for
+             its unicode, although there is no font glyph for it as of August 2014. -->
+        <case latin:languageCode="fa|hi|iw|lo|mn|ne|th|uk|vi">
+            <include latin:keyboardLayout="@xml/key_styles_currency_generic" />
         </case>
-        <!-- IN: India (Rupee) -->
+        <!-- si_LK: Sinhala (Sri Lanka) (Sri Lanka Rupee)
+             ta_LK: Tamil (Sri Lanka) (Sri Lanka Rupee) -->
+        <case latin:countryCode="LK">
+            <include latin:keyboardLayout="@xml/key_styles_currency_generic" />
+        </case>
+        <!-- bn_IN: Bengali (India) (Indian Rupee)
+             en_IN: English (India) (Indian Rupee)
+             kn_IN: Kannada (India) (Indian Rupee)
+             ml_IN: Malayalam (India) (Indian Rupee)
+             mr_IN: Marathi (India) (Indian Rupee)
+             ta_IN: Tamil (India) (Indian Rupee)
+             te_IN: Telugu (India) (Indian Rupee)
+         -->
         <case latin:countryCode="IN">
             <!-- U+20B9: "₹" INDIAN RUPEE SIGN
                  U+00A3: "£" POUND SIGN
@@ -123,7 +117,7 @@
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keySpec="&#x20B9;"
-                latin:moreKeys="!text/morekeys_currency" />
+                latin:moreKeys="!text/morekeys_currency_generic" />
             <key-style
                 latin:styleName="moreCurrency1KeyStyle"
                 latin:keySpec="&#x00A3;" />
diff --git a/java/res/xml/key_styles_currency_generic.xml b/java/res/xml/key_styles_currency_generic.xml
new file mode 100644
index 0000000..888b5b2
--- /dev/null
+++ b/java/res/xml/key_styles_currency_generic.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <!-- U+00A3: "£" POUND SIGN
+         U+20AC: "€" EURO SIGN
+         U+00A2: "¢" CENT SIGN -->
+    <key-style
+        latin:styleName="currencyKeyStyle"
+        latin:keySpec="!text/keyspec_currency"
+        latin:moreKeys="!text/morekeys_currency_generic" />
+    <key-style
+        latin:styleName="moreCurrency1KeyStyle"
+        latin:keySpec="&#x00A3;" />
+    <key-style
+        latin:styleName="moreCurrency2KeyStyle"
+        latin:keySpec="&#x20AC;" />
+    <key-style
+        latin:styleName="moreCurrency3KeyStyle"
+        latin:keySpec="$"
+        latin:moreKeys="&#x00A2;" />
+    <key-style
+        latin:styleName="moreCurrency4KeyStyle"
+        latin:keySpec="&#x00A2;" />
+</merge>
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 4e2ce75..b3381c5 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -92,6 +92,8 @@
     sv: Swedish/nordic
     sw: Swahili/qwerty
     ta_IN: Tamil (India)/tamil
+    ta_LK: Tamil (Sri Lanka)/tamil
+    ta_SG: Tamil (Singapore)/tamil
     te_IN: Telugu (India)/telugu
     th: Thai/thai
     tl: Tagalog/spanish
@@ -690,6 +692,22 @@
     />
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
+            android:subtypeId="0x6ca12d84"
+            android:imeSubtypeLocale="ta_LK"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=tamil,EmojiCapable"
+            android:isAsciiCapable="false"
+    />
+    <subtype android:icon="@drawable/ic_ime_switcher_dark"
+            android:label="@string/subtype_generic"
+            android:subtypeId="0x785abbd9"
+            android:imeSubtypeLocale="ta_SG"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=tamil,EmojiCapable"
+            android:isAsciiCapable="false"
+    />
+    <subtype android:icon="@drawable/ic_ime_switcher_dark"
+            android:label="@string/subtype_generic"
             android:subtypeId="0x1e177389"
             android:imeSubtypeLocale="te_IN"
             android:imeSubtypeMode="keyboard"
diff --git a/java/res/xml/rowkeys_tamil1.xml b/java/res/xml/rowkeys_tamil1.xml
index 4debd9e..d6a5cfa 100644
--- a/java/res/xml/rowkeys_tamil1.xml
+++ b/java/res/xml/rowkeys_tamil1.xml
@@ -19,29 +19,39 @@
 -->
 
 <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <!-- U+0B94: "ஔ" TAMIL LETTER AU -->
+    <!-- U+0B94: "ஔ" TAMIL LETTER AU
+         U+0BCC: "ௌ" TAMIL VOWEL SIGN AU -->
     <Key
         latin:keySpec="&#x0B94;"
+        latin:moreKeys="&#x0BCC;,%"
         latin:keyHintLabel="1"
         latin:additionalMoreKeys="1" />
-    <!-- U+0B90: "ஐ" TAMIL LETTER AI -->
+    <!-- U+0B90: "ஐ" TAMIL LETTER AI
+         U+0BC8: "ை" TAMIL VOWEL SIGN AI -->
     <Key
         latin:keySpec="&#x0B90;"
+        latin:moreKeys="&#x0BC8;,%"
         latin:keyHintLabel="2"
         latin:additionalMoreKeys="2" />
-    <!-- U+0B86: "ஆ" TAMIL LETTER AA -->
+    <!-- U+0B86: "ஆ" TAMIL LETTER AA
+         U+0BBE: "ா" TAMIL VOWEL SIGN AA -->
     <Key
         latin:keySpec="&#x0B86;"
+        latin:moreKeys="&#x0BBE;,%"
         latin:keyHintLabel="3"
         latin:additionalMoreKeys="3" />
-    <!-- U+0B88: "ஈ" TAMIL LETTER II -->
+    <!-- U+0B88: "ஈ" TAMIL LETTER II
+         U+0BC0: "ீ" TAMIL VOWEL SIGN II -->
     <Key
         latin:keySpec="&#x0B88;"
+        latin:moreKeys="&#x0BC0;,%"
         latin:keyHintLabel="4"
         latin:additionalMoreKeys="4" />
-    <!-- U+0B8A: "ஊ" TAMIL LETTER UU -->
+    <!-- U+0B8A: "ஊ" TAMIL LETTER UU
+         U+0BC2: "ூ" TAMIL VOWEL SIGN UU -->
     <Key
         latin:keySpec="&#x0B8A;"
+        latin:moreKeys="&#x0BC2;,%"
         latin:keyHintLabel="5"
         latin:additionalMoreKeys="5" />
     <!-- U+0BAE: "ம" TAMIL LETTER MA -->
diff --git a/java/res/xml/rowkeys_tamil2.xml b/java/res/xml/rowkeys_tamil2.xml
index 894825c..ec0b2a8 100644
--- a/java/res/xml/rowkeys_tamil2.xml
+++ b/java/res/xml/rowkeys_tamil2.xml
@@ -20,21 +20,31 @@
 
 <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
     <!-- U+0B93: "ஓ" TAMIL LETTER OO
+         U+0BCB: "ோ" TAMIL VOWEL SIGN OO
          U+0BD0: "ௐ" TAMIL OM -->
     <Key
         latin:keySpec="&#x0B93;"
-        latin:moreKeys="&#x0BD0;" />
-    <!-- U+0B8F: "ஏ" TAMIL LETTER EE -->
-    <Key latin:keySpec="&#x0B8F;" />
+        latin:moreKeys="&#x0BCB;,&#x0BD0;" />
+    <!-- U+0B8F: "ஏ" TAMIL LETTER EE
+         U+0BC7: "ே" TAMIL VOWEL SIGN EE -->
+    <Key
+        latin:keySpec="&#x0B8F;"
+        latin:moreKeys="&#x0BC7;" />
     <!-- U+0B85: "அ" TAMIL LETTER A
          U+0B83: "ஃ" TAMIL SIGN VISARGA -->
     <Key
         latin:keySpec="&#x0B85;"
         latin:moreKeys="&#x0B83;" />
-    <!-- U+0B87: "இ" TAMIL LETTER I -->
-    <Key latin:keySpec="&#x0B87;" />
-    <!-- U+0B89: "உ" TAMIL LETTER U -->
-    <Key latin:keySpec="&#x0B89;" />
+    <!-- U+0B87: "இ" TAMIL LETTER I
+         U+0BBF: "ி" TAMIL VOWEL SIGN I -->
+    <Key
+        latin:keySpec="&#x0B87;"
+        latin:moreKeys="&#x0BBF;" />
+    <!-- U+0B89: "உ" TAMIL LETTER U
+         U+0BC1: "ு" TAMIL VOWEL SIGN U -->
+    <Key
+        latin:keySpec="&#x0B89;"
+        latin:moreKeys="&#x0BC1;" />
     <!-- U+0BB1: "ற" TAMIL LETTER RRA -->
     <Key latin:keySpec="&#x0BB1;" />
     <!-- U+0BAA: "ப" TAMIL LETTER PA -->
diff --git a/java/res/xml/rowkeys_tamil3.xml b/java/res/xml/rowkeys_tamil3.xml
index 5386e61..e517e14 100644
--- a/java/res/xml/rowkeys_tamil3.xml
+++ b/java/res/xml/rowkeys_tamil3.xml
@@ -19,10 +19,16 @@
 -->
 
 <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <!-- U+0B92: "ஒ" TAMIL LETTER O -->
-    <Key latin:keySpec="&#x0B92;" />
-    <!-- U+0B8E: "எ" TAMIL LETTER E -->
-    <Key latin:keySpec="&#x0B8E;" />
+    <!-- U+0B92: "ஒ" TAMIL LETTER O
+         U+0BCA: "ொ" TAMIL VOWEL SIGN O -->
+    <Key
+        latin:keySpec="&#x0B92;"
+        latin:moreKeys="&#x0BCA;" />
+    <!-- U+0B8E: "எ" TAMIL LETTER E
+         U+0BC6: "ெ" TAMIL VOWEL SIGN E -->
+    <Key
+        latin:keySpec="&#x0B8E;"
+        latin:moreKeys="&#x0BC6;" />
     <!-- U+0BCD: "்" TAMIL SIGN VIRAMA -->
     <Key latin:keySpec="&#x0BCD;" />
     <!-- U+0BB0: "ர" TAMIL LETTER RA -->