in AutofillFramework/Application/src/main/java/com/example/android/autofill/app/view/autofillable/CustomVirtualViewCompatMode.java [56:98]
public CustomVirtualViewCompatMode(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
mAccessibilityNodeProvider = new AccessibilityNodeProvider() {
@Override
public AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualViewId) {
if (DEBUG) {
Log.d(TAG, "createAccessibilityNodeInfo(): id=" + virtualViewId);
}
switch (virtualViewId) {
case AccessibilityNodeProvider.HOST_VIEW_ID:
return onProvideAutofillCompatModeAccessibilityNodeInfo();
default:
final Item item = getItem(virtualViewId);
return item.provideAccessibilityNodeInfo(CustomVirtualViewCompatMode.this,
getContext());
}
}
@Override
public boolean performAction(int virtualViewId, int action, Bundle arguments) {
if (action == AccessibilityNodeInfo.ACTION_SET_TEXT) {
final CharSequence text = arguments.getCharSequence(
AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE);
final Item item = getItem(virtualViewId);
item.setText(text);
invalidate();
return true;
}
return false;
}
};
mAccessibilityDelegate = new AccessibilityDelegate() {
@Override
public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) {
return mAccessibilityNodeProvider;
}
};
setAccessibilityDelegate(mAccessibilityDelegate);
}