[Feature][API-648]switch card fail after pdp actice

Change-Id: I656c972d563094d9f31b86d3be89d23b6e613463
diff --git a/src/lynq/framework/lynq-ril-service/src/data/data.cpp b/src/lynq/framework/lynq-ril-service/src/data/data.cpp
index 9d5eb1a..9a06968 100755
--- a/src/lynq/framework/lynq-ril-service/src/data/data.cpp
+++ b/src/lynq/framework/lynq-ril-service/src/data/data.cpp
@@ -764,6 +764,22 @@
 int setupDataCall(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
 {
     Parcel p;
+    /*jb.qi change for switch card after dial on 20221025 start*/
+    if((argc == 0) && (pRI == NULL))
+    {
+        printf("pRI is null, argc is zero !!!\n");
+        char cmd[256];
+        getCellularService();
+        findCellularName(line);
+        sprintf(cmd, "connmanctl connect %s", csname);
+        int ret = system(cmd);
+        memset(line, LEN*sizeof(char), 0);
+        memset(line, 27*sizeof(char), 0);
+        updataDataConnectState(get_default_sim_data(), true);
+        /* no response from telecore, free pRI prevent memory leak */
+        return ret;
+    }
+    /*jb.qi change for switch card after dial on 20221025 end*/
     if(argc > 2)
     {
         /*Warren add for t800 ril service 2021/12/25 start*/
@@ -1041,6 +1057,31 @@
 {
     bool hasDeactivate = TRUE;
     Parcel p;
+    /*jb.qi change for swtich card after dial on 20221025 start*/
+    if((pRI == NULL) && (argc == 0))
+    {
+        for(int i = 0;i< LYNQ_APN_CHANNEL_MAX;i++)
+        {
+            memset(apn_table[i].apntype,0,sizeof(apn_table[i].apntype));
+            memset(apn_table[i].ifaceName,0,sizeof(apn_table[i].ifaceName));
+            memset(apn_table[i].apn,0,sizeof(apn_table[i].apn));
+            apn_table[i].apnstatus = 0;
+            apn_table[i].netId = 0;
+            apn_table[i].used = 0;
+        }
+        apn_count = 0;
+        printf("pRI is null, argc is zero !!!\n");
+        char cmd[256];
+        getCellularService();
+        findCellularName(line);
+        sprintf(cmd, "connmanctl disconnect %s", csname);
+        int ret = system(cmd);
+        memset(line, LEN*sizeof(char), 0);
+        memset(line, 27*sizeof(char), 0);
+        updataDataConnectState(get_default_sim_data(), false);
+        return ret;
+    }
+    /*jb.qi change for swtich card after dial on 20221025 end*/
     if(argc == 2)
     {
         char* apnType = argv[1];