Merge "a11y: don't crash the system when illegal component name encounted"
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user