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

Commit 07ab59c2 authored by Riley Jones's avatar Riley Jones Committed by Android (Google) Code Review
Browse files

Merge "Refactor A11yManagerService#getAccessibilityShortcutTargets to require a userId" into main

parents 1f91582c 92b1f4e7
Loading
Loading
Loading
Loading
+29 −1
Original line number Diff line number Diff line
@@ -1922,6 +1922,33 @@ public final class AccessibilityManager {
     * @return The list of shortcut target names.
     * @hide
     */
    @RequiresPermission(Manifest.permission.MANAGE_ACCESSIBILITY)
    @NonNull
    public List<String> getAccessibilityShortcutTargets(
            @UserShortcutType int shortcutType, int userId) {
        final IAccessibilityManager service;
        synchronized (mLock) {
            service = getServiceLocked();
        }
        if (service != null) {
            try {
                return service.getAccessibilityShortcutTargets(shortcutType, userId);
            } catch (RemoteException re) {
                re.rethrowFromSystemServer();
            }
        }
        return Collections.emptyList();
    }

    /**
     * Returns the list of shortcut target names currently assigned to the given shortcut.
     * Use of {@link AccessibilityManager#getAccessibilityShortcutTargets(int, int)}
     * is preferred.
     *
     * @param shortcutType The shortcut type.
     * @return The list of shortcut target names.
     * @hide
     */
    @TestApi
    @RequiresPermission(Manifest.permission.MANAGE_ACCESSIBILITY)
    @NonNull
@@ -1933,7 +1960,8 @@ public final class AccessibilityManager {
        }
        if (service != null) {
            try {
                return service.getAccessibilityShortcutTargets(shortcutType);
                return service.getAccessibilityShortcutTargets(shortcutType,
                        UserHandle.USER_CURRENT);
            } catch (RemoteException re) {
                re.rethrowFromSystemServer();
            }
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ interface IAccessibilityManager {
    void performAccessibilityShortcut(int displayId, int shortcutType, String targetName);

    @EnforcePermission("MANAGE_ACCESSIBILITY")
    List<String> getAccessibilityShortcutTargets(int shortcutType);
    List<String> getAccessibilityShortcutTargets(int shortcutType, int userId);

    // System process only
    @RequiresNoPermission
+4 −4
Original line number Diff line number Diff line
@@ -736,14 +736,14 @@ public class AccessibilityShortcutControllerTest {

    private void configureNoShortcutService() throws Exception {
        when(mAccessibilityManagerService
                .getAccessibilityShortcutTargets(HARDWARE))
                .getAccessibilityShortcutTargets(eq(HARDWARE), anyInt()))
                .thenReturn(Collections.emptyList());
        Settings.Secure.putString(mContentResolver, ACCESSIBILITY_SHORTCUT_TARGET_SERVICE, "");
    }

    private void configureValidShortcutService() throws Exception {
        when(mAccessibilityManagerService
                .getAccessibilityShortcutTargets(HARDWARE))
                .getAccessibilityShortcutTargets(eq(HARDWARE), anyInt()))
                .thenReturn(Collections.singletonList(SERVICE_NAME_STRING));
        Settings.Secure.putString(
                mContentResolver, ACCESSIBILITY_SHORTCUT_TARGET_SERVICE, SERVICE_NAME_STRING);
@@ -754,7 +754,7 @@ public class AccessibilityShortcutControllerTest {
                (ComponentName) AccessibilityShortcutController.getFrameworkShortcutFeaturesMap()
                        .keySet().toArray()[0];
        when(mAccessibilityManagerService
                .getAccessibilityShortcutTargets(HARDWARE))
                .getAccessibilityShortcutTargets(eq(HARDWARE), anyInt()))
                .thenReturn(Collections.singletonList(featureComponentName.flattenToString()));
        Settings.Secure.putString(mContentResolver, ACCESSIBILITY_SHORTCUT_TARGET_SERVICE,
                featureComponentName.flattenToString());
@@ -816,7 +816,7 @@ public class AccessibilityShortcutControllerTest {

    private void configureDefaultAccessibilityService() throws Exception {
        when(mAccessibilityManagerService
                .getAccessibilityShortcutTargets(HARDWARE))
                .getAccessibilityShortcutTargets(eq(HARDWARE), anyInt()))
                .thenReturn(Collections.singletonList(SERVICE_NAME_STRING));

        when(mResources.getString(R.string.config_defaultAccessibilityService)).thenReturn(
+5 −3
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static com.android.internal.accessibility.common.ShortcutConstants.SERVIC
import static com.android.internal.accessibility.common.ShortcutConstants.USER_SHORTCUT_TYPES;
import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.DEFAULT;
import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
import static com.android.server.testutils.MockitoUtilsKt.eq;

import static com.google.common.truth.Truth.assertThat;

@@ -434,14 +435,15 @@ public class ShortcutUtilsTest {
    private void clearMockShortcutTypes() throws RemoteException {
        for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
            when(mAccessibilityManagerService
                    .getAccessibilityShortcutTargets(shortcutType)).thenReturn(List.of());
                    .getAccessibilityShortcutTargets(
                            eq(shortcutType), anyInt())).thenReturn(List.of());
        }
    }

    private void mockShortcutType(int shortcutType, String componentName)
            throws RemoteException {
        when(mAccessibilityManagerService.getAccessibilityShortcutTargets(shortcutType))
                .thenReturn(List.of(componentName));
        when(mAccessibilityManagerService.getAccessibilityShortcutTargets(
                eq(shortcutType), anyInt())).thenReturn(List.of(componentName));
    }

    static final class ShortcutTypeValueProvider implements
+8 −2
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import android.view.MotionEvent.PointerCoords;
import android.view.MotionEvent.PointerProperties;
import android.view.accessibility.AccessibilityEvent;

import com.android.internal.annotations.VisibleForTesting;
import com.android.server.LocalServices;
import com.android.server.accessibility.autoclick.AutoclickController;
import com.android.server.accessibility.gestures.TouchExplorer;
@@ -69,7 +70,8 @@ import java.util.StringJoiner;
 *
 * NOTE: This class has to be created and poked only from the main thread.
 */
class AccessibilityInputFilter extends InputFilter implements EventStreamTransformation {
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
public class AccessibilityInputFilter extends InputFilter implements EventStreamTransformation {

    private static final String TAG = "A11yInputFilter";

@@ -623,7 +625,11 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo
        }
    }

    void notifyMagnificationShortcutTriggered(int displayId) {
    /**
     * @hide
     */
    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
    public void notifyMagnificationShortcutTriggered(int displayId) {
        if (mMagnificationGestureHandler.size() != 0) {
            final MagnificationGestureHandler handler = mMagnificationGestureHandler.get(displayId);
            if (handler != null) {
Loading