android.view.accessibility.AccessibilityNodeInfo#ACTION_CLICK源码实例Demo

下面列出了android.view.accessibility.AccessibilityNodeInfo#ACTION_CLICK 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: RadialTimePickerView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
        Bundle arguments) {
    if (action == AccessibilityNodeInfo.ACTION_CLICK) {
        final int type = getTypeFromId(virtualViewId);
        final int value = getValueFromId(virtualViewId);
        if (type == TYPE_HOUR) {
            final int hour = mIs24HourMode ? value : hour12To24(value, mAmOrPm);
            setCurrentHour(hour);
            return true;
        } else if (type == TYPE_MINUTE) {
            setCurrentMinute(value);
            return true;
        }
    }
    return false;
}
 
源代码2 项目: DateTimePicker   文件: RadialTimePickerView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
        Bundle arguments) {
    if (action == AccessibilityNodeInfo.ACTION_CLICK) {
        final int type = getTypeFromId(virtualViewId);
        final int value = getValueFromId(virtualViewId);
        if (type == TYPE_HOUR) {
            final int hour = mIs24HourMode ? value : hour12To24(value, mAmOrPm);
            setCurrentHour(hour);
            return true;
        } else if (type == TYPE_MINUTE) {
            setCurrentMinute(value);
            return true;
        }
    }
    return false;
}
 
/**
 * @see AccessibilityNodeProvider#performAction(int, int, Bundle)
 */
protected boolean performAction(int virtualViewId, int action, Bundle arguments) {
    if (!mAccessibilityManager.isEnabled() || mNativeObj == 0) {
        return false;
    }

    switch (action) {
        case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS:
            if (mAccessibilityFocusId == virtualViewId) {
                return true;
            }

            mAccessibilityFocusId = virtualViewId;
            sendAccessibilityEvent(mAccessibilityFocusId,
                    AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
            return true;
        case AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS:
            if (mAccessibilityFocusId == virtualViewId) {
                mAccessibilityFocusId = View.NO_ID;
            }
            return true;
        case AccessibilityNodeInfo.ACTION_CLICK:
            nativeClick(mNativeObj, virtualViewId);
            break;
        case AccessibilityNodeInfo.ACTION_FOCUS:
            nativeFocus(mNativeObj, virtualViewId);
            break;
        case AccessibilityNodeInfo.ACTION_CLEAR_FOCUS:
            nativeBlur(mNativeObj);
            break;
        default:
            break;
    }
    return false;
}
 
源代码4 项目: PersianDateRangePicker   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
                                                Bundle arguments) {
  switch (action) {
    case AccessibilityNodeInfo.ACTION_CLICK:
      onDayClick(virtualViewId);
      return true;
  }

  return false;
}
 
源代码5 项目: AssistantBySDK   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
        Bundle arguments) {
    switch (action) {
        case AccessibilityNodeInfo.ACTION_CLICK:
            onDayClick(virtualViewId);
            return true;
    }

    return false;
}
 
源代码6 项目: android-dialer   文件: DialpadKeyButton.java
@Override
public boolean performAccessibilityAction(int action, Bundle arguments) {
  if (action == AccessibilityNodeInfo.ACTION_CLICK) {
    simulateClickForAccessibility();
    return true;
  }

  return super.performAccessibilityAction(action, arguments);
}
 
/**
 * @see AccessibilityNodeProvider#performAction(int, int, Bundle)
 */
protected boolean performAction(int virtualViewId, int action, Bundle arguments) {
    if (!mAccessibilityManager.isEnabled() || mNativeObj == 0) {
        return false;
    }

    switch (action) {
        case AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS:
            if (mAccessibilityFocusId == virtualViewId) {
                return true;
            }

            mAccessibilityFocusId = virtualViewId;
            sendAccessibilityEvent(mAccessibilityFocusId,
                    AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
            return true;
        case AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS:
            if (mAccessibilityFocusId == virtualViewId) {
                mAccessibilityFocusId = View.NO_ID;
            }
            return true;
        case AccessibilityNodeInfo.ACTION_CLICK:
            nativeClick(mNativeObj, virtualViewId);
            break;
        case AccessibilityNodeInfo.ACTION_FOCUS:
            nativeFocus(mNativeObj, virtualViewId);
            break;
        case AccessibilityNodeInfo.ACTION_CLEAR_FOCUS:
            nativeBlur(mNativeObj);
            break;
        default:
            break;
    }
    return false;
}
 
源代码8 项目: narrate-android   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
                                                Bundle arguments) {
    switch (action) {
        case AccessibilityNodeInfo.ACTION_CLICK:
            onDayClick(virtualViewId);
            return true;
    }

    return false;
}
 
源代码9 项目: BottomSheetPickers   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
        Bundle arguments) {
    switch (action) {
        case AccessibilityNodeInfo.ACTION_CLICK:
            onDayClick(virtualViewId);
            return true;
    }

    return false;
}
 
源代码10 项目: Autoinstall   文件: TamicInstallService.java
/**
 *  performClickAction
 * @param aAccessibilityNodeInfo  aAccessibilityNodeInfo
 * @return
 */
private boolean performClickAction(AccessibilityNodeInfo aAccessibilityNodeInfo) {
    int targetAction = AccessibilityNodeInfo.ACTION_CLICK;
    if ((aAccessibilityNodeInfo != null)  && aAccessibilityNodeInfo.isEnabled() && aAccessibilityNodeInfo.isClickable()
            && aAccessibilityNodeInfo.performAction(targetAction)) {
        return true;
    }

    return false;
}
 
@Override
public boolean supportsAccessibilityAction(int action) {
    if (action == AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY ||
            action == AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY ||
            action == AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT ||
            action == AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT ||
            action == AccessibilityNodeInfo.ACTION_CLICK) {
        return true;
    }

    return false;
}
 
@Override
public boolean supportsAccessibilityAction(int action) {
    if (action == AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY ||
            action == AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY ||
            action == AccessibilityNodeInfo.ACTION_NEXT_HTML_ELEMENT ||
            action == AccessibilityNodeInfo.ACTION_PREVIOUS_HTML_ELEMENT ||
            action == AccessibilityNodeInfo.ACTION_CLICK) {
        return true;
    }

    return false;
}
 
源代码13 项目: cathode   文件: MonthView.java
@Override protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
    Bundle arguments) {
  switch (action) {
    case AccessibilityNodeInfo.ACTION_CLICK:
      onDayClick(virtualViewId);
      return true;
  }

  return false;
}
 
源代码14 项目: AlarmOn   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
        Bundle arguments) {
    switch (action) {
        case AccessibilityNodeInfo.ACTION_CLICK:
            onDayClick(virtualViewId);
            return true;
    }

    return false;
}
 
源代码15 项目: MaterialDateTimePicker   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
                                                Bundle arguments) {
    switch (action) {
        case AccessibilityNodeInfo.ACTION_CLICK:
            onDayClick(virtualViewId);
            return true;
    }

    return false;
}
 
源代码16 项目: MaterialDateRangePicker   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
        Bundle arguments) {
    switch (action) {
        case AccessibilityNodeInfo.ACTION_CLICK:
            onDayClick(virtualViewId);
            return true;
    }

    return false;
}
 
源代码17 项目: StyleableDateTimePicker   文件: MonthView.java
@Override
protected boolean onPerformActionForVirtualView(int virtualViewId, int action,
        Bundle arguments) {
    switch (action) {
        case AccessibilityNodeInfo.ACTION_CLICK:
            onDayClick(virtualViewId);
            return true;
    }

    return false;
}
 
public ClickActionDelegate(Context context, int resId) {
    mClickAction = new AccessibilityAction(
            AccessibilityNodeInfo.ACTION_CLICK, context.getString(resId));
}
 
