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

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

Merge "a11y: don't crash the system when illegal component name encounted"

am: f4d1789b

Change-Id: I3bb2bf82293ce7d8d6159bfc75b8c4d29a14abc0
parents cb68d96d f4d1789b
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -126,7 +126,7 @@ public class SettingsStringUtil {


        @Override
        @Override
        protected String itemToString(ComponentName item) {
        protected String itemToString(ComponentName item) {
            return item.flattenToString();
            return item != null ? item.flattenToString() : "null";
        }
        }


        public static String add(String delimitedElements, ComponentName element) {
        public static String add(String delimitedElements, ComponentName element) {
+12 −14
Original line number Original line Diff line number Diff line
@@ -82,8 +82,6 @@ import android.os.UserHandle;
import android.os.UserManager;
import android.os.UserManager;
import android.os.UserManagerInternal;
import android.os.UserManagerInternal;
import android.provider.Settings;
import android.provider.Settings;
import android.provider.SettingsStringUtil;
import android.provider.SettingsStringUtil.ComponentNameSet;
import android.provider.SettingsStringUtil.SettingStringHelper;
import android.provider.SettingsStringUtil.SettingStringHelper;
import android.text.TextUtils;
import android.text.TextUtils;
import android.text.TextUtils.SimpleStringSplitter;
import android.text.TextUtils.SimpleStringSplitter;
@@ -2436,12 +2434,12 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
     * Enables accessibility service specified by {@param componentName} for the {@param userId}.
     * Enables accessibility service specified by {@param componentName} for the {@param userId}.
     */
     */
    private void enableAccessibilityServiceLocked(ComponentName componentName, int userId) {
    private void enableAccessibilityServiceLocked(ComponentName componentName, int userId) {
        final SettingStringHelper setting =
        mTempComponentNameSet.clear();
                new SettingStringHelper(
        readComponentNamesFromSettingLocked(Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
                        mContext.getContentResolver(),
                userId, mTempComponentNameSet);
                        Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
        mTempComponentNameSet.add(componentName);
                        userId);
        persistComponentNamesToSettingLocked(Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
        setting.write(ComponentNameSet.add(setting.read(), componentName));
                mTempComponentNameSet, userId);


        UserState userState = getUserStateLocked(userId);
        UserState userState = getUserStateLocked(userId);
        if (userState.mEnabledServices.add(componentName)) {
        if (userState.mEnabledServices.add(componentName)) {
@@ -2453,12 +2451,12 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
     * Disables accessibility service specified by {@param componentName} for the {@param userId}.
     * Disables accessibility service specified by {@param componentName} for the {@param userId}.
     */
     */
    private void disableAccessibilityServiceLocked(ComponentName componentName, int userId) {
    private void disableAccessibilityServiceLocked(ComponentName componentName, int userId) {
        final SettingsStringUtil.SettingStringHelper setting =
        mTempComponentNameSet.clear();
                new SettingStringHelper(
        readComponentNamesFromSettingLocked(Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
                        mContext.getContentResolver(),
                userId, mTempComponentNameSet);
                        Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
        mTempComponentNameSet.remove(componentName);
                        userId);
        persistComponentNamesToSettingLocked(Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
        setting.write(ComponentNameSet.remove(setting.read(), componentName));
                mTempComponentNameSet, userId);


        UserState userState = getUserStateLocked(userId);
        UserState userState = getUserStateLocked(userId);
        if (userState.mEnabledServices.remove(componentName)) {
        if (userState.mEnabledServices.remove(componentName)) {