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

📄 plxbrowfile.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 5 页
字号:
#ifdef __PLXBROW_SUPPORT_HOTPLUG_
	if(PMSDC_OK != PlxBrowIsMemCardPluged())
	{
		if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
			GoBackToHistory(SCR_ID_PLX_BROW_FILE);
        if ( PMSDC_NONE == PlxBrowIsMemCardPluged())
		    PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
        else
            PLIB_NotifyMSDCWrong();
		return;
	}
#endif //__PLXBROW_SUPPORT_HOTPLUG_

	PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_FILE_DELETE_CONFIRM), NULL,NULL, 
				NULL,0, (void*)&nToneId, 0, DelFileConfirmCB);
	SetKeyHandler(FileKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}


/****************************************************************************
* Function	static void DelFileConfirmCB(PLIBEVENT event)
* Purpose		
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void DelFileConfirmCB(PLIBEVENT event)
{
	if(PEVENT_POSITIVE == event)
		FileDelLskFunc();
	else if( PEVENT_NEGTIVE == event)
		FileDelRskFunc();
}

/****************************************************************************
* Function	static void EntryDelAllFileConfirmScreen (void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void EntryDelAllFileConfirmScreen (void)
{
	int   nToneId = WARNING_TONE;

#ifdef __PLXBROW_SUPPORT_HOTPLUG_
	if(PMSDC_OK != PlxBrowIsMemCardPluged())
	{
		if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
			GoBackToHistory(SCR_ID_PLX_BROW_FILE);
        if ( PMSDC_NONE == PlxBrowIsMemCardPluged() )
		    PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
        else
            PLIB_NotifyMSDCWrong();
		return;
	}
#endif //__PLXBROW_SUPPORT_HOTPLUG_
	
	PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_FILE_DELETEALL_CONFIRM), NULL,NULL, 
				NULL,0, (void*)&nToneId, 0, DelAllFileConfirmCB);
	SetKeyHandler(FileKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}


/****************************************************************************
* Function	static void DelAllFileConfirmCB(PLIBEVENT event)
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void DelAllFileConfirmCB(PLIBEVENT event)
{
	if(PEVENT_POSITIVE == event)
		FileDelAllLskFunc();
	else if( PEVENT_NEGTIVE == event)
		FileDelRskFunc();
}


/****************************************************************************
* Function	static void FileDelLskFunc(void)
* Purpose	delete the seleted page saved
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void FileDelLskFunc(void)
{
	U16 prevScrId;
	int   flag = 0;

#ifdef __PLXBROW_SUPPORT_HOTPLUG_
	if(PMSDC_OK != PlxBrowIsMemCardPluged())
	{
		if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
			GoBackToHistory(SCR_ID_PLX_BROW_FILE);
        if ( PMSDC_NONE == PlxBrowIsMemCardPluged() )
		    PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
        else
            PLIB_NotifyMSDCWrong();
		return;
	}
#endif //__PLXBROW_SUPPORT_HOTPLUG_

	if(g_curHiliteFileID < 0 || g_curHiliteFileID >= PLXBROW_FILE_SAVEPAGE_MAX_NUM)
	return;

	if(NULL != g_plxBrowFileStore[g_curHiliteFileID] && FS_NO_ERROR == DeletePageSaved((const WCHAR *) g_plxBrowFileStore[g_curHiliteFileID]))
	{
		PlxAppFree(g_plxBrowFileStore[g_curHiliteFileID]);
		g_plxBrowFileStore[g_curHiliteFileID] = NULL;
		ResetFileStore(g_curHiliteFileID);
		g_NumOfFileSaved --;
		if(g_curHiliteFileID == g_NumOfFileSaved)
			g_curHiliteFileID--;
		if(g_curHiliteFileID < 0)
			g_curHiliteFileID = 0;
		flag = 1;
	}
	if(0 < g_NumOfFileSaved)
		GoBack2TheHistory();
	else
	{
		DeInitPlxBrowFile();
		if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
			GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
		else
		{
			GetPreviousScrnIdOf(SCR_ID_PLX_BROW_FILE, &prevScrId);
			GoBackToHistory(prevScrId);
		}
	}
	if(1 == flag)
		PLIB_MessageBox(PMBTYPE_SUCCESS,NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_DELETE_SUCCESS), UI_POPUP_NOTIFYDURATION_TIME);
	else
		PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_FILE_ERR_DELETE), UI_POPUP_NOTIFYDURATION_TIME);
}


/****************************************************************************
* Function	static void FileDelAllLskFunc(void)
* Purpose	delete all page saved
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void FileDelAllLskFunc(void)
{
	int		 i;
	int      flag;
	int		 index=0;		
	U16        prevScrId;
	char	 *szTemp[PLXBROW_FILE_SAVEPAGE_MAX_NUM];

#ifdef __PLXBROW_SUPPORT_HOTPLUG_
	if(PMSDC_OK != PlxBrowIsMemCardPluged())
	{
		if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
			GoBackToHistory(SCR_ID_PLX_BROW_FILE);
        if ( PMSDC_NONE == PlxBrowIsMemCardPluged())
		    PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
        else
            PLIB_NotifyMSDCWrong();
		return;
	}
#endif //__PLXBROW_SUPPORT_HOTPLUG_
		
	for(i = 0; i< PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
	{
		if(NULL != g_plxBrowFileStore[i] && FS_NO_ERROR == DeletePageSaved((const WCHAR *) g_plxBrowFileStore[i]))
		{
			PlxAppFree(g_plxBrowFileStore[i]);
			g_plxBrowFileStore[i]=NULL;
		}
		else if(NULL != g_plxBrowFileStore[i])
			flag = -1;
	}
	if(flag == -1)
	{
		for(i = 0; i< PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
		{
			if(NULL != g_plxBrowFileStore[i])
			{
				szTemp[index] = g_plxBrowFileStore[i];
				index++;
			}
		}
		
		for(i = 0; i< PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
		{
			if(i >= index)
				szTemp[i] = NULL;
			if(NULL != szTemp[i])
				g_plxBrowFileStore[i] = szTemp[i];
		}
		
	}
	g_curHiliteFileID = 0;
	g_NumOfFileSaved = index;
	DeInitPlxBrowFile();
	if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
		GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
	else
	{
		if(MMI_TRUE == GetPreviousScrnIdOf(SCR_ID_PLX_BROW_FILE, &prevScrId))
			GoBackToHistory(prevScrId);
		else
			GoBackHistory();
	}
//	GoBack2TheHistory();
	if(flag == -1) // some file cann't be deleted
	//	DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_FILE_ERR_DELETEALL), IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/, 0,UI_POPUP_NOTIFYDURATION_TIME, WARNING_TONE);
		PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_FILE_ERR_DELETEALL), UI_POPUP_NOTIFYDURATION_TIME);
	else
		PLIB_MessageBox(PMBTYPE_SUCCESS,NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_DELETE_SUCCESS), UI_POPUP_NOTIFYDURATION_TIME);
}


/****************************************************************************
* Function	static void FileDelRskFunc(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void FileDelRskFunc(void)
{
	GoBack2TheHistory();
}


/****************************************************************************
* Function	int plxBrowGetCurrNumOfFileItem(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
int plxBrowGetCurrNumOfFileItem(void)
{
	return g_NumOfFileSaved;
}


/****************************************************************************
* Function	static int  DeletePageSaved(const WCHAR* pszWidePageName)
* Purpose	delete the selective page saved 
* Params	
* Return	
* Remarks	
\****************************************************************************/
static int  DeletePageSaved(const WCHAR* pszWidePageName)
{
	WCHAR*   p;
	int      nWideNameLen;
	char   szPageDir[PLXBROW_FILENAME_MAX_LEN];//no more than 14 chars
	char 	*szSavePath;
	char 	*szCurrPath;
	int		nRet;
	FS_HANDLE handle;
	FS_DOSDirEntry	file_info;
	U8 				*file_name;
	
	WCHAR		szWideChar[7];
	
	if(NULL == pszWidePageName || 0 ==(nWideNameLen = pfnUnicodeStrlen((const S8*)pszWidePageName)))
		return -1;
	if(NULL == (szSavePath = PlxAppMalloc(PLXBROW_MAX_PATH*2)))
		return -1;
	if(NULL == (szCurrPath = PlxAppMalloc(PLXBROW_MAX_PATH*2)))
	{
		PlxAppFree(szSavePath);
		return -1;
	}
	
	if(NULL == (file_name = PlxAppMalloc(PLXBROW_MAX_PATH*2 + 2)))
	{
		PlxAppFree(szSavePath);
		PlxAppFree(szCurrPath);
		return -1;
	}
	FS_GetCurrentDir((WCHAR *)szSavePath, (UINT) PLXBROW_MAX_PATH);
//	FS_SetCurrentDir((const WCHAR*)PLXBROW_FILE_DOWNLOAD_PATH);
	for(p = (WCHAR*) pszWidePageName + nWideNameLen; p>pszWidePageName; p--)
	{
		AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)".");
		if(0 == pfnUnicodeStrncmp((const S8*)p, (const S8*)szWideChar, 1))
		{
			pfnUnicodeStrncpy((S8*)szPageDir,(const S8*)pszWidePageName,(U32)( p-pszWidePageName));
			AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)"_files");
			pfnUnicodeStrcat((S8*)szPageDir,(const S8*)szWideChar);
			break;
		}
	}
	
	AnsiiToUnicodeString((S8 *)szCurrPath, (S8 *)GetPBUISavePageDirectory());
