List of usage examples for android.view.accessibility AccessibilityEvent getCurrentItemIndex
public int getCurrentItemIndex()
From source file:com.android.screenspeak.formatter.ProgressBarFormatter.java
private float getProgressPercent(AccessibilityEvent event) { final int maxProgress = event.getItemCount(); final int progress = event.getCurrentItemIndex(); final float percent = (progress / (float) maxProgress); return (100.0f * Math.max(0.0f, Math.min(1.0f, percent))); }
From source file:com.google.android.marvin.mytalkback.speechrules.RuleSeekBar.java
@Override public CharSequence format(Context context, AccessibilityNodeInfoCompat node, AccessibilityEvent event) { final SpannableStringBuilder output = new SpannableStringBuilder(); final CharSequence text = super.format(context, node, event); final CharSequence formattedText = context.getString(R.string.template_seek_bar, text); StringBuilderUtils.appendWithSeparator(output, formattedText); // TODO: We need to be getting this information from the node. if ((event != null) && (event.getItemCount() > 0)) { final int percent = (100 * event.getCurrentItemIndex()) / event.getItemCount(); final CharSequence formattedPercent = context.getString(R.string.template_percent, percent); StringBuilderUtils.appendWithSeparator(output, formattedPercent); }//from w w w . j a v a 2s.c o m return output; }
From source file:com.android.talkback.speechrules.RuleSeekBar.java
@Override public CharSequence format(Context context, AccessibilityNodeInfoCompat node, AccessibilityEvent event) { if (node == null || !node.isAccessibilityFocused()) { return ""; }/*from w w w .jav a 2s . com*/ final SpannableStringBuilder output = new SpannableStringBuilder(); final CharSequence text = AccessibilityNodeInfoUtils.getNodeText(node); final CharSequence roleText = Role.getRoleDescriptionOrDefault(context, node); StringBuilderUtils.append(output, text, roleText); // TODO: We need to be getting this information from the node. if ((event != null) && (event.getItemCount() > 0)) { final int percent = (100 * event.getCurrentItemIndex()) / event.getItemCount(); final CharSequence formattedPercent = context.getString(R.string.template_percent, percent); StringBuilderUtils.appendWithSeparator(output, formattedPercent); } return output; }
From source file:com.google.android.marvin.mytalkback.ProcessorScrollPosition.java
private CharSequence getDescriptionForSeekEvent(AccessibilityEvent event) { // If the event has text, use that by default. final CharSequence text = AccessibilityEventUtils.getEventTextOrDescription(event); if (!TextUtils.isEmpty(text)) { return text; }/*from w w w .ja v a 2 s . c om*/ // If the current index or item count are invalid, don't announce anything. final int currentItemIndex = event.getCurrentItemIndex(); final int itemCount = event.getItemCount(); if ((currentItemIndex < 0) || (currentItemIndex > itemCount)) { return null; } // Announce the percentage. final int percentage = (100 * currentItemIndex / itemCount); return mContext.getString(R.string.template_percent, percentage); }
From source file:com.android.screenspeak.speechrules.RuleSeekBar.java
@Override public CharSequence format(Context context, AccessibilityNodeInfoCompat node, AccessibilityEvent event) { if (node == null || !node.isAccessibilityFocused()) { return ""; }//from w w w . ja va 2 s. c o m final SpannableStringBuilder output = new SpannableStringBuilder(); final CharSequence text = super.format(context, node, event); final String formattedText = context.getString(R.string.template_seek_bar, text); final Spannable spannableFormattedText = StringBuilderUtils .createSpannableFromTextWithTemplate(formattedText, text); StringBuilderUtils.appendWithSeparator(output, spannableFormattedText); // TODO: We need to be getting this information from the node. if ((event != null) && (event.getItemCount() > 0)) { final int percent = (100 * event.getCurrentItemIndex()) / event.getItemCount(); final CharSequence formattedPercent = context.getString(R.string.template_percent, percent); StringBuilderUtils.appendWithSeparator(output, formattedPercent); } return output; }
From source file:Main.java
/** * @return If the <code>first</code> event is equal to the <code>second</code>. *//*from ww w.j a v a2 s . co m*/ public static boolean eventEquals(AccessibilityEvent first, AccessibilityEvent second) { // TODO: The framework should implement AccessibilityEvent#equals() if (first == null || second == null) { return false; } if (first.getEventType() != second.getEventType()) { return false; } if (first.getPackageName() == null) { if (second.getPackageName() != null) { return false; } } else if (!first.getPackageName().equals(second.getPackageName())) { return false; } if (first.getClassName() == null) { if (second.getClassName() != null) { return false; } } else if (!first.getClassName().equals(second.getClassName())) { return false; } if (!first.getText().equals(second.getText())) { // The result of getText() is never null. return false; } if (first.getContentDescription() == null) { if (second.getContentDescription() != null) { return false; } } else if (!first.getContentDescription().equals(second.getContentDescription())) { return false; } if (first.getBeforeText() == null) { if (second.getBeforeText() != null) { return false; } } else if (!first.getBeforeText().equals(second.getBeforeText())) { return false; } if (first.getParcelableData() != null) { // Parcelable data may not implement equals() correctly. return false; } if (first.getAddedCount() != second.getAddedCount()) { return false; } if (first.isChecked() != second.isChecked()) { return false; } if (first.isEnabled() != second.isEnabled()) { return false; } if (first.getFromIndex() != second.getFromIndex()) { return false; } if (first.isFullScreen() != second.isFullScreen()) { return false; } if (first.getCurrentItemIndex() != second.getCurrentItemIndex()) { return false; } if (first.getItemCount() != second.getItemCount()) { return false; } if (first.isPassword() != second.isPassword()) { return false; } if (first.getRemovedCount() != second.getRemovedCount()) { return false; } if (first.getEventTime() != second.getEventTime()) { return false; } return true; }
From source file:com.android.screenspeak.formatter.EventSpeechRule.java
/** * Returns the value of a given <code>property</code> of an <code>event</code>. * * @param property The property//from w w w . jav a 2s. c om * @param event The event. * @return the value. */ private Object getPropertyValue(Context context, String property, AccessibilityEvent event) { final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); if (property == null) { throw new IllegalArgumentException("Unknown property : " + property); } // TODO(AV): Don't do so many string comparisons here. switch (property) { case PROPERTY_EVENT_TYPE: return event.getEventType(); case PROPERTY_PACKAGE_NAME: return event.getPackageName(); case PROPERTY_CLASS_NAME: return event.getClassName(); case PROPERTY_CLASS_NAME_STRICT: return event.getClassName(); case PROPERTY_TEXT: return AccessibilityEventUtils.getEventAggregateText(event); case PROPERTY_BEFORE_TEXT: return event.getBeforeText(); case PROPERTY_CONTENT_DESCRIPTION: return event.getContentDescription(); case PROPERTY_CONTENT_DESCRIPTION_OR_TEXT: return AccessibilityEventUtils.getEventTextOrDescription(event); case PROPERTY_NODE_DESCRIPTION_OR_FALLBACK: return getNodeDescriptionOrFallback(event); case PROPERTY_EVENT_TIME: return event.getEventTime(); case PROPERTY_ITEM_COUNT: return event.getItemCount(); case PROPERTY_CURRENT_ITEM_INDEX: return event.getCurrentItemIndex(); case PROPERTY_FROM_INDEX: return event.getFromIndex(); case PROPERTY_TO_INDEX: return record.getToIndex(); case PROPERTY_SCROLLABLE: return record.isScrollable(); case PROPERTY_SCROLL_X: return record.getScrollX(); case PROPERTY_SCROLL_Y: return record.getScrollY(); case PROPERTY_RECORD_COUNT: return AccessibilityEventCompat.getRecordCount(event); case PROPERTY_CHECKED: return event.isChecked(); case PROPERTY_ENABLED: return event.isEnabled(); case PROPERTY_FULL_SCREEN: return event.isFullScreen(); case PROPERTY_PASSWORD: return event.isPassword(); case PROPERTY_ADDED_COUNT: return event.getAddedCount(); case PROPERTY_REMOVED_COUNT: return event.getRemovedCount(); case PROPERTY_VERSION_CODE: return PackageManagerUtils.getVersionCode(context, event.getPackageName()); case PROPERTY_VERSION_NAME: return PackageManagerUtils.getVersionName(context, event.getPackageName()); case PROPERTY_PLATFORM_RELEASE: return Build.VERSION.RELEASE; case PROPERTY_PLATFORM_SDK: return Build.VERSION.SDK_INT; default: throw new IllegalArgumentException("Unknown property : " + property); } }
From source file:com.android.talkback.formatter.EventSpeechRule.java
/** * Returns the value of a given <code>property</code> of an <code>event</code>. * * @param property The property/* w ww . j a v a2 s. co m*/ * @param event The event. * @return the value. */ private Object getPropertyValue(Context context, String property, AccessibilityEvent event) { final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); if (property == null) { throw new IllegalArgumentException("Unknown property : " + property); } // TODO: Don't do so many string comparisons here. switch (property) { case PROPERTY_EVENT_TYPE: return event.getEventType(); case PROPERTY_PACKAGE_NAME: return event.getPackageName(); case PROPERTY_CLASS_NAME: return event.getClassName(); case PROPERTY_CLASS_NAME_STRICT: return event.getClassName(); case PROPERTY_TEXT: return AccessibilityEventUtils.getEventAggregateText(event); case PROPERTY_BEFORE_TEXT: return event.getBeforeText(); case PROPERTY_CONTENT_DESCRIPTION: return event.getContentDescription(); case PROPERTY_CONTENT_DESCRIPTION_OR_TEXT: return AccessibilityEventUtils.getEventTextOrDescription(event); case PROPERTY_NODE_DESCRIPTION_OR_FALLBACK: return getNodeDescriptionOrFallback(event); case PROPERTY_EVENT_TIME: return event.getEventTime(); case PROPERTY_ITEM_COUNT: return event.getItemCount(); case PROPERTY_CURRENT_ITEM_INDEX: return event.getCurrentItemIndex(); case PROPERTY_FROM_INDEX: return event.getFromIndex(); case PROPERTY_TO_INDEX: return record.getToIndex(); case PROPERTY_SCROLLABLE: return record.isScrollable(); case PROPERTY_SCROLL_X: return record.getScrollX(); case PROPERTY_SCROLL_Y: return record.getScrollY(); case PROPERTY_RECORD_COUNT: return AccessibilityEventCompat.getRecordCount(event); case PROPERTY_CHECKED: return event.isChecked(); case PROPERTY_ENABLED: return event.isEnabled(); case PROPERTY_FULL_SCREEN: return event.isFullScreen(); case PROPERTY_PASSWORD: return event.isPassword(); case PROPERTY_ADDED_COUNT: return event.getAddedCount(); case PROPERTY_REMOVED_COUNT: return event.getRemovedCount(); case PROPERTY_VERSION_CODE: return PackageManagerUtils.getVersionCode(context, event.getPackageName()); case PROPERTY_VERSION_NAME: return PackageManagerUtils.getVersionName(context, event.getPackageName()); case PROPERTY_PLATFORM_RELEASE: return Build.VERSION.RELEASE; case PROPERTY_PLATFORM_SDK: return Build.VERSION.SDK_INT; default: throw new IllegalArgumentException("Unknown property : " + property); } }
From source file:com.google.android.marvin.mytalkback.formatter.EventSpeechRule.java
/** * Returns the value of a given <code>property</code> of an <code>event</code>. * * @param property The property/*ww w. ja va2 s . com*/ * @param event The event. * @return the value. */ private Object getPropertyValue(Context context, String property, AccessibilityEvent event) { final AccessibilityRecordCompat record = new AccessibilityRecordCompat(event); // TODO(alanv): Don't do so many string comparisons here. if (PROPERTY_EVENT_TYPE.equals(property)) { return event.getEventType(); } else if (PROPERTY_PACKAGE_NAME.equals(property)) { return event.getPackageName(); } else if (PROPERTY_CLASS_NAME.equals(property)) { return event.getClassName(); } else if (PROPERTY_CLASS_NAME_STRICT.equals(property)) { return event.getClassName(); } else if (PROPERTY_TEXT.equals(property)) { return AccessibilityEventUtils.getEventAggregateText(event); } else if (PROPERTY_BEFORE_TEXT.equals(property)) { return event.getBeforeText(); } else if (PROPERTY_CONTENT_DESCRIPTION.equals(property)) { return event.getContentDescription(); } else if (PROPERTY_CONTENT_DESCRIPTION_OR_TEXT.equals(property)) { return AccessibilityEventUtils.getEventTextOrDescription(event); } else if (PROPERTY_NODE_DESCRIPTION_OR_FALLBACK.equals(property)) { return getNodeDescriptionOrFallback(event); } else if (PROPERTY_EVENT_TIME.equals(property)) { return event.getEventTime(); } else if (PROPERTY_ITEM_COUNT.equals(property)) { return event.getItemCount(); } else if (PROPERTY_CURRENT_ITEM_INDEX.equals(property)) { return event.getCurrentItemIndex(); } else if (PROPERTY_FROM_INDEX.equals(property)) { return event.getFromIndex(); } else if (PROPERTY_TO_INDEX.equals(property)) { return record.getToIndex(); } else if (PROPERTY_SCROLLABLE.equals(property)) { return record.isScrollable(); } else if (PROPERTY_SCROLL_X.equals(property)) { return record.getScrollX(); } else if (PROPERTY_SCROLL_Y.equals(property)) { return record.getScrollY(); } else if (PROPERTY_RECORD_COUNT.equals(property)) { return AccessibilityEventCompat.getRecordCount(event); } else if (PROPERTY_CHECKED.equals(property)) { return event.isChecked(); } else if (PROPERTY_ENABLED.equals(property)) { return event.isEnabled(); } else if (PROPERTY_FULL_SCREEN.equals(property)) { return event.isFullScreen(); } else if (PROPERTY_PASSWORD.equals(property)) { return event.isPassword(); } else if (PROPERTY_ADDED_COUNT.equals(property)) { return event.getAddedCount(); } else if (PROPERTY_REMOVED_COUNT.equals(property)) { return event.getRemovedCount(); } else if (PROPERTY_VERSION_CODE.equals(property)) { return PackageManagerUtils.getVersionCode(context, event.getPackageName()); } else if (PROPERTY_VERSION_NAME.equals(property)) { return PackageManagerUtils.getVersionName(context, event.getPackageName()); } else if (PROPERTY_PLATFORM_RELEASE.equals(property)) { return Build.VERSION.RELEASE; } else if (PROPERTY_PLATFORM_SDK.equals(property)) { return Build.VERSION.SDK_INT; } else { throw new IllegalArgumentException("Unknown property : " + property); } }