hal: fix in_call flag is not reset after voice call stop

In voip+voice concurrency case, if voip resume after voice call stop,
then only MODE_IN_COMM instead of MODE_NORMAl and MODE_INCOMM is set.
In this case, in_call flag is not reset.

Fix it to reset in_call flag if call state has been set to inactive
when MODE_IN_COMM is set for voip call. 

Change-Id: Idac32a8bafa73b9bd2f885394117457e8d6edfa9
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 1638a22..14fae0e 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -7108,7 +7108,9 @@
     if (adev->mode != mode) {
         ALOGD("%s: mode %d\n", __func__, mode);
         adev->mode = mode;
-        if ((mode == AUDIO_MODE_NORMAL) && voice_is_in_call(adev)) {
+        if (voice_is_in_call(adev) &&
+            (mode == AUDIO_MODE_NORMAL ||
+             (mode == AUDIO_MODE_IN_COMMUNICATION && !voice_is_call_state_active(adev)))) {
             list_for_each(node, &adev->usecase_list) {
                 usecase = node_to_item(node, struct audio_usecase, list);
                 if (usecase->type == VOICE_CALL)