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

📄 smbmusicapfilemgrcategoryview.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:

/**
 * 庡偵埲壓偺張棟傪峴偆丏
 *   -# 嫞崌娗棟僼儗乕儉儚乕僋偵傾僾儕婲摦傪捠抦偟丆婲摦晄壜偱偁傞応崌偼廔椆僐儅儞僪傪敪峴偡傞丏
 *   -# 僐儞僩儘乕儖傪惗惉偡傞丏
 *   -# 僉乕僈僀僟儞僗傪愝掕偡傞丏
 */
void CSmbMusicAPFileMgrCategoryView::DoConstructContainerL()
	{
	// 嫞崌娗棟僼儗乕儉儚乕僋偵傾僾儕婲摦傪捠抦偟丆婲摦晄壜偱偁傞応崌偼廔椆僐儅儞僪傪敪峴偡傞丏
//	TInt result = NotifyStartFileMgrAppL();
//	if (result != KErrNone)
//		{
//		iAppUi.HandleCommandL(EEikCmdExit);
//		}
	
	// 儕僜乕僗儕乕僟惗惉
	TResourceReader reader;

	// 僞僀僩儖僶乕惗惉
	CSkonTitleBar* titleBar = new(ELeave) CSkonTitleBar;
	CleanupStack::PushL(titleBar);
	titleBar->SetContainerWindowL(*this);
	titleBar->ConstructL();

	// 價儏乕傊僐儞僩儘乕儖傪愝掕
	CleanupStack::Pop(titleBar);
	AddControlL(titleBar);
	iTitleBar = titleBar;

	// 儕僗僩儃僢僋僗惗惉
	CSkonListBox* listBox = new(ELeave) CSkonListBox;
	CleanupStack::PushL(listBox);
	listBox->SetContainerWindowL(*this);

	// 儕僜乕僗偺撉傒崬傒
	(CEikonEnv::Static())->CreateResourceReaderLC(reader, R_CATEGORY_LISTBOX);
	listBox->ConstructFromResourceL(reader);
	CleanupStack::PopAndDestroy();  // CreateResourceReaderLC偵懳墳

	// 儕僗僩儃僢僋僗偺僒僀僘傪愝掕
	TRect clientRect = iAppUi.ClientRect();	// 僋儔僀傾儞僩椞堟(慡夋柺椞堟傛傝僗僥乕僞僗僶乕偍傛傃僉乕僈僀僟儞僗偺椞堟傪彍偄偨椞堟)偺庢摼
//MOD-START PTX824
//	listBox->SetRect(TRect(clientRect.iTl.iX, TitleRectMaxWidth().iBr.iY, clientRect.iBr.iX, clientRect.iBr.iY - clientRect.iTl.iY));
	listBox->SetRect(TRect(clientRect.iTl.iX, iTitleBar->Rect().iBr.iY, clientRect.iBr.iX, clientRect.iBr.iY - clientRect.iTl.iY));
//MOD-START PTX824
	// 僇乕僜儖堏摦儌乕僪傪愝掕
	listBox->SetCursorMovementMode(CSkonListBox::EMoveDisableItem);		// 慖戰晄壜崁栚偵僼僅乕僇僗傪堏摦偡傞

	// 價儏乕傊僐儞僩儘乕儖傪愝掕
	CleanupStack::Pop(listBox);
	AddControlL(listBox, listBox->KeyGuidance());
	iListBox = listBox;

	// Listbox 偺僉乕僈僀僟儞僗偺恊偲偟偰丄View 偺僉乕僈僀僟儞僗傪巜掕偡傞
//	iListBox->KeyGuidance()->SetParentKeyGuidance(KeyGuidance());

	// 僉乕僈僀僟儞僗偺寛掕僉乕偵乽慖戰乿傪捛壛偡傞丏
	HBufC* buf = (CEikonEnv::Static())->AllocReadResourceLC(R_SMB_AF_STR_SFT003);
	iListBox->KeyGuidance()->SetKeyInfoL(ESkonKeyGuidanceSelectKey, *buf, NULL, NULL, 0);
	CleanupStack::PopAndDestroy(buf);
	
//ADD-START PTX824
	// 僉乕僈僀僟儞僗偺僜僼僩1僉乕偵乽婡擻乿(僒僽儊僯儏乕昞帵)傪捛壛偡傞丏
	// memo: 傕偟偐偟偨傜丆儕僜乕僗偵僉乕僈僀僟儞僗傪愝掕偟偨傜丆偙偺愝掕偼柍岠偵側傞偐傕偟傟側偄丏
	buf = (CEikonEnv::Static())->AllocReadResourceLC(R_SMB_AF_STR_SFT021);
	iListBox->KeyGuidance()->SetKeyInfoL(ESkonKeyGuidanceSoftKeyLeft, *buf, NULL, NULL, ECmdShowSubMenu);
	CleanupStack::PopAndDestroy(buf);
	// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪昞帵偝偣側偄(僨僼僅儖僩) 
	iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);	
