From 9fa0a2e83f1daf2864d8caa24b8c507ad3c28e87 Mon Sep 17 00:00:00 2001
From: "Tadashi G. Takaoka" <takaoka@google.com>
Date: Fri, 20 Apr 2012 11:19:07 +0900
Subject: [PATCH] Modularize keyboard XML files

* Remove duplicated xml-sw768dp/keys_apostrophe_dash.xml
* Separate keys_apostrophe_dash.xml to key_apostorhe.xml and
  key_dash.ml
* Separate key_space.xml from row_qwerty4.xml
* Separate key_f1.xml from xml{,-sw600dp}/row_qwerty4.xml
* Separate keys_f1f2.xml from xml-sw768dp/row_qwerty4.xml
* Fix incorrectly named rows_symbols{,_shift}4.xml to
  row_symbols{,_shift}4.xml

Change-Id: Id71967a016a348174d1fc265b654dbc233c6562e
---
 ...ty_symbols.xml => kbd_10_10_7_symbols.xml} |  0
 ...hift.xml => kbd_10_10_7_symbols_shift.xml} |  0
 ...apostrophe_dash.xml => key_apostrophe.xml} | 17 +----
 .../{kbd_hebrew_symbols.xml => key_dash.xml}  | 21 +++++-
 .../{kbd_spanish_symbols.xml => key_f1.xml}   | 27 ++++++-
 ...hebrew_symbols_shift.xml => key_space.xml} | 24 +++++-
 java/res/xml-sw600dp/row_qwerty4.xml          | 47 ++----------
 .../{rows_symbols4.xml => row_symbols4.xml}   |  0
 ...bols_shift4.xml => row_symbols_shift4.xml} |  0
 java/res/xml-sw600dp/rows_10_10_7_symbols.xml |  2 +-
 .../rows_10_10_7_symbols_shift.xml            |  2 +-
 java/res/xml-sw600dp/rows_hebrew.xml          |  4 +-
 java/res/xml-sw600dp/rows_symbols.xml         |  2 +-
 java/res/xml-sw600dp/rows_symbols_shift.xml   |  2 +-
 .../key_space.xml}                            | 26 ++++++-
 java/res/xml-sw768dp/keys_f1f2.xml            | 71 ++++++++++++++++++
 java/res/xml-sw768dp/row_qwerty4.xml          | 75 ++-----------------
 .../{rows_symbols4.xml => row_symbols4.xml}   |  0
 ...bols_shift4.xml => row_symbols_shift4.xml} |  0
 java/res/xml-sw768dp/rows_10_10_7_symbols.xml |  2 +-
 .../rows_10_10_7_symbols_shift.xml            |  2 +-
 java/res/xml-sw768dp/rows_hebrew.xml          |  4 +-
 java/res/xml-sw768dp/rows_symbols.xml         |  2 +-
 java/res/xml-sw768dp/rows_symbols_shift.xml   |  2 +-
 java/res/xml-sw768dp/rows_thai_symbols.xml    |  2 +-
 .../xml-sw768dp/rows_thai_symbols_shift.xml   |  2 +-
 ...ty_symbols.xml => kbd_10_10_7_symbols.xml} |  0
 ...hift.xml => kbd_10_10_7_symbols_shift.xml} |  0
 java/res/xml/kbd_hebrew_symbols.xml           | 26 -------
 java/res/xml/kbd_hebrew_symbols_shift.xml     | 26 -------
 java/res/xml/kbd_spanish_symbols.xml          | 26 -------
 java/res/xml/kbd_spanish_symbols_shift.xml    | 26 -------
 .../key_f1.xml}                               | 37 ++++-----
 java/res/xml/key_space.xml                    | 63 ++++++++++++++++
 java/res/xml/keyboard_layout_set_azerty.xml   |  4 +-
 java/res/xml/keyboard_layout_set_hebrew.xml   |  4 +-
 java/res/xml/keyboard_layout_set_spanish.xml  |  4 +-
 java/res/xml/row_qwerty4.xml                  | 73 +-----------------
 .../{rows_symbols4.xml => row_symbols4.xml}   |  0
 ...bols_shift4.xml => row_symbols_shift4.xml} |  0
 java/res/xml/rows_symbols.xml                 |  2 +-
 java/res/xml/rows_symbols_shift.xml           |  2 +-
 42 files changed, 273 insertions(+), 356 deletions(-)
 rename java/res/xml-sw600dp/{kbd_azerty_symbols.xml => kbd_10_10_7_symbols.xml} (100%)
 rename java/res/xml-sw600dp/{kbd_azerty_symbols_shift.xml => kbd_10_10_7_symbols_shift.xml} (100%)
 rename java/res/xml-sw600dp/{keys_apostrophe_dash.xml => key_apostrophe.xml} (74%)
 rename java/res/xml-sw600dp/{kbd_hebrew_symbols.xml => key_dash.xml} (61%)
 rename java/res/xml-sw600dp/{kbd_spanish_symbols.xml => key_f1.xml} (58%)
 rename java/res/xml-sw600dp/{kbd_hebrew_symbols_shift.xml => key_space.xml} (59%)
 rename java/res/xml-sw600dp/{rows_symbols4.xml => row_symbols4.xml} (100%)
 rename java/res/xml-sw600dp/{rows_symbols_shift4.xml => row_symbols_shift4.xml} (100%)
 rename java/res/{xml-sw600dp/kbd_spanish_symbols_shift.xml => xml-sw768dp/key_space.xml} (54%)
 create mode 100644 java/res/xml-sw768dp/keys_f1f2.xml
 rename java/res/xml-sw768dp/{rows_symbols4.xml => row_symbols4.xml} (100%)
 rename java/res/xml-sw768dp/{rows_symbols_shift4.xml => row_symbols_shift4.xml} (100%)
 rename java/res/xml/{kbd_azerty_symbols.xml => kbd_10_10_7_symbols.xml} (100%)
 rename java/res/xml/{kbd_azerty_symbols_shift.xml => kbd_10_10_7_symbols_shift.xml} (100%)
 delete mode 100644 java/res/xml/kbd_hebrew_symbols.xml
 delete mode 100644 java/res/xml/kbd_hebrew_symbols_shift.xml
 delete mode 100644 java/res/xml/kbd_spanish_symbols.xml
 delete mode 100644 java/res/xml/kbd_spanish_symbols_shift.xml
 rename java/res/{xml-sw768dp/keys_apostrophe_dash.xml => xml/key_f1.xml} (54%)
 create mode 100644 java/res/xml/key_space.xml
 rename java/res/xml/{rows_symbols4.xml => row_symbols4.xml} (100%)
 rename java/res/xml/{rows_symbols_shift4.xml => row_symbols_shift4.xml} (100%)

diff --git a/java/res/xml-sw600dp/kbd_azerty_symbols.xml b/java/res/xml-sw600dp/kbd_10_10_7_symbols.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_azerty_symbols.xml
rename to java/res/xml-sw600dp/kbd_10_10_7_symbols.xml
diff --git a/java/res/xml-sw600dp/kbd_azerty_symbols_shift.xml b/java/res/xml-sw600dp/kbd_10_10_7_symbols_shift.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_azerty_symbols_shift.xml
rename to java/res/xml-sw600dp/kbd_10_10_7_symbols_shift.xml
diff --git a/java/res/xml-sw600dp/keys_apostrophe_dash.xml b/java/res/xml-sw600dp/key_apostrophe.xml
similarity index 74%
rename from java/res/xml-sw600dp/keys_apostrophe_dash.xml
rename to java/res/xml-sw600dp/key_apostrophe.xml
index badc6e5168..7da4b62231 100644
--- a/java/res/xml-sw600dp/keys_apostrophe_dash.xml
+++ b/java/res/xml-sw600dp/key_apostrophe.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2011, The Android Open Source Project
+** Copyright 2012, 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.
@@ -45,19 +45,4 @@
                 latin:keyStyle="hasShiftedLetterHintStyle" />
         </default>
     </switch>
