return ret;
}
+COMPOSER_RETURN_TYPE_E msg_ui_composer_get_thread_id_by_address(msg_handle_t msg_handle, GSList *address_list, msg_thread_id_t *tid)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ if (address_list == NULL || tid == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "param is NULL");
+ return COMPOSER_RETURN_FAIL;
+ }
+
+ COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+ int count = g_slist_length(address_list);
+ int i = 0;
+ msg_struct_list_s *addr_list = NULL;
+ msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+
+ if (msgInfo) {
+ msg_get_list_handle(msgInfo, MSG_MESSAGE_ADDR_LIST_STRUCT, (void**)&addr_list);
+
+ addr_list->nCount = count;
+ for (i = 0; i < count; i++) {
+ char *address = (char *)g_slist_nth_data(address_list, i);
+ if (address == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "address is NULL, skip");
+ continue;
+ }
+
+ int addr_type = get_address_type((const char*)address);
+ if (addr_type == COMPOSER_UTIL_ADDRTYPE_NUMBER)
+ msg_set_int_value(addr_list->msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_PLMN);
+ else if (addr_type == COMPOSER_UTIL_ADDRTYPE_EMAIL)
+ msg_set_int_value(addr_list->msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_TYPE_INT, MSG_ADDRESS_TYPE_EMAIL);
+ msg_set_int_value(addr_list->msg_struct_info[i], MSG_ADDRESS_INFO_RECIPIENT_TYPE_INT, MSG_RECIPIENTS_TYPE_TO);
+ msg_set_str_value(addr_list->msg_struct_info[i], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, address, strlen(address));
+ }
+
+ msg_get_thread_id_by_address(msg_handle, addr_list, tid);
+
+ msg_release_struct(&msgInfo);
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msgInfo is NULL");
+ ret = COMPOSER_RETURN_FAIL;
+ }
+
+ return ret;
+}
+
+COMPOSER_RETURN_TYPE_E msg_ui_composer_delete_draft_message(msg_handle_t msg_handle, msg_thread_id_t tid)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+
+ COMPOSER_RETURN_TYPE_E ret = COMPOSER_RETURN_SUCCESS;
+ msg_struct_list_s msg_list = {0,};
+
+ if (msg_get_message_list(msg_handle, MSG_DRAFT_ID, tid, 0, 0, &msg_list) == MSG_SUCCESS) {
+ int i = 0;
+ int msgid = 0;
+
+ if (msg_list.nCount)
+ D_MSG("delete draft message");
+
+ for (i = 0; i < msg_list.nCount; i++) {
+ msg_get_int_value(msg_list.msg_struct_info[i], MSG_MESSAGE_ID_INT, &msgid);
+ D_MSG("draft msg_id is %d", msgid);
+ if (msg_delete_message(msg_handle, msgid) != COMPOSER_RETURN_SUCCESS)
+ D_EMSG("msg_delete_message is failed, msgid = %d", msgid);
+ }
+ }
+ msg_release_list_struct(&msg_list);
+
+ return ret;
+}
+
COMPOSER_RETURN_TYPE_E msg_ui_composer_save_message(msg_handle_t msg_handle, int msg_id)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);