Adjust accessibility edge slop.

Bug: 6969558
Change-Id: Ie33f444e085e5c01326bdf9396eabee5c04ee81e
main
alanv 2012-08-27 18:05:21 -07:00
parent 95c272596d
commit e76a9b36ca
2 changed files with 14 additions and 5 deletions

View File

@ -101,4 +101,7 @@
<dimen name="gesture_floating_preview_text_shadow_border">17.5dp</dimen>
<dimen name="gesture_floating_preview_text_shading_border">7.5dp</dimen>
<dimen name="gesture_floating_preview_text_connector_width">1.0dp</dimen>
<!-- Inset used in Accessibility mode to avoid accidental key presses when a finger slides off the screen. -->
<dimen name="accessibility_edge_slop">8dp</dimen>
</resources>

View File

@ -24,7 +24,6 @@ import android.support.v4.view.accessibility.AccessibilityEventCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard;
@ -44,7 +43,7 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
/**
* Inset in pixels to look for keys when the user's finger exits the
* keyboard area. See {@link ViewConfiguration#getScaledEdgeSlop()}.
* keyboard area.
*/
private int mEdgeSlop;
@ -62,7 +61,8 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
private void initInternal(InputMethodService inputMethod) {
mInputMethod = inputMethod;
mEdgeSlop = ViewConfiguration.get(inputMethod).getScaledEdgeSlop();
mEdgeSlop = inputMethod.getResources().getDimensionPixelSize(
R.dimen.accessibility_edge_slop);
}
/**
@ -114,8 +114,14 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
public boolean dispatchHoverEvent(MotionEvent event, PointerTracker tracker) {
final int x = (int) event.getX();
final int y = (int) event.getY();
final Key key = tracker.getKeyOn(x, y);
final Key previousKey = mLastHoverKey;
final Key key;
if (pointInView(x, y)) {
key = tracker.getKeyOn(x, y);
} else {
key = null;
}
mLastHoverKey = key;
@ -123,7 +129,7 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
case MotionEvent.ACTION_HOVER_EXIT:
// Make sure we're not getting an EXIT event because the user slid
// off the keyboard area, then force a key press.
if (pointInView(x, y) && (key != null)) {
if (key != null) {
getAccessibilityNodeProvider().simulateKeyPress(key);
}
//$FALL-THROUGH$