📄 plxmms_main.c
字号:
if(PLIB_TestMSDC() != PMSDC_OK
#ifdef MMS_SELECTSTOREPATH
&& g_cur_path == g_plug_path
#endif
)
{
if ( PLIB_TestMSDC() == PMSDC_NONE )
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_NOCARD), 0);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif
#endif
if(g_main_data.mmse)
{
if(IsLowSpace(0))
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_NOSPACE), 0);
return;
}
if(!CreateMmsEdit(g_main_data.mmse, -1, -1, 0, SCR_ID_PLX_MMS_MAIN, 0, NULL))
{
//err
}
}
}
/***************************************************************************
* Function InboxEntry
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void InboxEntry(void)
{
#ifdef MMS_SAVEONCARD
#ifdef MMI_ON_HARDWARE_P
if(PLIB_TestMSDC() != PMSDC_OK
#ifdef MMS_SELECTSTOREPATH
&& g_cur_path == g_plug_path
#endif
)
{
if ( PLIB_TestMSDC() == PMSDC_NONE )
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_NOCARD), 0);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif
#endif
if(g_main_data.mmse)
{
if(!CreateMmsBox(g_main_data.mmse, (char*)MMSE_FOLDER_INBOX))
{
PLIB_MessageBox(PMBTYPE_EMPTY, NULL,
(WCHAR*)GetString(STR_GLOBAL_EMPTY), 0);
}
}
}
/***************************************************************************
* Function OutboxEntry
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void OutboxEntry(void)
{
#ifdef MMS_SAVEONCARD
#ifdef MMI_ON_HARDWARE_P
if(PLIB_TestMSDC() != PMSDC_OK
#ifdef MMS_SELECTSTOREPATH
&& g_cur_path == g_plug_path
#endif
)
{
if ( PLIB_TestMSDC() == PMSDC_NONE )
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_NOCARD), 0);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif
#endif
if(g_main_data.mmse)
{
if(!CreateMmsBox(g_main_data.mmse, (char*)MMSE_FOLDER_OUTBOX))
{
PLIB_MessageBox(PMBTYPE_EMPTY, NULL,
(WCHAR*)GetString(STR_GLOBAL_EMPTY), 0);
}
}
}
/***************************************************************************
* Function SentEntry
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void SentEntry(void)
{
#ifdef MMS_SAVEONCARD
#ifdef MMI_ON_HARDWARE_P
if(PLIB_TestMSDC() != PMSDC_OK
#ifdef MMS_SELECTSTOREPATH
&& g_cur_path == g_plug_path
#endif
)
{
if ( PLIB_TestMSDC() == PMSDC_NONE )
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_NOCARD), 0);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif
#endif
if(g_main_data.mmse)
{
if(!CreateMmsBox(g_main_data.mmse, (char*)MMSE_FOLDER_SENT))
{
PLIB_MessageBox(PMBTYPE_EMPTY, NULL,
(WCHAR*)GetString(STR_GLOBAL_EMPTY), 0);
}
}
}
/***************************************************************************
* Function DraftEntry
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void DraftEntry(void)
{
#ifdef MMS_SAVEONCARD
#ifdef MMI_ON_HARDWARE_P
if(PLIB_TestMSDC() != PMSDC_OK
#ifdef MMS_SELECTSTOREPATH
&& g_cur_path == g_plug_path
#endif
)
{
if ( PLIB_TestMSDC() == PMSDC_NONE )
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_NOCARD), 0);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif
#endif
if(g_main_data.mmse)
{
if(!CreateMmsBox(g_main_data.mmse, (char*)MMSE_FOLDER_DRAFT))
{
PLIB_MessageBox(PMBTYPE_EMPTY, NULL,
(WCHAR*)GetString(STR_GLOBAL_EMPTY), 0);
}
}
}
/***************************************************************************
* Function SettingEntry
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void SettingEntry(void)
{
if(g_main_data.mmse)
{
if(!CreateSetting(g_main_data.mmse))
{
}
}
}
void IfViewNewCallback(PLIBEVENT event)
{
switch(event)
{
case PEVENT_POSITIVE:
OnNewMessageOk();
break;
case PEVENT_NEGTIVE:
OnNewMessageBack();
break;
}
}
void OnNewMessageOk(void)
{
if(g_main_data.new_msg_id < 0) //invalid id, just go back
{
if(IsScreenPresent(g_main_data.new_msg_back_screen))
GoBackToHistory(g_main_data.new_msg_back_screen);
else
GoBackHistory();
}
//view
#ifdef MMS_RECV_VIEWATONCE
if(!CreateMmsViewWithID(g_main_data.mmse, g_main_data.new_msg_id,
MMSE_FOLDER_INBOX, g_main_data.new_msg_back_screen))
#else
if(!CreateMmsViewWithID(g_main_data.mmse, g_main_data.new_msg_id,
MMSE_FOLDER_INBOX, MMS_NEW_MSG_VIEW_BACK_SCREEN))
#endif
{
//GoBackToHistory(g_main_data.new_msg_back_screen);
if(IsScreenPresent(g_main_data.new_msg_back_screen))
GoBackToHistory(g_main_data.new_msg_back_screen);
else
GoBackHistory();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_OPENFAIL), 0);
}
UpdateInBoxIconForReading(g_main_data.new_msg_id);
//no message
g_main_data.new_msg_id = -1;
g_main_data.has_new_msg = FALSE;
}
void OnNewMessageBack(void)
{
//GoBackToHistory(g_main_data.new_msg_back_screen);
if(IsScreenPresent(g_main_data.new_msg_back_screen))
GoBackToHistory(g_main_data.new_msg_back_screen);
else
GoBackHistory();
g_main_data.new_msg_id = -1;
g_main_data.has_new_msg = FALSE;
g_mms_main_endKeyDownFuncPtr = NULL;
}
#if 0
void EnterNewMmsNotify(void)
{
if(GetActiveScreenId() != SCR_ID_PLX_MMS_NEWMSG)
{
EntryNewScreen(SCR_ID_PLX_MMS_NEWMSG,
NULL, EnterNewMmsNotify, NULL);
}
g_mms_main_endKeyDownFuncPtr = GetKeyHandler(KEY_END, KEY_EVENT_DOWN);
if(gKeyPadLockFlag==0)
{
ShowCategory154Screen(0, 0,
STR_ID_PLX_MMS_BOX_VIEW, IMG_GLOBAL_OK,
STR_GLOBAL_BACK, IMG_GLOBAL_BACK,
(PU8)GetString(STR_ID_PLX_MMS_BOX_RECVOK),
(PU8)L"test",
IMG_ID_PLX_PUBLIC_SUBMENU_POPOK, NULL);
SetRightSoftkeyFunction(OnNewMessageBack, KEY_EVENT_UP);
SetLeftSoftkeyFunction(OnNewMessageOk, KEY_EVENT_UP);
SetKeyHandler(ExecCurrEndKeyDownHandler, KEY_END, KEY_EVENT_DOWN);
}
else // keypad is locked
{
#ifdef __MMI_KEYPAD_LOCK_PATTERN_1__
ShowCategory154Screen(0, 0, 0, 0, KEYPAD_LOCKED_RSK_TEXT, 0,
(PU8)GetString(STR_ID_PLX_MMS_BOX_RECVOK),
(PU8)L"test",
IMG_ID_PLX_PUBLIC_SUBMENU_POPOK, NULL);
#else // __MMI_KEYPAD_LOCK_PATTERN_2__
ShowCategory154Screen(0, 0, KEYPAD_LOCKED_RSK_TEXT, 0, 0, 0,
(PU8)GetString(STR_ID_PLX_MMS_BOX_RECVOK),
(PU8)L"test",
IMG_ID_PLX_PUBLIC_SUBMENU_POPOK, NULL);
#endif
ClearKeyHandler(KEY_END, KEY_EVENT_DOWN);
}
}
void ExecCurrEndKeyDownHandler(void)
{
if (g_mms_main_endKeyDownFuncPtr!=NULL)
(g_mms_main_endKeyDownFuncPtr) ();
}
#else
void EnterNewMmsNotify(void)
{
int i = 0;
int icon;
if(g_main_data.new_msg_id < 0||
!g_main_data.has_new_msg)
return;
g_main_data.new_msg_back_screen = GetActiveScreenId();
icon = IMG_ID_PLX_MMS_MMSRECVOK;
PLIB_ConfirmBox(NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_RECVOK),
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_VIEW),
(WCHAR*)GetString(STR_GLOBAL_BACK),
(void*)&icon, 0, (void*)&i, 0, IfViewNewCallback);
SetKeyHandler(PlxMmsGoBackToIdle, KEY_END, KEY_EVENT_DOWN);
}
#endif
int OnFormat(const char* pMmsePath)
{
char root[128];
FS_HANDLE fHandle;
int ret;
if(!pMmsePath)
return 0;
#ifdef MMS_DEBUG
PlxTrace("OnFormat, pMmsePath = %s\r\n", pMmsePath);
#endif
AnsiiToUnicodeString((S8*)root, (S8*)pMmsePath);
#ifdef MMS_DEBUG
PlxTrace("will FS_Open\r\n");
#endif
#if defined(MMS_SAVEONCARD) && defined(MMI_ON_HARDWARE_P)
if(PLIB_TestMSDC() != PMSDC_OK
#ifdef MMS_SELECTSTOREPATH
&& g_cur_path == g_plug_path
#endif
)
{
#if defined(MMS_SAVEONCARD) || defined(MMS_SELECTSTOREPATH)
if ( PLIB_TestMSDC() == PMSDC_NONE )
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_ENDMMS), 0);
else
PLIB_NotifyMSDCWrong();
#endif
#ifdef MMS_DEBUG
PlxTrace("no card!!!\r\n");
#endif
return 0;
}
#endif
fHandle = FS_Open((WCHAR*)root, FS_READ_ONLY);
if (fHandle < 0)
{
#ifdef MMS_DEBUG
PlxTrace("no path, will CreateDir\r\n");
#endif
ret = FS_CreateDir((WCHAR*)root);
if (ret != FS_NO_ERROR)
{
#ifdef MMS_DEBUG
PlxTrace("failed\r\n");
#endif
return 0;
}
else
{
#ifdef MMS_DEBUG
PlxTrace("create ok\r\n");
#endif
FS_SetAttributes((WCHAR*)root, FS_ATTR_DIR|FS_ATTR_HIDDEN);
}
}
#ifdef MMS_DEBUG
PlxTrace("will set default option\r\n");
#endif
#ifdef MMS_UISETTINGFILE
{
MmsUIOption ui_option;
ReadSettingFromFile(&ui_option);
MMSE_SetOption(g_main_data.mmse, (PMMSEOPTION)(&ui_option));
}
#else
MMSE_SetOption(g_main_data.mmse, (PMMSEOPTION)(&g_default_option));
#endif
return 1;
}
void PlxResetMmsIdleIcons(void)
{
int i;
int count = 0;
MMFOLDERINFO folder_info;
if(g_main_data.mmse)
{
MMSE_Close(g_main_data.mmse);
g_main_data.mmse = NULL;
}
g_main_data.mmse = MMSE_Open(MMSE_ACCESS_READ);
if(!g_main_data.mmse)
return;
#ifdef MMS_UISETTINGFILE
{
MmsUIOption ui_option;
ReadSettingFromFile(&ui_option);
MMSE_SetOption(g_main_data.mmse, (PMMSEOPTION)(&ui_option));
}
#else
MMSE_SetOption(g_main_data.mmse, (PMMSEOPTION)(&g_default_option));
#endif
MMSE_SetNotify(g_main_data.mmse, (void*)MmseCallback, MMSE_NOTIFY);
//new message icon
if(MMSE_GetFolderInfo(g_main_data.mmse, MMSE_FOLDER_INBOX,
&folder_info) == MMSE_SUCCESS)
{
if((folder_info.UnreadCount + folder_info.UnreceivedCount) > 0)
StatusIconTest(TRUE, MMS_RECVOK_ICON, FALSE);
else
StatusIconTest(FALSE, MMS_RECVOK_ICON, FALSE);
}
//full icon
for(i = (int)MMSE_FOLDER_INBOX; i <= (int)MMSE_FOLDER_SENT; i++)
{
MMSE_SelectFolder(g_main_data.mmse, (char*)i);
count += MMSE_ListMessage(g_main_data.mmse, 1, NULL, 0);
}
if(count < MAX_MMS_MESSAGE_COUNT)
StatusIconTest(FALSE, MMS_FULL_ICON, FALSE);
else
StatusIconTest(TRUE, MMS_FULL_ICON, FALSE);
}
#ifdef MMS_SAVEONCARD
void PlxMmsPlugInHanlder(void)
{
#ifdef MMS_SELECTSTOREPATH
if(g_cur_path == g_mms_path)
return;
#endif
g_main_data.card_insert = TRUE;
//reinit
if(g_main_data.mmse)
{
MMSE_Close(g_main_data.mmse);
g_main_data.mmse = NULL;
}
PlxMmsInit(g_plug_path);
//if in main, refresh main list
if(GetActiveScreenId() == SCR_ID_PLX_MMS_MAIN)
{
EnterMmsMain();
}
}
void PlxMmsPlugOutHanlder(void)
{
BOOL bSendingOrRecving = FALSE;
g_main_data.card_insert = FALSE;
#ifdef MMS_SELECTSTOREPATH
if(g_cur_path == g_mms_path)
return;
if(g_cur_path == g_plug_path)
{
bSendingOrRecving = MMSE_GetState(g_main_data.mmse) > 0;
MMSE_Cancel(g_main_data.mmse);
}
#else
bSendingOrRecving = MMSE_GetState(g_main_data.mmse) > 0;
MMSE_Cancel(g_main_data.mmse);
#endif
if(IsScreenPresent(SCR_ID_PLX_MMS_MAIN) &&
!IsScreenPresent(SCR_ID_PLX_MMS_SETTING) &&
GetActiveScreenId() != SCR_ID_PLX_MMS_SETTING)
{
PlxMmsDelHistoryHdlr(0);
GoBackToHistory(SCR_ID_PLX_MMS_MAIN);
}
if(GetActiveScreenId() == SCR_ID_PLX_MMS_MAIN ||
IsScreenPresent(SCR_ID_PLX_MMS_MAIN))
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_ENDMMS), 0);
}
else if(bSendingOrRecving)
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_MAIN_ENDMMS), 0);
}
}
BOOL IsCardInsert(void)
{
return g_main_data.card_insert;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -