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_shadow_border">17.5dp</dimen>
<dimen name="gesture_floating_preview_text_shading_border">7.5dp</dimen> <dimen name="gesture_floating_preview_text_shading_border">7.5dp</dimen>
<dimen name="gesture_floating_preview_text_connector_width">1.0dp</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> </resources>

View File

@ -24,7 +24,6 @@ import android.support.v4.view.accessibility.AccessibilityEventCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewConfiguration;
import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.Key;
import com.android.inputmethod.keyboard.Keyboard; 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 * 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; private int mEdgeSlop;
@ -62,7 +61,8 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
private void initInternal(InputMethodService inputMethod) { private void initInternal(InputMethodService inputMethod) {
mInputMethod = 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) { public boolean dispatchHoverEvent(MotionEvent event, PointerTracker tracker) {
final int x = (int) event.getX(); final int x = (int) event.getX();
final int y = (int) event.getY(); final int y = (int) event.getY();
final Key key = tracker.getKeyOn(x, y);
final Key previousKey = mLastHoverKey; final Key previousKey = mLastHoverKey;
final Key key;
if (pointInView(x, y)) {
key = tracker.getKeyOn(x, y);
} else {
key = null;
}
mLastHoverKey = key; mLastHoverKey = key;
@ -123,7 +129,7 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
case MotionEvent.ACTION_HOVER_EXIT: case MotionEvent.ACTION_HOVER_EXIT:
// Make sure we're not getting an EXIT event because the user slid // Make sure we're not getting an EXIT event because the user slid
// off the keyboard area, then force a key press. // off the keyboard area, then force a key press.
if (pointInView(x, y) && (key != null)) { if (key != null) {
getAccessibilityNodeProvider().simulateKeyPress(key); getAccessibilityNodeProvider().simulateKeyPress(key);
} }
//$FALL-THROUGH$ //$FALL-THROUGH$