⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plxmms_main.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 3 页
字号:
    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 + -