Swap parenthesis-like character code on RTL keyboard

Bug: 5047217
Change-Id: I1b88484825f5c035401cf083522bf95bbee30edb
diff --git a/java/res/xml/kbd_rows_symbols.xml b/java/res/xml/kbd_rows_symbols.xml
new file mode 100644
index 0000000..a8eeb3b
--- /dev/null
+++ b/java/res/xml/kbd_rows_symbols.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, 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"
+>
+    <include
+        latin:keyboardLayout="@xml/kbd_key_styles" />
+    <include
+        latin:keyboardLayout="@xml/kbd_currency_key_styles" />
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_1"
+            latin:popupCharacters="@string/alternates_for_symbols_1" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_2"
+            latin:popupCharacters="@string/alternates_for_symbols_2" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_3"
+            latin:popupCharacters="@string/alternates_for_symbols_3" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_4"
+            latin:popupCharacters="@string/alternates_for_symbols_4" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_5"
+            latin:popupCharacters="@string/alternates_for_symbols_5" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_6"
+            latin:popupCharacters="@string/alternates_for_symbols_6" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_7"
+            latin:popupCharacters="@string/alternates_for_symbols_7" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_8"
+            latin:popupCharacters="@string/alternates_for_symbols_8" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_9"
+            latin:popupCharacters="@string/alternates_for_symbols_9" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_0"
+            latin:popupCharacters="@string/alternates_for_symbols_0"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyLabel="\@" />
+        <Key
+            latin:keyLabel="\#" />
+        <Key
+            latin:keyStyle="currencyKeyStyle" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_percent"
+            latin:popupCharacters="@string/alternates_for_symbols_percent" />
+        <Key
+            latin:keyLabel="&amp;" />
+        <Key
+            latin:keyLabel="*"
+            latin:popupCharacters="†,‡,★" />
+        <Key
+            latin:keyLabel="-"
+            latin:popupCharacters="_,–,—" />
+        <Key
+            latin:keyLabel="+"
+            latin:popupCharacters="±" />
+        <Key
+            latin:keyLabel="("
+            latin:popupCharacters="[,{,&lt;" />
+        <Key
+            latin:keyLabel=")"
+            latin:popupCharacters="],},&gt;"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyStyle="altKeyStyle"
+            latin:keyWidth="15%p"
+            latin:visualInsetsRight="1%p" />
+        <Key
+            latin:keyLabel="!"
+            latin:popupCharacters="¡" />
+        <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
+        <!-- latin:popupCharacters="“,”,„,‟,«,»" -->
+        <Key
+            latin:keyLabel="&quot;"
+            latin:popupCharacters="“,”,«,»"
+            latin:maxPopupKeyboardColumn="6" />
+        <Key
+            latin:keyLabel="\'"
+            latin:popupCharacters="‘,’,‚,‛" />
+        <Key
+            latin:keyLabel=":" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_semicolon"
+            latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
+        <Key
+            latin:keyLabel="/" />
+        <Key
+            latin:keyLabel="@string/keylabel_for_symbols_question"
+            latin:popupCharacters="@string/alternates_for_symbols_question" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight"
+            latin:visualInsetsLeft="1%p" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/kbd_symbols_row4" />
+</merge>
diff --git a/java/res/xml/kbd_rows_symbols_shift.xml b/java/res/xml/kbd_rows_symbols_shift.xml
new file mode 100644
index 0000000..0706cbc
--- /dev/null
+++ b/java/res/xml/kbd_rows_symbols_shift.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2008, 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"
+>
+    <include
+        latin:keyboardLayout="@xml/kbd_key_styles" />
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyLabel="~" />
+        <Key
+            latin:keyLabel="`" />
+        <Key
+            latin:keyLabel="|" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="•"
+            latin:popupCharacters="♪,♥,♠,♦,♣" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="√" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="π"
+            latin:popupCharacters="Π" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="÷" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="×" />
+        <Key
+            latin:keyLabel="{" />
+        <Key
+            latin:keyLabel="}"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyStyle="nonSpecialBackgroundTabKeyStyle" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="£" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="¢" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="€" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="°"
+            latin:popupCharacters="′,″" />
+        <Key
+            latin:keyLabel="^"
+            latin:popupCharacters="↑,↓,←,→" />
+        <Key
+            latin:keyLabel="_" />
+        <Key
+            latin:keyLabel="="
+            latin:popupCharacters="≠,≈,∞" />
+        <Key
+            latin:keyLabel="[" />
+        <Key
+            latin:keyLabel="]"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyStyle="altKeyStyle"
+            latin:keyWidth="15%p"
+            latin:visualInsetsRight="1%p" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="™" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="®" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="©" />
+        <Key
+            latin:keyStyle="nonPasswordSymbolKeyStyle"
+            latin:keyLabel="¶"
+            latin:popupCharacters="§" />
+        <Key
+            latin:keyLabel="\\" />
+        <Key
+            latin:keyLabel="&lt;"
+            latin:popupCharacters="≤,«,‹" />
+        <Key
+            latin:keyLabel="&gt;"
+            latin:popupCharacters="≥,»,›" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight"
+            latin:visualInsetsLeft="1%p" />
+    </Row>
+    <include
+        latin:keyboardLayout="@xml/kbd_symbols_shift_row4" />
+</merge>
diff --git a/java/res/xml/kbd_symbols.xml b/java/res/xml/kbd_symbols.xml
index 7bb8d02..737f684 100644
--- a/java/res/xml/kbd_symbols.xml
+++ b/java/res/xml/kbd_symbols.xml
@@ -1,125 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-/* 
+/*
 **
 ** Copyright 2008, 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 
+** 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 
+**     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 
+** 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.
 */
 -->
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="10%p"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_key_styles" />
-    <include
-        latin:keyboardLayout="@xml/kbd_currency_key_styles" />
-    <Row>
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_1"
-            latin:popupCharacters="@string/alternates_for_symbols_1" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_2"
-            latin:popupCharacters="@string/alternates_for_symbols_2" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_3"
-            latin:popupCharacters="@string/alternates_for_symbols_3" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_4"
-            latin:popupCharacters="@string/alternates_for_symbols_4" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_5"
-            latin:popupCharacters="@string/alternates_for_symbols_5" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_6"
-            latin:popupCharacters="@string/alternates_for_symbols_6" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_7"
-            latin:popupCharacters="@string/alternates_for_symbols_7" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_8"
-            latin:popupCharacters="@string/alternates_for_symbols_8" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_9"
-            latin:popupCharacters="@string/alternates_for_symbols_9" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_0"
-            latin:popupCharacters="@string/alternates_for_symbols_0"
-            latin:keyWidth="fillRight" />
-    </Row>
-    <Row>
-        <Key
-            latin:keyLabel="\@" />
-        <Key
-            latin:keyLabel="\#" />
-        <Key
-            latin:keyStyle="currencyKeyStyle" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_percent"
-            latin:popupCharacters="@string/alternates_for_symbols_percent" />
-        <Key
-            latin:keyLabel="&amp;" />
-        <Key
-            latin:keyLabel="*"
-            latin:popupCharacters="†,‡,★" />
-        <Key
-            latin:keyLabel="-"
-            latin:popupCharacters="_,–,—" />
-        <Key
-            latin:keyLabel="+"
-            latin:popupCharacters="±" />
-        <Key
-            latin:keyLabel="("
-            latin:popupCharacters="[,{,&lt;" />
-        <Key
-            latin:keyLabel=")"
-            latin:popupCharacters="],},&gt;"
-            latin:keyWidth="fillRight" />
-    </Row>
-    <Row>
-        <Key
-            latin:keyStyle="altKeyStyle"
-            latin:keyWidth="15%p"
-            latin:visualInsetsRight="1%p" />
-        <Key
-            latin:keyLabel="!"
-            latin:popupCharacters="¡" />
-        <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
-        <!-- latin:popupCharacters="“,”,„,‟,«,»" -->
-        <Key
-            latin:keyLabel="&quot;"
-            latin:popupCharacters="“,”,«,»"
-            latin:maxPopupKeyboardColumn="6" />
-        <Key
-            latin:keyLabel="\'"
-            latin:popupCharacters="‘,’,‚,‛" />
-        <Key
-            latin:keyLabel=":" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_semicolon"
-            latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
-        <Key
-            latin:keyLabel="/" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_symbols_question"
-            latin:popupCharacters="@string/alternates_for_symbols_question" />
-        <Key
-            latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillRight"
-            latin:visualInsetsLeft="1%p" />
-    </Row>
-    <include
-        latin:keyboardLayout="@xml/kbd_symbols_row4" />
+        latin:keyboardLayout="@xml/kbd_rows_symbols" />
 </Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift.xml b/java/res/xml/kbd_symbols_shift.xml