-    <switch>
-        <case
-            latin:mode="email"
-        >
-            <Key
-                latin:keyLabel="_" />
-        </case>
-        <default>
-            <Key
-                latin:keyLabel="!text/keylabel_for_dash"
-                latin:keyHintLabel="!text/keyhintlabel_for_dash"
-                latin:moreKeys="!text/more_keys_for_dash"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
-        </default>
-    </switch>
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_hebrew_symbols.xml b/java/res/xml-sw600dp/key_dash.xml
similarity index 61%
rename from java/res/xml-sw600dp/kbd_hebrew_symbols.xml
rename to java/res/xml-sw600dp/key_dash.xml
index 66254dea0c..a7c3727da0 100644
--- a/java/res/xml-sw600dp/kbd_hebrew_symbols.xml
+++ b/java/res/xml-sw600dp/key_dash.xml
@@ -18,9 +18,22 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols" />
-</Keyboard>
+    <switch>
+        <case
+            latin:mode="email"
+        >
+            <Key
+                latin:keyLabel="_" />
+        </case>
+        <default>
+            <Key
+                latin:keyLabel="!text/keylabel_for_dash"
+                latin:keyHintLabel="!text/keyhintlabel_for_dash"
+                latin:moreKeys="!text/more_keys_for_dash"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_spanish_symbols.xml b/java/res/xml-sw600dp/key_f1.xml
similarity index 58%
rename from java/res/xml-sw600dp/kbd_spanish_symbols.xml
rename to java/res/xml-sw600dp/key_f1.xml
index 66254dea0c..e477d37587 100644
--- a/java/res/xml-sw600dp/kbd_spanish_symbols.xml
+++ b/java/res/xml-sw600dp/key_f1.xml
@@ -18,9 +18,28 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols" />
-</Keyboard>
+    <switch>
+        <case
+            latin:mode="email"
+        >
+            <Key
+                latin:keyStyle="comKeyStyle" />
+        </case>
+        <case
+            latin:mode="url"
+        >
+            <Key
+                latin:keyStyle="comKeyStyle" />
+        </case>
+        <default>
+            <Key
+                latin:keyLabel="/"
+                latin:keyHintLabel="\@"
+                latin:moreKeys="\@"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_hebrew_symbols_shift.xml b/java/res/xml-sw600dp/key_space.xml
similarity index 59%
rename from java/res/xml-sw600dp/kbd_hebrew_symbols_shift.xml
rename to java/res/xml-sw600dp/key_space.xml
index 3c5ed5e092..41f0dbd9b0 100644
--- a/java/res/xml-sw600dp/kbd_hebrew_symbols_shift.xml
+++ b/java/res/xml-sw600dp/key_space.xml
@@ -18,9 +18,25 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols_shift" />
-</Keyboard>
+    <switch>
+        <case
+            latin:languageCode="fa"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="30.750%p"
+                latin:keyWidth="30.850%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="30.750%p"
+                latin:keyWidth="39.750%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index eec35b0780..95b328b380 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -29,45 +29,10 @@
             latin:keyWidth="13.0%p" />
         <Key
             latin:keyStyle="tabKeyStyle" />
-        <switch>
-            <case
-                latin:mode="email"
-            >
-                <Key
-                    latin:keyStyle="comKeyStyle" />
-            </case>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyStyle="comKeyStyle" />
-            </case>
-            <default>
-                <Key
-                    latin:keyLabel="/"
-                    latin:keyHintLabel="\@"
-                    latin:moreKeys="\@"
-                    latin:keyStyle="hasShiftedLetterHintStyle" />
-            </default>
-        </switch>
-        <switch>
-            <case
-                latin:languageCode="fa"
-            >
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="30.750%p"
-                    latin:keyWidth="30.850%p" />
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <default>
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="30.750%p"
-                    latin:keyWidth="39.750%p" />
-            </default>
-        </switch>
+        <include
+            latin:keyboardLayout="@xml/key_f1" />
+        <include
+            latin:keyboardLayout="@xml/key_space" />
         <switch>
             <case
                 latin:languageCode="iw"
@@ -78,7 +43,9 @@
             <!-- not languageCode="iw" -->
             <default>
                 <include