//ADD-END PTX824	
	// 恊僉乕僈僀僟儞僗偑僐儞僩儘乕儖偡傞曽岦僉乕傪巜帵偡傞
	iListBox->KeyGuidance()->SetParentArrowMask(ESkonKeyGuidanceArrowLeft | ESkonKeyGuidanceArrowRight);

	// 嵍塃僉乕偺僉乕儕僺乕僩傪柍岠偵偡傞
	iListBox->KeyGuidance()->SetDisableArrowKeyRepeat(ESkonKeyGuidanceArrowLeft | ESkonKeyGuidanceArrowRight);
	}


/**
 * @param[in,out]	aItemArray			捛壛懳徾偺傾僀僥儉傾儗僀
 * @param[in]		aResourceId			捛壛偡傞傾僀僥儉偺儕僜乕僗ID
 */
void CSmbMusicAPFileMgrCategoryView::AppendItemArrayL(CDesCArrayFlat& aItemArray, TInt aResourceId)
	{
	_LIT(KEmptyText, "");

	HBufC* buf = CEikonEnv::Static()->AllocReadResourceLC(aResourceId);
	HBufC* itemText = SmbAfWordingFormatter::FormatLC(*buf, &KEmptyText);	// "%s"傪庢傝彍偔
	aItemArray.AppendL(*itemText);
	CleanupStack::PopAndDestroy(itemText);
	CleanupStack::PopAndDestroy(buf);
	}
	

/**
 * 僐儞僩儘乕儖傪惗惉丒搊榐偡傞丏
 *
 * @param[in]		aViewId				屇傃弌偟尦價儏乕ID
 * @param[in]		aCustomMessageId	儊僢僙乕僕ID
 * @param[in]		aCustomMessage		儊僢僙乕僕僶僢僼傽
 */
void CSmbMusicAPFileMgrCategoryView::DoViewActivatedImplL(const TVwsViewId& aViewId,
                                                      TUid aCustomMessageId,
                                                      const TDesC8& aCustomMessage)
	{
	TBool isUpdated = EFalse;								// 僐儞僩儘乕儖晹昳傪峏怴偡傞偐斲偐
	TSmbMusicAPFileMgrViewType localViewType;				// 儘乕僇儖價儏乕愗懼帪偺價儏乕庬暿
	TInt focusIndex = 0;									// 僼僅乕僇僗懳徾偺僀儞僨僢僋僗斣崋
	CDesCArrayFlat* itemArray = NULL;

	// 儘乕僇儖價儏乕愗傝懼偊偺応崌丆僇僗僞儉儊僢僙乕僕傪庢摼偡傞
	if (aCustomMessageId == KSmbMusicAPFileMgrDnlLocalUid && aCustomMessage != (TDesC8)KNullDesC8)
		{
  		const TSmbMusicAPFileMgrLocalViewStartParam* param = reinterpret_cast<const TSmbMusicAPFileMgrLocalViewStartParam *>(aCustomMessage.Ptr());
		localViewType = param->iViewType;
		focusIndex = param->iNum;
		}
	else  // 儘乕僇儖價儏乕愗傝懼偊偱側偄応崌
		{
		localViewType = ETypeNone;
		}
		
	// 儊儌儕堦棗夋柺昞帵偺応崌
	if (aCustomMessageId == KSmbMusicAPFileMgrStartUid					// 儈儏乕僕僢僋儊僀儞僾儗僀儎乕偐傜偺婲摦
		|| (localViewType == ETypeMemoryCategory))  					// 儘乕僇儖價儏乕愗懼
		{
		
		// 僞僀僩儖僶乕偵丆僞僀僩儖暥帤楍傪愝掕偡傞
		SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2813);

		itemArray = new(ELeave) CDesCArrayFlat(EMemoryCategoryNumberOfItems);
		CleanupStack::PushL(itemArray);
		AppendItemArrayL(*itemArray, R_MEMORYCATEGORY_LISTBOX_ITEM1);	// "僨乕僞BOX"
//DEL-START PTX824
//		AppendItemArrayL(*itemArray, R_MEMORYCATEGORY_LISTBOX_ITEM2);	// "杮懱奼挘儊儌儕"
//DEL-END PTX824
		AppendItemArrayL(*itemArray, R_MEMORYCATEGORY_LISTBOX_ITEM3);	// "奜晹儊儌儕"

		// 僉乕僈僀僟儞僗偺乽儊儌儕愗懼乿僉乕傪旕昞帵偵偡傞
		iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
//ADD-START PTX824
		// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞 
		iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);	
