Skip to content
Snippets Groups Projects
Commit f147794f authored by alanv's avatar alanv
Browse files

Refresh Accessibility key mapping when KeyboardView changes Keyboards.

Bug: 6609626
Change-Id: I93d764b46e96fe70b61c91a7dcb46945ac8853dd
parent fe824948
No related branches found
No related tags found
No related merge requests found
......@@ -85,9 +85,20 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
*/
public void setView(KeyboardView keyboardView) {
mKeyboardView = keyboardView;
updateParentLocation();
// Since this class is constructed lazily, we might not get a subsequent
// call to setKeyboard() and therefore need to call it now.
setKeyboard(mKeyboardView.getKeyboard());
}
/**
* Sets the keyboard represented by this node provider.
*
* @param keyboard The keyboard to represent.
*/
public void setKeyboard(Keyboard keyboard) {
assignVirtualViewIds();
updateParentLocation();
}
/**
......
......@@ -86,6 +86,12 @@ public class AccessibleKeyboardViewProxy extends AccessibilityDelegateCompat {
}
}
public void setKeyboard(Keyboard keyboard) {
if (mAccessibilityNodeProvider != null) {
mAccessibilityNodeProvider.setKeyboard(keyboard);
}
}
/**
* Proxy method for View.getAccessibilityNodeProvider(). This method is
* called in SDK version 15 and higher to obtain the virtual node hierarchy
......
......@@ -468,6 +468,10 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
if (ProductionFlag.IS_EXPERIMENTAL) {
ResearchLogger.latinKeyboardView_setKeyboard(keyboard);
}
// This always needs to be set since the accessibility state can
// potentially change without the keyboard being set again.
AccessibleKeyboardViewProxy.getInstance().setKeyboard(keyboard);
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment