[Feature][T106][task-view-625]Add API for Checking whether the SMS database is full
Only Configure :No
Affected branch: master
Affected module: sms
Is it affected on both ZXIC and MTK:only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: Icfda70f5a6fe4da4114576138d4d52825334ef85
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h
index 8e74197..a4a872a 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/commands.h
@@ -207,6 +207,9 @@
{"LYNQ_REQUEST_CHANGE_RADIO",setRadioPower,"setRadioPower",LYNQ_REQUEST_CHANGE_RADIO},/*lei add for both radio on/off */
{"LYNQ_REQUEST_CHANGE_SLEEP_STATE",getSleepState,"lynq get Sleep State",LYNQ_REQUEST_CHANGE_SLEEP_STATE},/*jb.qi change for suspend 2024/2/23 */
/*Warren change for t800 ril service 2022/1/18 end*/
+ /*cz.li change for t106 ril service 2024/11/06 start*/
+ {"LYNQ_REQUEST_GET_SMSDATABASE_STATE",getsmsDatabasestatus,"lynq get smsdatabase State",LYNQ_REQUEST_GET_SMSDATABASE_STATE},
+ /*cz.li change for t106 ril service 2024/11/06 start*/
#ifdef C2K_SUPPORT
{"RIL_REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG",getCdmaBroadcastConfig, "get broadcast config",RIL_REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG},
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/lynq_interface.h b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/lynq_interface.h
index db8e782..2a4f339 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/lynq_interface.h
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/lynq_interface.h
@@ -24,6 +24,7 @@
#define LYNQ_REQUEST_CHANGE_SCREEN_STATE (LYNQ_REQUEST_VENDOR_BASE + 14)/*jb.qi add for two sim suspend 2022/9/19*/
#define LYNQ_REQUEST_CHANGE_RADIO (LYNQ_REQUEST_VENDOR_BASE + 15)
#define LYNQ_REQUEST_CHANGE_SLEEP_STATE (LYNQ_REQUEST_VENDOR_BASE + 16)/*jb.qi change for suspend 2024/2/23 start*/
+#define LYNQ_REQUEST_GET_SMSDATABASE_STATE (LYNQ_REQUEST_VENDOR_BASE + 17)
#define LYNQ_REQUEST_SET_VOICE_AUDIO_MODE (LYNQ_REQUEST_VENDOR_BASE + 28)
#define LYNQ_REQUEST_GET_VOICE_AUDIO_MODE (LYNQ_REQUEST_VENDOR_BASE + 21)
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp
index 19b2854..0899cbf 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/ril.cpp
@@ -5337,6 +5337,7 @@
case RIL_REQUEST_GET_MSISDN:return "RIL_REQUEST_GET_MSISDN";
case RIL_REQUEST_RESET_SIMCARD:return "RIL_REQUEST_RESET_SIMCARD";
case LYNQ_REQUEST_CHANGE_SLEEP_STATE: return "LYNQ_REQUEST_CHANGE_SLEEP_STATE";/*jb.qi change for suspend 2024/2/23 */
+ case LYNQ_REQUEST_GET_SMSDATABASE_STATE: return "LYNQ_REQUEST_GET_SMSDATABASE_STATE";
/*warren add for t800 ril service 2022/1/22 end*/
default: return "<unknown request>";
}
@@ -5607,6 +5608,7 @@
case LYNQ_REQUEST_CHANGE_SCREEN_STATE:return "LYNQ_REQUEST_CHANGE_SCREEN_STATE";/*jb.qi add for two sim sleep 2022/9/19*/
case LYNQ_REQUEST_CHANGE_RADIO:return "LYNQ_REQUEST_CHANGE_RADIO";/*lei add for factory test of sleep 2022/9/19*/
case LYNQ_REQUEST_CHANGE_SLEEP_STATE:return "LYNQ_REQUEST_CHANGE_SLEEP_STATE";/*jb.qi add for two sim sleep 2022/9/19*/
+ case LYNQ_REQUEST_GET_SMSDATABASE_STATE: return "LYNQ_REQUEST_GET_SMSDATABASE_STATE";
case RIL_REQUEST_GET_MSISDN: return "GET MSISDN";
case RIL_REQUEST_RESET_SIMCARD: return "RESET SIMCARD";
/*warren add for t800 ril service 2022/1/22 end*/
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
index 95b5d13..5493846 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.cpp
@@ -174,26 +174,37 @@
break;
}
}
- if((!sms_usable)&&(count==LYNQ_MAX_SMS_LIST))
+ if((!sms_usable)&&(count > LYNQ_MAX_SMS_LIST))
{
set_sms_full(true);
}
sqlite3_close(smsDb);
return count;
}
-int sms_manager::lynq_write_sms_to_memory(const char* data,const char *num,const char *smsc,const char *msg,const int charset,const int slot_id,int current,int total)
+
+int sms_manager::lynq_check_sms_full()
{
int id = find_unuse_sms_index(SMS_DB_PATH);
RLOGD("[%s] id = %d\n",__FUNCTION__,id);
- //lynq_sms_list_t * sms_list = (lynq_sms_list_t * )malloc(sizeof(lynq_sms_list_t *));
if(!get_sms_full())
{
+ return id;
+ }
+ LYERRLOG("sms storage space is full!!!");
+ return -1;
+}
+
+int sms_manager::lynq_write_sms_to_memory(const char* data,const char *num,const char *smsc,const char *msg,const int charset,const int slot_id,int current,int total)
+{
+ int id = lynq_check_sms_full();
+ if(id > 0)
+ {
RLOGD("[%s] sms full is false\n",__FUNCTION__);
lynq_write_sms_to_sms_db(id, slot_id,0,smsc, charset,data,msg,SMS_DB_PATH,num,current,total);
return id;//sms story index
}
- LYERRLOG("sms storage space is full!!!");
- return -1;
+ else
+ return -1;
}
int sms_manager::lynq_delete_sms_from_memory(const int index)
{
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.h b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.h
index 1aca145..51532fc 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.h
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/lynqSmsManager/lynq_sms_manager.h
@@ -73,6 +73,7 @@
int lynq_delete_sms_from_memory(const int index);
int lynq_read_sms_from_memory(const int index, lynq_sms_t *sms);
int lynq_list_sms_from_memory(const int status,lynq_sms_list_t * sms_list);
+ int lynq_check_sms_full();
int get_sms_total()
{
return sms_total;
@@ -105,8 +106,8 @@
int create_sms_table(char*path);
int create_sms_number_table(char * path);
int lynq_write_sms_to_sms_db(int id,int slot_id,int status,const char *smsc,int charset,const char *pdu,const char *content,char *path,const char*address,int current,int total);
- int find_unuse_sms_index(char *path);
int lynq_check_index(int total);
+ int find_unuse_sms_index(char *path);
int sms_total;
int sms_usable_id;
bool sms_full;
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp
index 474624b..a3e19ae 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.cpp
@@ -67,6 +67,21 @@
writeStringToParcel(p, (const char *)pdu);
}
+int getsmsDatabasestatus(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI)
+{
+ android::Parcel p;
+ int id = g_smsManagement->lynq_check_sms_full();
+ RLOGD("[%s] id = %d\n",__FUNCTION__,id);
+ android::lynqAssemblyParcelheader(p,socket_id,pRI->uToken,LYNQ_REQUEST_READ_SMS_FROM_MEMORY,0,0);
+
+ p.writeInt32(id);
+
+ android::LYNQ_RIL_respSocket(p,(void *)pRI);
+ free(pRI);
+ return 0;
+}
+
+
//RIL_REQUEST_SEND_SMS
int sendSMS(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI){
char smscPDU[30]= {0};
diff --git a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.h b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.h
index 82f747b..895e7db 100755
--- a/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.h
+++ b/cap/zx297520v3/src/lynq/framework/lynq-ril-service/src/sms/sms.h
@@ -101,6 +101,7 @@
int deleteSmsToMemory(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
int listSmsToMemory(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
/*Warren change for t800 ril service 2022/1/18 end*/
-
-
+/*cz.li change for t106 ril service 2024/11/06 start*/
+int getsmsDatabasestatus(int argc, char **argv, RIL_SOCKET_ID socket_id, RequestInfo *pRI);
+/*cz.li change for t106 ril service 2022/11/06 end*/
#endif
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/include/lynq_qser_sms.h b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/include/lynq_qser_sms.h
index 7276fca..0d102f0 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/include/lynq_qser_sms.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/include/lynq_qser_sms.h
@@ -211,6 +211,10 @@
int qser_sms_setsmscenteraddress( sms_client_handle_type h_sms,
QSER_sms_service_center_cfg_t *get_sca_cfg);
+/* Get sms Database status.
+*/
+int qser_sms_getDatabasestatus();
+
/*
Usage 1 (register callback and wait for new sms arrive):
1, qser_sms_client_init
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
index a86d8a5..1990166 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-qser-sms/lynq_qser_sms.cpp
@@ -204,5 +204,9 @@
return lynq_set_smsc_address(get_sca_cfg->service_center_addr);
}
+int qser_sms_getDatabasestatus()
+{
+ return(lynq_get_smsdatabase_status());
+}
DEFINE_LYNQ_LIB_LOG(LYNQ_QSER_SMS)
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-sms/include/libsms/lynq_sms.h b/cap/zx297520v3/src/lynq/lib/liblynq-sms/include/libsms/lynq_sms.h
index 0d346a6..cdd7b30 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-sms/include/libsms/lynq_sms.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-sms/include/libsms/lynq_sms.h
@@ -22,6 +22,7 @@
int lynq_list_sms(char index_list[SMS_NUM_MAX]);
int lynq_delete_sms(int index);
int lynq_wait_receive_new_sms(int *handle);
+int lynq_get_smsdatabase_status();
#ifdef __cplusplus
}
#endif
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_common.h b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_common.h
index 60719ef..9a3d58e 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_common.h
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_common.h
@@ -30,6 +30,7 @@
#define LYNQ_REQUEST_OOS_DEEP_SLEEP_RECOVER_TIMER_INTERVAL (LYNQ_REQUEST_VENDOR_BASE +13)
#define LYNQ_REQUEST_CHANGE_SCREEN_STATE (LYNQ_REQUEST_VENDOR_BASE + 14)/*jb.qi add for two sim suspend 2022/9/19*/
#define LYNQ_REQUEST_CHANGE_RADIO (LYNQ_REQUEST_VENDOR_BASE + 15)
+#define LYNQ_REQUEST_GET_SMSDATABASE_STATE (LYNQ_REQUEST_VENDOR_BASE + 17)
/*the same with lynq_interface.h end*/
typedef enum{
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
index 8d012da..1926a23 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_module_socket.cpp
@@ -228,7 +228,6 @@
lynq_client_t client;
int ret;
int send_num;
-
client.uToken = g_module_Global_uToken;
g_module_Global_uToken=(g_module_Global_uToken+1)%10000;/*0-10000*/
client.request = request_id;
@@ -593,6 +592,7 @@
case LYNQ_REQUEST_READ_SMS_FROM_MEMORY:
case LYNQ_REQUEST_DELETE_SMS_FROM_MEMORY:
case LYNQ_REQUEST_LIST_SMS_FROM_MEMORY:
+ case LYNQ_REQUEST_GET_SMSDATABASE_STATE:
return true;
default:
return false;
@@ -1034,6 +1034,9 @@
case LYNQ_REQUEST_CHANGE_SCREEN_STATE:return "LYNQ_REQUEST_CHANGE_SCREEN_STATE";/*jb.qi add for two sim sleep 2022/9/19*/
case LYNQ_REQUEST_CHANGE_RADIO:return "LYNQ_REQUEST_CHANGE_RADIO";/*lei add for factory test of sleep 2022/9/19*/
/*warren add for t800 ril service 2022/1/22 end*/
+ /*cz.li change for t106 ril service 2024/11/06 start*/
+ case LYNQ_REQUEST_GET_SMSDATABASE_STATE:return "LYNQ_REQUEST_GET_SMSDATABASE_STATE";
+ /*cz.li change for t106 ril service 2024/11/06 start*/
default: return "<unknown request>";
}
}
diff --git a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp
index 9d5ef30..d45ff0a 100755
--- a/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp
+++ b/cap/zx297520v3/src/lynq/lib/liblynq-sms/lynq_sms.cpp
@@ -210,6 +210,22 @@
return RESULT_OK;
}
+int lynq_get_smsdatabase_status()
+{
+ Parcel* p=NULL;
+ int states=0;
+ int ret=lynq_send_common_request(p,g_wait_time,LYNQ_REQUEST_GET_SMSDATABASE_STATE,0,"");
+ if(ret!=0)
+ {
+ return ret;
+ }
+ LYDBGLOG("LYNQ_REQUEST_GET_SMSDATABASE_STATE SUCCESS!");
+ p->readInt32(&states);
+ delete p;
+ return states;
+}
+
+
int lynq_get_smsc_address(char service_num[SMSC_MAX_LEN])
{
if(g_module_init_flag != MODULE_RUNNING)