-                    latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+                    latin:keyboardLayout="@xml/key_apostrophe" />
+                <include
+                    latin:keyboardLayout="@xml/key_dash" />
             </default>
         </switch>
         <Spacer
diff --git a/java/res/xml-sw600dp/rows_symbols4.xml b/java/res/xml-sw600dp/row_symbols4.xml
similarity index 100%
rename from java/res/xml-sw600dp/rows_symbols4.xml
rename to java/res/xml-sw600dp/row_symbols4.xml
diff --git a/java/res/xml-sw600dp/rows_symbols_shift4.xml b/java/res/xml-sw600dp/row_symbols_shift4.xml
similarity index 100%
rename from java/res/xml-sw600dp/rows_symbols_shift4.xml
rename to java/res/xml-sw600dp/row_symbols_shift4.xml
diff --git a/java/res/xml-sw600dp/rows_10_10_7_symbols.xml b/java/res/xml-sw600dp/rows_10_10_7_symbols.xml
index bdb1aa0ee9..fe9f2fb5fe 100644
--- a/java/res/xml-sw600dp/rows_10_10_7_symbols.xml
+++ b/java/res/xml-sw600dp/rows_10_10_7_symbols.xml
@@ -58,5 +58,5 @@
             latin:keyWidth="fillRight" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml b/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml
index 101493423b..9df112153a 100644
--- a/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml
+++ b/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml
@@ -54,5 +54,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols_shift3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_hebrew.xml b/java/res/xml-sw600dp/rows_hebrew.xml
index a60da3a2b1..d6861e8e47 100644
--- a/java/res/xml-sw600dp/rows_hebrew.xml
+++ b/java/res/xml-sw600dp/rows_hebrew.xml
@@ -27,7 +27,9 @@
         latin:keyWidth="8.5%p"
     >
         <include
-            latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+            latin:keyboardLayout="@xml/key_apostrophe" />
+        <include
+            latin:keyboardLayout="@xml/key_dash" />
         <include
             latin:keyboardLayout="@xml/rowkeys_hebrew1" />
         <Key
diff --git a/java/res/xml-sw600dp/rows_symbols.xml b/java/res/xml-sw600dp/rows_symbols.xml
index ea9b30245c..ada22dff63 100644
--- a/java/res/xml-sw600dp/rows_symbols.xml
+++ b/java/res/xml-sw600dp/rows_symbols.xml
@@ -58,5 +58,5 @@
             latin:keyWidth="fillRight" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_symbols_shift.xml b/java/res/xml-sw600dp/rows_symbols_shift.xml
index cc66f96760..0750670d6d 100644
--- a/java/res/xml-sw600dp/rows_symbols_shift.xml
+++ b/java/res/xml-sw600dp/rows_symbols_shift.xml
@@ -54,5 +54,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols_shift3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_spanish_symbols_shift.xml b/java/res/xml-sw768dp/key_space.xml
similarity index 54%
rename from java/res/xml-sw600dp/kbd_spanish_symbols_shift.xml
rename to java/res/xml-sw768dp/key_space.xml
index 3c5ed5e092..115bcb6bff 100644
--- a/java/res/xml-sw600dp/kbd_spanish_symbols_shift.xml
+++ b/java/res/xml-sw768dp/key_space.xml
@@ -18,9 +18,27 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols_shift" />
-</Keyboard>
+    <switch>
+        <case
+            latin:languageCode="fa"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="31.250%p"
+                latin:keyWidth="29.453%p" />
+            <!-- U+200C: "" ZERO WIDTH NON-JOINER
+                 U+200D: "" ZERO WIDTH JOINER -->
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="31.250%p"
+                latin:keyWidth="37.500%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw768dp/keys_f1f2.xml b/java/res/xml-sw768dp/keys_f1f2.xml
new file mode 100644
index 0000000000..569703572c
--- /dev/null
+++ b/java/res/xml-sw768dp/keys_f1f2.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, 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"
+>
+    <switch>
+        <case
+            latin:mode="url"
+        >
+            <Key
+                latin:keyStyle="comKeyStyle"
+                latin:keyWidth="16.084%p" />
+        </case>
+        <default>
+            <switch>
+                <case
+                    latin:mode="email"
+                >
+                    <Key
+                        latin:keyStyle="comKeyStyle" />
+                </case>
+                <case
+                    latin:imeAction="actionSearch"
+                >
+                    <Key
+                        latin:keyLabel=":"
+                        latin:keyHintLabel="+"
+                        latin:moreKeys="+"
+                        latin:keyStyle="hasShiftedLetterHintStyle" />
+                </case>
+                <default>
+                    <Key
+                        latin:keyStyle="smileyKeyStyle" />
+                </default>
+            </switch>
+            <switch>
+                <case
+                    latin:mode="email"
+                >
+                    <Key
+                        latin:keyLabel="\@" />
+                </case>
+                <default>
+                    <Key
+                        latin:keyLabel="/"
+                        latin:keyHintLabel="\@"
+                        latin:moreKeys="\@"
+                        latin:keyStyle="hasShiftedLetterHintStyle" />
+                </default>
+            </switch>
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw768dp/row_qwerty4.xml b/java/res/xml-sw768dp/row_qwerty4.xml
index 90da21ba36..f6ad3fd466 100644
--- a/java/res/xml-sw768dp/row_qwerty4.xml
+++ b/java/res/xml-sw768dp/row_qwerty4.xml
@@ -29,73 +29,10 @@
         <Spacer
             latin:keyXPos="15.157%p"
             latin:keyWidth="0%p" />