//ADD-END PTX824

		iAppUi.SetHasStartedFromMainPlayerApp(ETrue);
		iViewType = ETypeMemoryCategory;
		isUpdated = ETrue;
		}
//CQ-TRK10172 DEL-START PTX824
#ifndef __MS_DRIVE_OFF__
	// 僼僅儖僟慖戰夋柺(奜晹M.S.)偺応崌
	else if (aCustomMessageId == KSmbMusicAPFileMgrStartMsFolderMsgUid	// 儈儏乕僕僢僋僼僅儖僟(奜晹M.S.)偐傜偺婲摦
		|| (localViewType == ETypeMsCategory))							// 儘乕僇儖價儏乕愗懼
		{
		CSmbMusicAPFileMgrAppUi::TMemoryState state = iAppUi.CheckMemoryStateL(CSmbExtMemWatcher::EMs);
		if (state != CSmbMusicAPFileMgrAppUi::EDbSyncUpdate)	// DB峔抸嵪傒偺応崌
			{
			// 僞僀僩儖僶乕偵丆僞僀僩儖暥帤楍偲晅壛暥帤楍傪愝掕偡傞
			SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2446, R_EXTMEMORY_TITLEBAR_ICON);

			itemArray = new(ELeave) CDesCArrayFlat(EMsCategoryNumberOfItems);
			CleanupStack::PushL(itemArray);
			AppendItemArrayL(*itemArray, R_MSCATEGORY_LISTBOX_ITEM1);		// "M.S.僆乕僨傿僆"
			AppendItemArrayL(*itemArray, R_MSCATEGORY_LISTBOX_ITEM2);		// "MP3懠"

			// 僉乕僈僀僟儞僗偺乽儊儌儕愗懼乿僉乕傪昞帵偡傞
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, ETrue);
//ADD-START PTX824
			// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞 
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);	
//ADD-END PTX824				
			iViewType = ETypeMsCategory;
			isUpdated = ETrue;
			}
		else													// DB峔抸拞偺応崌
			{
			localViewType = ETypeUpdatingDbCategory;
			}
		}
