Merge "Introduce Session logging to CallAudioManager"
diff --git a/src/com/android/server/telecom/CallAudioManager.java b/src/com/android/server/telecom/CallAudioManager.java
index 32a5120..4fa08fa 100644
--- a/src/com/android/server/telecom/CallAudioManager.java
+++ b/src/com/android/server/telecom/CallAudioManager.java
@@ -25,6 +25,7 @@
 import android.telecom.CallAudioState;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.os.SomeArgs;
 import com.android.internal.util.IndentingPrintWriter;
 import com.android.internal.util.Preconditions;
 
@@ -63,44 +64,56 @@
 
         @Override
         public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_AUDIO_MANAGER_INITIALIZE: {
-                    mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
-                    break;
+            SomeArgs args = (SomeArgs) msg.obj;
+            int arg2 = 0;
+            try {
+                if (args != null) {
+                    Session subsession = (Session) args.arg1;
+                    Log.continueSession(subsession, "CAM.hM_" + msg.what);
+                    arg2 = (int) args.arg2;
                 }
-                case MSG_AUDIO_MANAGER_ABANDON_AUDIO_FOCUS_FOR_CALL: {
-                    mAudioManager.abandonAudioFocusForCall();
-                    break;
-                }
-                case MSG_AUDIO_MANAGER_REQUEST_AUDIO_FOCUS_FOR_CALL: {
-                    int stream = msg.arg1;
-                    mAudioManager.requestAudioFocusForCall(
-                            stream,
-                            AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
-                    break;
-                }
-                case MSG_AUDIO_MANAGER_SET_MODE: {
-                    int newMode = msg.arg1;
-                    int oldMode = mAudioManager.getMode();
-                    Log.v(this, "Request to change audio mode from %s to %s", modeToString(oldMode),
-                            modeToString(newMode));
-
-                    if (oldMode != newMode) {
-                        if (oldMode == AudioManager.MODE_IN_CALL &&
-                                newMode == AudioManager.MODE_RINGTONE) {
-                            Log.i(this, "Transition from IN_CALL -> RINGTONE."
-                                    + "  Resetting to NORMAL first.");
-                            mAudioManager.setMode(AudioManager.MODE_NORMAL);
-                        }
-                        mAudioManager.setMode(newMode);
-                        synchronized (mLock) {
-                            mMostRecentlyUsedMode = newMode;
-                        }
+                switch (msg.what) {
+                    case MSG_AUDIO_MANAGER_INITIALIZE: {
+                        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+                        break;
                     }
-                    break;
+                    case MSG_AUDIO_MANAGER_ABANDON_AUDIO_FOCUS_FOR_CALL: {
+                        mAudioManager.abandonAudioFocusForCall();
+                        break;
+                    }
+                    case MSG_AUDIO_MANAGER_REQUEST_AUDIO_FOCUS_FOR_CALL: {
+                        int stream = arg2;
+                        mAudioManager.requestAudioFocusForCall(
+                                stream,
+                                AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
+                        break;
+                    }
+                    case MSG_AUDIO_MANAGER_SET_MODE: {
+                        int newMode = arg2;
+                        int oldMode = mAudioManager.getMode();
+                        Log.v(this, "Request to change audio mode from %s to %s", modeToString(oldMode),
+                                modeToString(newMode));
+
+                        if (oldMode != newMode) {
+                            if (oldMode == AudioManager.MODE_IN_CALL &&
+                                    newMode == AudioManager.MODE_RINGTONE) {
+                                Log.i(this, "Transition from IN_CALL -> RINGTONE."
+                                        + "  Resetting to NORMAL first.");
+                                mAudioManager.setMode(AudioManager.MODE_NORMAL);
+                            }
+                            mAudioManager.setMode(newMode);
+                            synchronized (mLock) {
+                                mMostRecentlyUsedMode = newMode;
+                            }
+                        }
+                        break;
+                    }
+                    default:
+                        break;
                 }
-                default:
-                    break;
+            } finally {
+                Log.endSession();
+                args.recycle();
             }
         }
     };
@@ -127,13 +140,21 @@
             CallAudioRouteStateMachine callAudioRouteStateMachine) {
         mContext = context;
         mLock = lock;
-        mAudioManagerHandler.obtainMessage(MSG_AUDIO_MANAGER_INITIALIZE, 0, 0).sendToTarget();
+        mAudioManagerHandler.obtainMessage(MSG_AUDIO_MANAGER_INITIALIZE,
+                setArgs(0)).sendToTarget();
         mCallsManager = callsManager;
         mAudioFocusStreamType = STREAM_NONE;
 
         mCallAudioRouteStateMachine = callAudioRouteStateMachine;
     }
 
+    private SomeArgs setArgs(int arg) {
+        SomeArgs args = SomeArgs.obtain();
+        args.arg1 = Log.createSubsession();
+        args.arg2 = arg;
+        return args;
+    }
+
     @VisibleForTesting
     public CallAudioState getCallAudioState() {
         return mCallAudioRouteStateMachine.getCurrentCallAudioState();
@@ -147,7 +168,8 @@
         if (hasFocus() && getForegroundCall() == call) {
             if (!call.isIncoming()) {
                 // Unmute new outgoing call.
-                mCallAudioRouteStateMachine.sendMessage(CallAudioRouteStateMachine.MUTE_OFF);
+                mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
+                        CallAudioRouteStateMachine.MUTE_OFF);
             }
         }
     }
@@ -157,7 +179,8 @@
         Log.v(this, "onCallRemoved");
         if (mCallsManager.getCalls().isEmpty()) {
             Log.v(this, "all calls removed, resetting system audio to default state");
-            mCallAudioRouteStateMachine.sendMessage(CallAudioRouteStateMachine.REINITIALIZE);
+            mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
+                    CallAudioRouteStateMachine.REINITIALIZE);
         }
 
         // If we didn't already have focus, there's nothing to do.
@@ -177,8 +200,8 @@
         Log.v(this, "onIncomingCallAnswered");
 
         if (mCallsManager.getCalls().size() == 1) {
-            mCallAudioRouteStateMachine.sendMessage(CallAudioRouteStateMachine.SWITCH_FOCUS,
-                    CallAudioRouteStateMachine.HAS_FOCUS);
+            mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
+                    CallAudioRouteStateMachine.SWITCH_FOCUS, CallAudioRouteStateMachine.HAS_FOCUS);
         }
 
         if (call.can(android.telecom.Call.Details.CAPABILITY_SPEED_UP_MT_AUDIO)) {
@@ -201,7 +224,8 @@
     }
 
     void toggleMute() {
-        mCallAudioRouteStateMachine.sendMessage(CallAudioRouteStateMachine.TOGGLE_MUTE);
+        mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
+                CallAudioRouteStateMachine.TOGGLE_MUTE);
     }
 
     void mute(boolean shouldMute) {
@@ -217,7 +241,7 @@
             Log.v(this, "ignoring mute for emergency call");
         }
 
-        mCallAudioRouteStateMachine.sendMessage(shouldMute
+        mCallAudioRouteStateMachine.sendMessageWithSessionInfo(shouldMute
                 ? CallAudioRouteStateMachine.MUTE_ON : CallAudioRouteStateMachine.MUTE_OFF);
     }
 
@@ -230,23 +254,23 @@
         Log.v(this, "setAudioRoute, route: %s", CallAudioState.audioRouteToString(route));
         switch (route) {
             case CallAudioState.ROUTE_BLUETOOTH:
-                mCallAudioRouteStateMachine.sendMessage(
+                mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                         CallAudioRouteStateMachine.SWITCH_BLUETOOTH);
                 return;
             case CallAudioState.ROUTE_SPEAKER:
-                mCallAudioRouteStateMachine.sendMessage(
+                mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                         CallAudioRouteStateMachine.SWITCH_SPEAKER);
                 return;
             case CallAudioState.ROUTE_WIRED_HEADSET:
-                mCallAudioRouteStateMachine.sendMessage(
+                mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                         CallAudioRouteStateMachine.SWITCH_HEADSET);
                 return;
             case CallAudioState.ROUTE_EARPIECE:
-                mCallAudioRouteStateMachine.sendMessage(
+                mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                         CallAudioRouteStateMachine.SWITCH_EARPIECE);
                 return;
             case CallAudioState.ROUTE_WIRED_OR_EARPIECE:
-                mCallAudioRouteStateMachine.sendMessage(
+                mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                         CallAudioRouteStateMachine.SWITCH_WIRED_OR_EARPIECE);
                 return;
             default:
@@ -355,15 +379,12 @@
         if (mAudioFocusStreamType != stream) {
             Log.i(this, "requestAudioFocusAndSetMode : requesting stream: %s -> %s",
                     streamTypeToString(mAudioFocusStreamType), streamTypeToString(stream));
-            mAudioManagerHandler.obtainMessage(
-                    MSG_AUDIO_MANAGER_REQUEST_AUDIO_FOCUS_FOR_CALL,
-                    stream,
-                    0)
-                    .sendToTarget();
+            mAudioManagerHandler.obtainMessage(MSG_AUDIO_MANAGER_REQUEST_AUDIO_FOCUS_FOR_CALL,
+                    setArgs(stream)).sendToTarget();
         }
         mAudioFocusStreamType = stream;
-        mCallAudioRouteStateMachine.sendMessage(CallAudioRouteStateMachine.SWITCH_FOCUS,
-                CallAudioRouteStateMachine.HAS_FOCUS);
+        mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
+                CallAudioRouteStateMachine.SWITCH_FOCUS, CallAudioRouteStateMachine.HAS_FOCUS);
 
         setMode(mode);
     }
@@ -372,13 +393,13 @@
         if (hasFocus()) {
             setMode(AudioManager.MODE_NORMAL);
             Log.v(this, "abandoning audio focus");
-            mAudioManagerHandler.obtainMessage(MSG_AUDIO_MANAGER_ABANDON_AUDIO_FOCUS_FOR_CALL, 0, 0)
-                    .sendToTarget();
+            mAudioManagerHandler.obtainMessage(MSG_AUDIO_MANAGER_ABANDON_AUDIO_FOCUS_FOR_CALL,
+                    setArgs(0)).sendToTarget();
             mAudioFocusStreamType = STREAM_NONE;
             mCallToSpeedUpMTAudio = null;
         }
-        mCallAudioRouteStateMachine.sendMessage(CallAudioRouteStateMachine.SWITCH_FOCUS,
-                CallAudioRouteStateMachine.NO_FOCUS);
+        mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
+                CallAudioRouteStateMachine.SWITCH_FOCUS, CallAudioRouteStateMachine.NO_FOCUS);
     }
 
     /**
@@ -388,7 +409,8 @@
      */
     private void setMode(int newMode) {
         Preconditions.checkState(hasFocus());
-        mAudioManagerHandler.obtainMessage(MSG_AUDIO_MANAGER_SET_MODE, newMode, 0).sendToTarget();
+        mAudioManagerHandler.obtainMessage(MSG_AUDIO_MANAGER_SET_MODE,
+                setArgs(newMode)).sendToTarget();
     }
 
     private void updateAudioForForegroundCall() {
diff --git a/src/com/android/server/telecom/CallAudioRoutePeripheralAdapter.java b/src/com/android/server/telecom/CallAudioRoutePeripheralAdapter.java
index 26a4cb8..45e5afa 100644
--- a/src/com/android/server/telecom/CallAudioRoutePeripheralAdapter.java
+++ b/src/com/android/server/telecom/CallAudioRoutePeripheralAdapter.java
@@ -41,9 +41,10 @@
     @Override
     public void onBluetoothStateChange(BluetoothManager bluetoothManager) {
         if (bluetoothManager.isBluetoothAvailable()) {
-            mCallAudioRouteStateMachine.sendMessage(CallAudioRouteStateMachine.CONNECT_BLUETOOTH);
+            mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
+                    CallAudioRouteStateMachine.CONNECT_BLUETOOTH);
         } else {
-            mCallAudioRouteStateMachine.sendMessage(
+            mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                     CallAudioRouteStateMachine.DISCONNECT_BLUETOOTH);
         }
     }
