Add CODE_CAPSLOCK for long press shift key

This change utilizes the no panel auto more key feature to implement
long press shift key for shift lock.

Change-Id: I3995d25dc35aea3c67b5aa29299815462eff9cad
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index 0834adf..6590d0a 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -25,34 +25,38 @@
     <include
         latin:keyboardLayout="@xml/key_styles_f1" />
     <!-- Functional key styles -->
+    <!-- Base style for shift key. A single space is used for dummy label in moreKeys. -->
+    <key-style
+        latin:styleName="baseForShiftKeyStyle"
+        latin:code="!code/key_shift"
+        latin:keyActionFlags="noKeyPreview"
+        latin:keyLabelFlags="preserveCase"
+        latin:moreKeys="!noPanelAutoMoreKey!, |!code/key_capslock" />
     <switch>
         <case
             latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetAutomaticShifted"
         >
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:code="!code/key_shift"
                 latin:keyIcon="!icon/shift_key_shifted"
-                latin:keyActionFlags="noKeyPreview"
-                latin:backgroundType="stickyOff" />
+                latin:backgroundType="stickyOff"
+                latin:parentStyle="baseForShiftKeyStyle" />
         </case>
         <case
             latin:keyboardLayoutSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
         >
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:code="!code/key_shift"
                 latin:keyIcon="!icon/shift_key_shifted"
-                latin:keyActionFlags="noKeyPreview"
-                latin:backgroundType="stickyOn" />
+                latin:backgroundType="stickyOn"
+                latin:parentStyle="baseForShiftKeyStyle" />
         </case>
         <default>
             <key-style
                 latin:styleName="shiftKeyStyle"
-                latin:code="!code/key_shift"
                 latin:keyIcon="!icon/shift_key"
-                latin:keyActionFlags="noKeyPreview"
-                latin:backgroundType="stickyOff" />
+                latin:backgroundType="stickyOff"
+                latin:parentStyle="baseForShiftKeyStyle" />
         </default>
     </switch>
     <key-style
diff --git a/java/res/xml/rows_number_normal.xml b/java/res/xml/rows_number_normal.xml
index b77544b..291018a 100644
--- a/java/res/xml/rows_number_normal.xml
+++ b/java/res/xml/rows_number_normal.xml
@@ -117,7 +117,7 @@
                 <Key
                     latin:code="0x002F"
                     latin:keyLabel="/ :"
-                    latin:moreKeys="!embeddedMoreKey!,:"
+                    latin:moreKeys="!noPanelAutoMoreKey!,:"
                     latin:keyStyle="numKeyStyle" />
             </case>
             <default>
diff --git a/java/res/xml/rows_phone.xml b/java/res/xml/rows_phone.xml
index 9299c2a..d8dcfbd 100644
--- a/java/res/xml/rows_phone.xml
+++ b/java/res/xml/rows_phone.xml
@@ -70,7 +70,7 @@
             latin:keyStyle="num0KeyStyle"
             latin:code="0x0030"
             latin:keyLabel="0 +"
-            latin:moreKeys="!embeddedMoreKey!,+" />
+            latin:moreKeys="!noPanelAutoMoreKey!,+" />
         <Key
             latin:keyStyle="numSpaceKeyStyle" />
         <Key