Loading api/current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -29285,6 +29285,7 @@ package android.view.accessibility { public final class AccessibilityManager { method public boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); method public boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener); method public deprecated java.util.List<android.content.pm.ServiceInfo> getAccessibilityServiceList(); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(); Loading @@ -29292,6 +29293,7 @@ package android.view.accessibility { method public boolean isEnabled(); method public boolean isTouchExplorationEnabled(); method public boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); method public boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener); method public void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent); } Loading @@ -29299,6 +29301,10 @@ package android.view.accessibility { method public abstract void onAccessibilityStateChanged(boolean); } public static abstract interface AccessibilityManager.TouchExplorationStateChangeListener { method public abstract void onTouchExplorationStateChanged(boolean); } public class AccessibilityNodeInfo implements android.os.Parcelable { method public void addAction(int); method public void addChild(android.view.View); core/java/android/view/accessibility/AccessibilityManager.java +76 −20 Original line number Diff line number Diff line Loading @@ -91,25 +91,45 @@ public final class AccessibilityManager { boolean mIsTouchExplorationEnabled; final CopyOnWriteArrayList<AccessibilityStateChangeListener> mAccessibilityStateChangeListeners = new CopyOnWriteArrayList<AccessibilityStateChangeListener>(); private final CopyOnWriteArrayList<AccessibilityStateChangeListener> mAccessibilityStateChangeListeners = new CopyOnWriteArrayList< AccessibilityStateChangeListener>(); private final CopyOnWriteArrayList<TouchExplorationStateChangeListener> mTouchExplorationStateChangeListeners = new CopyOnWriteArrayList< TouchExplorationStateChangeListener>(); /** * Listener for the system accessibility state. To listen for changes to the accessibility * state on the device, implement this interface and register it with the system by * calling {@link AccessibilityManager#addAccessibilityStateChangeListener * addAccessibilityStateChangeListener()}. * Listener for the system accessibility state. To listen for changes to the * accessibility state on the device, implement this interface and register * it with the system by calling {@link #addAccessibilityStateChangeListener}. */ public interface AccessibilityStateChangeListener { /** * Called back on change in the accessibility state. * Called when the accessibility enabled state changes. * * @param enabled Whether accessibility is enabled. */ public void onAccessibilityStateChanged(boolean enabled); } /** * Listener for the system touch exploration state. To listen for changes to * the touch exploration state on the device, implement this interface and * register it with the system by calling * {@link #addTouchExplorationStateChangeListener}. */ public interface TouchExplorationStateChangeListener { /** * Called when the touch exploration enabled state changes. * * @param enabled Whether touch exploration is enabled. */ public void onTouchExplorationStateChanged(boolean enabled); } final IAccessibilityManagerClient.Stub mClient = new IAccessibilityManagerClient.Stub() { public void setState(int state) { mHandler.obtainMessage(DO_SET_STATE, state, 0).sendToTarget(); Loading Loading @@ -363,40 +383,76 @@ public final class AccessibilityManager { } /** * Sets the current state. * Registers a {@link TouchExplorationStateChangeListener} for changes in * the global touch exploration state of the system. * * @param stateFlags The state flags. * @param listener The listener. * @return True if successfully registered. */ private void setState(int stateFlags) { final boolean accessibilityEnabled = (stateFlags & STATE_FLAG_ACCESSIBILITY_ENABLED) != 0; setAccessibilityState(accessibilityEnabled); mIsTouchExplorationEnabled = (stateFlags & STATE_FLAG_TOUCH_EXPLORATION_ENABLED) != 0; public boolean addTouchExplorationStateChangeListener( TouchExplorationStateChangeListener listener) { return mTouchExplorationStateChangeListeners.add(listener); } /** * Sets the enabled state. * Unregisters a {@link TouchExplorationStateChangeListener}. * * @param isEnabled The accessibility state. * @param listener The listener. * @return True if successfully unregistered. */ private void setAccessibilityState(boolean isEnabled) { public boolean removeTouchExplorationStateChangeListener( TouchExplorationStateChangeListener listener) { return mTouchExplorationStateChangeListeners.remove(listener); } /** * Sets the current state and notifies listeners, if necessary. * * @param stateFlags The state flags. */ private void setState(int stateFlags) { final boolean enabled = (stateFlags & STATE_FLAG_ACCESSIBILITY_ENABLED) != 0; final boolean touchExplorationEnabled = (stateFlags & STATE_FLAG_TOUCH_EXPLORATION_ENABLED) != 0; synchronized (mHandler) { if (isEnabled != mIsEnabled) { mIsEnabled = isEnabled; notifyAccessibilityStateChanged(); mIsEnabled = enabled; mIsTouchExplorationEnabled = touchExplorationEnabled; if (enabled != mIsEnabled) { notifyAccessibilityStateChangedLh(); } if (touchExplorationEnabled != mIsTouchExplorationEnabled) { notifyTouchExplorationStateChangedLh(); } } } /** * Notifies the registered {@link AccessibilityStateChangeListener}s. * <p> * The caller must be locked on {@link #mHandler}. */ private void notifyAccessibilityStateChanged() { private void notifyAccessibilityStateChangedLh() { final int listenerCount = mAccessibilityStateChangeListeners.size(); for (int i = 0; i < listenerCount; i++) { mAccessibilityStateChangeListeners.get(i).onAccessibilityStateChanged(mIsEnabled); } } /** * Notifies the registered {@link TouchExplorationStateChangeListener}s. * <p> * The caller must be locked on {@link #mHandler}. */ private void notifyTouchExplorationStateChangedLh() { final int listenerCount = mTouchExplorationStateChangeListeners.size(); for (int i = 0; i < listenerCount; i++) { mTouchExplorationStateChangeListeners.get(i) .onTouchExplorationStateChanged(mIsTouchExplorationEnabled); } } /** * Adds an accessibility interaction connection interface for a given window. * @param windowToken The window token to which a connection is added. Loading Loading
api/current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -29285,6 +29285,7 @@ package android.view.accessibility { public final class AccessibilityManager { method public boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); method public boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener); method public deprecated java.util.List<android.content.pm.ServiceInfo> getAccessibilityServiceList(); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(); Loading @@ -29292,6 +29293,7 @@ package android.view.accessibility { method public boolean isEnabled(); method public boolean isTouchExplorationEnabled(); method public boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); method public boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener); method public void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent); } Loading @@ -29299,6 +29301,10 @@ package android.view.accessibility { method public abstract void onAccessibilityStateChanged(boolean); } public static abstract interface AccessibilityManager.TouchExplorationStateChangeListener { method public abstract void onTouchExplorationStateChanged(boolean); } public class AccessibilityNodeInfo implements android.os.Parcelable { method public void addAction(int); method public void addChild(android.view.View);
core/java/android/view/accessibility/AccessibilityManager.java +76 −20 Original line number Diff line number Diff line Loading @@ -91,25 +91,45 @@ public final class AccessibilityManager { boolean mIsTouchExplorationEnabled; final CopyOnWriteArrayList<AccessibilityStateChangeListener> mAccessibilityStateChangeListeners = new CopyOnWriteArrayList<AccessibilityStateChangeListener>(); private final CopyOnWriteArrayList<AccessibilityStateChangeListener> mAccessibilityStateChangeListeners = new CopyOnWriteArrayList< AccessibilityStateChangeListener>(); private final CopyOnWriteArrayList<TouchExplorationStateChangeListener> mTouchExplorationStateChangeListeners = new CopyOnWriteArrayList< TouchExplorationStateChangeListener>(); /** * Listener for the system accessibility state. To listen for changes to the accessibility * state on the device, implement this interface and register it with the system by * calling {@link AccessibilityManager#addAccessibilityStateChangeListener * addAccessibilityStateChangeListener()}. * Listener for the system accessibility state. To listen for changes to the * accessibility state on the device, implement this interface and register * it with the system by calling {@link #addAccessibilityStateChangeListener}. */ public interface AccessibilityStateChangeListener { /** * Called back on change in the accessibility state. * Called when the accessibility enabled state changes. * * @param enabled Whether accessibility is enabled. */ public void onAccessibilityStateChanged(boolean enabled); } /** * Listener for the system touch exploration state. To listen for changes to * the touch exploration state on the device, implement this interface and * register it with the system by calling * {@link #addTouchExplorationStateChangeListener}. */ public interface TouchExplorationStateChangeListener { /** * Called when the touch exploration enabled state changes. * * @param enabled Whether touch exploration is enabled. */ public void onTouchExplorationStateChanged(boolean enabled); } final IAccessibilityManagerClient.Stub mClient = new IAccessibilityManagerClient.Stub() { public void setState(int state) { mHandler.obtainMessage(DO_SET_STATE, state, 0).sendToTarget(); Loading Loading @@ -363,40 +383,76 @@ public final class AccessibilityManager { } /** * Sets the current state. * Registers a {@link TouchExplorationStateChangeListener} for changes in * the global touch exploration state of the system. * * @param stateFlags The state flags. * @param listener The listener. * @return True if successfully registered. */ private void setState(int stateFlags) { final boolean accessibilityEnabled = (stateFlags & STATE_FLAG_ACCESSIBILITY_ENABLED) != 0; setAccessibilityState(accessibilityEnabled); mIsTouchExplorationEnabled = (stateFlags & STATE_FLAG_TOUCH_EXPLORATION_ENABLED) != 0; public boolean addTouchExplorationStateChangeListener( TouchExplorationStateChangeListener listener) { return mTouchExplorationStateChangeListeners.add(listener); } /** * Sets the enabled state. * Unregisters a {@link TouchExplorationStateChangeListener}. * * @param isEnabled The accessibility state. * @param listener The listener. * @return True if successfully unregistered. */ private void setAccessibilityState(boolean isEnabled) { public boolean removeTouchExplorationStateChangeListener( TouchExplorationStateChangeListener listener) { return mTouchExplorationStateChangeListeners.remove(listener); } /** * Sets the current state and notifies listeners, if necessary. * * @param stateFlags The state flags. */ private void setState(int stateFlags) { final boolean enabled = (stateFlags & STATE_FLAG_ACCESSIBILITY_ENABLED) != 0; final boolean touchExplorationEnabled = (stateFlags & STATE_FLAG_TOUCH_EXPLORATION_ENABLED) != 0; synchronized (mHandler) { if (isEnabled != mIsEnabled) { mIsEnabled = isEnabled; notifyAccessibilityStateChanged(); mIsEnabled = enabled; mIsTouchExplorationEnabled = touchExplorationEnabled; if (enabled != mIsEnabled) { notifyAccessibilityStateChangedLh(); } if (touchExplorationEnabled != mIsTouchExplorationEnabled) { notifyTouchExplorationStateChangedLh(); } } } /** * Notifies the registered {@link AccessibilityStateChangeListener}s. * <p> * The caller must be locked on {@link #mHandler}. */ private void notifyAccessibilityStateChanged() { private void notifyAccessibilityStateChangedLh() { final int listenerCount = mAccessibilityStateChangeListeners.size(); for (int i = 0; i < listenerCount; i++) { mAccessibilityStateChangeListeners.get(i).onAccessibilityStateChanged(mIsEnabled); } } /** * Notifies the registered {@link TouchExplorationStateChangeListener}s. * <p> * The caller must be locked on {@link #mHandler}. */ private void notifyTouchExplorationStateChangedLh() { final int listenerCount = mTouchExplorationStateChangeListeners.size(); for (int i = 0; i < listenerCount; i++) { mTouchExplorationStateChangeListeners.get(i) .onTouchExplorationStateChanged(mIsTouchExplorationEnabled); } } /** * Adds an accessibility interaction connection interface for a given window. * @param windowToken The window token to which a connection is added. Loading