[Feature][data][API-1345]Notifies when the datacall service restarts

Only Configure:No
Affected branch:GSW3.0-No-Connman
Affected module:DATA
Is it affected on both ZXIC and MTK:Only MTK
Self-test:Yes
Doc Update:No

Change-Id: I5cb2f203109d4c3f5b8003194c88174334a22150
diff --git a/lib/liblynq-data/lynq_data.cpp b/lib/liblynq-data/lynq_data.cpp
index b7498a6..def2a32 100755
--- a/lib/liblynq-data/lynq_data.cpp
+++ b/lib/liblynq-data/lynq_data.cpp
@@ -26,6 +26,7 @@
 
 #define LYNQ_DATA_UCI_BUF 258
 #define LYNQ_DATA_TIME_OUT 1000*120
+#define TELEPHONY_RESTART 10
 
 
 using ::android::Parcel;
@@ -65,6 +66,7 @@
 int lynq_data_socket_server_addr_len;
 
 int lynq_data_call_change_id = -1;
+int lynq_telephony_restart_g = 0;
 pthread_t lynq_data_tid =-1;
 static pthread_mutex_t s_data_call_state_change_mutex = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t s_data_call_state_change_cond = PTHREAD_COND_INITIALIZER;
@@ -115,6 +117,8 @@
 lynq_data_call_response_v11_t lynq_data_call_lists[LYNQ_APN_CHANNEL_MAX] = {};
 int lynq_data_call = 0;
 
+int radio_switch(int status);
+
 int getLynqApnID(char apnType[])
 {
     int ret = 0;
@@ -560,6 +564,7 @@
 
         case LYNQ_URC_MODIFY_APNDB:
         case LYNQ_URC_RESET_APNDB:
+        case LYNQ_TELEPHONY_RESTART:
             return true;                
         default:
             return false;
@@ -796,6 +801,23 @@
                 }
                 free(urc_msg);
             }
+        case LYNQ_TELEPHONY_RESTART:
+            {
+                if(slot_id == 0)
+                {
+                    RLOGI("data has received telephony has restart");
+                    RLOGI("handle set to 10");
+                    lynq_telephony_restart_g = 1;
+                    pthread_mutex_lock(&s_lynq_urc_vector_mutex);
+                    s_data_urc_wait_list.push_back(TELEPHONY_RESTART);
+                    pthread_mutex_unlock(&s_lynq_urc_vector_mutex);
+                    radio_switch(0);
+                    sleep(1);
+                    radio_switch(1);
+                    sleep(1);
+                    sendSignalPdnChange();
+                }
+            }
         default:
             break;
     }
@@ -813,7 +835,7 @@
 }
 int get_imsi();
 int check_apn_status();
-int radio_switch(int status);
+
 int lynq_init_data(int uToken)
 {
     if (g_lynq_data_init_flag == 1)