Merge "add new accessibility action for EditText to set text content"
This commit is contained in:
@@ -30282,6 +30282,7 @@ package android.view.accessibility {
|
||||
field public static final java.lang.String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
|
||||
field public static final java.lang.String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
|
||||
field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
|
||||
field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
|
||||
field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
|
||||
@@ -30302,6 +30303,7 @@ package android.view.accessibility {
|
||||
field public static final int ACTION_SCROLL_FORWARD = 4096; // 0x1000
|
||||
field public static final int ACTION_SELECT = 4; // 0x4
|
||||
field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
|
||||
field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
|
||||
field public static final android.os.Parcelable.Creator CREATOR;
|
||||
field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
|
||||
field public static final int FOCUS_INPUT = 1; // 0x1
|
||||
|
||||
@@ -282,6 +282,22 @@ public class AccessibilityNodeInfo implements Parcelable {
|
||||
*/
|
||||
public static final int ACTION_DISMISS = 0x00100000;
|
||||
|
||||
/**
|
||||
* Action that sets the text of the node. Performing the action without argument, using <code>
|
||||
* null</code> or empty {@link CharSequence} will clear the text. This action will also put the
|
||||
* cursor at the end of text.
|
||||
* <p>
|
||||
* <strong>Arguments:</strong> {@link #ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE}<br>
|
||||
* <strong>Example:</strong>
|
||||
* <code><pre><p>
|
||||
* Bundle arguments = new Bundle();
|
||||
* arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
|
||||
* "android");
|
||||
* info.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments);
|
||||
* </code></pre></p>
|
||||
*/
|
||||
public static final int ACTION_SET_TEXT = 0x00200000;
|
||||
|
||||
// Action arguments
|
||||
|
||||
/**
|
||||
@@ -351,6 +367,18 @@ public class AccessibilityNodeInfo implements Parcelable {
|
||||
public static final String ACTION_ARGUMENT_SELECTION_END_INT =
|
||||
"ACTION_ARGUMENT_SELECTION_END_INT";
|
||||
|
||||
/**
|
||||
* Argument for specifying the text content to set
|
||||
* <p>
|
||||
* <strong>Type:</strong> CharSequence<br>
|
||||
* <strong>Actions:</strong> {@link #ACTION_SET_TEXT}
|
||||
* </p>
|
||||
*
|
||||
* @see #ACTION_SET_TEXT
|
||||
*/
|
||||
public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE =
|
||||
"ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
|
||||
|
||||
// Focus types
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package android.widget;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.Selection;
|
||||
import android.text.Spannable;
|
||||
@@ -132,4 +133,22 @@ public class EditText extends TextView {
|
||||
super.onInitializeAccessibilityNodeInfo(info);
|
||||
info.setClassName(EditText.class.getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean performAccessibilityAction(int action, Bundle arguments) {
|
||||
switch (action) {
|
||||
case AccessibilityNodeInfo.ACTION_SET_TEXT: {
|
||||
CharSequence text = (arguments != null) ? arguments.getCharSequence(
|
||||
AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE) : null;
|
||||
setText(text);
|
||||
if (text != null && text.length() > 0) {
|
||||
setSelection(text.length());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
default: {
|
||||
return super.performAccessibilityAction(action, arguments);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2722,7 +2722,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
|
||||
| AccessibilityNodeInfo.ACTION_SET_SELECTION
|
||||
| AccessibilityNodeInfo.ACTION_EXPAND
|
||||
| AccessibilityNodeInfo.ACTION_COLLAPSE
|
||||
| AccessibilityNodeInfo.ACTION_DISMISS;
|
||||
| AccessibilityNodeInfo.ACTION_DISMISS
|
||||
| AccessibilityNodeInfo.ACTION_SET_TEXT;
|
||||
|
||||
private static final int RETRIEVAL_ALLOWING_EVENT_TYPES =
|
||||
AccessibilityEvent.TYPE_VIEW_CLICKED
|
||||
|
||||
Reference in New Issue
Block a user