public long mLastEventTimeMillis;
public void run() {
- mLastEventTimeMillis = SystemClock.uptimeMillis();
- AccessibilityEvent event = AccessibilityEvent.obtain();
- event.setEventType(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
- event.setContentChangeType(AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE);
- mSource.sendAccessibilityEventUnchecked(event);
+ // The accessibility may be turned off while we were waiting so check again.
+ if (AccessibilityManager.getInstance(mContext).isEnabled()) {
+ mLastEventTimeMillis = SystemClock.uptimeMillis();
+ AccessibilityEvent event = AccessibilityEvent.obtain();
+ event.setEventType(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
+ event.setContentChangeType(AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE);
+ mSource.sendAccessibilityEventUnchecked(event);
+ } else {
+ mLastEventTimeMillis = 0;
+ }
+ // In any case reset to initial state.
mSource.resetSubtreeAccessibilityStateChanged();
mSource = null;
}
private static final boolean ENABLED = true;
- private static final boolean DEBUG = true;
+ private static final boolean DEBUG = false;
private static final boolean CHECK_INTEGRITY_IF_DEBUGGABLE_BUILD = true;
private void refreshCachedNode(long sourceId) {
if (DEBUG) {
- Log.i(LOG_TAG, "Refresing cached node.");
+ Log.i(LOG_TAG, "Refreshing cached node.");
}
synchronized (mLock) {
AccessibilityNodeInfo cachedInfo = mCacheImpl.get(sourceId);
return;
}
// The node changed so we will just refresh it right now.
- if (cachedInfo.refresh(false)) {
+ if (cachedInfo.refresh(true)) {
return;
}
// Weird, we could not refresh. Just evict the entire sub-tree.
info = AccessibilityNodeInfo.obtain(info);
}
if (DEBUG) {
-// Log.i(LOG_TAG, "get(" + accessibilityNodeId + ") = " + info);
+ Log.i(LOG_TAG, "get(" + accessibilityNodeId + ") = " + info);
}
return info;
}
if (ENABLED) {
synchronized(mLock) {
if (DEBUG) {
-// Log.i(LOG_TAG, "add(" + info + ")");
+ Log.i(LOG_TAG, "add(" + info + ")");
}
final long sourceId = info.getSourceNodeId();
Log.e(LOG_TAG, "Node from: " + info.getWindowId() + " not from:"
+ windowId + " " + info);
}
- mCacheImpl.removeAt(i);
- i--;
}
}
}