/** * Returns whether the specified event time falls between the start and finish times of the * specified action. * * @param action The action to check. * @param eventTime The event time to check. * @return {@code true} if the event time falls between the start and finish times of the * specified action. */ public boolean hasActionAtTime(int action, long eventTime) { final long startTime = mActionStartMap.get(action); final boolean hasStarted = (startTime > 0); if (!hasStarted || (startTime > eventTime)) { // The action hasn't started, or started after the event. return false; } final long finishTime = mActionFinishMap.get(action); final boolean hasFinished = (finishTime >= startTime); if (hasFinished && (finishTime < eventTime)) { // The action finished before the event. return false; } return true; }
/** * Stores the finish time for an action. This should be called immediately after {@link * AccessibilityNodeInfoCompat#performAction}. * * @param action The action that was performed. */ public void after(int action) { mActionFinishMap.put(action, SystemClock.uptimeMillis()); }
/** * Stores the start time for an action. This should be called immediately before {@link * AccessibilityNodeInfoCompat#performAction}. * * @param action The action that will be performed. */ public void before(int action) { mActionStartMap.put(action, SystemClock.uptimeMillis()); }