Merge "Move CallAudioWatchdog audio callbacks onto a background handler." into main
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 5cc868b..dbd33f7 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -490,6 +490,9 @@
     private final ConnectionServiceFocusManager mConnectionSvrFocusMgr;
     /* Handler tied to thread in which CallManager was initialized. */
     private final Handler mHandler = new Handler(Looper.getMainLooper());
+    private final HandlerThread mHandlerThread = new HandlerThread("telecomAudioCallbacks",
+            android.os.Process.THREAD_PRIORITY_BACKGROUND);
+    private final Handler mAudioCallbackHandler;
     private final EmergencyCallHelper mEmergencyCallHelper;
     private final RoleManagerAdapter mRoleManagerAdapter;
     private final VoipCallMonitor mVoipCallMonitor;
@@ -657,6 +660,8 @@
         mEmergencyCallDiagnosticLogger = emergencyCallDiagnosticLogger;
         mIncomingCallFilterGraphProvider = incomingCallFilterGraphProvider;
         if (featureFlags.enableCallAudioWatchdog()) {
+            mHandlerThread.start();
+            mAudioCallbackHandler = new Handler(mHandlerThread.getLooper());
             mCallAudioWatchDog = new CallAudioWatchdog(
                     mContext.getSystemService(AudioManager.class),
                     new CallAudioWatchdog.PhoneAccountRegistrarProxy() {
@@ -677,9 +682,10 @@
                                 return -1;
                             }
                         }
-                    }, clockProxy, mHandler,
+                    }, clockProxy, mAudioCallbackHandler,
                     featureFlags.telecomMetricsSupport() ? metricsController : null);
         } else {
+            mAudioCallbackHandler = null;
             mCallAudioWatchDog = null;
         }