Fix get accessibility settings for wrong user
Bug: 138970298
Test: atest --test-mapping $ANDROID_BUILD_TOP/frameworks/base/services/accessibility:postsubmit
Change-Id: I1c34f13553e91ac0d504259b2091d1c35006fbfa
diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java
index ec15a80..69f1e0e 100644
--- a/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java
+++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityUserState.java
@@ -231,8 +231,8 @@
// the new mode. That happens when we start up after a reboot, and we don't want
// to overwrite the value we had from when we first started controlling the setting.
if (getSoftKeyboardValueFromSettings() != SHOW_MODE_IGNORE_HARD_KEYBOARD) {
- setOriginalHardKeyboardValue(getSecureInt(
- Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0);
+ setOriginalHardKeyboardValue(getSecureIntForUser(
+ Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0, mUserId) != 0);
}
putSecureIntForUser(Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD, 1, mUserId);
} else if (mSoftKeyboardShowMode == SHOW_MODE_IGNORE_HARD_KEYBOARD) {
@@ -261,7 +261,7 @@
*/
void reconcileSoftKeyboardModeWithSettingsLocked() {
final boolean showWithHardKeyboardSettings =
- getSecureInt(Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0;
+ getSecureIntForUser(Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0, mUserId) != 0;
if (mSoftKeyboardShowMode == SHOW_MODE_IGNORE_HARD_KEYBOARD) {
if (!showWithHardKeyboardSettings) {
// The user has overridden the setting. Respect that and prevent further changes
@@ -322,23 +322,23 @@
}
private void setUserOverridesHardKeyboardSetting() {
- final int softKeyboardSetting = getSecureInt(
- Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO);
+ final int softKeyboardSetting = getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO, mUserId);
putSecureIntForUser(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE,
softKeyboardSetting | SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN,
mUserId);
}
private boolean hasUserOverriddenHardKeyboardSetting() {
- final int softKeyboardSetting = getSecureInt(
- Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO);
+ final int softKeyboardSetting = getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO, mUserId);
return (softKeyboardSetting & SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN)
!= 0;
}
private void setOriginalHardKeyboardValue(boolean originalHardKeyboardValue) {
- final int oldSoftKeyboardSetting = getSecureInt(
- Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO);
+ final int oldSoftKeyboardSetting = getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO, mUserId);
final int newSoftKeyboardSetting = oldSoftKeyboardSetting
& (~SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE)
| ((originalHardKeyboardValue) ? SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE : 0);
@@ -347,8 +347,8 @@
}
private void saveSoftKeyboardValueToSettings(int softKeyboardShowMode) {
- final int oldSoftKeyboardSetting = getSecureInt(
- Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO);
+ final int oldSoftKeyboardSetting = getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO, mUserId);
final int newSoftKeyboardSetting = oldSoftKeyboardSetting & (~SHOW_MODE_MASK)
| softKeyboardShowMode;
putSecureIntForUser(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE,
@@ -356,12 +356,14 @@
}
private int getSoftKeyboardValueFromSettings() {
- return getSecureInt(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO)
+ return getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO, mUserId)
& SHOW_MODE_MASK;
}
private boolean getOriginalHardKeyboardValue() {
- return (getSecureInt(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO)
+ return (getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, SHOW_MODE_AUTO, mUserId)
& SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE) != 0;
}
@@ -374,8 +376,8 @@
}
}
- private int getSecureInt(String key, int def) {
- return Settings.Secure.getInt(mContext.getContentResolver(), key, def);
+ private int getSecureIntForUser(String key, int def, int userId) {
+ return Settings.Secure.getIntForUser(mContext.getContentResolver(), key, def, userId);
}
private void putSecureIntForUser(String key, int value, int userId) {
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityUserStateTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityUserStateTest.java
index b642aa4..9180054 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityUserStateTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityUserStateTest.java
@@ -168,8 +168,8 @@
mUserState.reconcileSoftKeyboardModeWithSettingsLocked();
assertEquals(SHOW_MODE_AUTO, mUserState.getSoftKeyboardShowModeLocked());
- assertEquals(SHOW_MODE_AUTO,
- getSecureInt(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE));
+ assertEquals(SHOW_MODE_AUTO, getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, USER_ID));
assertNull(mUserState.getServiceChangingSoftKeyboardModeLocked());
}
@@ -187,7 +187,7 @@
mUserState.reconcileSoftKeyboardModeWithSettingsLocked();
assertEquals(SHOW_MODE_AUTO | SHOW_MODE_HARD_KEYBOARD_OVERRIDDEN,
- getSecureInt(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE));
+ getSecureIntForUser(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, USER_ID));
assertNull(mUserState.getServiceChangingSoftKeyboardModeLocked());
}
@@ -252,7 +252,7 @@
assertTrue(mUserState.setSoftKeyboardModeLocked(SHOW_MODE_IGNORE_HARD_KEYBOARD, null));
assertEquals(SHOW_MODE_IGNORE_HARD_KEYBOARD | SHOW_MODE_HARD_KEYBOARD_ORIGINAL_VALUE,
- getSecureInt(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE));
+ getSecureIntForUser(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, USER_ID));
}
@Test
@@ -264,7 +264,8 @@
assertTrue(mUserState.setSoftKeyboardModeLocked(SHOW_MODE_AUTO, null));
- assertEquals(STATE_SHOW_IME, getSecureInt(Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD));
+ assertEquals(STATE_SHOW_IME, getSecureIntForUser(
+ Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD, USER_ID));
}
@Test
@@ -272,8 +273,8 @@
assertTrue(mUserState.setSoftKeyboardModeLocked(SHOW_MODE_HIDDEN, COMPONENT_NAME));
assertEquals(SHOW_MODE_HIDDEN, mUserState.getSoftKeyboardShowModeLocked());
- assertEquals(SHOW_MODE_HIDDEN,
- getSecureInt(Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE));
+ assertEquals(SHOW_MODE_HIDDEN, getSecureIntForUser(
+ Settings.Secure.ACCESSIBILITY_SOFT_KEYBOARD_MODE, USER_ID));
assertEquals(COMPONENT_NAME, mUserState.getServiceChangingSoftKeyboardModeLocked());
}
@@ -286,8 +287,8 @@
verify(mMockConnection).notifySoftKeyboardShowModeChangedLocked(eq(SHOW_MODE_HIDDEN));
}
- private int getSecureInt(String key) {
- return Settings.Secure.getInt(mMockResolver, key, -1);
+ private int getSecureIntForUser(String key, int userId) {
+ return Settings.Secure.getIntForUser(mMockResolver, key, -1, userId);
}
private void putSecureIntForUser(String key, int value, int userId) {