Loading api/current.txt +6 −0 Original line number Original line Diff line number Diff line Loading @@ -29287,6 +29287,7 @@ package android.view.accessibility { public final class AccessibilityManager { public final class AccessibilityManager { method public boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); 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 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> getEnabledAccessibilityServiceList(int); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(); Loading @@ -29294,6 +29295,7 @@ package android.view.accessibility { method public boolean isEnabled(); method public boolean isEnabled(); method public boolean isTouchExplorationEnabled(); method public boolean isTouchExplorationEnabled(); method public boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); 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); method public void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent); } } Loading @@ -29301,6 +29303,10 @@ package android.view.accessibility { method public abstract void onAccessibilityStateChanged(boolean); 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 { public class AccessibilityNodeInfo implements android.os.Parcelable { method public void addAction(int); method public void addAction(int); method public void addChild(android.view.View); method public void addChild(android.view.View); core/java/android/view/accessibility/AccessibilityManager.java +76 −20 Original line number Original line Diff line number Diff line Loading @@ -91,25 +91,45 @@ public final class AccessibilityManager { boolean mIsTouchExplorationEnabled; boolean mIsTouchExplorationEnabled; final CopyOnWriteArrayList<AccessibilityStateChangeListener> mAccessibilityStateChangeListeners = private final CopyOnWriteArrayList<AccessibilityStateChangeListener> new 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 * Listener for the system accessibility state. To listen for changes to the * state on the device, implement this interface and register it with the system by * accessibility state on the device, implement this interface and register * calling {@link AccessibilityManager#addAccessibilityStateChangeListener * it with the system by calling {@link #addAccessibilityStateChangeListener}. * addAccessibilityStateChangeListener()}. */ */ public interface AccessibilityStateChangeListener { public interface AccessibilityStateChangeListener { /** /** * Called back on change in the accessibility state. * Called when the accessibility enabled state changes. * * * @param enabled Whether accessibility is enabled. * @param enabled Whether accessibility is enabled. */ */ public void onAccessibilityStateChanged(boolean 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() { final IAccessibilityManagerClient.Stub mClient = new IAccessibilityManagerClient.Stub() { public void setState(int state) { public void setState(int state) { mHandler.obtainMessage(DO_SET_STATE, state, 0).sendToTarget(); 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) { public boolean addTouchExplorationStateChangeListener( final boolean accessibilityEnabled = (stateFlags & STATE_FLAG_ACCESSIBILITY_ENABLED) != 0; TouchExplorationStateChangeListener listener) { setAccessibilityState(accessibilityEnabled); return mTouchExplorationStateChangeListeners.add(listener); mIsTouchExplorationEnabled = (stateFlags & STATE_FLAG_TOUCH_EXPLORATION_ENABLED) != 0; } } /** /** * 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) { synchronized (mHandler) { if (isEnabled != mIsEnabled) { mIsEnabled = enabled; mIsEnabled = isEnabled; mIsTouchExplorationEnabled = touchExplorationEnabled; notifyAccessibilityStateChanged(); if (enabled != mIsEnabled) { notifyAccessibilityStateChangedLh(); } if (touchExplorationEnabled != mIsTouchExplorationEnabled) { notifyTouchExplorationStateChangedLh(); } } } } } } /** /** * Notifies the registered {@link AccessibilityStateChangeListener}s. * 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(); final int listenerCount = mAccessibilityStateChangeListeners.size(); for (int i = 0; i < listenerCount; i++) { for (int i = 0; i < listenerCount; i++) { mAccessibilityStateChangeListeners.get(i).onAccessibilityStateChanged(mIsEnabled); 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. * Adds an accessibility interaction connection interface for a given window. * @param windowToken The window token to which a connection is added. * @param windowToken The window token to which a connection is added. Loading Loading
api/current.txt +6 −0 Original line number Original line Diff line number Diff line Loading @@ -29287,6 +29287,7 @@ package android.view.accessibility { public final class AccessibilityManager { public final class AccessibilityManager { method public boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); 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 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> getEnabledAccessibilityServiceList(int); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(); method public java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(); Loading @@ -29294,6 +29295,7 @@ package android.view.accessibility { method public boolean isEnabled(); method public boolean isEnabled(); method public boolean isTouchExplorationEnabled(); method public boolean isTouchExplorationEnabled(); method public boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener); 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); method public void sendAccessibilityEvent(android.view.accessibility.AccessibilityEvent); } } Loading @@ -29301,6 +29303,10 @@ package android.view.accessibility { method public abstract void onAccessibilityStateChanged(boolean); 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 { public class AccessibilityNodeInfo implements android.os.Parcelable { method public void addAction(int); method public void addAction(int); method public void addChild(android.view.View); method public void addChild(android.view.View);
core/java/android/view/accessibility/AccessibilityManager.java +76 −20 Original line number Original line Diff line number Diff line Loading @@ -91,25 +91,45 @@ public final class AccessibilityManager { boolean mIsTouchExplorationEnabled; boolean mIsTouchExplorationEnabled; final CopyOnWriteArrayList<AccessibilityStateChangeListener> mAccessibilityStateChangeListeners = private final CopyOnWriteArrayList<AccessibilityStateChangeListener> new 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 * Listener for the system accessibility state. To listen for changes to the * state on the device, implement this interface and register it with the system by * accessibility state on the device, implement this interface and register * calling {@link AccessibilityManager#addAccessibilityStateChangeListener * it with the system by calling {@link #addAccessibilityStateChangeListener}. * addAccessibilityStateChangeListener()}. */ */ public interface AccessibilityStateChangeListener { public interface AccessibilityStateChangeListener { /** /** * Called back on change in the accessibility state. * Called when the accessibility enabled state changes. * * * @param enabled Whether accessibility is enabled. * @param enabled Whether accessibility is enabled. */ */ public void onAccessibilityStateChanged(boolean 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() { final IAccessibilityManagerClient.Stub mClient = new IAccessibilityManagerClient.Stub() { public void setState(int state) { public void setState(int state) { mHandler.obtainMessage(DO_SET_STATE, state, 0).sendToTarget(); 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) { public boolean addTouchExplorationStateChangeListener( final boolean accessibilityEnabled = (stateFlags & STATE_FLAG_ACCESSIBILITY_ENABLED) != 0; TouchExplorationStateChangeListener listener) { setAccessibilityState(accessibilityEnabled); return mTouchExplorationStateChangeListeners.add(listener); mIsTouchExplorationEnabled = (stateFlags & STATE_FLAG_TOUCH_EXPLORATION_ENABLED) != 0; } } /** /** * 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) { synchronized (mHandler) { if (isEnabled != mIsEnabled) { mIsEnabled = enabled; mIsEnabled = isEnabled; mIsTouchExplorationEnabled = touchExplorationEnabled; notifyAccessibilityStateChanged(); if (enabled != mIsEnabled) { notifyAccessibilityStateChangedLh(); } if (touchExplorationEnabled != mIsTouchExplorationEnabled) { notifyTouchExplorationStateChangedLh(); } } } } } } /** /** * Notifies the registered {@link AccessibilityStateChangeListener}s. * 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(); final int listenerCount = mAccessibilityStateChangeListeners.size(); for (int i = 0; i < listenerCount; i++) { for (int i = 0; i < listenerCount; i++) { mAccessibilityStateChangeListeners.get(i).onAccessibilityStateChanged(mIsEnabled); 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. * Adds an accessibility interaction connection interface for a given window. * @param windowToken The window token to which a connection is added. * @param windowToken The window token to which a connection is added. Loading