summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Riley Jones <jonesriley@google.com> 2024-05-07 00:14:47 +0000
committer Riley Jones <jonesriley@google.com> 2024-05-08 18:56:17 +0000
commit3447ecf55b4927f3e4a49569d7ad0776a52bf37b (patch)
tree8f19450dd25b3eedfbbff03386f8411f30fe97ae
parenta922ac82078c04d3f606bd16e3fb6aa02f657f9b (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.aconfig10
-rw-r--r--services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java4
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);