Merge "[Bugfix][L805A-6] solve lynq_get_current_call_state_ext get slot failed after hungup current call" into DSDS
diff --git a/common_src/framework/lynq-ril-service/src/sim.cpp b/common_src/framework/lynq-ril-service/src/sim.cpp
index d6023be..f0ee5d9 100755
--- a/common_src/framework/lynq-ril-service/src/sim.cpp
+++ b/common_src/framework/lynq-ril-service/src/sim.cpp
@@ -219,13 +219,14 @@
str = str + "default data: " + std::to_string(get_default_sim_data()) + "\n";
str = str + "main capability SIM: " + std::to_string(Radio_capability_switch_util::get_main_capability_phone_id()) + "\n";
#ifdef MODE_DSDS
+ RLOGD(str.c_str());
android::Parcel p;
p.writeInt32(1);//response_type
p.writeInt32(0);//token
p.writeInt32(LYNQ_REQUEST_GET_DEFAULT_SIM_ALL);//request_id
p.writeInt32(slot_id);//slot_id
p.writeInt32(0);//error_code
- p.writeInt32((get_default_sim_data()*2) + (get_default_sim_all_except_data()));//data
+ p.writeInt32((get_default_sim_data()) + (get_default_sim_all_except_data()*2));//data
p.setDataPosition(0);
android::lynq_emResultNotify(p);
#else
diff --git a/common_src/lib/liblynq-data/lynq_data.cpp b/common_src/lib/liblynq-data/lynq_data.cpp
index 06913d4..e0bf95a 100755
--- a/common_src/lib/liblynq-data/lynq_data.cpp
+++ b/common_src/lib/liblynq-data/lynq_data.cpp
@@ -1982,10 +1982,47 @@
{
LYINFLOG("check_apn_status enter");
int ret = -1;
+ int sim_ret = -1;
+ int slot = -1;
char cmd_ret[8] ={0};//get mccmnc
- const char *cmd = "uci get radio_property.property.vendor_ril_data_gsm_mcc_mnc0";
+ const char *sim_0_cmd = "uci get radio_property.property.vendor_ril_data_gsm_mcc_mnc0";
+ const char *sim_1_cmd = "uci get radio_property.property.vendor_ril_data_gsm_mcc_mnc1";
+ const char *sim_cmd = "uci get radio_property.property.persist_vendor_radio_data_sim";
const char *empty_str = ":empty";
- ret = exec_cmd(cmd,cmd_ret,8);
+ //xy.he add for get sim slot at 20240507 start
+ sim_ret = exec_cmd(sim_cmd,cmd_ret,8);
+ if(sim_ret==0)
+ {
+ if(strlen(cmd_ret)==0)
+ {
+ LYERRLOG("not have sim config in uci ram");
+ return 1;
+ }
+ if(strncmp(cmd_ret,empty_str,strlen(empty_str))==0)
+ {
+ LYERRLOG("sim is empty");
+ return 2;
+ }
+ LYINFLOG("sim is %s",cmd_ret);
+ slot = atoi(cmd_ret);
+ }
+ else
+ {
+ LYERRLOG("exec cmd fail");
+ return -1;
+ }
+
+ if(slot == 1)
+ {
+ ret = exec_cmd(sim_0_cmd,cmd_ret,8);
+ }
+
+ else if(slot == 2)
+ {
+ ret = exec_cmd(sim_1_cmd,cmd_ret,8);
+ }
+ //xy.he add for get sim slot at 20240507 end
+
if(ret==0)
{
if(strlen(cmd_ret)==0)