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

This commit is contained in:
Phil Weaver
2019-10-31 01:29:30 +00:00
committed by Gerrit Code Review
2 changed files with 13 additions and 15 deletions

View File

@@ -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) {

View File

@@ -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)) {