Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4cab9308 authored by Phil Weaver's avatar Phil Weaver
Browse files

Hide API to listen to a11y service state

Hiding and adding the requested return value, so if we
later decide to unhide it we'll be up to snuff for API
review.

Bug: 35764675
Test: Verified that the two features that listen, a11y
volume and the accessibility button on the nav bar, work
properly. Also ran accessibility CTS.
Merged-In: I47b62f2b4fd1ea4a7e697d20a3bb2c3201f6bcce
Change-Id: I4df6164772eb01b4f988c201f46c788eb7124511
parent f9f8120e
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -47152,7 +47152,6 @@ package android.view.accessibility {
  }
  public final class AccessibilityManager {
    method public boolean addAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
    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();
@@ -47161,16 +47160,11 @@ package android.view.accessibility {
    method public void interrupt();
    method public boolean isEnabled();
    method public boolean isTouchExplorationEnabled();
    method public boolean removeAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
    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);
  }
  public static abstract interface AccessibilityManager.AccessibilityServicesStateChangeListener {
    method public abstract void onAccessibilityServicesStateChanged();
  }
  public static abstract interface AccessibilityManager.AccessibilityStateChangeListener {
    method public abstract void onAccessibilityStateChanged(boolean);
  }
+0 −6
Original line number Diff line number Diff line
@@ -50731,7 +50731,6 @@ package android.view.accessibility {
  }
  public final class AccessibilityManager {
    method public boolean addAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
    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();
@@ -50740,16 +50739,11 @@ package android.view.accessibility {
    method public void interrupt();
    method public boolean isEnabled();
    method public boolean isTouchExplorationEnabled();
    method public boolean removeAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
    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);
  }
  public static abstract interface AccessibilityManager.AccessibilityServicesStateChangeListener {
    method public abstract void onAccessibilityServicesStateChanged();
  }
  public static abstract interface AccessibilityManager.AccessibilityStateChangeListener {
    method public abstract void onAccessibilityStateChanged(boolean);
  }
+0 −6
Original line number Diff line number Diff line
@@ -47528,7 +47528,6 @@ package android.view.accessibility {
  }
  public final class AccessibilityManager {
    method public boolean addAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
    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();
@@ -47537,16 +47536,11 @@ package android.view.accessibility {
    method public void interrupt();
    method public boolean isEnabled();
    method public boolean isTouchExplorationEnabled();
    method public boolean removeAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener);
    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);
  }
  public static abstract interface AccessibilityManager.AccessibilityServicesStateChangeListener {
    method public abstract void onAccessibilityServicesStateChanged();
  }
  public static abstract interface AccessibilityManager.AccessibilityStateChangeListener {
    method public abstract void onAccessibilityStateChanged(boolean);
  }
+14 −6
Original line number Diff line number Diff line
@@ -183,13 +183,17 @@ public final class AccessibilityManager {
     * Listener for changes to the state of accessibility services. Changes include services being
     * enabled or disabled, or changes to the {@link AccessibilityServiceInfo} of a running service.
     * {@see #addAccessibilityServicesStateChangeListener}.
     *
     * @hide
     */
    public interface AccessibilityServicesStateChangeListener {

        /**
         * Called when the state of accessibility services changes.
         *
         * @param manager The manager that is calling back
         */
        void onAccessibilityServicesStateChanged();
        void onAccessibilityServicesStateChanged(AccessibilityManager manager);
    }

    /**
@@ -614,11 +618,13 @@ public final class AccessibilityManager {
     *
     * @param listener The listener.
     * @return True if successfully registered.
     *
     * @hide
     */
    public boolean addAccessibilityServicesStateChangeListener(
    public void addAccessibilityServicesStateChangeListener(
            @NonNull AccessibilityServicesStateChangeListener listener) {
        // Final CopyOnWriteArrayList - no lock needed.
        return mServicesStateChangeListeners.add(listener);
        mServicesStateChangeListeners.add(listener);
    }

    /**
@@ -626,11 +632,13 @@ public final class AccessibilityManager {
     *
     * @param listener The listener.
     * @return True if successfully unregistered.
     *
     * @hide
     */
    public boolean removeAccessibilityServicesStateChangeListener(
    public void removeAccessibilityServicesStateChangeListener(
            @NonNull AccessibilityServicesStateChangeListener listener) {
        // Final CopyOnWriteArrayList - no lock needed.
        return mServicesStateChangeListeners.remove(listener);
        mServicesStateChangeListeners.remove(listener);
    }

    /**
@@ -969,7 +977,7 @@ public final class AccessibilityManager {
    private void handleNotifyServicesStateChanged() {
        // Listeners are a final CopyOnWriteArrayList, hence no lock needed.
        for (AccessibilityServicesStateChangeListener listener : mServicesStateChangeListeners) {
            listener.onAccessibilityServicesStateChanged();
            listener.onAccessibilityServicesStateChanged(this);
        }
    }

+4 −4
Original line number Diff line number Diff line
@@ -402,7 +402,7 @@ public class NavigationBarFragment extends Fragment implements Callbacks {
        ButtonDispatcher accessibilityButton = mNavigationBarView.getAccessibilityButton();
        accessibilityButton.setOnClickListener(this::onAccessibilityClick);
        accessibilityButton.setOnLongClickListener(this::onAccessibilityLongClick);
        updateAccessibilityServicesState();
        updateAccessibilityServicesState(mAccessibilityManager);
    }

    private boolean onHomeTouch(View v, MotionEvent event) {
@@ -565,7 +565,7 @@ public class NavigationBarFragment extends Fragment implements Callbacks {
        return true;
    }

    private void updateAccessibilityServicesState() {
    private void updateAccessibilityServicesState(AccessibilityManager accessibilityManager) {
        int requestingServices = 0;
        try {
            if (Settings.Secure.getIntForUser(mContentResolver,
@@ -579,7 +579,7 @@ public class NavigationBarFragment extends Fragment implements Callbacks {
        // AccessibilityManagerService resolves services for the current user since the local
        // AccessibilityManager is created from a Context with the INTERACT_ACROSS_USERS permission
        final List<AccessibilityServiceInfo> services =
                mAccessibilityManager.getEnabledAccessibilityServiceList(
                accessibilityManager.getEnabledAccessibilityServiceList(
                        AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
        for (int i = services.size() - 1; i >= 0; --i) {
            AccessibilityServiceInfo info = services.get(i);
@@ -638,7 +638,7 @@ public class NavigationBarFragment extends Fragment implements Callbacks {

        @Override
        public void onChange(boolean selfChange) {
            NavigationBarFragment.this.updateAccessibilityServicesState();
            NavigationBarFragment.this.updateAccessibilityServicesState(mAccessibilityManager);
        }
    }

Loading