源代码19 项目: brailleback   文件: DefaultNavigationMode.java
private boolean activateNode(AccessibilityNodeInfoCompat node,
        int position) {
    if (node == null) {
        return false;
    }
    AccessibilityNodeInfoRef current =
            AccessibilityNodeInfoRef.unOwned(node);
    try {
        do {
            LogUtils.log(this, Log.VERBOSE,
                    "Considering to click: %s",
                    current.get().getInfo());
            int supportedActions = current.get().getActions();
            int action = 0;
            // For edit texts, the click action doesn't currently focus
            // the view, so we special case it here.
            // TODO: Revise when that changes.
            if (AccessibilityNodeInfoUtils.nodeMatchesClassByType(
                    mAccessibilityService, current.get(),
                    EditText.class)) {
                if ((supportedActions & AccessibilityNodeInfo.ACTION_FOCUS)
                        != 0) {
                    action = AccessibilityNodeInfo.ACTION_FOCUS;
                } else {
                    // Put accessibility focus on the field.  If it is
                    // already focused and the IME is selected, that will
                    // activate the editing.
                    action = AccessibilityNodeInfo.ACTION_ACCESSIBILITY_FOCUS;
                }
            } else if (position >= 0 && isSelfBrailled(current.get())
                    && (supportedActions
                            & AccessibilityNodeInfo.ACTION_CLICK) != 0) {
                // Generate a fake "action". For instance, a click at
                // position 33 maps to -275000033.
                // TODO: Remove this hack when a better way to pass this
                // information exists.
                int fakeAction = ACTION_BRAILLE_CLICK_MAX - position;
                if (fakeAction < ACTION_BRAILLE_CLICK_MIN) {
                    LogUtils.log(this, Log.WARN,
                        "underflow activating node %s at position %d",
                        current.get(), position);
                    fakeAction = ACTION_BRAILLE_CLICK_MIN;
                } else if (fakeAction > ACTION_BRAILLE_CLICK_MAX) {
                    LogUtils.log(this, Log.WARN,
                        "overflow activating node %s at position %d",
                        current.get(), position);
                    fakeAction = ACTION_BRAILLE_CLICK_MAX;
                }
                if (WebInterfaceUtils.performSpecialAction(current.get(),
                            fakeAction)) {
                    return true;
                }
            } else if ((supportedActions
                            & AccessibilityNodeInfo.ACTION_CLICK) != 0) {
                action = AccessibilityNodeInfo.ACTION_CLICK;
            }
            if (action != 0 && current.get().performAction(action)) {
                return true;
            } else {
                LogUtils.log(this, Log.VERBOSE, "Action %d failed",
                        action);
            }
        } while (current.parent());
    } finally {
        current.recycle();
    }
    LogUtils.log(this, Log.VERBOSE, "Click action failed");
    return false;
}
 
源代码20 项目: talkback   文件: SwitchAccessAction.java
@Override
public ActionResult execute(AccessibilityService service) {
  previousSelectionStart = Math.max(0, nodeCompat.getTextSelectionStart());
  previousSelectionEnd = Math.max(0, nodeCompat.getTextSelectionEnd());
  previousTextContent = TextEditingUtils.getNonDefaultTextForNode(nodeCompat);

  switch (getId()) {
    case TextEditingUtils.ACTION_DELETE_TEXT:
      // Delete text with granularity according to args.
      return new ActionResult(TextEditingUtils.deleteTextWithGranularity(nodeCompat, args));
    case AccessibilityNodeInfo.ACTION_SET_SELECTION:
      // Select text with granularity according to args.
      return new ActionResult(TextEditingUtils.selectTextWithGranularity(nodeCompat, args));
    case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY:
    case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY:
      if ((args.getInt(ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT)
          == TextEditingUtils.ACTION_GRANULARITY_SENTENCE)) {
        MovementDirection movementDirection =
            (getId() == AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY)
                ? TextEditingUtils.MovementDirection.DIRECTION_NEXT
                : TextEditingUtils.MovementDirection.DIRECTION_PREVIOUS;
        // Sentence granularity doesn't have built-in support, so move cursor by sentence
        // granularity.
        return new ActionResult(
            TextEditingUtils.moveCursorBySentenceGranularity(nodeCompat, movementDirection));
      } else {
        // Perform the original granular movement
        return new ActionResult(
            PerformActionUtils.performAction(nodeCompat, getId(), args, null /* EventId */));
      }
    case TextEditingUtils.ACTION_UNDO:
      // Undo the previous action on this node's timeline.
      return new ActionResult(TextEditingUtils.performUndo(service, nodeCompat));
    case TextEditingUtils.ACTION_REDO:
      // Redo the next action on this node's timeline.
      return new ActionResult(TextEditingUtils.performRedo(service, nodeCompat));
    case AccessibilityNodeInfo.ACTION_SET_TEXT:
      // Set the text and restore the cursor position.
      return new ActionResult(TextEditingUtils.setText(nodeCompat, args));
    case AccessibilityNodeInfo.ACTION_COPY:
    case AccessibilityNodeInfo.ACTION_CUT:
      // For copy and cut actions, select all text as these actions only act on the currently
      // selected text.
      if ((args.getInt(ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT)
              == TextEditingUtils.ACTION_GRANULARITY_ALL)
          && !TextEditingUtils.selectTextWithGranularity(nodeCompat, args)) {
        return new ActionResult(false);
      } else {
        return new ActionResult(
            PerformActionUtils.performAction(nodeCompat, getId(), args, null /* EventId */));
      }
    case AccessibilityNodeInfo.ACTION_CLICK:
      if (nodeCompat.isClickable() && attemptToClickUrl(service)) {
        return new ActionResult(true /* isSuccessful */);
      }
      // Fall-through if there were no clickable urls.
    default:
      // Perform the original user-visible action.
      return new ActionResult(
          PerformActionUtils.performAction(nodeCompat, getId(), args, null /* EventId */));
  }
}