#endif
//CQ-TRK10172 DEL-END PTX824
	// 僼僅儖僟慖戰夋柺(SD僇乕僪)偺応崌
	else if (aCustomMessageId == KSmbMusicAPFileMgrStartSdFolderMsgUid	// 儈儏乕僕僢僋僼僅儖僟(奜晹SD僇乕僪)偐傜偺婲摦
//ADD-START PTX824
		|| (aCustomMessageId == KSmbMusicAPFileMgrStartSdFolderForChildMsgUid)	// 儈儏乕僕僢僋僼僅儖僟(奜晹SD僇乕僪)偐傜偺巕婲摦
//ADD-END PTX824
		|| (localViewType == ETypeSdCategory))  						// 儘乕僇儖價儏乕愗懼
		{
//ADD-START PTX824
		// 儈儏乕僕僢僋僼僅儖僟(SD僇乕僪)偐傜偺巕婲摦帪偺傒
		if(aCustomMessageId == KSmbMusicAPFileMgrStartSdFolderForChildMsgUid)
			{
			//栠傝愭價儏乕傪僙僢僩
			iAfEnv.SetReturnView(aViewId);
			
			//巕婲摦僼儔僌傪僙僢僩
			iAppUi.SetChildStartUp(ETrue);
			}
//ADD-END PTX824
		CSmbMusicAPFileMgrAppUi::TMemoryState state = iAppUi.CheckMemoryStateL(CSmbExtMemWatcher::ESd);
//CQ-TRK8273 MOD-START PTX824
//		if (state != CSmbMusicAPFileMgrAppUi::EDbSyncUpdate)	// DB峔抸嵪傒偺応崌
		if ((state == CSmbMusicAPFileMgrAppUi::EDbSyncIdle)	// DB峔抸嵪傒偺応崌
		|| (state == CSmbMusicAPFileMgrAppUi::EMounting)	// 儅僂儞僩拞偺応崌
//CQ-TRK8559 ADD-START PTX824
		|| (state == CSmbMusicAPFileMgrAppUi::EMountError))	// 儅僂儞僩僄儔乕偺応崌
//CQ-TRK8559 ADD-END PTX824
//CQ-TRK8273 MOD-END PTX824
			{
//MOD-START PTX824
			if (!iAppUi.CheckMemoryModeRscL())	// 儊儌儕儌乕僪拞偺応崌
				{
				localViewType = ETypeMemoryModeBusyCategory;
				}
			else if(!iAppUi.CheckMTPModeRscL())	// MTP儌乕僪拞偺応崌
				{
				//儊儌儕儌乕僪儕僜乕僗夝曻
				iAppUi.ReleaseMemoryModeResourceL();
				localViewType = ETypeMTPModeBusyCategory;
				}
			else
				{
				// 僞僀僩儖僶乕偵丆僞僀僩儖暥帤楍偲晅壛暥帤楍傪愝掕偡傞
				SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2446, R_EXTMEMORY_TITLEBAR_ICON);

				itemArray = new(ELeave) CDesCArrayFlat(ESdCategoryNumberOfItems);
				CleanupStack::PushL(itemArray);
				AppendItemArrayL(*itemArray, R_SDCATEGORY_LISTBOX_ITEM1);		// "捠忢僐儞僥儞僣"
				AppendItemArrayL(*itemArray, R_SDCATEGORY_LISTBOX_ITEM2);		// "堏峴壜擻僐儞僥儞僣"
				AppendItemArrayL(*itemArray, R_SDCATEGORY_LISTBOX_ITEM3);		// "MP3懠乮壖乯"
#ifndef __SMBMUSICAP_DESABLE_ATRAC__
				AppendItemArrayL(*itemArray, R_SDCATEGORY_LISTBOX_ITEM4);		// "AAD"
#endif 	//__SMBMUSICAP_DESABLE_ATRAC__

				// 僉乕僈僀僟儞僗偺乽儊儌儕愗懼乿僉乕傪昞帵偡傞
				iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, ETrue);
//ADD-START PTX824
				// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪昞帵偡傞 
				iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, ETrue);	
//ADD-END PTX824
				iViewType = ETypeSdCategory;
				isUpdated = ETrue;
				}
//MOD-END PTX824
			}
//CQ-TRK8273 MOD-START PTX824
		else if(state == CSmbMusicAPFileMgrAppUi::EDbSyncUpdate)	// DB峔抸拞偺応崌
			{
			localViewType = ETypeUpdatingDbCategory;
			}
		else	// 枹憓擖偺応崌
			{
			localViewType = ETypeNoExtMemoryCategory;
			}
//CQ-TRK8273 MOD-END PTX824
		}
