📄 jpim_phonebook.c
字号:
typedef enum
{
JPIM_PHB_STATE_IDLE,
JPIM_PHB_STATE_GET_COUNT,
JPIM_PHB_STATE_GET_ENTRY,
JPIM_PHB_STATE_APPEND_ENTRY,
JPIM_PHB_STATE_UPDATE_ENTRY,
JPIM_PHB_STATE_DELETE_ENTRY,
JPIM_PHB_STATE_SEARCH_ENTRY,
JPIM_PHB_STATE_GET_GROUP_COUNT,
JPIM_PHB_STATE_GET_GROUP_INFO,
JPIM_PHB_STATE_SET_GROUP_INFO
} jpim_phb_state_enum;
static kal_int32 jpim_phb_count = 0;
static kal_int32 jpim_phb_result = 0;
static kal_int32 jpim_phb_index = -1;
static kal_int32 jpim_phb_handle = 0xFFFF;
static jpim_phb_state_enum jpim_phb_state = JPIM_PHB_STATE_IDLE;
/*****************************************************************************
* FUNCTION
* jpim_phb_getSupportField
* DESCRIPTION
* This function retrieves the support field of the phonebook database.
* PARAMETERS
* storage [in] jpim_phb_storage_enum
* size [in/out] If *size = 0, will return the size of buffer that need.
* If *size != 0, will return the real size that we put into buffer
* field [out] buffer to put supported fields
* RETURNS
* jpim_error_code_enum
* JPIM_SIZE_TOO_SMALL - buffer size is too small
*****************************************************************************/
kal_int32 jpim_phb_getSupportField(kal_int32 storage, kal_int32* size, kal_int32* field)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
const static kal_int32 sim[] = { JPIM_C_FORMATTED_NAME, JPIM_C_TEL };
const static kal_int32 nsim = sizeof(sim)/sizeof(kal_int32);
const static kal_int32 phone[] =
{
JPIM_C_FORMATTED_NAME,
#ifdef JSR_75_PIM_EXTRA_BIRTHDAY
JPIM_C_BIRTHDAY,
#endif
#ifdef JSR_75_PIM_EXTRA_INFO
JPIM_C_ADDR,
JPIM_C_NOTE,
JPIM_C_PHOTO,
#endif
JPIM_C_EMAIL,
JPIM_C_ORG,
JPIM_C_TEL
};
const static kal_int32 nphone = sizeof(phone)/sizeof(kal_int32);
kal_int32 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_DUAL_SIM_MASTER__
if (storage == JPIM_PHB_SIM || storage == JPIM_PHB_SIM2)
#else
if (storage == JPIM_PHB_SIM)
#endif
{
if( *size < nsim)
{
*size = nsim;
return JPIM_SIZE_TOO_SMALL;
}
*size = nsim;
for( i = 0 ;i < nsim; i++ )
{
field[i] = sim[i];
}
return JPIM_SUCCESS;
}
else if( storage == JPIM_PHB_NVRAM || storage == JPIM_PHB_STORAGE_BOTH)
{
if( *size < nphone)
{
*size = nsim;
return JPIM_SIZE_TOO_SMALL;
}
*size = nphone;
for( i = 0 ;i < nphone; i++ )
{
field[i] = phone[i];
}
return JPIM_SUCCESS;
}
else
{
return JPIM_PARA_ERROR;
}
return JPIM_ERROR;
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getSupportAttr
* DESCRIPTION
* This function retrieves the support attribute of the phonebook database.
* PARAMETERS
* storage [in] jpim_phb_storage_enum
* field [in]
* size [in/out]
* attr [out]
* RETURNS
* jpim_error_code_enum
* JPIM_SIZE_TOO_SMALL - buffer size is too small
*****************************************************************************/
kal_int32 jpim_phb_getSupportAttr(kal_int32 storage, kal_int32 field, kal_int32* size, kal_int32* attr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
const static kal_int32 sim[] = { JPIM_C_ATTR_MOBILE};
const static kal_int32 phone[] = { JPIM_C_ATTR_FAX, JPIM_C_ATTR_HOME,
JPIM_C_ATTR_MOBILE, JPIM_C_ATTR_WORK, JPIM_C_ATTR_PREFERRED};
const static kal_int32 nsim = sizeof(sim)/sizeof(kal_int32);
const static kal_int32 nphone = sizeof(phone)/sizeof(kal_int32);
kal_int32 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
#ifdef __MMI_DUAL_SIM_MASTER__
if (storage == JPIM_PHB_SIM || storage == JPIM_PHB_SIM2)
#else
if (storage == JPIM_PHB_SIM)
#endif
{
if (field == JPIM_C_TEL || field == JPIM_NONE)
{
if( *size < nsim )
{
*size = nsim;
return JPIM_SIZE_TOO_SMALL;
}
*size = nsim;
for(i = 0 ;i < nsim; i++)
{
attr[i] = sim[i];
}
return JPIM_SUCCESS;
}
}
else if( storage == JPIM_PHB_NVRAM || storage == JPIM_PHB_STORAGE_BOTH)
{
if(field == JPIM_C_TEL || field == JPIM_NONE)
{
if( *size < nphone )
{
*size = nphone;
return JPIM_SIZE_TOO_SMALL;
}
*size = nphone;
for(i = 0 ;i < nphone; i++)
{
attr[i] = phone[i];
}
return JPIM_SUCCESS;
}
}
else
{
*size = 0;
return JPIM_PARA_ERROR;
}
return JPIM_ERROR;
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getIndexByHandle
* DESCRIPTION
* This function can transfer the item handle to index by specific sort type.
* PARAMETERS
* sort_type [in] jpim_phb_sort_type_enum
* storage [in] jpim_phb_storage_enum
* handle [in]
* RETURNS
* 0~ 0xfffe -- the index value
* 0xffff -- error
*****************************************************************************/
kal_int32 jpim_phb_getIndexByHandle(kal_uint8 sort_type,kal_uint8 storage, kal_uint16 handle)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
return mmi_phb_java_util_get_index_by_store_index(
(U8)jpim_transfer_phb_sort(sort_type),
(U8)jpim_transfer_phb_storage(storage),
(U16)handle);
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getHandleByIndex
* DESCRIPTION
* This function can transfer the item sort index to handle
* PARAMETERS
* sort_type [in] jpim_phb_sort_type_enum
* storage [in] jpim_phb_storage_enum
* index [in]
* RETURNS
* 0~ 0xfffe -- the handle value
* 0xffff -- error
*****************************************************************************/
kal_int32 jpim_phb_getHandleByIndex(kal_uint8 sort_type,kal_uint8 storage, kal_uint16 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
return mmi_phb_java_util_get_store_index_by_sort_index(
(U8)jpim_transfer_phb_sort(sort_type),
(U8)jpim_transfer_phb_storage(storage),
(U16)index);
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getName
* DESCRIPTION
*
* PARAMETERS
* void
* RETURNS
*
*****************************************************************************/
kal_wchar* jpim_phb_getName(kal_int32 storage)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_GROUP_2, JPIM_PHB_GET_NAME);
switch(storage)
{
#ifdef __MMI_DUAL_SIM_MASTER__
case JPIM_PHB_SIM:
return (kal_wchar*) GetString(STRING_MTPNP_SIM1);
case JPIM_PHB_SIM2:
return (kal_wchar*) GetString(STRING_MTPNP_SIM2);
#else
case JPIM_PHB_SIM:
return (kal_wchar*) GetString(STR_STORAGE_SIM);
#endif
case JPIM_PHB_NVRAM:
return (kal_wchar*) GetString(STR_STORAGE_PHONE);
default:
return (kal_wchar*) GetString(STR_SCR_PBOOK_CAPTION);
}
return NULL;
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getFieldLabel
* DESCRIPTION
*
* PARAMETERS
* field [IN]
* RETURNS
*
*****************************************************************************/
kal_wchar *jpim_phb_getFieldLabel(kal_int32 field)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG_1(TRACE_GROUP_2, JPIM_PHB_GETFIELDLABEL, field);
switch (field)
{
case JPIM_C_BIRTHDAY:
return (kal_wchar*) GetString(STR_ID_PHB_BIRTHDAY);
case JPIM_C_EMAIL:
return (kal_wchar*) GetString(STR_EMAIL_ADRESS);
case JPIM_C_FORMATTED_ADDR:
return (kal_wchar*) GetString(STR_ID_PHB_ADDRESS);
case JPIM_C_FORMATTED_NAME:
return (kal_wchar*) GetString(STR_ID_PHB_NAME);
case JPIM_C_NICKNAME:
return (kal_wchar*) GetString(STR_ID_PHB_SNE);
case JPIM_C_NOTE:
return (kal_wchar*) GetString(STR_ID_PHB_NOTE);
case JPIM_C_ORG:
return (kal_wchar*) GetString(STR_COMPNAY_NAME);
case JPIM_C_TEL:
return (kal_wchar*) GetString(STR_ID_PHB_MOBILE_NUMBER);
case JPIM_C_TITLE:
return (kal_wchar*) GetString(STR_ID_PHB_TITLE);
case JPIM_C_URL:
return (kal_wchar*) GetString(STR_ID_PHB_URL);
case JPIM_C_ADDR:
return (kal_wchar*) GetString(STR_ID_PHB_ADDRESS);
case JPIM_C_PHOTO:
return (kal_wchar*) GetString(STR_ASSOCIATE_PICTURE);
default:
return NULL;
}
}
/*****************************************************************************
* FUNCTION
* jpim_phb_getFieldLabel
* DESCRIPTION
*
* PARAMETERS
* field [IN]
* RETURNS
*
*****************************************************************************/
kal_wchar *jpim_phb_getFieldEleLabel(kal_int32 field, kal_int32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG_1(TRACE_GROUP_2, JPIM_PHB_GETFIELDLABEL, field);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -