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

Commit dbb297e7 authored by Phil Weaver's avatar Phil Weaver Committed by android-build-merger
Browse files

Merge "Fix crash when using list of enabled a11y services" into oc-dev

am: 3879a39e

Change-Id: Ifa3acdc07c4b9420fbb421587432b0c0aae203a2
parents 56691413 3879a39e
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -183,9 +183,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
    private final SimpleStringSplitter mStringColonSplitter =
            new SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);

    private final List<AccessibilityServiceInfo> mEnabledServicesForFeedbackTempList =
            new ArrayList<>();

    private final Rect mTempRect = new Rect();

    private final Rect mTempRect1 = new Rect();
@@ -568,7 +565,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
    @Override
    public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(int feedbackType,
            int userId) {
        List<AccessibilityServiceInfo> result = null;
        synchronized (mLock) {
            // We treat calls from a profile as if made by its parent as profiles
            // share the accessibility state of the parent. The call below
@@ -577,25 +573,25 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
                    .resolveCallingUserIdEnforcingPermissionsLocked(userId);

            // The automation service can suppress other services.
            UserState userState = getUserStateLocked(resolvedUserId);
            final UserState userState = getUserStateLocked(resolvedUserId);
            if (userState.isUiAutomationSuppressingOtherServices()) {
                return Collections.emptyList();
            }

            result = mEnabledServicesForFeedbackTempList;
            result.clear();
            List<Service> services = userState.mBoundServices;
            for (int serviceCount = services.size(), i = 0; i < serviceCount; ++i) {
                Service service = services.get(i);
            final List<Service> services = userState.mBoundServices;
            final int serviceCount = services.size();
            final List<AccessibilityServiceInfo> result = new ArrayList<>(serviceCount);
            for (int i = 0; i < serviceCount; ++i) {
                final Service service = services.get(i);
                // Don't report the UIAutomation (fake service)
                if (!sFakeAccessibilityServiceComponentName.equals(service.mComponentName)
                        && (service.mFeedbackType & feedbackType) != 0) {
                    result.add(service.mAccessibilityServiceInfo);
                }
            }
        }
            return result;
        }
    }

    @Override
    public void interrupt(int userId) {