Add preliminary graphics of sliding key input preview

Bug: 7548583
Change-Id: Idde6a62f9e64458055c99c893b71c02d1adc7b04
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 850b1b8..51a0758 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -83,6 +83,8 @@
         <attr name="touchNoiseThresholdDistance" format="dimension" />
         <!-- Sliding key input enable -->
         <attr name="slidingKeyInputEnable" format="boolean" />
+        <attr name="slidingKeyInputPreviewColor" format="color" />
+        <attr name="slidingKeyInputPreviewWidth" format="dimension" />
         <!-- Key repeat start timeout -->
         <attr name="keyRepeatStartTimeout" format="integer" />
         <!-- Key repeat interval in millisecond. -->
diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml
index da4d87c..c0ea321 100644
--- a/java/res/values/colors.xml
+++ b/java/res/values/colors.xml
@@ -17,6 +17,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <!-- Color resources for default, and Gingerbread theme. -->
     <color name="highlight_color_default">#FFFCAE00</color>
+    <color name="highlight_translucent_color_default">#99FCAE00</color>
     <color name="key_text_color_default">@android:color/white</color>
     <color name="key_text_shadow_color_default">#BB000000</color>
     <color name="key_text_inactivated_color_default">@android:color/white</color>
@@ -39,7 +40,9 @@
     <color name="spacebar_text_color_stone">@android:color/black</color>
     <color name="spacebar_text_shadow_color_stone">#D0FFFFFF</color>
     <!-- Color resources for IceCreamSandwich theme. -->
+    <!-- android:color/holo_blue_light value is #FF33B5E5 -->
     <color name="highlight_color_ics">@android:color/holo_blue_light</color>
+    <color name="highlight_translucent_color_ics">#9933B5E5</color>
     <color name="key_text_color_ics">@android:color/white</color>
     <color name="key_text_shadow_color_ics">@android:color/transparent</color>
     <color name="key_text_inactivated_color_ics">#66E0E4E5</color>
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 6b3c891..82166df 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -46,14 +46,7 @@
     <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
     <string name="config_default_keyboard_theme_index" translatable="false">5</string>
     <integer name="config_max_more_keys_column">5</integer>
-    <!--
-         Configuration for KeyboardView
-    -->
-    <integer name="config_key_preview_linger_timeout">70</integer>
-    <integer name="config_gesture_floating_preview_text_linger_timeout">200</integer>
-    <integer name="config_gesture_preview_trail_fadeout_start_delay">100</integer>
-    <integer name="config_gesture_preview_trail_fadeout_duration">800</integer>
-    <integer name="config_gesture_preview_trail_update_interval">20</integer>
+
     <!--
          Configuration for MainKeyboardView
     -->
@@ -61,7 +54,10 @@
     <dimen name="config_key_hysteresis_distance_for_sliding_modifier">8.0dp</dimen>
     <integer name="config_touch_noise_threshold_time">40</integer>
     <dimen name="config_touch_noise_threshold_distance">12.6dp</dimen>
+    <integer name="config_key_preview_linger_timeout">70</integer>
     <bool name="config_sliding_key_input_enabled">true</bool>
+    <!-- Sliding key input preview parameters -->
+    <dimen name="config_sliding_key_input_preview_width">8.0dp</dimen>
     <integer name="config_key_repeat_start_timeout">400</integer>
     <integer name="config_key_repeat_interval">50</integer>
     <integer name="config_default_longpress_key_timeout">300</integer>  <!-- milliseconds -->
@@ -74,6 +70,10 @@
     <!-- Showing more keys keyboard, just above the touched point if true, aligned to the key if
          false -->
     <bool name="config_show_more_keys_keyboard_at_touched_point">false</bool>
+    <integer name="config_gesture_floating_preview_text_linger_timeout">200</integer>
+    <integer name="config_gesture_preview_trail_fadeout_start_delay">100</integer>
+    <integer name="config_gesture_preview_trail_fadeout_duration">800</integer>
+    <integer name="config_gesture_preview_trail_update_interval">20</integer>
     <!-- Static threshold for gesture after fast typing (msec) -->
     <integer name="config_gesture_static_time_threshold_after_fast_typing">500</integer>
     <!-- Static threshold for starting gesture detection (keyWidth%/sec) -->
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index e39cafc..d8c2e84 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -69,6 +69,9 @@
     <!-- Option summary for showing language switch key [CHAR LIMIT=65] -->
     <string name="show_language_switch_key_summary">Show when multiple input languages are enabled</string>
 
+    <!-- Option to enable sliding key input preview. The user can see a rubber band during sliding key input. [CHAR LIMIT=30]-->
+    <string name="sliding_key_input_preview">Sliding key input preview</string>
+
     <!-- Option for the dismiss delay of the key popup [CHAR LIMIT=25] -->
     <string name="key_preview_popup_dismiss_delay">Key popup dismiss delay</string>
     <!-- Description for delay for dismissing a popup on keypress: no delay [CHAR LIMIT=15] -->
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index f71963a..f07f2d3 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -78,6 +78,8 @@
         <item name="touchNoiseThresholdTime">@integer/config_touch_noise_threshold_time</item>
         <item name="touchNoiseThresholdDistance">@dimen/config_touch_noise_threshold_distance</item>
         <item name="slidingKeyInputEnable">@bool/config_sliding_key_input_enabled</item>
+        <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_default</item>
+        <item name="slidingKeyInputPreviewWidth">@dimen/config_sliding_key_input_preview_width</item>
         <item name="keyRepeatStartTimeout">@integer/config_key_repeat_start_timeout</item>
         <item name="keyRepeatInterval">@integer/config_key_repeat_interval</item>
         <item name="longPressShiftLockTimeout">@integer/config_longpress_shift_lock_timeout</item>
@@ -336,6 +338,7 @@
         <item name="keyPreviewOffset">@dimen/key_preview_offset_ics</item>
         <item name="keyTextShadowColor">@color/key_text_shadow_color_ics</item>
         <item name="keyTextShadowRadius">0.0</item>
+        <item name="slidingKeyInputPreviewColor">@color/highlight_translucent_color_ics</item>
         <item name="gestureFloatingPreviewTextColor">@color/highlight_color_ics</item>
         <item name="gesturePreviewTrailColor">@color/highlight_color_ics</item>
     </style>
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index 84e7f54..cff7505 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -142,6 +142,11 @@
                 android:key="custom_input_styles"
                 android:title="@string/custom_input_styles_title" />
             <!-- Values for popup dismiss delay are added programatically -->
+            <CheckBoxPreference
+                android:key="pref_sliding_key_input_preview"
+                android:title="@string/sliding_key_input_preview"
+                android:persistent="true"
+                android:defaultValue="true" />
             <ListPreference
                 android:key="pref_key_preview_popup_dismiss_delay"
                 android:title="@string/key_preview_popup_dismiss_delay" />