-        <switch>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyStyle="comKeyStyle"
-                    latin:keyWidth="16.084%p" />
-            </case>
-            <default>
-                <switch>
-                    <case
-                        latin:mode="email"
-                    >
-                        <Key
-                            latin:keyStyle="comKeyStyle" />
-                    </case>
-                    <case
-                        latin:imeAction="actionSearch"
-                    >
-                        <Key
-                            latin:keyLabel=":"
-                            latin:keyHintLabel="+"
-                            latin:moreKeys="+"
-                            latin:keyStyle="hasShiftedLetterHintStyle" />
-                    </case>
-                    <default>
-                        <Key
-                            latin:keyStyle="smileyKeyStyle" />
-                    </default>
-                </switch>
-                <switch>
-                    <case
-                        latin:mode="email"
-                    >
-                        <Key
-                            latin:keyLabel="\@" />
-                    </case>
-                    <default>
-                        <Key
-                            latin:keyLabel="/"
-                            latin:keyHintLabel="\@"
-                            latin:moreKeys="\@"
-                            latin:keyStyle="hasShiftedLetterHintStyle" />
-                    </default>
-                </switch>
-            </default>
-        </switch>
-        <switch>
-            <case
-                latin:languageCode="fa"
-            >
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="31.250%p"
-                    latin:keyWidth="29.453%p" />
-                <!-- U+200C: "" ZERO WIDTH NON-JOINER
-                     U+200D: "" ZERO WIDTH JOINER -->
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <default>
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="31.250%p"
-                    latin:keyWidth="37.500%p" />
-            </default>
-        </switch>
+        <include
+            latin:keyboardLayout="@xml/keys_f1f2" />
+        <include
+            latin:keyboardLayout="@xml/key_space" />
         <switch>
             <case
                 latin:languageCode="iw"
@@ -105,7 +42,9 @@
             </case>
             <default>
                 <include
-                    latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+                    latin:keyboardLayout="@xml/key_apostrophe" />
+                <include
+                    latin:keyboardLayout="@xml/key_dash" />
             </default>
         </switch>
         <switch>
diff --git a/java/res/xml-sw768dp/rows_symbols4.xml b/java/res/xml-sw768dp/row_symbols4.xml
similarity index 100%
rename from java/res/xml-sw768dp/rows_symbols4.xml
rename to java/res/xml-sw768dp/row_symbols4.xml
diff --git a/java/res/xml-sw768dp/rows_symbols_shift4.xml b/java/res/xml-sw768dp/row_symbols_shift4.xml
similarity index 100%
rename from java/res/xml-sw768dp/rows_symbols_shift4.xml
rename to java/res/xml-sw768dp/row_symbols_shift4.xml
diff --git a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml b/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
index 1d61d999b0..44f096422f 100644
--- a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
+++ b/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml b/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml
index d22f8331d2..bea0d9c18b 100644
--- a/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml
+++ b/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_hebrew.xml b/java/res/xml-sw768dp/rows_hebrew.xml
index 476071a5eb..e70f450712 100644
--- a/java/res/xml-sw768dp/rows_hebrew.xml
+++ b/java/res/xml-sw768dp/rows_hebrew.xml
@@ -31,7 +31,9 @@
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="7.969%p" />
         <include
