Merge "Remove unused code from AccessibilityEntityProvider." into jb-dev
This commit is contained in:
commit
52ab6864d0
1 changed files with 0 additions and 151 deletions
|
@ -18,7 +18,6 @@ package com.android.inputmethod.accessibility;
|
||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.inputmethodservice.InputMethodService;
|
import android.inputmethodservice.InputMethodService;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.support.v4.view.ViewCompat;
|
import android.support.v4.view.ViewCompat;
|
||||||
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
|
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
|
||||||
import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
|
import android.support.v4.view.accessibility.AccessibilityNodeProviderCompat;
|
||||||
|
@ -34,10 +33,6 @@ import com.android.inputmethod.keyboard.Key;
|
||||||
import com.android.inputmethod.keyboard.Keyboard;
|
import com.android.inputmethod.keyboard.Keyboard;
|
||||||
import com.android.inputmethod.keyboard.KeyboardView;
|
import com.android.inputmethod.keyboard.KeyboardView;
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Exposes a virtual view sub-tree for {@link KeyboardView} and generates
|
* Exposes a virtual view sub-tree for {@link KeyboardView} and generates
|
||||||
* {@link AccessibilityEvent}s for individual {@link Key}s.
|
* {@link AccessibilityEvent}s for individual {@link Key}s.
|
||||||
|
@ -95,7 +90,6 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
|
||||||
final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
|
final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
|
||||||
event.setPackageName(mKeyboardView.getContext().getPackageName());
|
event.setPackageName(mKeyboardView.getContext().getPackageName());
|
||||||
event.setClassName(key.getClass().getName());
|
event.setClassName(key.getClass().getName());
|
||||||
event.getText().add(keyDescription);
|
|
||||||
event.setEnabled(true);
|
event.setEnabled(true);
|
||||||
|
|
||||||
final AccessibilityRecordCompat record = new AccessibilityRecordCompat(event);
|
final AccessibilityRecordCompat record = new AccessibilityRecordCompat(event);
|
||||||
|
@ -136,7 +130,6 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
|
||||||
ViewCompat.onInitializeAccessibilityNodeInfo(mKeyboardView, info);
|
ViewCompat.onInitializeAccessibilityNodeInfo(mKeyboardView, info);
|
||||||
|
|
||||||
// Add the virtual children of the root View.
|
// Add the virtual children of the root View.
|
||||||
// TODO: Need to assign a unique ID to each key.
|
|
||||||
final Keyboard keyboard = mKeyboardView.getKeyboard();
|
final Keyboard keyboard = mKeyboardView.getKeyboard();
|
||||||
final Key[] keys = keyboard.mKeys;
|
final Key[] keys = keyboard.mKeys;
|
||||||
for (Key key : keys) {
|
for (Key key : keys) {
|
||||||
|
@ -163,8 +156,6 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
|
||||||
// Obtain and initialize an AccessibilityNodeInfo with
|
// Obtain and initialize an AccessibilityNodeInfo with
|
||||||
// information about the virtual view.
|
// information about the virtual view.
|
||||||
info = AccessibilityNodeInfoCompat.obtain();
|
info = AccessibilityNodeInfoCompat.obtain();
|
||||||
info.addAction(AccessibilityNodeInfoCompat.ACTION_SELECT);
|
|
||||||
info.addAction(AccessibilityNodeInfoCompat.ACTION_CLEAR_SELECTION);
|
|
||||||
info.setPackageName(mKeyboardView.getContext().getPackageName());
|
info.setPackageName(mKeyboardView.getContext().getPackageName());
|
||||||
info.setClassName(key.getClass().getName());
|
info.setClassName(key.getClass().getName());
|
||||||
info.setBoundsInParent(boundsInParent);
|
info.setBoundsInParent(boundsInParent);
|
||||||
|
@ -173,154 +164,12 @@ public class AccessibilityEntityProvider extends AccessibilityNodeProviderCompat
|
||||||
info.setSource(mKeyboardView, virtualViewId);
|
info.setSource(mKeyboardView, virtualViewId);
|
||||||
info.setBoundsInScreen(boundsInScreen);
|
info.setBoundsInScreen(boundsInScreen);
|
||||||
info.setText(keyDescription);
|
info.setText(keyDescription);
|
||||||
info.setClickable(true);
|
|
||||||
info.setEnabled(true);
|
info.setEnabled(true);
|
||||||
info.setLongClickable(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Performs an accessibility action on a virtual view, i.e. a descendant of
|
|
||||||
* the host View, with the given <code>virtualViewId</code> or the host View itself if
|
|
||||||
* <code>virtualViewId</code> equals to {@link View#NO_ID}.
|
|
||||||
*
|
|
||||||
* @param virtualViewId A client defined virtual view id.
|
|
||||||
* @param action The action to perform.
|
|
||||||
* @param arguments Optional arguments.
|
|
||||||
* @return True if the action was performed.
|
|
||||||
* @see #createAccessibilityNodeInfo(int)
|
|
||||||
* @see AccessibilityNodeInfoCompat
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean performAction(int virtualViewId, int action, Bundle arguments) {
|
|
||||||
if (virtualViewId == View.NO_ID) {
|
|
||||||
// Perform the action on the host View.
|
|
||||||
switch (action) {
|
|
||||||
case AccessibilityNodeInfoCompat.ACTION_SELECT:
|
|
||||||
if (!mKeyboardView.isSelected()) {
|
|
||||||
mKeyboardView.setSelected(true);
|
|
||||||
return mKeyboardView.isSelected();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case AccessibilityNodeInfoCompat.ACTION_CLEAR_SELECTION:
|
|
||||||
if (mKeyboardView.isSelected()) {
|
|
||||||
mKeyboardView.setSelected(false);
|
|
||||||
return !mKeyboardView.isSelected();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Find the view that corresponds to the given id.
|
|
||||||
final Key child = mVirtualViewIdToKey.get(virtualViewId);
|
|
||||||
if (child == null)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Perform the action on a virtual view.
|
|
||||||
switch (action) {
|
|
||||||
case AccessibilityNodeInfoCompat.ACTION_SELECT:
|
|
||||||
// TODO: Provide some focus indicator.
|
|
||||||
return true;
|
|
||||||
case AccessibilityNodeInfoCompat.ACTION_CLEAR_SELECTION:
|
|
||||||
// TODO: Provide some clear focus indicator.
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds {@link AccessibilityNodeInfoCompat}s by text. The match is case
|
|
||||||
* insensitive containment. The search is relative to the virtual view, i.e.
|
|
||||||
* a descendant of the host View, with the given <code>virtualViewId</code> or the host
|
|
||||||
* View itself <code>virtualViewId</code> equals to {@link View#NO_ID}.
|
|
||||||
*
|
|
||||||
* @param virtualViewId A client defined virtual view id which defined the
|
|
||||||
* root of the tree in which to perform the search.
|
|
||||||
* @param text The searched text.
|
|
||||||
* @return A list of node info.
|
|
||||||
* @see #createAccessibilityNodeInfo(int)
|
|
||||||
* @see AccessibilityNodeInfoCompat
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<AccessibilityNodeInfoCompat> findAccessibilityNodeInfosByText(
|
|
||||||
String text, int virtualViewId) {
|
|
||||||
final String searchedLowerCase = text.toLowerCase();
|
|
||||||
final Keyboard keyboard = mKeyboardView.getKeyboard();
|
|
||||||
|
|
||||||
List<AccessibilityNodeInfoCompat> results = null;
|
|
||||||
|
|
||||||
if (virtualViewId == View.NO_ID) {
|
|
||||||
for (Key key : keyboard.mKeys) {
|
|
||||||
results = findByTextAndPopulate(searchedLowerCase, key, results);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
final Key key = mVirtualViewIdToKey.get(virtualViewId);
|
|
||||||
|
|
||||||
results = findByTextAndPopulate(searchedLowerCase, key, results);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (results == null) {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Helper method for {@link #findAccessibilityNodeInfosByText(String, int)}.
|
|
||||||
* Takes a current set of results and matches a specified key against a
|
|
||||||
* lower-case search string. Returns an updated list of results.
|
|
||||||
*
|
|
||||||
* @param searchedLowerCase The lower-case search string.
|
|
||||||
* @param key The key to compare against.
|
|
||||||
* @param results The current list of results, or {@code null} if no results
|
|
||||||
* found.
|
|
||||||
* @return An updated list of results, or {@code null} if no results found.
|
|
||||||
*/
|
|
||||||
private List<AccessibilityNodeInfoCompat> findByTextAndPopulate(String searchedLowerCase,
|
|
||||||
Key key, List<AccessibilityNodeInfoCompat> results) {
|
|
||||||
if (!keyContainsText(key, searchedLowerCase)) {
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
final int childVirtualViewId = generateVirtualViewIdForKey(key);
|
|
||||||
final AccessibilityNodeInfoCompat nodeInfo = createAccessibilityNodeInfo(
|
|
||||||
childVirtualViewId);
|
|
||||||
|
|
||||||
if (results == null) {
|
|
||||||
results = new LinkedList<AccessibilityNodeInfoCompat>();
|
|
||||||
}
|
|
||||||
|
|
||||||
results.add(nodeInfo);
|
|
||||||
|
|
||||||
return results;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns whether a key's current description contains the lower-case
|
|
||||||
* search text.
|
|
||||||
*
|
|
||||||
* @param key The key to compare against.
|
|
||||||
* @param textLowerCase The lower-case search string.
|
|
||||||
* @return {@code true} if the key contains the search text.
|
|
||||||
*/
|
|
||||||
private boolean keyContainsText(Key key, String textLowerCase) {
|
|
||||||
if (key == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final String description = getKeyDescription(key);
|
|
||||||
|
|
||||||
if (description == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return description.toLowerCase().contains(textLowerCase);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the context-specific description for a {@link Key}.
|
* Returns the context-specific description for a {@link Key}.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue