diff options
| author | 2024-11-27 19:18:26 +0000 | |
|---|---|---|
| committer | 2024-11-27 19:23:40 +0000 | |
| commit | e5fbb24e3858df269973eaa20cd07095d080fb95 (patch) | |
| tree | 7c7e23d45bce993440b67e4afe50064edb7b515c | |
| parent | 82a136ad802b386be39f62b9cfcb266b3b3867ca (diff) | |
Cleanup flag "restore_a11y_shortcut_target_..."
Full flag name:
"restore_a11y_shortcut_target_service"
Note that on line 1869 of AccessibilityManagerServiceTest.java, a
different flag is removed. This flag should have been removed in
http://ag/30554709, but I accidentally removed the flag from this CL
("restore_a11y_shortcut_target_service") instead.
Bug: b/341374402
Test: atest AccessibilityShortcutControllerTest SettingsHelperRestoreTest AccessibilityManagerServiceTest
Flag: EXEMPT flag cleanup
Change-Id: I023fed04527e20f3c547155e70c895b9eebacad3
6 files changed, 21 insertions, 49 deletions
diff --git a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java index e2be1f57b1fb..a27eeb8fdd63 100644 --- a/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java +++ b/core/java/com/android/internal/accessibility/AccessibilityShortcutController.java @@ -58,7 +58,6 @@ import android.util.Slog; import android.view.Window; import android.view.WindowManager; import android.view.accessibility.AccessibilityManager; -import android.view.accessibility.Flags; import android.widget.Toast; import com.android.internal.R; @@ -289,9 +288,7 @@ public class AccessibilityShortcutController { cr, Settings.Secure.ACCESSIBILITY_SHORTCUT_DIALOG_SHOWN, DialogStatus.SHOWN, userId); } else { - if (Flags.restoreA11yShortcutTargetService()) { - enableDefaultHardwareShortcut(userId); - } + enableDefaultHardwareShortcut(userId); playNotificationTone(); if (mAlertDialog != null) { mAlertDialog.dismiss(); diff --git a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java index a6466c58dfda..74b4de1833ea 100644 --- a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java +++ b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutControllerTest.java @@ -63,8 +63,6 @@ import android.os.Build; import android.os.Handler; import android.os.Message; import android.os.Vibrator; -import android.platform.test.annotations.EnableFlags; -import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.speech.tts.TextToSpeech; import android.speech.tts.Voice; @@ -73,7 +71,6 @@ import android.view.Display; import android.view.Window; import android.view.WindowManager; import android.view.accessibility.AccessibilityManager; -import android.view.accessibility.Flags; import android.view.accessibility.IAccessibilityManager; import android.widget.Toast; @@ -86,7 +83,6 @@ import com.android.internal.util.test.FakeSettingsProvider; import org.junit.AfterClass; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; @@ -104,8 +100,6 @@ import java.util.Set; @RunWith(AndroidJUnit4.class) public class AccessibilityShortcutControllerTest { - @Rule - public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); private static final String SERVICE_NAME_STRING = "fake.package/fake.service.name"; private static final CharSequence PACKAGE_NAME_STRING = "Service name"; private static final String SERVICE_NAME_SUMMARY = "Summary"; @@ -535,7 +529,6 @@ public class AccessibilityShortcutControllerTest { } @Test - @EnableFlags(Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE) public void testOnAccessibilityShortcut_settingNull_dialogShown_enablesDefaultShortcut() throws Exception { configureDefaultAccessibilityService(); diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java index ebeee8564d2f..ea8ae7b208cd 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsHelper.java @@ -242,8 +242,7 @@ public class SettingsHelper { // Don't write it to setting. Let the broadcast receiver in // AccessibilityManagerService handle restore/merging logic. return; - } else if (android.view.accessibility.Flags.restoreA11yShortcutTargetService() - && Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE.equals(name)) { + } else if (Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE.equals(name)) { // Don't write it to setting. Let the broadcast receiver in // AccessibilityManagerService handle restore/merging logic. return; diff --git a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperRestoreTest.java b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperRestoreTest.java index f64f72a74609..048d93b09967 100644 --- a/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperRestoreTest.java +++ b/packages/SettingsProvider/test/src/com/android/providers/settings/SettingsHelperRestoreTest.java @@ -26,8 +26,6 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Build; -import android.platform.test.annotations.EnableFlags; -import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import android.provider.SettingsStringUtil; @@ -37,7 +35,6 @@ import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.test.BroadcastInterceptingContext; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; @@ -52,9 +49,6 @@ import java.util.concurrent.ExecutionException; @RunWith(AndroidJUnit4.class) public class SettingsHelperRestoreTest { - @Rule - public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); - private static final float FLOAT_TOLERANCE = 0.01f; private Context mContext; @@ -211,7 +205,6 @@ public class SettingsHelperRestoreTest { } @Test - @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE) public void restoreAccessibilityShortcutTargetService_broadcastSent() throws ExecutionException, InterruptedException { BroadcastInterceptingContext interceptingContext = new BroadcastInterceptingContext( diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index ab556b39f516..006225d9b045 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -2257,10 +2257,6 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub if (shortcutType == QUICK_SETTINGS && !android.view.accessibility.Flags.a11yQsShortcut()) { return; } - if (shortcutType == HARDWARE - && !android.view.accessibility.Flags.restoreA11yShortcutTargetService()) { - return; - } synchronized (mLock) { final AccessibilityUserState userState = getUserStateLocked(UserHandle.USER_SYSTEM); @@ -2929,27 +2925,25 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub final String builderValue = builder.toString(); final String settingValue = TextUtils.isEmpty(builderValue) ? defaultEmptyString : builderValue; - if (android.view.accessibility.Flags.restoreA11yShortcutTargetService()) { - final String currentValue = Settings.Secure.getStringForUser( - mContext.getContentResolver(), settingName, userId); - if (Objects.equals(settingValue, currentValue)) { - // This logic exists to fix a bug where AccessibilityManagerService was writing - // `null` to the ACCESSIBILITY_SHORTCUT_TARGET_SERVICE setting during early boot - // during setup, due to a race condition in package scanning making A11yMS think - // that the default service was not installed. - // - // Writing `null` was implicitly causing that Setting to have the default - // `DEFAULT_OVERRIDEABLE_BY_RESTORE` property, which was preventing B&R for that - // Setting altogether. - // - // The "quick fix" here is to not write `null` if the existing value is already - // `null`. The ideal fix would be use the Settings.Secure#putStringForUser overload - // that allows override-by-restore, but the full repercussions of using that here - // have not yet been evaluated. - // TODO: b/333457719 - Evaluate and fix AccessibilityManagerService's usage of - // "overridable by restore" when writing secure settings. - return; - } + final String currentValue = Settings.Secure.getStringForUser( + mContext.getContentResolver(), settingName, userId); + if (Objects.equals(settingValue, currentValue)) { + // This logic exists to fix a bug where AccessibilityManagerService was writing + // `null` to the ACCESSIBILITY_SHORTCUT_TARGET_SERVICE setting during early boot + // during setup, due to a race condition in package scanning making A11yMS think + // that the default service was not installed. + // + // Writing `null` was implicitly causing that Setting to have the default + // `DEFAULT_OVERRIDEABLE_BY_RESTORE` property, which was preventing B&R for that + // Setting altogether. + // + // The "quick fix" here is to not write `null` if the existing value is already + // `null`. The ideal fix would be use the Settings.Secure#putStringForUser overload + // that allows override-by-restore, but the full repercussions of using that here + // have not yet been evaluated. + // TODO: b/333457719 - Evaluate and fix AccessibilityManagerService's usage of + // "overridable by restore" when writing secure settings. + return; } final long identity = Binder.clearCallingIdentity(); try { diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java index 08fdaf44f913..83869ad2575d 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityManagerServiceTest.java @@ -1790,7 +1790,6 @@ public class AccessibilityManagerServiceTest { } @Test - @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE) public void restoreShortcutTargets_hardware_targetsMerged() { mFakePermissionEnforcer.grant(Manifest.permission.MANAGE_ACCESSIBILITY); final String servicePrevious = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); @@ -1815,7 +1814,6 @@ public class AccessibilityManagerServiceTest { } @Test - @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE) public void restoreShortcutTargets_hardware_alreadyHadDefaultService_doesNotClear() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; mTestableContext.getOrCreateTestableResources().addOverride( @@ -1841,7 +1839,6 @@ public class AccessibilityManagerServiceTest { } @Test - @EnableFlags(android.view.accessibility.Flags.FLAG_RESTORE_A11Y_SHORTCUT_TARGET_SERVICE) public void restoreShortcutTargets_hardware_didNotHaveDefaultService_clearsDefaultService() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); @@ -1866,7 +1863,6 @@ public class AccessibilityManagerServiceTest { } @Test - @EnableFlags(Flags.FLAG_CLEAR_DEFAULT_FROM_A11Y_SHORTCUT_TARGET_SERVICE_RESTORE) public void restoreShortcutTargets_hardware_nullSetting_clearsDefaultService() { final String serviceDefault = TARGET_STANDARD_A11Y_SERVICE_NAME; final String serviceRestored = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(); |