#16928: Added call state in CallList and CallActivity
diff --git a/src/com/savoirfairelinux/sflphone/utils/CallList.java b/src/com/savoirfairelinux/sflphone/utils/CallList.java
index 0f7f66a..2ac5b08 100644
--- a/src/com/savoirfairelinux/sflphone/utils/CallList.java
+++ b/src/com/savoirfairelinux/sflphone/utils/CallList.java
@@ -36,6 +36,7 @@
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.os.Bundle;
 import android.util.Log;
 
 import java.util.ArrayList;
@@ -82,7 +83,34 @@
 
         if(signalName.equals(CallManagerCallBack.NEW_CALL_CREATED)) {
         } else if(signalName.equals(CallManagerCallBack.CALL_STATE_CHANGED)) {
+            processCallStateChangedSignal(intent);
         } else if(signalName.equals(CallManagerCallBack.INCOMING_CALL)) {
         }
     }
+
+    private void processCallStateChangedSignal(Intent intent) {
+        Bundle bundle = intent.getBundleExtra("com.savoirfairelinux.sflphone.service.newstate");
+        String callID = bundle.getString("CallID");
+        String newState = bundle.getString("State");
+
+        SipCall.CallInfo info = new SipCall.CallInfo();
+        info.mCallID = callID;
+                
+        SipCall call = getCallInstance(info);
+        if(newState.equals("INCOMING")) {
+            call.setCallState(SipCall.CALL_STATE_INCOMING);
+        } else if(newState.equals("RINGING")) {
+            call.setCallState(SipCall.CALL_STATE_RINGING);
+        } else if(newState.equals("CURRENT")) {
+            call.setCallState(SipCall.CALL_STATE_CURRENT);
+        } else if(newState.equals("BUSY")) {
+            call.setCallState(SipCall.CALL_STATE_BUSY);
+        } else if(newState.equals("FAILURE")) {
+            call.setCallState(SipCall.CALL_STATE_FAILURE);
+        } else if(newState.equals("HOLD")) {
+            call.setCallState(SipCall.CALL_STATE_HOLD);
+        } else if(newState.equals("UNHOLD")) {
+            call.setCallState(SipCall.CALL_STATE_UNHOLD);
+        }
+    }
 }