diff options
| author | 2024-05-07 00:14:47 +0000 | |
|---|---|---|
| committer | 2024-05-08 18:56:17 +0000 | |
| commit | 3447ecf55b4927f3e4a49569d7ad0776a52bf37b (patch) | |
| tree | 8f19450dd25b3eedfbbff03386f8411f30fe97ae | |
| parent | a922ac82078c04d3f606bd16e3fb6aa02f657f9b (diff) | |
Register xml parsing receiver on background thread
One of a11yManagerService's receivers performs xml parsing.
Since this can take a while, the receiver should be registered on the background thread.
Test: atest AccessibilityManagerServiceTest (you'll need to verify via printing or breakpoints that the receiver is on the right thread)
Flag: aconfig manager_avoid_receiver_timeout
Bug: 333890389
Change-Id: I1ee6617fe1a4471d251c7a6d4c52b82a788776b1
(cherry picked from commit cb211281159d1f500c521afe8eaa53a9eb22b559)
| -rw-r--r-- | services/accessibility/accessibility.aconfig | 10 | ||||
| -rw-r--r-- | services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java | 4 |
2 files changed, 13 insertions, 1 deletions
diff --git a/services/accessibility/accessibility.aconfig b/services/accessibility/accessibility.aconfig index a754ba547767..90e31f2e8d4c 100644 --- a/services/accessibility/accessibility.aconfig +++ b/services/accessibility/accessibility.aconfig @@ -83,6 +83,16 @@ flag { } flag { + name: "manager_avoid_receiver_timeout" + namespace: "accessibility" + description: "Register receivers on background handler so they have more time to complete" + bug: "333890389" + metadata { + purpose: PURPOSE_BUGFIX + } +} + +flag { name: "pinch_zoom_zero_min_span" namespace: "accessibility" description: "Whether to set min span of ScaleGestureDetector to zero." diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index cbb66dc18f28..fe99ffd8a649 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -1020,6 +1020,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub intentFilter.addAction(Intent.ACTION_USER_REMOVED); intentFilter.addAction(Intent.ACTION_SETTING_RESTORED); + Handler receiverHandler = + Flags.managerAvoidReceiverTimeout() ? BackgroundThread.getHandler() : null; mContext.registerReceiverAsUser(new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -1061,7 +1063,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } } - }, UserHandle.ALL, intentFilter, null, null); + }, UserHandle.ALL, intentFilter, null, receiverHandler); final IntentFilter filter = new IntentFilter(); filter.addAction(SafetyCenterManager.ACTION_SAFETY_CENTER_ENABLED_CHANGED); |