aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authoralanv <alanv@google.com>2012-05-30 15:39:48 -0700
committeralanv <alanv@google.com>2012-05-30 15:39:48 -0700
commit48ccd5528163383a46b597e9d5ea919ddc799f25 (patch)
tree059d98c24453b7d285fa8071309cbaa24bae7c2c /java/src
parent1ed017ef0e271ed3f3c212def6cc6ba95b14e780 (diff)
downloadlatinime-48ccd5528163383a46b597e9d5ea919ddc799f25.tar.gz
latinime-48ccd5528163383a46b597e9d5ea919ddc799f25.tar.xz
latinime-48ccd5528163383a46b597e9d5ea919ddc799f25.zip
Update keyboard view used by node provider. Remove global layout listener.
Bug: 6582130 Change-Id: I2976e37e921a3e2c151486a919b0a93a908c3384
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java32
-rw-r--r--java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java4
2 files changed, 20 insertions, 16 deletions
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
index 8bc789317..9986f6ec0 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityEntityProvider.java
@@ -29,7 +29,6 @@ import android.util.Log;
import android.util.SparseArray;
import android.view.MotionEvent;
import android.view.View;
-import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.accessibility.AccessibilityEvent;
import android.view.inputmethod.EditorInfo;
@@ -51,7 +50,6 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
private static final String TAG = AccessibilityEntityProvider.class.getSimpleName();
private static final int UNDEFINED = Integer.MIN_VALUE;
- private final KeyboardView mKeyboardView;
private final InputMethodService mInputMethodService;
private final KeyCodeDescriptionMapper mKeyCodeDescriptionMapper;
private final AccessibilityUtils mAccessibilityUtils;
@@ -68,18 +66,28 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
/** The virtual view identifier for the focused node. */
private int mAccessibilityFocusedView = UNDEFINED;
+ /** The current keyboard view. */
+ private KeyboardView mKeyboardView;
+
public AccessibilityEntityProvider(KeyboardView keyboardView, InputMethodService inputMethod) {
- mKeyboardView = keyboardView;
mInputMethodService = inputMethod;
mKeyCodeDescriptionMapper = KeyCodeDescriptionMapper.getInstance();
mAccessibilityUtils = AccessibilityUtils.getInstance();
+ setView(keyboardView);
+ }
+
+ /**
+ * Sets the keyboard view represented by this node provider.
+ *
+ * @param keyboardView The keyboard view to represent.
+ */
+ public void setView(KeyboardView keyboardView) {
+ mKeyboardView = keyboardView;
+
assignVirtualViewIds();
updateParentLocation();
-
- // Ensure that the on-screen bounds are cleared when the layout changes.
- mKeyboardView.getViewTreeObserver().addOnGlobalLayoutListener(mGlobalLayoutListener);
}
/**
@@ -196,8 +204,8 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
* @param key The key to press.
*/
void simulateKeyPress(Key key) {
- final int x = key.mX + (key.mWidth / 2);
- final int y = key.mY + (key.mHeight / 2);
+ final int x = key.mHitBox.centerX();
+ final int y = key.mHitBox.centerY();
final long downTime = SystemClock.uptimeMillis();
final MotionEvent downEvent = MotionEvent.obtain(
downTime, downTime, MotionEvent.ACTION_DOWN, x, y, 0);
@@ -331,12 +339,4 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
// left-half of the integer and OR'ing with the y-coordinate.
return ((0xFFFF & key.mX) << (Integer.SIZE / 2)) | (0xFFFF & key.mY);
}
-
- private final OnGlobalLayoutListener mGlobalLayoutListener = new OnGlobalLayoutListener() {
- @Override
- public void onGlobalLayout() {
- assignVirtualViewIds();
- updateParentLocation();
- }
- };
}
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
index 2623dcc03..59f1eec04 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibleKeyboardViewProxy.java
@@ -80,6 +80,10 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
// Ensure that the view has an accessibility delegate.
ViewCompat.setAccessibilityDelegate(view, this);
+
+ if (mAccessibilityNodeProvider != null) {
+ mAccessibilityNodeProvider.setView(view);
+ }
}
/**