@@ -59,17 +60,17 @@
     @Override
     public void onWiredHeadsetPluggedInChanged(boolean oldIsPluggedIn, boolean newIsPluggedIn) {
         if (!oldIsPluggedIn && newIsPluggedIn) {
-            mCallAudioRouteStateMachine.sendMessage(
+            mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                     CallAudioRouteStateMachine.CONNECT_WIRED_HEADSET);
         } else if (oldIsPluggedIn && !newIsPluggedIn){
-            mCallAudioRouteStateMachine.sendMessage(
+            mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                     CallAudioRouteStateMachine.DISCONNECT_WIRED_HEADSET);
         }
     }
 
     @Override
     public void onDockChanged(boolean isDocked) {
-        mCallAudioRouteStateMachine.sendMessage(
+        mCallAudioRouteStateMachine.sendMessageWithSessionInfo(
                 isDocked ? CallAudioRouteStateMachine.CONNECT_DOCK
                         : CallAudioRouteStateMachine.DISCONNECT_DOCK
         );
diff --git a/src/com/android/server/telecom/CallAudioRouteStateMachine.java b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
index e6ef8f4..f74e499 100644
--- a/src/com/android/server/telecom/CallAudioRouteStateMachine.java
+++ b/src/com/android/server/telecom/CallAudioRouteStateMachine.java
@@ -122,6 +122,18 @@
 
         @Override
         public boolean processMessage(Message msg) {
+            if (msg.obj != null && msg.obj instanceof Session) {
+                Log.continueSession((Session) msg.obj, "CARSM.pM_" + msg.what);
+            }
+            boolean isHandled = processMessageInternal(msg);
+            if (isHandled) {
+                // If !isHandled, unhandledMessage will be called so Log.endSession there.
+                Log.endSession();
+            }
+            return isHandled;
+        }
+
+        public boolean processMessageInternal(Message msg) {
             Log.d(this, "Message received: %s", msg);
             switch (msg.what) {
                 case CONNECT_WIRED_HEADSET:
@@ -216,8 +228,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -275,8 +287,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -313,8 +325,8 @@
 
     abstract class EarpieceRoute extends AudioState {
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -376,8 +388,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -435,8 +447,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -473,8 +485,8 @@
 
     abstract class HeadsetRoute extends AudioState {
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -540,8 +552,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -599,8 +611,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -637,8 +649,8 @@
 
     abstract class BluetoothRoute extends AudioState {
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -701,8 +713,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch(msg.what) {
@@ -766,8 +778,8 @@
         }
 
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch(msg.what) {
@@ -808,8 +820,8 @@
 
     abstract class SpeakerRoute extends AudioState {
         @Override
-        public boolean processMessage(Message msg) {
-            if (super.processMessage(msg) == HANDLED) {
+        public boolean processMessageInternal(Message msg) {
+            if (super.processMessageInternal(msg) == HANDLED) {
                 return HANDLED;
             }
             switch (msg.what) {
@@ -943,6 +955,14 @@
         return mCurrentCallAudioState;
     }
 
+    public void sendMessageWithSessionInfo(int message, int arg) {
+        sendMessage(message, arg, 0, Log.createSubsession());
+    }
+
+    public void sendMessageWithSessionInfo(int message) {
+        sendMessage(message, 0, 0, Log.createSubsession());
+    }
+
     /**
      * This is for state-independent changes in audio route (i.e. muting)
      * @param msg that couldn't be handled.
@@ -978,6 +998,8 @@
                 Log.e(this, new IllegalStateException(),
                         "Unexpected message code");
         }
+
+        Log.endSession();
     }
 
     private void setSpeakerphoneOn(boolean on) {
@@ -1094,7 +1116,12 @@
         //    SWITCH_HEADSET at end of queue.
         // 6. State machine handler processes SWITCH_SPEAKER.
         // 7. State machine handler processes SWITCH_HEADSET.
-        sendMessageAtFrontOfQueue(messageCode);
+        Session subsession = Log.createSubsession();
+        if(subsession != null) {
+            sendMessageAtFrontOfQueue(messageCode, subsession);
+        } else {
+            sendMessageAtFrontOfQueue(messageCode);
+        }
     }
 
     private CallAudioState getInitialAudioState() {
diff --git a/src/com/android/server/telecom/TelecomServiceImpl.java b/src/com/android/server/telecom/TelecomServiceImpl.java
index 5ae548a..43084bb 100644
--- a/src/com/android/server/telecom/TelecomServiceImpl.java
+++ b/src/com/android/server/telecom/TelecomServiceImpl.java
@@ -863,11 +863,13 @@
                 final UserHandle userHandle = Binder.getCallingUserHandle();
                 long token = Binder.clearCallingIdentity();
                 try {
+                    Log.startSession("TSI.pC");
                     final Intent intent = new Intent(Intent.ACTION_CALL, handle);
                     intent.putExtras(extras);
                     new UserCallIntentProcessor(mContext, userHandle).processIntent(intent,
                             callingPackage, hasCallAppOp && hasCallPermission);
                 } finally {
+                    Log.endSession();
                     Binder.restoreCallingIdentity(token);
                 }
             }
diff --git a/src/com/android/server/telecom/components/PrimaryCallReceiver.java b/src/com/android/server/telecom/components/PrimaryCallReceiver.java
index 5198862..a05f04e 100644
--- a/src/com/android/server/telecom/components/PrimaryCallReceiver.java
+++ b/src/com/android/server/telecom/components/PrimaryCallReceiver.java
@@ -1,5 +1,6 @@
 package com.android.server.telecom.components;
 
+import com.android.server.telecom.Log;
 import com.android.server.telecom.TelecomSystem;
 
 import android.content.BroadcastReceiver;
@@ -16,9 +17,11 @@
 
     @Override
     public void onReceive(Context context, Intent intent) {
+        Log.startSession("PCR.oR");
         synchronized (getTelecomSystem().getLock()) {
             getTelecomSystem().getCallIntentProcessor().processIntent(intent);
         }
+        Log.endSession();
     }
 
     @Override
diff --git a/src/com/android/server/telecom/components/UserCallActivity.java b/src/com/android/server/telecom/components/UserCallActivity.java
index d88e09e..39cb4f9 100644
--- a/src/com/android/server/telecom/components/UserCallActivity.java
+++ b/src/com/android/server/telecom/components/UserCallActivity.java
@@ -52,18 +52,23 @@
     @Override
     protected void onCreate(Bundle bundle) {
         super.onCreate(bundle);
-        // TODO: Figure out if there is something to restore from bundle.
-        // See OutgoingCallBroadcaster in services/Telephony for more.
-        Intent intent = getIntent();
-        verifyCallAction(intent);
-        final UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
-        final UserHandle userHandle = new UserHandle(userManager.getUserHandle());
-        // Once control flow has passed to this activity, it is no longer guaranteed that we can
-        // accurately determine whether the calling package has the CALL_PHONE runtime permission.
-        // At this point in time we trust that the ActivityManager has already performed this
-        // validation before starting this activity.
-        new UserCallIntentProcessor(this, userHandle).processIntent(getIntent(),
-                getCallingPackage(), true /* hasCallAppOp*/);
+        Log.startSession("UCA.oC");
+        try {
+            // TODO: Figure out if there is something to restore from bundle.
+            // See OutgoingCallBroadcaster in services/Telephony for more.
+            Intent intent = getIntent();
+            verifyCallAction(intent);
+            final UserManager userManager = (UserManager) getSystemService(Context.USER_SERVICE);
+            final UserHandle userHandle = new UserHandle(userManager.getUserHandle());
+            // Once control flow has passed to this activity, it is no longer guaranteed that we can
+            // accurately determine whether the calling package has the CALL_PHONE runtime permission.
+            // At this point in time we trust that the ActivityManager has already performed this
+            // validation before starting this activity.
+            new UserCallIntentProcessor(this, userHandle).processIntent(getIntent(),
+                    getCallingPackage(), true /* hasCallAppOp*/);
+        } finally {
+            Log.endSession();
+        }
         finish();
     }
 
diff --git a/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java b/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java
index 496ad7d..0f55a45 100644
--- a/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallAudioRouteStateMachineTest.java
@@ -175,16 +175,16 @@
                 CallAudioState.ROUTE_EARPIECE | CallAudioState.ROUTE_SPEAKER);
         stateMachine.initialize(initState);
 
-        stateMachine.sendMessage(CallAudioRouteStateMachine.SWITCH_FOCUS,
+        stateMachine.sendMessageWithSessionInfo(CallAudioRouteStateMachine.SWITCH_FOCUS,
                 CallAudioRouteStateMachine.HAS_FOCUS);
-        stateMachine.sendMessage(CallAudioRouteStateMachine.CONNECT_WIRED_HEADSET);
+        stateMachine.sendMessageWithSessionInfo(CallAudioRouteStateMachine.CONNECT_WIRED_HEADSET);
         CallAudioState expectedMiddleState = new CallAudioState(false,
                 CallAudioState.ROUTE_WIRED_HEADSET,
                 CallAudioState.ROUTE_WIRED_HEADSET | CallAudioState.ROUTE_SPEAKER);
         verifyNewSystemCallAudioState(initState, expectedMiddleState);
         resetMocks();
 
-        stateMachine.sendMessage(CallAudioRouteStateMachine.DISCONNECT_WIRED_HEADSET);
+        stateMachine.sendMessageWithSessionInfo(CallAudioRouteStateMachine.DISCONNECT_WIRED_HEADSET);
         verifyNewSystemCallAudioState(expectedMiddleState, initState);
     }
 
@@ -542,9 +542,9 @@
                 params.initialRoute, (params.availableRoutes | CallAudioState.ROUTE_SPEAKER));
         stateMachine.initialize(initState);
         // Make the state machine have focus so that we actually do something
-        stateMachine.sendMessage(CallAudioRouteStateMachine.SWITCH_FOCUS,
+        stateMachine.sendMessageWithSessionInfo(CallAudioRouteStateMachine.SWITCH_FOCUS,
                 CallAudioRouteStateMachine.HAS_FOCUS);
-        stateMachine.sendMessage(params.action);
+        stateMachine.sendMessageWithSessionInfo(params.action);
 
         // Verify interactions with the speakerphone and bluetooth systems
         switch(params.bluetoothInteraction) {
@@ -601,7 +601,7 @@
                 params.initialRoute, (params.availableRoutes | CallAudioState.ROUTE_SPEAKER));
         stateMachine.initialize(initState);
         // Omit the focus-getting statement
-        stateMachine.sendMessage(params.action);
+        stateMachine.sendMessageWithSessionInfo(params.action);
         try {
             Thread.sleep(100L);
         } catch (InterruptedException e) {