-            latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+            latin:keyboardLayout="@xml/key_apostrophe" />
+        <include
+            latin:keyboardLayout="@xml/key_dash" />
         <include
             latin:keyboardLayout="@xml/rowkeys_hebrew1" />
         <Key
diff --git a/java/res/xml-sw768dp/rows_symbols.xml b/java/res/xml-sw768dp/rows_symbols.xml
index ed2df18d75..fcc624f2a0 100644
--- a/java/res/xml-sw768dp/rows_symbols.xml
+++ b/java/res/xml-sw768dp/rows_symbols.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_symbols_shift.xml b/java/res/xml-sw768dp/rows_symbols_shift.xml
index 30e1df0bfc..1d13bb1e98 100644
--- a/java/res/xml-sw768dp/rows_symbols_shift.xml
+++ b/java/res/xml-sw768dp/rows_symbols_shift.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_thai_symbols.xml b/java/res/xml-sw768dp/rows_thai_symbols.xml
index 20f22bc5b6..b3f60f5e68 100644
--- a/java/res/xml-sw768dp/rows_thai_symbols.xml
+++ b/java/res/xml-sw768dp/rows_thai_symbols.xml
@@ -72,5 +72,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_thai_symbols_shift.xml b/java/res/xml-sw768dp/rows_thai_symbols_shift.xml
index 467dd19adb..573e0e37a6 100644
--- a/java/res/xml-sw768dp/rows_thai_symbols_shift.xml
+++ b/java/res/xml-sw768dp/rows_thai_symbols_shift.xml
@@ -72,5 +72,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml/kbd_azerty_symbols.xml b/java/res/xml/kbd_10_10_7_symbols.xml
similarity index 100%
rename from java/res/xml/kbd_azerty_symbols.xml
rename to java/res/xml/kbd_10_10_7_symbols.xml
diff --git a/java/res/xml/kbd_azerty_symbols_shift.xml b/java/res/xml/kbd_10_10_7_symbols_shift.xml
similarity index 100%
rename from java/res/xml/kbd_azerty_symbols_shift.xml
rename to java/res/xml/kbd_10_10_7_symbols_shift.xml
diff --git a/java/res/xml/kbd_hebrew_symbols.xml b/java/res/xml/kbd_hebrew_symbols.xml
deleted file mode 100644
index 7e075df48e..0000000000
--- a/java/res/xml/kbd_hebrew_symbols.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, 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.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols" />
-</Keyboard>
diff --git a/java/res/xml/kbd_hebrew_symbols_shift.xml b/java/res/xml/kbd_hebrew_symbols_shift.xml
deleted file mode 100644
index 25db3c84d9..0000000000
--- a/java/res/xml/kbd_hebrew_symbols_shift.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, 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.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols_shift" />
-</Keyboard>
diff --git a/java/res/xml/kbd_spanish_symbols.xml b/java/res/xml/kbd_spanish_symbols.xml
deleted file mode 100644
index 7e075df48e..0000000000
--- a/java/res/xml/kbd_spanish_symbols.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, 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.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols" />
-</Keyboard>
diff --git a/java/res/xml/kbd_spanish_symbols_shift.xml b/java/res/xml/kbd_spanish_symbols_shift.xml
deleted file mode 100644
index 25db3c84d9..0000000000
--- a/java/res/xml/kbd_spanish_symbols_shift.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, 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.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols_shift" />
-</Keyboard>
diff --git a/java/res/xml-sw768dp/keys_apostrophe_dash.xml b/java/res/xml/key_f1.xml
similarity index 54%
rename from java/res/xml-sw768dp/keys_apostrophe_dash.xml
rename to java/res/xml/key_f1.xml
index badc6e5168..455f9ef591 100644
--- a/java/res/xml-sw768dp/keys_apostrophe_dash.xml
+++ b/java/res/xml/key_f1.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2011, The Android Open Source Project
+** Copyright 2012, 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.
@@ -23,41 +23,32 @@
 >
     <switch>
         <case
