Add keyHysteresisDistance xml attribute

This change also introduces MiniKeyboardKeyDetector and
mini_keyboad_slide_allowance parameter to tune the key detection
behavior.

Bug: 2993769
Change-Id: I1932b0a382e172cb77b9e098ae182049c834dfe0
diff --git a/java/res/layout/keyboard_popup.xml b/java/res/layout/keyboard_popup.xml
index 1005e7e..9a52e2c 100644
--- a/java/res/layout/keyboard_popup.xml
+++ b/java/res/layout/keyboard_popup.xml
@@ -33,5 +33,7 @@
             android:background="@drawable/keyboard_dark_background"
 
             latin:keyBackground="@drawable/btn_keyboard_key_gingerbread_popup"
+            latin:keyHysteresisDistance="0dip"
+            latin:verticalCorrection="-20dip"
             />
 </LinearLayout>
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index 4395155..4f87b79 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -22,4 +22,7 @@
     <dimen name="key_height">47dip</dimen>
     <dimen name="candidate_strip_height">38dip</dimen>
     <dimen name="spacebar_vertical_correction">2dip</dimen>
-</resources>
\ No newline at end of file
+    <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
+    <!-- key_height * 1.7 -->
+    <dimen name="mini_keyboard_slide_allowance">79.9dip</dimen>
+</resources>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index a8eaab9..995373e 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -43,12 +43,12 @@
         <!-- Height of the key press feedback popup. -->
         <attr name="keyPreviewHeight" format="dimension" />
 
+        <!-- Hysteresis distance for key debouncing -->
+        <attr name="keyHysteresisDistance" format="dimension" />
+
         <!-- Amount to offset the touch Y coordinate by, for bias correction. -->
         <attr name="verticalCorrection" format="dimension" />
 
-        <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
-        <attr name="miniKeyboardSlideAllowance" format="dimension" />
-
         <!-- Layout resource for popup keyboards. -->
         <attr name="popupLayout" format="reference" />
 
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 39dce9d..af8b381 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -27,5 +27,7 @@
          will not go into extract (fullscreen) mode. -->
     <dimen name="max_height_for_fullscreen">2.5in</dimen>
     <dimen name="key_text_size">22sp</dimen>
-    <dimen name="key_debounce_hysteresis_distance">0.05in</dimen>
+    <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
+    <!-- key_height * 1.7 -->
+    <dimen name="mini_keyboard_slide_allowance">91.8dip</dimen>
 </resources>
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 48f0d5e..258082e 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -26,8 +26,8 @@
         <item name="keyPreviewHeight">80dip</item>
         <item name="labelTextSize">14sp</item>
         <item name="popupLayout">@layout/keyboard_popup</item>
+        <item name="keyHysteresisDistance">0.05in</item>
         <item name="verticalCorrection">-10dip</item>
-        <item name="miniKeyboardSlideAllowance">40dip</item>
         <item name="shadowColor">#BB000000</item>
         <item name="shadowRadius">2.75</item>
         <item name="backgroundDimAmount">0.5</item>