Merge "[Bugfix][T106BUG-488]fix netled error about data"
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp
index 2522423..b05400c 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/data/data.cpp
@@ -56,6 +56,10 @@
 /*Warren add forT800 platform 2021/12/25 start*/
 #include "lynq_common.h"
 #include "lynq_interface.h"
+#ifdef LED_SUPPORT
+#include "led.h"
+#include <include/lynq_uci.h>
+#endif
 using android::Parcel;
 /*Warren add for t800 ril service  2021/12/25 end*/
 #undef LOG_TAG
@@ -153,6 +157,11 @@
 #define IOT_DATAASST_PDN_APN_TYPE_NET_5     (0x04000000)
 #define IOT_DATAASST_PDN_APN_TYPE_NET_6     (0x08000000)
 
+#ifdef LED_SUPPORT
+#define LED_ON 4
+#define LYNQ_UCI_SECTION "lynq_led"
+#define LYNQ_UCI_NETLED_KEY "lynq_netled_on"
+#endif
 #define LEN 128
 char line[LEN] = {0};
 char csname[27] = {0};
@@ -1517,6 +1526,7 @@
 void updateRILDataCallResponsev11(int num ,RIL_Data_Call_Response_v11* p_cur)
 {
     int i = 0;
+    int pdp_count = 0;
     RLOGD("in updateRILDataCallResponsev11");
     if(num != 1)
     {
@@ -1575,6 +1585,21 @@
             lynq_apn_cid_table[i].used,
             lynq_apn_cid_table[i].address,
             lynq_apn_cid_table[i].dialing);
+            if(lynq_apn_cid_table[i].cid != -1)
+            {
+                pdp_count++;
+            }
+    }
+    if(pdp_count == 1)
+    {
+#ifdef LED_SUPPORT
+        char netled_on[LED_ON] = "";
+        lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, netled_on);
+        if(1 == atoi(netled_on))
+        {
+            mbtk_netled_state_update(GPIO_NETLED_PPP_CONNECT);
+        }
+#endif
     }
 }
 //xf.li@20230610 add for T106 end
@@ -1647,6 +1672,7 @@
 #ifdef MOBILETEK_TARGET_PLATFORM_T106
 void handleUnsolDataCalllistChange(int num ,RIL_Data_Call_Response_v11* p_cur){
     int i;
+    int pdp_count = 0;
     RLOGD("num = %d, apn_count = %d", num, apn_count);
     for(int j = 0; j < LYNQ_APN_CHANNEL_MAX; j++)
     {
@@ -1719,6 +1745,21 @@
             lynq_apn_cid_table[i].used,
             lynq_apn_cid_table[i].address,
             lynq_apn_cid_table[i].dialing);
+        if(lynq_apn_cid_table[i].cid != -1)
+        {
+            pdp_count++;
+        }
+    }
+    if(pdp_count == 0)
+    {
+#ifdef LED_SUPPORT
+        char netled_on[LED_ON] = "";
+        lynq_get_value(LYNQ_UCI_FILE, LYNQ_UCI_SECTION, LYNQ_UCI_NETLED_KEY, netled_on);
+        if(1 == atoi(netled_on))
+        {
+            mbtk_netled_state_update(GPIO_NETLED_PPP_CLOSED);
+        }
+#endif
     }