//ADD-START PTX824
//CQ-TRK10172 DEL-START PTX824
#ifndef __MASS_STORAGE_DRIVE_OFF__
	// 僼僅儖僟慖戰夋柺(杮懱奼挘)偺応崌
	else if (aCustomMessageId == KSmbMusicAPFileMgrStartMassFolderForChildMsgUid	// 儈儏乕僕僢僋僼僅儖僟(杮懱奼挘)偐傜偺巕婲摦
		|| (localViewType == ETypeMassCategory))  						// 儘乕僇儖價儏乕愗懼
		{
		// 儈儏乕僕僢僋僼僅儖僟(杮懱奼挘)偐傜偺婲摦帪偺傒
		if(aCustomMessageId == KSmbMusicAPFileMgrStartMassFolderForChildMsgUid)
			{
			//栠傝愭價儏乕傪僙僢僩
			iAfEnv.SetReturnView(aViewId);
			
			//巕婲摦僼儔僌傪僙僢僩
			iAppUi.SetChildStartUp(ETrue);
			}
		CSmbMusicAPFileMgrAppUi::TMemoryState state = iAppUi.CheckMemoryStateL(CSmbExtMemWatcher::EMass);
		if (state != CSmbMusicAPFileMgrAppUi::EDbSyncUpdate)	// DB峔抸嵪傒偺応崌
			{
			//壓婰偼偲傝偁偊偢僼僅儖僟慖戰夋柺(SD僇乕僪)傪棳梡
			//巇條偑寛傑傝師戞幚憰
			// 僞僀僩儖僶乕偵丆僞僀僩儖暥帤楍偲晅壛暥帤楍傪愝掕偡傞
			SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2446, R_EXTMEMORY_TITLEBAR_ICON);

			itemArray = new(ELeave) CDesCArrayFlat(EMassCategoryNumberOfItems);
			CleanupStack::PushL(itemArray);
			AppendItemArrayL(*itemArray, R_MASSCATEGORY_LISTBOX_ITEM1);		// "MP3懠"
			AppendItemArrayL(*itemArray, R_MASSCATEGORY_LISTBOX_ITEM2);		// "WMA(壖MP3懠乯"
			AppendItemArrayL(*itemArray, R_MASSCATEGORY_LISTBOX_ITEM3);		// "AAD"

			// 僉乕僈僀僟儞僗偺乽儊儌儕愗懼乿僉乕傪昞帵偡傞
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, ETrue);
//ADD-START PTX824
			// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞 
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);	
//ADD-END PTX824
			iViewType = ETypeMassCategory;
			isUpdated = ETrue;
			}
		else													// DB峔抸拞偺応崌
			{
			localViewType = ETypeUpdatingMassDbCategory;
			}
		}
//ADD-END PTX824
#endif
//CQ-TRK10172 DEL-END PTX824

	// 奜晹儊儌儕側偟夋柺丒DB峔抸拞偺惂尷夋柺丒SD-Bind儕僜乕僗嫞崌拞偺惂尷夋柺丒儊儌儕儌乕僪拞偺惂尷夋柺偺応崌
//MOD-START PTX824
//	if (localViewType == ETypeNoExtMemoryCategory || localViewType == ETypeUpdatingDbCategory)
	if (localViewType == ETypeNoExtMemoryCategory || localViewType == ETypeUpdatingDbCategory || localViewType == ETypeUpdatingMassDbCategory
		|| localViewType == ETypeRequestRecourceNGCategory || localViewType == ETypeMemoryModeBusyCategory || localViewType == ETypeMTPModeBusyCategory)
//MOD-END PTX824
		{
//CQ-TRK8864 ADD-START PTX824
		// 僞僀僩儖僶乕偵丆僞僀僩儖暥帤楍偲晅壛暥帤楍傪愝掕偡傞
		//奜晹儊儌儕偺応崌
		if (localViewType == ETypeNoExtMemoryCategory || localViewType == ETypeUpdatingDbCategory || localViewType == ETypeMemoryModeBusyCategory
		 || localViewType == ETypeMTPModeBusyCategory)
			{
			SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2446, R_EXTMEMORY_TITLEBAR_ICON);
			// 僉乕僈僀僟儞僗偺乽儊儌儕愗懼乿僉乕傪昞帵偡傞
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, ETrue);
			// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞 
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);	
			}
		//儕僜乕僗嫞崌拞惂尷夋柺偺応崌	
		else if(localViewType == ETypeRequestRecourceNGCategory)
			{
			//堏峴壜擻僐儞僥儞僣
			SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2863);
			// 僉乕僈僀僟儞僗偺乽儊儌儕愗懼乿僉乕傪旕昞帵偡傞
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, EFalse);
			// 僉乕僈僀僟儞僗偺乽婡擻乿僉乕傪旕昞帵偡傞 
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyLeft, EFalse);	
			}
		//杮懱奼挘儊儌儕偺応崌
		else
			{
			SetTitleBarL(iTitleBar, R_SMB_AF_STR_WRD2446, R_EXTMEMORY_TITLEBAR_ICON);
			// 僉乕僈僀僟儞僗偺乽儊儌儕愗懼乿僉乕傪昞帵偡傞
			iListBox->KeyGuidance()->MakeVisibleKey(ESkonKeyGuidanceSoftKeyRight, ETrue);

⌨️ 快捷键说明

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