-            latin:mode="email"
+            latin:mode="url"
         >
             <Key
-                latin:keyLabel="-" />
+                latin:keyLabel="/"
+                latin:keyStyle="f1MoreKeysStyle" />
         </case>
         <case
-            latin:mode="url"
+            latin:mode="email"
         >
             <Key
-                latin:keyLabel="/"
-                latin:keyHintLabel=":"
-                latin:moreKeys=":"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
+                latin:keyLabel="\@"
+                latin:keyStyle="f1MoreKeysStyle" />
         </case>
-        <default>
-            <Key
-                latin:keyLabel="!text/keylabel_for_apostrophe"
-                latin:keyHintLabel="!text/keyhintlabel_for_apostrophe"
-                latin:moreKeys="!text/more_keys_for_apostrophe"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
-        </default>
-    </switch>
-    <switch>
         <case
-            latin:mode="email"
+            latin:hasShortcutKey="true"
         >
             <Key
-                latin:keyLabel="_" />
+                latin:keyStyle="shortcutKeyStyle" />
         </case>
+        <!-- latin:hasShortcutKey="false" -->
         <default>
             <Key
-                latin:keyLabel="!text/keylabel_for_dash"
-                latin:keyHintLabel="!text/keyhintlabel_for_dash"
-                latin:moreKeys="!text/more_keys_for_dash"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
+                latin:keyLabel="!text/keylabel_for_comma"
+                latin:keyLabelFlags="hasPopupHint"
+                latin:additionalMoreKeys="!text/more_keys_for_comma"
+                latin:keyStyle="f1MoreKeysStyle" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/key_space.xml b/java/res/xml/key_space.xml
new file mode 100644
index 0000000000..02ee42fd27
--- /dev/null
+++ b/java/res/xml/key_space.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, 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"
+>
+    <switch>
+        <case
+            latin:languageCode="fa"
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="30%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:languageCode="fa"
+            latin:languageSwitchKeyEnabled="false"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="40%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="40%p" />
+        </case>
+        <!-- languageSwitchKeyEnabled="false" -->
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="50%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/keyboard_layout_set_azerty.xml b/java/res/xml/keyboard_layout_set_azerty.xml
index d4df6676c4..4d144edbc0 100644
--- a/java/res/xml/keyboard_layout_set_azerty.xml
+++ b/java/res/xml/keyboard_layout_set_azerty.xml
@@ -26,10 +26,10 @@
         latin:enableProximityCharsCorrection="true" />
     <Element
         latin:elementName="symbols"
-        latin:elementKeyboard="@xml/kbd_azerty_symbols" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols" />
     <Element
         latin:elementName="symbolsShifted"
-        latin:elementKeyboard="@xml/kbd_azerty_symbols_shift" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols_shift" />
     <Element
         latin:elementName="phone"
         latin:elementKeyboard="@xml/kbd_phone" />
diff --git a/java/res/xml/keyboard_layout_set_hebrew.xml b/java/res/xml/keyboard_layout_set_hebrew.xml
index d0f12f3ee3..212816dfe8 100644
--- a/java/res/xml/keyboard_layout_set_hebrew.xml
+++ b/java/res/xml/keyboard_layout_set_hebrew.xml
@@ -26,10 +26,10 @@
         latin:enableProximityCharsCorrection="true" />
     <Element
         latin:elementName="symbols"
-        latin:elementKeyboard="@xml/kbd_hebrew_symbols" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols" />
     <Element
         latin:elementName="symbolsShifted"
-        latin:elementKeyboard="@xml/kbd_hebrew_symbols_shift" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols_shift" />
     <Element
         latin:elementName="phone"
         latin:elementKeyboard="@xml/kbd_phone" />