index 61fbec2..9c163d6 100644
--- a/java/res/xml/kbd_symbols_shift.xml
+++ b/java/res/xml/kbd_symbols_shift.xml
@@ -1,119 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-/* 
+/*
 **
 ** Copyright 2008, 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 
+** 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 
+**     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 
+** 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.
 */
 -->
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="10%p"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_key_styles" />
-    <Row>
-        <Key
-            latin:keyLabel="~" />
-        <Key
-            latin:keyLabel="`" />
-        <Key
-            latin:keyLabel="|" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="•"
-            latin:popupCharacters="♪,♥,♠,♦,♣" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="√" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="π"
-            latin:popupCharacters="Π" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="÷" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="×" />
-        <Key
-            latin:keyLabel="{" />
-        <Key
-            latin:keyLabel="}"
-            latin:keyWidth="fillRight" />
-    </Row>
-    <Row>
-        <Key
-            latin:keyStyle="nonSpecialBackgroundTabKeyStyle" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="£" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="¢" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="€" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="°"
-            latin:popupCharacters="′,″" />
-        <Key
-            latin:keyLabel="^"
-            latin:popupCharacters="↑,↓,←,→" />
-        <Key
-            latin:keyLabel="_" />
-        <Key
-            latin:keyLabel="="
-            latin:popupCharacters="≠,≈,∞" />
-        <Key
-            latin:keyLabel="[" />
-        <Key
-            latin:keyLabel="]"
-            latin:keyWidth="fillRight" />
-    </Row>
-    <Row>
-        <Key
-            latin:keyStyle="altKeyStyle"
-            latin:keyWidth="15%p"
-            latin:visualInsetsRight="1%p" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="™" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="®" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="©" />
-        <Key
-            latin:keyStyle="nonPasswordSymbolKeyStyle"
-            latin:keyLabel="¶"
-            latin:popupCharacters="§" />
-        <Key
-            latin:keyLabel="\\" />
-        <Key
-            latin:keyLabel="&lt;"
-            latin:popupCharacters="≤,«,‹" />
-        <Key
-            latin:keyLabel="&gt;"
-            latin:popupCharacters="≥,»,›" />
-        <Key
-            latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillRight"
-            latin:visualInsetsLeft="1%p" />
-    </Row>
-    <include latin:keyboardLayout="@xml/kbd_symbols_shift_row4" />
+        latin:keyboardLayout="@xml/kbd_rows_symbols_shift" />
 </Keyboard>