List of usage examples for android.support.v4.view.accessibility AccessibilityRecordCompat getSource
public AccessibilityNodeInfoCompat getSource()
From source file:com.google.android.marvin.mytalkback.formatter.ImageViewFormatter.java
@Override public boolean format(AccessibilityEvent event, TalkBackService context, Utterance utterance) { final AccessibilityRecordCompat record = new AccessibilityRecordCompat(event); final AccessibilityNodeInfoCompat source = record.getSource(); final CharSequence text = ruleNonTextViews.format(context, source, event); utterance.addSpoken(text);/*from w ww . ja v a 2 s .com*/ return true; }
From source file:com.android.screenspeak.formatter.ImageViewFormatter.java
@Override public boolean format(AccessibilityEvent event, ScreenSpeakService context, Utterance utterance) { final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); final AccessibilityNodeInfoCompat source = record.getSource(); final CharSequence text = ruleNonTextViews.format(context, source, event); utterance.addSpoken(text);/*from ww w .ja v a 2 s . co m*/ return true; }
From source file:com.android.talkback.formatter.ImageViewFormatter.java
@Override public boolean format(AccessibilityEvent event, TalkBackService context, Utterance utterance) { final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); final AccessibilityNodeInfoCompat source = record.getSource(); final CharSequence text = ruleNonTextViews.format(context, source, event); utterance.addSpoken(text);//w w w .j a va 2s .co m return true; }
From source file:com.android.screenspeak.formatter.ProgressBarFormatter.java
private boolean shouldDropEvent(AccessibilityEvent event) { final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); final AccessibilityNodeInfoCompat source = record.getSource(); // Don't drop if we're on pre-ICS or the event was generated (e.g. // missing a node). if (source == null) { return false; }/*w w w. ja va 2 s. co m*/ // Don't drop if the node is currently focused or accessibility focused. if (source.isFocused() || source.isAccessibilityFocused()) { return false; } // Don't drop if the node was recently explored. return true; }
From source file:com.android.talkback.formatter.LiveViewFormatter.java
@Override public boolean accept(AccessibilityEvent event, TalkBackService context) { if (event.getEventType() != AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED) return false; AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); AccessibilityNodeInfoCompat node = record.getSource(); if (node == null) { return false; }//from www .jav a 2s .c o m int liveRegion = node.getLiveRegion(); node.recycle(); switch (liveRegion) { case View.ACCESSIBILITY_LIVE_REGION_POLITE: return true; case View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE: return true; case View.ACCESSIBILITY_LIVE_REGION_NONE: return false; default: return false; } }
From source file:com.android.screenspeak.speechrules.RuleSeekBar.java
@Override public boolean format(AccessibilityEvent event, ScreenSpeakService context, Utterance utterance) { final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); final AccessibilityNodeInfoCompat source = record.getSource(); if (source == null) return false; CharSequence text = format(context, source, event); if (TextUtils.isEmpty(text)) return false; utterance.addSpoken(text);/* w w w . ja v a 2 s. co m*/ utterance.getMetadata().putInt(Utterance.KEY_UTTERANCE_GROUP, SpeechController.UTTERANCE_GROUP_SEEK_PROGRESS); utterance.addSpokenFlag(FeedbackItem.FLAG_CLEAR_QUEUED_UTTERANCES_WITH_SAME_UTTERANCE_GROUP); utterance.getMetadata().putInt(Utterance.KEY_METADATA_QUEUING, SpeechController.QUEUE_MODE_UNINTERRUPTIBLE); return true; }
From source file:com.android.talkback.speechrules.RuleSeekBar.java
@Override public boolean format(AccessibilityEvent event, TalkBackService context, Utterance utterance) { final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); final AccessibilityNodeInfoCompat source = record.getSource(); if (source == null) return false; CharSequence text = format(context, source, event); if (TextUtils.isEmpty(text)) return false; utterance.addSpoken(text);/*www.jav a 2s .co m*/ utterance.getMetadata().putInt(Utterance.KEY_UTTERANCE_GROUP, SpeechController.UTTERANCE_GROUP_SEEK_PROGRESS); utterance.addSpokenFlag(FeedbackItem.FLAG_CLEAR_QUEUED_UTTERANCES_WITH_SAME_UTTERANCE_GROUP); utterance.getMetadata().putInt(Utterance.KEY_METADATA_QUEUING, SpeechController.QUEUE_MODE_UNINTERRUPTIBLE); return true; }
From source file:com.google.android.marvin.mytalkback.formatter.ProgressBarFormatter.java
private boolean shouldDropEvent(AccessibilityEvent event) { final AccessibilityRecordCompat record = new AccessibilityRecordCompat(event); final AccessibilityNodeInfoCompat source = record.getSource(); // Don't drop if we're on pre-ICS or the event was generated (e.g. // missing a node). if (source == null) { return false; }//from w w w. ja v a 2 s.c o m // Don't drop if the node is currently focused or accessibility focused. if (source.isFocused() || source.isAccessibilityFocused()) { return false; } // Don't drop if the node was recently explored. if (source.equals(sRecentlyExplored)) { return false; } return true; }
From source file:com.android.talkback.formatter.ClickFormatter.java
@Override public boolean format(AccessibilityEvent event, TalkBackService context, Utterance utterance) { AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); AccessibilityNodeInfoCompat source = record.getSource(); AccessibilityNodeInfoCompat refreshedSource = AccessibilityNodeInfoUtils.refreshNode(source); try {/*from ww w . j a va2s . c o m*/ if (refreshedSource == null) { // Node no longer exists. return false; } // Is source directly checkable? if (refreshedSource.isCheckable()) { utterance.addSpoken(getStateText(refreshedSource, context)); return true; } // Does source contain non-focusable checkable child? if (refreshedSource.isAccessibilityFocused() || refreshedSource.isFocused()) { AccessibilityNodeInfoCompat checkableChild = findCheckableChild(refreshedSource); if (checkableChild != null) { utterance.addSpoken(getStateText(checkableChild, context)); checkableChild.recycle(); return true; } } } finally { AccessibilityNodeInfoUtils.recycleNodes(source, refreshedSource); } utterance.addSpokenFlag(FeedbackItem.FLAG_NO_SPEECH); return true; }
From source file:com.android.talkback.eventprocessor.ProcessorWebContent.java
@Override public void onAccessibilityEvent(AccessibilityEvent event) { // Only announce relevant events if (!AccessibilityEventUtils.eventMatchesAnyType(event, MASK_ACCEPTED_EVENT_TYPES)) { return;/*from ww w . j a v a2 s . co m*/ } final AccessibilityRecordCompat record = AccessibilityEventCompat.asRecord(event); final AccessibilityNodeInfoCompat source = record.getSource(); // Drop consecutive qualifying events from the same node. if (mLastNode != null && mLastNode.equals(source)) { return; } else { if (mLastNode != null) { mLastNode.recycle(); } mLastNode = source; } // Only announce nodes that have legacy web content. if (!WebInterfaceUtils.hasLegacyWebContent(source)) { return; } if (WebInterfaceUtils.isScriptInjectionEnabled(mService)) { // Instruct accessibility script to announce the page title as long // as continuous reading isn't active. final FullScreenReadController fullScreen = mService.getFullScreenReadController(); if (fullScreen.isReadingLegacyWebContent()) { // Reset the state for full screen reading now that we've moved // into web content. fullScreen.interrupt(); } else { WebInterfaceUtils.performSpecialAction(source, WebInterfaceUtils.ACTION_READ_PAGE_TITLE_ELEMENT); } } else if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR1) { // On versions that include a script injection preference, inform // the user that script injection is disabled. final String preferenceName = AutomationUtils.getPackageString(mService, PACKAGE_SETTINGS, RES_NAME_SCRIPT_INJECTION_TITLE); if (preferenceName != null) { final CharSequence announcement = mService.getString(R.string.hint_script_injection, preferenceName); mService.getSpeechController().speak(announcement, SpeechController.QUEUE_MODE_INTERRUPT, 0, null); } } }