diff --git a/java/res/xml/keyboard_layout_set_spanish.xml b/java/res/xml/keyboard_layout_set_spanish.xml
index 0ef712b761..57cef52342 100644
--- a/java/res/xml/keyboard_layout_set_spanish.xml
+++ b/java/res/xml/keyboard_layout_set_spanish.xml
@@ -26,10 +26,10 @@
         latin:enableProximityCharsCorrection="true" />
     <Element
         latin:elementName="symbols"
-        latin:elementKeyboard="@xml/kbd_spanish_symbols" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols" />
     <Element
         latin:elementName="symbolsShifted"
-        latin:elementKeyboard="@xml/kbd_spanish_symbols_shift" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols_shift" />
     <Element
         latin:elementName="phone"
         latin:elementKeyboard="@xml/kbd_phone" />
diff --git a/java/res/xml/row_qwerty4.xml b/java/res/xml/row_qwerty4.xml
index 343e3eec90..361a2c3ef6 100644
--- a/java/res/xml/row_qwerty4.xml
+++ b/java/res/xml/row_qwerty4.xml
@@ -27,75 +27,10 @@
         <Key
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyWidth="15%p" />
-        <switch>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyLabel="/"
-                    latin:keyStyle="f1MoreKeysStyle" />
-            </case>
-            <case
-                latin:mode="email"
-            >
-                <Key
-                    latin:keyLabel="\@"
-                    latin:keyStyle="f1MoreKeysStyle" />
-            </case>
-            <case
-                latin:hasShortcutKey="true"
-            >
-                <Key
-                    latin:keyStyle="shortcutKeyStyle" />
-            </case>
-            <!-- latin:hasShortcutKey="false" -->
-            <default>
-                <Key
-                    latin:keyLabel="!text/keylabel_for_comma"
-                    latin:keyLabelFlags="hasPopupHint"
-                    latin:additionalMoreKeys="!text/more_keys_for_comma"
-                    latin:keyStyle="f1MoreKeysStyle" />
-            </default>
-        </switch>
-        <switch>
-            <case
-                latin:languageCode="fa"
-                latin:languageSwitchKeyEnabled="true"
-            >
-                <Key
-                    latin:keyStyle="languageSwitchKeyStyle" />
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="30%p" />
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <case
-                latin:languageCode="fa"
-                latin:languageSwitchKeyEnabled="false"
-            >
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="40%p" />
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <case
-                latin:languageSwitchKeyEnabled="true"
-            >
-                <Key
-                    latin:keyStyle="languageSwitchKeyStyle" />
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="40%p" />
-            </case>
-            <!-- languageSwitchKeyEnabled="false" -->
-            <default>
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="50%p" />
-            </default>
-        </switch>
+        <include
+            latin:keyboardLayout="@xml/key_f1" />
+        <include
+            latin:keyboardLayout="@xml/key_space" />
         <Key
             latin:keyStyle="punctuationKeyStyle" />
         <Key
diff --git a/java/res/xml/rows_symbols4.xml b/java/res/xml/row_symbols4.xml
similarity index 100%
rename from java/res/xml/rows_symbols4.xml
rename to java/res/xml/row_symbols4.xml
diff --git a/java/res/xml/rows_symbols_shift4.xml b/java/res/xml/row_symbols_shift4.xml
similarity index 100%
rename from java/res/xml/rows_symbols_shift4.xml
rename to java/res/xml/row_symbols_shift4.xml
diff --git a/java/res/xml/rows_symbols.xml b/java/res/xml/rows_symbols.xml
index dcd8d59d8b..2a73ffbf9d 100644
--- a/java/res/xml/rows_symbols.xml
+++ b/java/res/xml/rows_symbols.xml
@@ -44,5 +44,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml/rows_symbols_shift.xml b/java/res/xml/rows_symbols_shift.xml
index 6205eeddda..0ab9715c1a 100644
--- a/java/res/xml/rows_symbols_shift.xml
+++ b/java/res/xml/rows_symbols_shift.xml
@@ -44,5 +44,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols_shift3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
-- 
GitLab