Loading java/res/values/attrs.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -109,6 +109,8 @@ <attr name="altCodeKeyWhileTypingFadeinAnimator" format="reference" /> <attr name="altCodeKeyWhileTypingFadeinAnimator" format="reference" /> <!-- Key detection hysteresis distance. --> <!-- Key detection hysteresis distance. --> <attr name="keyHysteresisDistance" format="dimension" /> <attr name="keyHysteresisDistance" format="dimension" /> <!-- Key detection hysteresis distance for shift/symbols sliding input. --> <attr name="keyHysteresisDistanceForSlidingModifier" format="dimension" /> <!-- Touch noise threshold time in millisecond --> <!-- Touch noise threshold time in millisecond --> <attr name="touchNoiseThresholdTime" format="integer" /> <attr name="touchNoiseThresholdTime" format="integer" /> <!-- Touch noise threshold distance in millimeter --> <!-- Touch noise threshold distance in millimeter --> Loading java/res/values/config.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -57,6 +57,7 @@ Configuration for MainKeyboardView Configuration for MainKeyboardView --> --> <dimen name="config_key_hysteresis_distance">8.0dp</dimen> <dimen name="config_key_hysteresis_distance">8.0dp</dimen> <dimen name="config_key_hysteresis_distance_for_sliding_modifier">8.0dp</dimen> <integer name="config_touch_noise_threshold_time">40</integer> <integer name="config_touch_noise_threshold_time">40</integer> <dimen name="config_touch_noise_threshold_distance">12.6dp</dimen> <dimen name="config_touch_noise_threshold_distance">12.6dp</dimen> <bool name="config_sliding_key_input_enabled">true</bool> <bool name="config_sliding_key_input_enabled">true</bool> Loading java/res/values/styles.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -81,6 +81,7 @@ <item name="gesturePreviewTrailEndWidth">@dimen/gesture_preview_trail_end_width</item> <item name="gesturePreviewTrailEndWidth">@dimen/gesture_preview_trail_end_width</item> <!-- Common attributes of MainKeyboardView --> <!-- Common attributes of MainKeyboardView --> <item name="keyHysteresisDistance">@dimen/config_key_hysteresis_distance</item> <item name="keyHysteresisDistance">@dimen/config_key_hysteresis_distance</item> <item name="keyHysteresisDistanceForSlidingModifier">@dimen/config_key_hysteresis_distance_for_sliding_modifier</item> <item name="touchNoiseThresholdTime">@integer/config_touch_noise_threshold_time</item> <item name="touchNoiseThresholdTime">@integer/config_touch_noise_threshold_time</item> <item name="touchNoiseThresholdDistance">@dimen/config_touch_noise_threshold_distance</item> <item name="touchNoiseThresholdDistance">@dimen/config_touch_noise_threshold_distance</item> <item name="slidingKeyInputEnable">@bool/config_sliding_key_input_enabled</item> <item name="slidingKeyInputEnable">@bool/config_sliding_key_input_enabled</item> Loading java/src/com/android/inputmethod/keyboard/KeyDetector.java +19 −3 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import com.android.inputmethod.latin.Constants; public class KeyDetector { public class KeyDetector { private final int mKeyHysteresisDistanceSquared; private final int mKeyHysteresisDistanceSquared; private final int mKeyHysteresisDistanceForSlidingModifierSquared; private Keyboard mKeyboard; private Keyboard mKeyboard; private int mCorrectionX; private int mCorrectionX; Loading @@ -30,10 +31,24 @@ public class KeyDetector { * This class handles key detection. * This class handles key detection. * * * @param keyHysteresisDistance if the pointer movement distance is smaller than this, the * @param keyHysteresisDistance if the pointer movement distance is smaller than this, the * movement will not been handled as meaningful movement. The unit is pixel. * movement will not be handled as meaningful movement. The unit is pixel. */ */ public KeyDetector(float keyHysteresisDistance) { public KeyDetector(float keyHysteresisDistance) { this(keyHysteresisDistance, keyHysteresisDistance); } /** * This class handles key detection. * * @param keyHysteresisDistance if the pointer movement distance is smaller than this, the * movement will not be handled as meaningful movement. The unit is pixel. * @param keyHysteresisDistanceForSlidingModifier the same parameter for sliding input that * starts from a modifier key such as shift and symbols key. */ public KeyDetector(float keyHysteresisDistance, float keyHysteresisDistanceForSlidingModifier) { mKeyHysteresisDistanceSquared = (int)(keyHysteresisDistance * keyHysteresisDistance); mKeyHysteresisDistanceSquared = (int)(keyHysteresisDistance * keyHysteresisDistance); mKeyHysteresisDistanceForSlidingModifierSquared = (int)( keyHysteresisDistanceForSlidingModifier * keyHysteresisDistanceForSlidingModifier); } } public void setKeyboard(Keyboard keyboard, float correctionX, float correctionY) { public void setKeyboard(Keyboard keyboard, float correctionX, float correctionY) { Loading @@ -45,8 +60,9 @@ public class KeyDetector { mKeyboard = keyboard; mKeyboard = keyboard; } } public int getKeyHysteresisDistanceSquared() { public int getKeyHysteresisDistanceSquared(boolean isSlidingFromModifier) { return mKeyHysteresisDistanceSquared; return isSlidingFromModifier ? mKeyHysteresisDistanceForSlidingModifierSquared : mKeyHysteresisDistanceSquared; } } public int getTouchX(int x) { public int getTouchX(int x) { Loading java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -389,7 +389,10 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack final float keyHysteresisDistance = a.getDimension( final float keyHysteresisDistance = a.getDimension( R.styleable.MainKeyboardView_keyHysteresisDistance, 0); R.styleable.MainKeyboardView_keyHysteresisDistance, 0); mKeyDetector = new KeyDetector(keyHysteresisDistance); final float keyHysteresisDistanceForSlidingModifier = a.getDimension( R.styleable.MainKeyboardView_keyHysteresisDistanceForSlidingModifier, 0); mKeyDetector = new KeyDetector( keyHysteresisDistance, keyHysteresisDistanceForSlidingModifier); mKeyTimerHandler = new KeyTimerHandler(this, a); mKeyTimerHandler = new KeyTimerHandler(this, a); mConfigShowMoreKeysKeyboardAtTouchedPoint = a.getBoolean( mConfigShowMoreKeysKeyboardAtTouchedPoint = a.getBoolean( R.styleable.MainKeyboardView_showMoreKeysKeyboardAtTouchedPoint, false); R.styleable.MainKeyboardView_showMoreKeysKeyboardAtTouchedPoint, false); Loading Loading
java/res/values/attrs.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -109,6 +109,8 @@ <attr name="altCodeKeyWhileTypingFadeinAnimator" format="reference" /> <attr name="altCodeKeyWhileTypingFadeinAnimator" format="reference" /> <!-- Key detection hysteresis distance. --> <!-- Key detection hysteresis distance. --> <attr name="keyHysteresisDistance" format="dimension" /> <attr name="keyHysteresisDistance" format="dimension" /> <!-- Key detection hysteresis distance for shift/symbols sliding input. --> <attr name="keyHysteresisDistanceForSlidingModifier" format="dimension" /> <!-- Touch noise threshold time in millisecond --> <!-- Touch noise threshold time in millisecond --> <attr name="touchNoiseThresholdTime" format="integer" /> <attr name="touchNoiseThresholdTime" format="integer" /> <!-- Touch noise threshold distance in millimeter --> <!-- Touch noise threshold distance in millimeter --> Loading
java/res/values/config.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -57,6 +57,7 @@ Configuration for MainKeyboardView Configuration for MainKeyboardView --> --> <dimen name="config_key_hysteresis_distance">8.0dp</dimen> <dimen name="config_key_hysteresis_distance">8.0dp</dimen> <dimen name="config_key_hysteresis_distance_for_sliding_modifier">8.0dp</dimen> <integer name="config_touch_noise_threshold_time">40</integer> <integer name="config_touch_noise_threshold_time">40</integer> <dimen name="config_touch_noise_threshold_distance">12.6dp</dimen> <dimen name="config_touch_noise_threshold_distance">12.6dp</dimen> <bool name="config_sliding_key_input_enabled">true</bool> <bool name="config_sliding_key_input_enabled">true</bool> Loading
java/res/values/styles.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -81,6 +81,7 @@ <item name="gesturePreviewTrailEndWidth">@dimen/gesture_preview_trail_end_width</item> <item name="gesturePreviewTrailEndWidth">@dimen/gesture_preview_trail_end_width</item> <!-- Common attributes of MainKeyboardView --> <!-- Common attributes of MainKeyboardView --> <item name="keyHysteresisDistance">@dimen/config_key_hysteresis_distance</item> <item name="keyHysteresisDistance">@dimen/config_key_hysteresis_distance</item> <item name="keyHysteresisDistanceForSlidingModifier">@dimen/config_key_hysteresis_distance_for_sliding_modifier</item> <item name="touchNoiseThresholdTime">@integer/config_touch_noise_threshold_time</item> <item name="touchNoiseThresholdTime">@integer/config_touch_noise_threshold_time</item> <item name="touchNoiseThresholdDistance">@dimen/config_touch_noise_threshold_distance</item> <item name="touchNoiseThresholdDistance">@dimen/config_touch_noise_threshold_distance</item> <item name="slidingKeyInputEnable">@bool/config_sliding_key_input_enabled</item> <item name="slidingKeyInputEnable">@bool/config_sliding_key_input_enabled</item> Loading
java/src/com/android/inputmethod/keyboard/KeyDetector.java +19 −3 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import com.android.inputmethod.latin.Constants; public class KeyDetector { public class KeyDetector { private final int mKeyHysteresisDistanceSquared; private final int mKeyHysteresisDistanceSquared; private final int mKeyHysteresisDistanceForSlidingModifierSquared; private Keyboard mKeyboard; private Keyboard mKeyboard; private int mCorrectionX; private int mCorrectionX; Loading @@ -30,10 +31,24 @@ public class KeyDetector { * This class handles key detection. * This class handles key detection. * * * @param keyHysteresisDistance if the pointer movement distance is smaller than this, the * @param keyHysteresisDistance if the pointer movement distance is smaller than this, the * movement will not been handled as meaningful movement. The unit is pixel. * movement will not be handled as meaningful movement. The unit is pixel. */ */ public KeyDetector(float keyHysteresisDistance) { public KeyDetector(float keyHysteresisDistance) { this(keyHysteresisDistance, keyHysteresisDistance); } /** * This class handles key detection. * * @param keyHysteresisDistance if the pointer movement distance is smaller than this, the * movement will not be handled as meaningful movement. The unit is pixel. * @param keyHysteresisDistanceForSlidingModifier the same parameter for sliding input that * starts from a modifier key such as shift and symbols key. */ public KeyDetector(float keyHysteresisDistance, float keyHysteresisDistanceForSlidingModifier) { mKeyHysteresisDistanceSquared = (int)(keyHysteresisDistance * keyHysteresisDistance); mKeyHysteresisDistanceSquared = (int)(keyHysteresisDistance * keyHysteresisDistance); mKeyHysteresisDistanceForSlidingModifierSquared = (int)( keyHysteresisDistanceForSlidingModifier * keyHysteresisDistanceForSlidingModifier); } } public void setKeyboard(Keyboard keyboard, float correctionX, float correctionY) { public void setKeyboard(Keyboard keyboard, float correctionX, float correctionY) { Loading @@ -45,8 +60,9 @@ public class KeyDetector { mKeyboard = keyboard; mKeyboard = keyboard; } } public int getKeyHysteresisDistanceSquared() { public int getKeyHysteresisDistanceSquared(boolean isSlidingFromModifier) { return mKeyHysteresisDistanceSquared; return isSlidingFromModifier ? mKeyHysteresisDistanceForSlidingModifierSquared : mKeyHysteresisDistanceSquared; } } public int getTouchX(int x) { public int getTouchX(int x) { Loading
java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +4 −1 Original line number Original line Diff line number Diff line Loading @@ -389,7 +389,10 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack final float keyHysteresisDistance = a.getDimension( final float keyHysteresisDistance = a.getDimension( R.styleable.MainKeyboardView_keyHysteresisDistance, 0); R.styleable.MainKeyboardView_keyHysteresisDistance, 0); mKeyDetector = new KeyDetector(keyHysteresisDistance); final float keyHysteresisDistanceForSlidingModifier = a.getDimension( R.styleable.MainKeyboardView_keyHysteresisDistanceForSlidingModifier, 0); mKeyDetector = new KeyDetector( keyHysteresisDistance, keyHysteresisDistanceForSlidingModifier); mKeyTimerHandler = new KeyTimerHandler(this, a); mKeyTimerHandler = new KeyTimerHandler(this, a); mConfigShowMoreKeysKeyboardAtTouchedPoint = a.getBoolean( mConfigShowMoreKeysKeyboardAtTouchedPoint = a.getBoolean( R.styleable.MainKeyboardView_showMoreKeysKeyboardAtTouchedPoint, false); R.styleable.MainKeyboardView_showMoreKeysKeyboardAtTouchedPoint, false); Loading