Fix low volume on Nemo devices after accepting incoming HFP call.

Bug: 23495386
Change-Id: I98c60188dd5d4aaf4bc5a7f212219918e1374989
diff --git a/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java b/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java
index 7ff8fcf..6702214 100644
--- a/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java
+++ b/src/com/android/bluetooth/hfpclient/HeadsetClientStateMachine.java
@@ -2069,6 +2069,11 @@
                             + currMode + " to " + newAudioMode);
                          mAudioManager.setMode(newAudioMode);
                     }
+
+                    // We need to set the volume after switching into HFP mode as some Audio HALs
+                    // reset the volume to a known-default on mode switch.
+                    final int volume =
+                            mAudioManager.getStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO);
                     Log.d(TAG,"hfp_enable=true");
                     Log.d(TAG,"mAudioWbs is " + mAudioWbs);
                     if (mAudioWbs) {
@@ -2080,6 +2085,7 @@
                         mAudioManager.setParameters("hfp_set_sampling_rate=8000");
                     }
                     mAudioManager.setParameters("hfp_enable=true");
+                    mAudioManager.setParameters("hfp_volume=" + volume);
                     broadcastAudioState(device, BluetoothHeadsetClient.STATE_AUDIO_CONNECTED,
                             BluetoothHeadsetClient.STATE_AUDIO_CONNECTING);
                     transitionTo(mAudioOn);