//	AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)PLXBROW_FILE_DOWNLOAD_PATH);
//	pfnUnicodeStrcpy((S8*)szCurrPath, (const S8*)szWideChar);
	pfnUnicodeStrcat((S8*)szCurrPath,(const S8*)szPageDir);
	if(FS_NO_ERROR == FS_SetCurrentDir((const WCHAR*)szCurrPath))
	{
		AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)"*.*");
		if (0 <= (handle = FS_FindFirst((WCHAR *)szWideChar, 0, FS_ATTR_DIR, &file_info, (WCHAR *)file_name, PLXBROW_MAX_PATH)))
		{
			nRet = FS_Delete((const WCHAR * )file_name);
			while(FS_NO_ERROR == FS_FindNext(handle,&file_info,(WCHAR*)file_name,PLXBROW_MAX_PATH))
			{
				nRet = FS_Delete((const WCHAR *)file_name);
			}
		}
		FS_FindClose(handle);
	}
	AnsiiToUnicodeString((S8 *)szCurrPath, (S8 *)GetPBUISavePageDirectory());
	FS_SetCurrentDir((const WCHAR*)szCurrPath);
	nRet = FS_RemoveDir((const WCHAR *) szPageDir);
	nRet = FS_Delete((const WCHAR *) pszWidePageName);
	FS_SetCurrentDir((const WCHAR*)szSavePath);
	PlxAppFree(szSavePath);
	PlxAppFree(szCurrPath);
	return nRet;
	
}


/****************************************************************************
* Function	static void FileKeyEndHandler(void)
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void FileKeyEndHandler(void)
{
/*	int   nToneId = WARNING_TONE;

	if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
		PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_EXIT_CONFIRM), NULL,NULL, 
				NULL,0, (void*)&nToneId, 0, FileKeyEndExitConfirmCB);
	else
*/	ExecGeneralKeyEndHandler(FileKeyEndExitLskFunc);
}


/****************************************************************************
* Function	FileKeyEndExitConfirmCB
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void FileKeyEndExitConfirmCB(PLIBEVENT event)
{
	if( PEVENT_POSITIVE== event)
		FileKeyEndExitLskFunc();
	else if(PEVENT_NEGTIVE  == event)
		GoBackHistory();

}



/****************************************************************************
* Function	FileKeyEndExitLskFunc
* Purpose	
* Params	
* Return	
* Remarks	
\****************************************************************************/
static void FileKeyEndExitLskFunc(void)
{
//	DeInitPlxBrowFile();
//	DeInitPlxBrowser();
//	DisplayIdleScreen();
	PlxBrowExitBrowserAndGoIdle();
}

void ResetSavePageExKeyEndFlag(void)
{
	bWaitSavePageExKeyEndFlag = FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -