📄 jpim_phonebook.c
字号:
* start_index [IN]
* pattern [IN]
* RETURNS
* jpim_error_code_enum
*****************************************************************************/
kal_int32 jpim_phb_searchEntry(
mmi_phb_handler_entry_struct *entry,
kal_uint8 storage,
kal_uint8 search_type,
kal_uint16 start_index,
kal_uint8 group,
kal_char *pattern)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 event_group;
mmi_phb_handler_search_entry_req_struct *p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SEARCHENTRY);
p = (mmi_phb_handler_search_entry_req_struct*)
construct_local_para(sizeof(mmi_phb_handler_search_entry_req_struct), TD_CTRL);
p->entry_ptr = entry;
p->sort_type = MMI_PHB_BY_NAME;
p->storage = jpim_transfer_phb_storage(storage);
p->search_type = jpim_transfer_phb_sort(search_type);
p->group = 0;
p->start_index = start_index;
app_ucs2_strcpy((kal_int8*)p->pattern, (kal_int8*)pattern);
jpim_phb_result = MMI_PHB_JAVA_ERROR;
jpim_phb_state = JPIM_PHB_STATE_SEARCH_ENTRY;
jpim_phb_index = 0;
if (jpim_check_vm_state(0))
{
jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_SEARCH_ENTRY_REQ);
kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SEARCH_ENTRY, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
entry->sort_index = jpim_phb_index;
}
else
{
free_local_para((local_para_struct*) p);
}
return jpim_transfer_error_code(JPIM_PHONEBOOK, jpim_phb_result);
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getGroupCount
* DESCRIPTION
* This function retrieves the number of group on handset.
* PARAMETERS
* storage [IN]
* RETURNS
* Number of groups
*****************************************************************************/
kal_int32 jpim_phb_getGroupCount(kal_uint8 storage)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 event_group;
mmi_phb_handler_get_group_info_req_struct *p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
p = (mmi_phb_handler_get_group_info_req_struct*)
construct_local_para(sizeof(mmi_phb_handler_get_group_info_req_struct), TD_CTRL);
p->storage = storage;
p->max_group = 0;
p->group_ptr = NULL;
jpim_phb_result = MMI_PHB_JAVA_ERROR;
jpim_phb_state = JPIM_PHB_STATE_GET_GROUP_COUNT;
jpim_phb_count = 0;
if (jpim_check_vm_state(0))
{
jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_GET_GROUP_INFO_REQ);
kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
}
else
{
free_local_para((local_para_struct*) p);
}
if (jpim_phb_result != MMI_PHB_JAVA_SUCCESS)
{
return 0;
}
else
{
return jpim_phb_count;
}
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getGroupInfo
* DESCRIPTION
* This function retrieves all the group names in the phonebook database.
* PARAMETERS
* storage [IN]
* max_group [IN/OUT]
* group_ptr [OUT]
* RETURNS
* Number of groups
*****************************************************************************/
kal_int32 jpim_phb_getGroupInfo(kal_uint8 storage, kal_uint8 *max_group, mmi_phb_handler_group_struct *group_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 event_group;
mmi_phb_handler_get_group_info_req_struct *p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GETGROUPINFO);
p = (mmi_phb_handler_get_group_info_req_struct*)
construct_local_para(sizeof(mmi_phb_handler_get_group_info_req_struct), TD_CTRL);
p->max_group = *max_group;
p->group_ptr = group_ptr;
p->storage = storage;
jpim_phb_result = MMI_PHB_JAVA_ERROR;
jpim_phb_state = JPIM_PHB_STATE_GET_GROUP_INFO;
jpim_phb_count = 0;
if (jpim_check_vm_state(0))
{
jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_GET_GROUP_INFO_REQ);
kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
}
else
{
free_local_para((local_para_struct*) p);
}
if (jpim_phb_result != MMI_PHB_JAVA_SUCCESS)
{
*max_group = 0;
}
else
{
*max_group = jpim_phb_count;
}
return jpim_transfer_error_code(JPIM_PHONEBOOK, jpim_phb_result);
}
/*****************************************************************************
* FUNCTION
* jpim_phb_setGroupInfo
* DESCRIPTION
*
* PARAMETERS
* group_id [IN]
* group_ptr [IN]
* RETURNS
*
*****************************************************************************/
kal_int32 jpim_phb_setGroupInfo(kal_uint8 group_id, mmi_phb_handler_group_struct *group_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_uint32 event_group;
mmi_phb_handler_set_group_info_req_struct *p;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SETGROUPINFO);
p = (mmi_phb_handler_set_group_info_req_struct*)
construct_local_para(sizeof(mmi_phb_handler_set_group_info_req_struct), TD_CTRL);
p->group_id = group_id;
p->group_ptr = group_ptr;
jpim_phb_result = MMI_PHB_JAVA_ERROR;
jpim_phb_state = JPIM_PHB_STATE_SET_GROUP_INFO;
if (jpim_check_vm_state(1))
{
jpim_send_ilm(p, MSG_ID_MMI_PHB_JAVA_SET_GROUP_INFO_REQ);
kal_retrieve_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SET_GROUP_INFO, KAL_OR_CONSUME, &event_group, KAL_SUSPEND);
}
else
{
free_local_para((local_para_struct*) p);
}
return jpim_transfer_error_code(JPIM_PHONEBOOK, jpim_phb_result);
}
/*****************************************************************************
* FUNCTION
* jpim_phb_handler
* DESCRIPTION
*
* PARAMETERS
* ilm_ptr [?] [?]
* RETURNS
*
*****************************************************************************/
kal_bool jpim_phb_handler(ilm_struct *ilm_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
switch (ilm_ptr->msg_id)
{
case MSG_ID_MMI_PHB_JAVA_GET_ENTRY_RSP:
{
mmi_phb_handler_get_entry_rsp_struct *p = (mmi_phb_handler_get_entry_rsp_struct*) ilm_ptr->local_para_ptr;
if (jpim_phb_state == JPIM_PHB_STATE_GET_COUNT)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_COUNT_RSP);
jpim_phb_result = p->result;
jpim_phb_count = p->count;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GETCOUNT, KAL_OR);
}
else if (jpim_phb_state == JPIM_PHB_STATE_GET_ENTRY)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_ENTRY_RSP);
jpim_phb_result = p->result;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_FETCH_INDEX, KAL_OR);
}
else
{
ASSERT(0);
}
jpim_phb_state = JPIM_PHB_STATE_IDLE;
break;
}
case MSG_ID_MMI_PHB_JAVA_SET_ENTRY_RSP:
{
mmi_phb_handler_set_entry_rsp_struct *p = (mmi_phb_handler_set_entry_rsp_struct*) ilm_ptr->local_para_ptr;
if (jpim_phb_state == JPIM_PHB_STATE_APPEND_ENTRY)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_APPEND_ENTRY_RSP);
jpim_phb_result = p->result;
jpim_phb_handle = p->store_index;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_APPEND_ENTRY, KAL_OR);
}
else if (jpim_phb_state == JPIM_PHB_STATE_UPDATE_ENTRY)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_UPDATE_ENTRY_RSP);
jpim_phb_result = p->result;
jpim_phb_handle = p->store_index;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_UPDATE_ENTRY, KAL_OR);
}
else if (jpim_phb_state == JPIM_PHB_STATE_DELETE_ENTRY)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_DELETE_ENTRY_RSP);
jpim_phb_result = p->result;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_DELETE_ENTRY, KAL_OR);
}
else
{
ASSERT(0);
}
jpim_phb_state = JPIM_PHB_STATE_IDLE;
break;
}
case MSG_ID_MMI_PHB_JAVA_SEARCH_ENTRY_RSP:
{
mmi_phb_handler_search_entry_rsp_struct *p =
(mmi_phb_handler_search_entry_rsp_struct*) ilm_ptr->local_para_ptr;
if (jpim_phb_state == JPIM_PHB_STATE_SEARCH_ENTRY)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SEARCH_ENTRY_RSP);
jpim_phb_result = p->result;
jpim_phb_index = p->index;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SEARCH_ENTRY, KAL_OR);
}
else
{
ASSERT(0);
}
jpim_phb_state = JPIM_PHB_STATE_IDLE;
break;
}
case MSG_ID_MMI_PHB_JAVA_GET_GROUP_INFO_RSP:
{
mmi_phb_handler_get_group_info_rsp_struct *p =
(mmi_phb_handler_get_group_info_rsp_struct*) ilm_ptr->local_para_ptr;
if (jpim_phb_state == JPIM_PHB_STATE_GET_GROUP_INFO)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_GROUP_INFO_RSP);
jpim_phb_result = p->result;
jpim_phb_count = p->count;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR);
}
else if(jpim_phb_state == JPIM_PHB_STATE_GET_GROUP_COUNT)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_GROUP_INFO_RSP);
jpim_phb_result = p->result;
jpim_phb_count = p->count;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_GET_GROUP_INFO, KAL_OR);
}
else
{
ASSERT(0);
}
jpim_phb_state = JPIM_PHB_STATE_IDLE;
break;
}
case MSG_ID_MMI_PHB_JAVA_SET_GROUP_INFO_RSP:
{
mmi_phb_handler_set_group_info_rsp_struct *p =
(mmi_phb_handler_set_group_info_rsp_struct*) ilm_ptr->local_para_ptr;
if (jpim_phb_state == JPIM_PHB_STATE_SET_GROUP_INFO)
{
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_SET_GROUP_INFO);
jpim_phb_result = p->result;
kal_set_eg_events(J2ME_pim_event_group, JPIM_PHB_EG_SET_GROUP_INFO, KAL_OR);
}
else
{
ASSERT(0);
}
jpim_phb_state = JPIM_PHB_STATE_IDLE;
break;
}
default:
return KAL_FALSE;
}
return KAL_TRUE;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -