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

Commit 22a7cab1 authored by Riley Jones's avatar Riley Jones
Browse files

Fix for A11y Service bug regarding large parcel volumes

Bug: 282016107
Test: atest AccessibilityEndToEndTest#testInstallAppWithLargeServiceVolume_displaysServicesSuccessfully

Change-Id: Id2013ba1200aab98e4c0534ff3242d2ed7522055
parent 0fdc0ad3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -848,7 +848,7 @@ public final class AccessibilityManager {

        List<AccessibilityServiceInfo> services = null;
        try {
            services = service.getInstalledAccessibilityServiceList(userId);
            services = service.getInstalledAccessibilityServiceList(userId).getList();
            if (DEBUG) {
                Log.i(LOG_TAG, "Installed AccessibilityServices " + services);
            }
+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.accessibilityservice.AccessibilityServiceInfo;
import android.accessibilityservice.IAccessibilityServiceConnection;
import android.accessibilityservice.IAccessibilityServiceClient;
import android.content.ComponentName;
import android.content.pm.ParceledListSlice;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.IAccessibilityInteractionConnection;
@@ -47,7 +48,7 @@ interface IAccessibilityManager {

    boolean removeClient(IAccessibilityManagerClient client, int userId);

    List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId);
    ParceledListSlice<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(int userId);

    @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
    List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType, int userId);
+2 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.app.Instrumentation;
import android.app.PendingIntent;
import android.app.RemoteAction;
import android.content.Intent;
import android.content.pm.ParceledListSlice;
import android.graphics.drawable.Icon;
import android.os.UserHandle;

@@ -135,7 +136,7 @@ public class AccessibilityManagerTest {

        // configure the mock service behavior
        when(mMockService.getInstalledAccessibilityServiceList(anyInt()))
                .thenReturn(expectedServices);
                .thenReturn(new ParceledListSlice<>(expectedServices));

        // invoke the method under test
        AccessibilityManager manager = createManager(true);
+3 −1
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.os.Handler;
@@ -111,7 +112,8 @@ public class AccessibilityShortcutChooserActivityTest {
        when(mResolveInfo.loadLabel(any(PackageManager.class))).thenReturn(TEST_LABEL);
        when(mAccessibilityServiceInfo.getComponentName()).thenReturn(TEST_COMPONENT_NAME);
        when(mAccessibilityManagerService.getInstalledAccessibilityServiceList(
                anyInt())).thenReturn(Collections.singletonList(mAccessibilityServiceInfo));
                anyInt())).thenReturn(new ParceledListSlice<>(
                        Collections.singletonList(mAccessibilityServiceInfo)));
        when(mAccessibilityManagerService.isAccessibilityTargetAllowed(
                anyString(), anyInt(), anyInt())).thenReturn(true);
        TestAccessibilityShortcutChooserActivity.setupForTesting(mAccessibilityManagerService);
+2 −1
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.content.res.Resources;
@@ -150,7 +151,7 @@ public class AccessibilityShortcutControllerTest {
        when(mContext.getContentResolver()).thenReturn(mContentResolver);

        when(mAccessibilityManagerService.getInstalledAccessibilityServiceList(anyInt()))
                .thenReturn(Collections.singletonList(mServiceInfo));
                .thenReturn(new ParceledListSlice<>(Collections.singletonList(mServiceInfo)));

        // Use the extra level of indirection in the object to mock framework objects
        AccessibilityManager accessibilityManager =
Loading