📄 pim_item.c
字号:
category = pim_getCategoryByIndex(dbhandle, category_id);
}
else
{
category = NULL;
}
KNI_StartHandles(2);
KNI_DeclareHandle(str_array);
KNI_DeclareHandle(str);
KNI_GetParameterAsObject(4, str_array);
KNI_NewString((const jchar*)category, (jsize) app_ucs2_strlen((kal_int8*)category), str);
KNI_SetObjectArrayElement(str_array, 0, str);
KNI_EndHandles();
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getDateN
* DESCRIPTION
* private native long getDateN(int listType, int handle, int rechandle, int field, int index);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_LONG
Java_com_ibm_oti_pim_PIMItemImpl_getDateN(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 rechandle = KNI_GetParameterAsInt(3);
kal_int32 field = KNI_GetParameterAsInt(4);
// kal_int32 index = KNI_GetParameterAsInt(5);
void *item = NULL;
kal_int64 dateData = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_GETDATEN);
CHECK_FIELD_SUPPORT(listtype, dbhandle, field, KNI_ReturnLong(dateData));
CHECK_ITEM_VALID(listtype, dbhandle, rechandle, &item, KNI_ReturnLong(dateData));
switch (listtype)
{
case CONTACT_LIST:
switch (field)
{
case C_BIRTHDAY:
FAILED_WITH_EXC(((IContact*) item), get_Birthday, (&dateData));
break;
}
break;
case EVENT_LIST:
switch (field)
{
case E_START:
FAILED_WITH_EXC(((IEvent*) item), get_Start, (&dateData));
break;
case E_END:
FAILED_WITH_EXC(((IEvent*) item), get_End, (&dateData));
break;
}
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
}
KNI_ReturnLong(dateData);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getFieldsN2
* DESCRIPTION
* private native int getFieldsN2(int listType, int handle, int rechandle, int[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_getFieldsN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
static kal_int32 fieldsArray[MAX_NUM_FIELDS];
static kal_int32 arraysize = 0;
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 rechandle = KNI_GetParameterAsInt(3);
void *item = NULL;
kal_bool getsize = 0;
kal_int32 i;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
KNI_StartHandles(1);
KNI_DeclareHandle(int_array);
KNI_GetParameterAsObject(4, int_array);
getsize = KNI_IsNullHandle(int_array);
KNI_EndHandles();
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_GETFIELDSN2, getsize);
CHECK_FIELD_RELOAD(listtype, dbhandle, KNI_ReturnInt(-1));
CHECK_ITEM_VALID(listtype, dbhandle, rechandle, &item, KNI_ReturnInt(-1));
if (getsize)
{
arraysize = 0;
switch (listtype)
{
case CONTACT_LIST:
{
IContact *pContact = (IContact*) item;
arraysize = 0;
for (i = NUM_CONTACT_FIELDS - 1; i >= 0; i--)
{
if (countValuesForContact(pContact, contactFields[i]))
{
JPIM_DEBUG_1(TRACE_FUNC, JPIM_LOG_INTEGER, contactFields[i]);
fieldsArray[arraysize++] = contactFields[i];
}
}
}
break;
case EVENT_LIST:
{
IEvent *pEvent = (IEvent*) item;
arraysize = 0;
for (i = NUM_EVENT_FIELDS -1 ; i >= 0; i--)
{
if (countValuesForEvent(pEvent, eventFields[i]))
{
JPIM_DEBUG_1(TRACE_FUNC, JPIM_LOG_INTEGER, eventFields[i]);
fieldsArray[arraysize++] = eventFields[i];
}
}
}
break;
default:
arraysize = 0;
}
KNI_ReturnInt(arraysize);
}
KNI_StartHandles(1);
KNI_DeclareHandle(int_array);
KNI_GetParameterAsObject(4, int_array);
for (i = 0; i < arraysize; i++)
{
KNI_SetIntArrayElement(int_array, i, fieldsArray[i]);
}
KNI_EndHandles();
arraysize = 0;
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getIntN
* DESCRIPTION
* private native int getIntN(int listType, int handle, int rechandle, int field, int index);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_getIntN(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_int32 listtype = KNI_GetParameterAsInt(1);
kal_int32 dbhandle = KNI_GetParameterAsInt(2);
kal_int32 rechandle = KNI_GetParameterAsInt(3);
kal_int32 field = KNI_GetParameterAsInt(4);
// kal_int32 index = KNI_GetParameterAsInt(5);
kal_int32 result = 0;
void *item = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_PIMITEMIMPL_GETINTN);
CHECK_FIELD_SUPPORT(listtype, dbhandle, field, KNI_ReturnInt(-1));
CHECK_ITEM_VALID(listtype, dbhandle, rechandle, &item, KNI_ReturnInt(-1));
switch (listtype)
{
case EVENT_LIST:
switch (field)
{
case E_ALARM:
{
kal_bool alarmEnabled;
FAILED_WITH_EXC(((IEvent*) item), get_ReminderSet, (&alarmEnabled));
if (alarmEnabled)
{
FAILED_WITH_EXC(((IEvent*) item), get_ReminderBeforeStart, (&result));
}
else
{
result = -1;
}
}
break;
}
break;
case TODO_LIST:
PIM_THROW(PIM, "", FEATURE_NOT_SUPPORTED);
break;
default:
PIM_THROW(ILLARG, "", GENERAL_ERROR);
}
KNI_ReturnInt(result);
}
/*****************************************************************************
* FUNCTION
* Java_com_ibm_oti_pim_PIMItemImpl_getStringArrayN2
* DESCRIPTION
* private native int getStringArrayN2(int listType, int handle, int rechandle, int field, int index, String[] ret);
* PARAMETERS
* void
* RETURNS
*****************************************************************************/
KNIEXPORT KNI_RETURNTYPE_INT
Java_com_ibm_oti_pim_PIMItemImpl_getStringArrayN2(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
PIM_THROW(PIM, "No String array fields available", FEATURE_NOT_SUPPORTED);
KNI_ReturnInt(0);
}
/*****************************************************************************
* FUNCTION
* getContactTelephone
* DESCRIPTION
*
* PARAMETERS
* pContact [?]
* index [IN]
* RETURNS
*
*****************************************************************************/
static kal_char *getContactTelephone(IContact *pContact, kal_int32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_char *telData;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG(TRACE_FUNC, FUNC_J2ME_GETCONTACTTELEPHONE);
FAILED_WITH_EXC(pContact, get_MobileNumber, &telData);
if (NOT_EMPTY(telData))
{
index--;
if (index < 0)
{
return telData; /* default */
}
}
FAILED_WITH_EXC(pContact, get_HomeNumber, &telData);
if (NOT_EMPTY(telData))
{
index--;
if (index < 0)
{
return telData;
}
}
FAILED_WITH_EXC(pContact, get_OfficeNumber, &telData);
if (NOT_EMPTY(telData))
{
index--;
if (index < 0)
{
return telData;
}
}
FAILED_WITH_EXC(pContact, get_FaxNumber, &telData);
if (NOT_EMPTY(telData))
{
index--;
if (index < 0)
{
return telData;
}
}
return NULL;
}
/*****************************************************************************
* FUNCTION
* getContactString
* DESCRIPTION
*
* PARAMETERS
* pContact [?]
* field [IN]
* index [IN]
* RETURNS
*
*****************************************************************************/
static kal_char *getContactString(IContact *pContact, kal_int32 field, kal_int32 index)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
kal_char *strData = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
JPIM_DEBUG_1(TRACE_FUNC, FUNC_J2ME_GETCONTACTSTRING, field);
switch (field)
{
case C_FORMATTED_ADDR:
FAILED_WITH_EXC(pContact, get_FormattedAddress, (&strData));
break;
case C_FORMATTED_NAME:
FAILED_WITH_EXC(pContact, get_FormattedName, (&strData));
break;
case C_NICKNAME:
FAILED_WITH_EXC(pContact, get_NickName, (&strData));
break;
case C_EMAIL:
FAILED_WITH_EXC(pContact, get_EmailAddress, (&strData));
break;
case C_TEL:
strData = getContactTelephone(pContact, index);
break;
case C_NOTE:
FAILED_WITH_EXC(pContact, get_ContactNote, (&strData));
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -