Loading core/java/android/view/accessibility/flags/accessibility_flags.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -249,16 +249,6 @@ flag { is_exported: true } flag { name: "restore_a11y_secure_settings_on_hsum_device" namespace: "accessibility" description: "Grab the a11y settings and send the settings restored broadcast for current visible foreground user" bug: "381294327" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "restore_a11y_shortcut_target_service" namespace: "accessibility" Loading packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java +6 −19 Original line number Diff line number Diff line Loading @@ -222,15 +222,11 @@ public class SettingsHelper { if (sendBroadcast) { // TODO: http://b/22388012 oldValue = table.lookup(cr, name, UserHandle.USER_SYSTEM); } else if (sendBroadcastSystemUI) { } else if (sendBroadcastSystemUI || sendBroadcastAccessibility) { // This is only done for broadcasts sent to system ui as the consumers are known. // It would probably be correct to do it for the ones sent to the system, but consumers // may be depending on the current behavior. oldValue = table.lookup(cr, name, context.getUserId()); } else if (sendBroadcastAccessibility) { int userId = android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice() ? context.getUserId() : UserHandle.USER_SYSTEM; oldValue = table.lookup(cr, name, userId); } try { Loading Loading @@ -336,11 +332,8 @@ public class SettingsHelper { context.sendBroadcastAsUser(intent, context.getUser(), null); } if (sendBroadcastAccessibility) { UserHandle userHandle = android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice() ? context.getUser() : UserHandle.SYSTEM; intent.setPackage("android"); context.sendBroadcastAsUser(intent, userHandle, null); context.sendBroadcastAsUser(intent, context.getUser(), null); } } } Loading Loading @@ -508,18 +501,12 @@ public class SettingsHelper { } private boolean shouldSkipAndLetBroadcastHandlesRestoreLogic(String settingName) { boolean restoreHandledByBroadcast = Settings.Secure.ACCESSIBILITY_QS_TARGETS.equals( settingName) || Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE.equals(settingName); if (android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice()) { restoreHandledByBroadcast |= Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS.equals(settingName) return Settings.Secure.ACCESSIBILITY_QS_TARGETS.equals(settingName) || Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE.equals(settingName) || Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS.equals(settingName) || Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES.equals(settingName); } return restoreHandledByBroadcast; } private void setAutoRestore(boolean enabled) { try { IBackupManager bm = IBackupManager.Stub.asInterface( Loading packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperRestoreTest.java +0 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.provider.SettingsStringUtil; import android.view.accessibility.Flags; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry; Loading Loading @@ -318,7 +317,6 @@ public class SettingsHelperRestoreTest { .isEqualTo(Build.VERSION.SDK_INT); } @EnableFlags(Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) @Test public void restoreAccessibilityShortcutTargets_broadcastSent() throws ExecutionException, InterruptedException { Loading services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +1 −3 Original line number Diff line number Diff line Loading @@ -1085,9 +1085,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub intent.getStringExtra(Intent.EXTRA_SETTING_NEW_VALUE); final int restoredFromSdk = intent.getIntExtra(Intent.EXTRA_SETTING_RESTORED_FROM_SDK_INT, 0); final int userId = android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice() ? getSendingUserId() : UserHandle.USER_SYSTEM; final int userId = getSendingUserId(); switch (which) { case Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES -> { synchronized (mLock) { Loading services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java +0 −45 Original line number Diff line number Diff line Loading @@ -1682,15 +1682,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_qs_a11yQsTargetsRestored() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_qs_a11yQsTargetsRestored(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_qs_a11yQsTargetsRestored() { String daltonizerTile = AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME.flattenToString(); Loading Loading @@ -1771,15 +1762,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_hardware_targetsMerged() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_targetsMerged(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_targetsMerged() { mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); final String servicePrevious = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); Loading @@ -1804,15 +1786,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_hardware_alreadyHadDefaultService_doesNotClear() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_alreadyHadDefaultService_doesNotClear(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_alreadyHadDefaultService_doesNotClear() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; mTestableContext.getOrCreateTestableResources().addOverride( Loading @@ -1838,15 +1811,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAsUser0_hardware_noDefaultService_clearsDefaultService() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_didNotHaveDefaultService_clearsDefaultService(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_didNotHaveDefaultService_clearsDefaultService() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); Loading @@ -1871,15 +1835,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_hardware_nullSetting_clearsDefaultService() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_nullSetting_clearsDefaultService(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_nullSetting_clearsDefaultService() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); Loading Loading
core/java/android/view/accessibility/flags/accessibility_flags.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -249,16 +249,6 @@ flag { is_exported: true } flag { name: "restore_a11y_secure_settings_on_hsum_device" namespace: "accessibility" description: "Grab the a11y settings and send the settings restored broadcast for current visible foreground user" bug: "381294327" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "restore_a11y_shortcut_target_service" namespace: "accessibility" Loading
packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java +6 −19 Original line number Diff line number Diff line Loading @@ -222,15 +222,11 @@ public class SettingsHelper { if (sendBroadcast) { // TODO: http://b/22388012 oldValue = table.lookup(cr, name, UserHandle.USER_SYSTEM); } else if (sendBroadcastSystemUI) { } else if (sendBroadcastSystemUI || sendBroadcastAccessibility) { // This is only done for broadcasts sent to system ui as the consumers are known. // It would probably be correct to do it for the ones sent to the system, but consumers // may be depending on the current behavior. oldValue = table.lookup(cr, name, context.getUserId()); } else if (sendBroadcastAccessibility) { int userId = android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice() ? context.getUserId() : UserHandle.USER_SYSTEM; oldValue = table.lookup(cr, name, userId); } try { Loading Loading @@ -336,11 +332,8 @@ public class SettingsHelper { context.sendBroadcastAsUser(intent, context.getUser(), null); } if (sendBroadcastAccessibility) { UserHandle userHandle = android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice() ? context.getUser() : UserHandle.SYSTEM; intent.setPackage("android"); context.sendBroadcastAsUser(intent, userHandle, null); context.sendBroadcastAsUser(intent, context.getUser(), null); } } } Loading Loading @@ -508,18 +501,12 @@ public class SettingsHelper { } private boolean shouldSkipAndLetBroadcastHandlesRestoreLogic(String settingName) { boolean restoreHandledByBroadcast = Settings.Secure.ACCESSIBILITY_QS_TARGETS.equals( settingName) || Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE.equals(settingName); if (android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice()) { restoreHandledByBroadcast |= Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS.equals(settingName) return Settings.Secure.ACCESSIBILITY_QS_TARGETS.equals(settingName) || Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE.equals(settingName) || Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS.equals(settingName) || Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES.equals(settingName); } return restoreHandledByBroadcast; } private void setAutoRestore(boolean enabled) { try { IBackupManager bm = IBackupManager.Stub.asInterface( Loading
packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperRestoreTest.java +0 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import android.platform.test.annotations.EnableFlags; import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.provider.SettingsStringUtil; import android.view.accessibility.Flags; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry; Loading Loading @@ -318,7 +317,6 @@ public class SettingsHelperRestoreTest { .isEqualTo(Build.VERSION.SDK_INT); } @EnableFlags(Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) @Test public void restoreAccessibilityShortcutTargets_broadcastSent() throws ExecutionException, InterruptedException { Loading
services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +1 −3 Original line number Diff line number Diff line Loading @@ -1085,9 +1085,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub intent.getStringExtra(Intent.EXTRA_SETTING_NEW_VALUE); final int restoredFromSdk = intent.getIntExtra(Intent.EXTRA_SETTING_RESTORED_FROM_SDK_INT, 0); final int userId = android.view.accessibility.Flags.restoreA11ySecureSettingsOnHsumDevice() ? getSendingUserId() : UserHandle.USER_SYSTEM; final int userId = getSendingUserId(); switch (which) { case Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES -> { synchronized (mLock) { Loading
services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java +0 −45 Original line number Diff line number Diff line Loading @@ -1682,15 +1682,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_qs_a11yQsTargetsRestored() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_qs_a11yQsTargetsRestored(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_qs_a11yQsTargetsRestored() { String daltonizerTile = AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME.flattenToString(); Loading Loading @@ -1771,15 +1762,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_hardware_targetsMerged() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_targetsMerged(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_targetsMerged() { mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); final String servicePrevious = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); Loading @@ -1804,15 +1786,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_hardware_alreadyHadDefaultService_doesNotClear() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_alreadyHadDefaultService_doesNotClear(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_alreadyHadDefaultService_doesNotClear() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; mTestableContext.getOrCreateTestableResources().addOverride( Loading @@ -1838,15 +1811,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAsUser0_hardware_noDefaultService_clearsDefaultService() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_didNotHaveDefaultService_clearsDefaultService(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_didNotHaveDefaultService_clearsDefaultService() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); Loading @@ -1871,15 +1835,6 @@ public class AccessibilityManagerServiceTest { } @Test @DisableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargetsAssumeUser0_hardware_nullSetting_clearsDefaultService() { assumeTrue("The test is setup to run as a user 0", mTestableContext.getUserId() == UserHandle.USER_SYSTEM); restoreShortcutTargets_hardware_nullSetting_clearsDefaultService(); } @Test @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SECURE_SETTINGS_ON_HSUM_DEVICE) public void restoreShortcutTargets_hardware_nullSetting_clearsDefaultService() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); Loading