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

📄 smbmusicapsonginfodetailview.cpp

📁 索爱手机代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 2006 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPSongInfoDetailView.cpp
//
// Description:
//	儈儏乕僕僢僋梡徻嵶忣曬昞帵-忣曬昞帵夋柺價儏乕僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/04/18		|SEMCJ嬥岝		|怴婯嶌惉
//2006/09/28		|SEMCJ憊		|SD_Bind僼僅儖僟撪偺UIM幚峴惂尷僼傽僀儖偺堦晹昞帵崁栚傪屌掕崁栚偵偡傞傛偆懳墳(i-keeper TRK No.4227懳墳)
//2006/09/28		|SEMCJ憊		|旕僒億乕僩僐儞僥儞僣偺徻嵶忣曬昞帵偵幐攕偡傞嵺偵丄僄儔乕僟僀傾儘僌傪昞帵偡傞張棟傪捛壛(i-keeper TRK No.5785懳墳)
//2006/09/28		|SEMCJ憊		|SD僶僀儞僪僐儞僥儞僣偵偰丄僿僢僟堎忢偺僐儞僥儞僣偺徻嵶忣曬昞帵偵幐攕偡傞嵺偵丄僄儔乕僟僀傾儘僌傪昞帵偡傞張棟傪捛壛(i-keeper TRK No.7438懳墳)
//2006/10/16		|SEMCJ憊		|張棟拞僟僀傾儘僌偱丄僋儕傾僉乕墴壓偵傛傞傾僾儕廔椆張棟傪捛壛(i-keeper TRK No.11477懳墳)
//2006/10/17		|SEMCJ憊		|僾儘僌儗僗僟僀傾儘僌偺HandleCloseEventL偺拞偱丄傾僯儊乕僔儑儞傪掆巭偡傞張棟傪捛壛(i-keeper TRK No.10140懳墳)
//2007/04/06		|SEMCJ汭弐		|徻嵶忣曬曇廤偺捛壛
//2007/05/09		|SEMCJ汭弐		|儌僨儖曄峏捠抦張棟偱丄枹懳墳偺曄峏捠抦偵懳偟偰丄張棟偑壗傕偟側偄偺偨傔丄儘僌弌椡媦傃User::Leave傪嶍彍
//2007/07/12		|SEMCJ汭弐		|忣曬偺撪梕傪峏怴偡傞屻丄乽iContainer乿偵懳偟偰丄乽Layout()乿偺戙傢傝偵丄堦斣栚偺崁栚偵僗僋儘乕儖偡傞偵廋惓

#ifndef __SMBBRURLCH_H__
#include <SmbBrurlch.h>
#endif

#include "SmbMusicAPSongInfoDetailView.h"

USING_NAMESPACE_SEMCJ
///////////////////////////////////////////////////////////////////////////////
//崁栚僀儞僨僢僋僗仺僐儞僥僫忋僀儞僨僢僋僗曄姺
//仸僐儞僥僫偺僀儞僨僢僋僗偼0偐傜巒傑傞
//丂偝傜偵InsertControlL偵偰崁栚悢偑2攞偵憹偊偰偄傞偨傔丄
//丂崁栚懁偺僀儞僨僢僋僗偐傜僐儞僥僫忋偺僀儞僨僢僋僗傪嶼弌偡傞偵偼壓偺幃偲側傞
#define	ControlIndex(aIndex)	(aIndex * 2 - 1)

/**
 * 忣曬昞帵夋柺峔抸梡僷儔儊乕僞
 */
const TAfViewParam KSongInfoDetailViewParam =
	{
	ESmbMusicAPSongInfoDetailView,	// 價儏乕ID
	R_SONGINFO_DETAIL_TITLE,					// 僞僀僩儖
	R_SONGINFO_DETAIL_KEYGUIDANCE			// 僉乕僈僀僟儞僗
	};

/**
 * 僐儞僗僩儔僋僞
 *
 * @param[in]		aModel				儌僨儖僋儔僗
 * @param[in]		aLog				儘僌僒乕僶偺僙僢僔儑儞
 * @param[in]		aAppUi				傾僾儕働乕僔儑儞UI僋儔僗
 * @param[in]		aRscMgrAppClient	嫞崌僼儗乕儉儚乕僋
 */
CSmbMusicAPSongInfoDetailView::CSmbMusicAPSongInfoDetailView(CSmbMusicAPSongInfoModel& aModel,
											RLog& aLog, CSmbMusicAPSongInfoAppUi& aAppUi/*,
																						  CSmbRscMgrAppClient& aRscMgrAppClient*/)
  :CSmbAfView(KSongInfoDetailViewParam), /*iRscMgrAppClient(aRscMgrAppClient),*/
	iModel(aModel), iLog(aLog), iAppUi(aAppUi), iStartingFlag(EFalse), iProgressPopupFlag(EFalse) //ADD TRK5170
	,iWarningPopupFlag(EFalse)//ADD TRK5785
	{
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPSongInfoDetailView::~CSmbMusicAPSongInfoDetailView()
	{
	//億僢僾傾僢僾娭楢偺儊儞僶曄悢傪嶍彍偡傞
	//(惗惉屻丄HandleCloseEventL偱偺嶍彍張棟傑偱偵儕乕僽偟偨応崌偵嶍彍張棟傪峴偆偨傔)
	delete iResource;
/*	delete iConfirmPopup;
	delete iWarningPopup;
	delete iSelectPopup;*/
	delete iProgressPopup;
	}

/**
 * 價儏乕僐儞僥僫弶婜壔帪張棟
 *
 * @leave		res		NotifyStartAppL偺栠傝抣偑ESmbRscMgrResultOK偱偼側偄応崌
 */
void CSmbMusicAPSongInfoDetailView::DoConstructContainerL()
	{
	
//ADD-S MAEJI TRK5170
	iProgressPopup = CSmbMusicAPLibProgressDialog::NewL(R_SONGINFO_DETAIL_PROCESSING);
	iProgressPopup->SetDialogObserver(this);
//ADD-S 		
	
	//嫞崌僼儗乕儉儚乕僋偵懳偟偰丄傾僾儕働乕僔儑儞婲摦捠抦(摨婜)
//	TSmbRscMgrAppResult result = ESmbRscMgrAppResultErr;
//	CArrayFixFlat<TUid>* applist = NULL;
//	TSmbRscMgrRes res = ESmbRscMgrResultNG;
// 	TRAPD(error, res = iRscMgrAppClient.NotifyStartAppL(KSmbMusicAPSongInfoUid,
// 												ETrue,
// 												result,
// 												applist));
// 	//儕乕僽偵懳偡傞僄儔乕張棟
// 	if(KErrNone != error)
// 		{
// 		//儘僌弌椡
// 		SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo077, ELogLevelHighest, error, KSmbMusicAPSongInfoLogNotifyStartAppErr);
// 		//儕乕僽張棟
// 		User::Leave(error);
// 		}
	//NotifyStartAppL()偺栠傝抣偵懳偡傞僄儔乕張棟
//	if(ESmbRscMgrResultOK != res)
//		{
		//儘僌弌椡
//		SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo078, ELogLevelHighest, res, KSmbMusicAPSongInfoLogNotifyStartAppReturnErr);
		//儕乕僽張棟
//		User::Leave(res);
//		}
	//NotifyStartAppL()偺堷悢偵懳偡傞張棟
//	if((ESmbRscMgrAppResultNGAppComp == result) ||		//婲摦NG乮傾僾儕嫞崌乯
//	(ESmbRscMgrAppResultNGTasksOver == result) ||		//婲摦NG乮嵟戝僞僗僋悢挻夁乯
//	(ESmbRscMgrAppResultErrMultiple == result) ||		//擇廳捠抦僄儔乕乮偡偱偵婲摦捠抦偼憲怣偝傟偰偄傑偡乯
//	(ESmbRscMgrAppResultErr == result))					//偦偺懠僄儔乕
//		{
		//儘僌弌椡
//		SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo079, ELogLevelHigh, result, KSmbMusicAPSongInfoLogNotifyStartAppResultErr);

		//僐儅儞僪捠抦
//MODIFY-S MAEJI
//	iAppUi.HandleCommandL(ECmdClearExit);
//		iAppUi.HandleCommandL(EEikCmdExit);
//MODIFY-E

		//AppUi僋儔僗偺HandleCommandL娭悢偵偰儘僌弌椡偡傞偨傔丄偙偙偱偼TRAP仺儘僌弌椡偺張棟偼峴傢側偄
//		}

	//儌僨儖僆僽僓乕僶傊搊榐偡傞
	iModel.SetModelObserver(this);
	}

/**
 * 價儏乕傾僋僥傿僽姰椆帪偺僐乕儖僶僢僋娭悢撪張棟
 *
 * @param[in]		aPrevViewId			屇傃弌偟尦價儏乕ID
 * @param[in]		aCustomMessageId		儊僢僙乕僕ID
 * @param[in]		aCustomMessage		儊僢僙乕僕僶僢僼傽
 * @leave			res		僼僅乕僇僗愝掕偵幐攕偟偨応崌
 */
void CSmbMusicAPSongInfoDetailView::DoViewActivatedL(const TVwsViewId& /*aPrevViewId*/,
												TUid aCustomMessageId,
												const TDesC8& aCustomMessage)
	{
	//儘乕僇儖Uid偺応崌偺張棟
	if(KSmbMusicAPSongInfoLocalUid == aCustomMessageId)
		{
		//僐儅儞僪梷惂夝彍僐儅儞僪傪敪峴偡傞
		iAppUi.HandleCommandL(ECmdReleaseCommand);

		//僨乕僞BOX偺徻嵶忣曬摨條丄峏怴偑姰椆偡傞傑偱偺娫偵慜夞偺徻嵶忣曬偑弌側偄傛偆偵偡傞		
		iContainer->MakeVisible(EFalse);
		
		//徻嵶忣曬傪嵞庢摼偡傞
		iAppUi.HandleCommandL(ECmdGetDetailInfo);
		
		//張棟拞億僢僾傾僢僾傪昞帵偡傞
		ShowProcessPopupL();
		}
	else if(KSmbMusicAPSongInfoStartUid == aCustomMessageId)
		{
		//僇僗僞儉儊僢僙乕僕偺撪梕傪曐帩偡傞
//MODIFY-S MAEJI
		//iParam = reinterpret_cast<const TSmbMusicAPSongInfoStartParam *>(aCustomMessage.Ptr());
		const TSmbMusicAPSongInfoStartParam *param;
		param = reinterpret_cast<const TSmbMusicAPSongInfoStartParam *>(aCustomMessage.Ptr());
		iParam = *param;
//MODIFY-E

//ADD-S 汭弐  徻嵶忣曬曇廤傪懳墳偨傔偺捛壛
		iModel.SetSongId(iParam.iSongID);
//ADD-E

//巄掕丗梫媮偝傟偨SongID傪儘僌弌椡
		SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo069, ELogLevelLow, iParam.iSongID, KSmbMusicAPSongInfoLogSongID);

		//栠傝愭忣曬傪曐帩偡傞
		iAppUi.SetReturnView(iParam.iViewId);

		//嬋傾僀僥儉傪惗惉偟丄徻嵶忣曬偺庢摼傪奐巒偡傞
		iAppUi.HandleCommandL(ECmdCreateSongItem);

		//張棟拞億僢僾傾僢僾傪昞帵偡傞
		ShowProcessPopupL();
		}
	}

/**
 * 儌僨儖曄峏捠抦張棟
 *
 * @param[in]		aReason			儌僨儖曄峏棟桼
 * 
 *  DEL-S 汭弐  枹懳墳偺曄峏捠抦偵懳偟偰丄張棟偑壗傕偟側偄偺偨傔丄儘僌弌椡媦傃User::Leave傪嶍彍
 *  @leave			KErrArgument	儌僨儖曄峏棟桼偑憐掕奜偺抣偺応崌
 *  DEL-E 汭弐 
 */
void CSmbMusicAPSongInfoDetailView::HandleChangeModelL(TSmbMusicAPSongInfoChangeModelReason aReason)
	{
	switch(aReason)
		{
		//徻嵶忣曬偑曄峏偝傟偨
		case EGetDetailInfo:
			{
			
			//張棟拞億僢僾傾僢僾昞帵拞偐偳偆偐妋擣偡傞
//MODIFY-S MAEJI TRK5170
//			if(NULL != iProgressPopup)		
			if(EFalse != iProgressPopupFlag)
//MODIFY-E
				{
				//億僢僾傾僢僾傪暵偠丄偦偺拞偱峏怴張棟傪峴偆
				iProgressPopup->Close();
				}
			else
				{
				//PTX810偱偼峏怴張棟偼昁偢傾僾儕偑億僢僾傾僢僾傪峴偭偨僞僀儈儞僌偱峴偆偨傔丄
				//旕昞帵拞偵峏怴僀儀儞僩偑棃傞偙偲偼側偄
				}
			}
			break;

		//徻嵶忣曬峏怴張棟偑姰椆偟偨
		case EUpdateDetailInfo:
			{
			//PTX810偱偼曇廤張棟偼枹懳墳偺偨傔壗傕偟側偄
			}

		//傾僀僥儉偑堏摦丒嶍彍偝傟偨
		case EItemDelete:
			{
			//PTX810偱偼婲摦尦偐傜廔椆偟偰傕傜偆偨傔壗傕偟側偄
			}
			break;

//ADD-S 憊 TRK5785,TRK7438
		//旕懳墳嬋傾僀僥儉偺応崌
		case EInvalidSong:
			{
			//寈崘僟僀傾儘僌昞帵僼儔僌傪僙僢僩偡傞
			iWarningPopupFlag = ETrue;

			if(EFalse != iProgressPopupFlag)
				{
				//億僢僾傾僢僾傪暵偠丄偦偺拞偱峏怴張棟傪峴偆
				iProgressPopup->Close();
				}
			else
				{
				//PTX810偱偼峏怴張棟偼昁偢傾僾儕偑億僢僾傾僢僾傪峴偭偨僞僀儈儞僌偱峴偆偨傔丄
				//旕昞帵拞偵峏怴僀儀儞僩偑棃傞偙偲偼側偄
				}
			}
			break;	
//ADD-E

		default:
			{
//DEL-S 汭弐 枹懳墳偺曄峏捠抦偵懳偟偰丄張棟偑壗傕偟側偄偺偨傔丄儘僌弌椡媦傃User::Leave傪嶍彍
// 			//儘僌弌椡
// 			TBuf<KSmbMusicAPSongInfoLogFormatLength> log;
// 			log.Format(KSmbMusicAPSongInfoLogUnexpectChangeReasonErr, aReason);
// 			SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo087, ELogLevelHighest, KErrArgument, log);
//			//儕乕僽張棟
//			User::Leave(KErrArgument);
//DEL-E 汭弐			
			}
			break;
		}
	}

/**
 * 僟僀傾儘僌僋儘乕僘傪捠抦偡傞僀儞僞乕僼僃乕僗娭悢
 *
 * @param[in]		aResult			僋儘乕僘寢壥
 * @param[in]		aDialog			僋儘乕僘偟偨僟僀傾儘僌
 * @leave			KErrArgument	僋儘乕僘偟偨僟僀傾儘僌偑憐掕奜偺抣偺応崌
 */
void CSmbMusicAPSongInfoDetailView::HandleCloseEventL(TInt aResult, CSkonDialogBase* aDialog)
	{	
//ADD-S 憊 TRK5785,TRK7438
	//僾儘僌儗僗僟僀傾儘僌昞帵偺嵺丄拞巭僉乕摍偱徻嵶忣曬傾僾儕傪廔椆偡傞応崌丄捈愙栠傞
	if(EClearKey == aResult)
		{
		return;
		}
	
	//寈崘僟僀傾儘僌偺僼儔僌偑僙僢僩偟丄彯妿偮僾儘僌儗僗僟僀傾儘僌偵懳偟偰Close傪幚峴偟偨応崌
	if(EFalse != iWarningPopupFlag && (EHalfSecond == aResult || ECompulsion == aResult))
		{
		//寈崘僟僀傾儘僌僋儔僗傪惗惉偡傞
		CSkonWarningDialog*	warningPopup = new(ELeave) CSkonWarningDialog();
		//儕僜乕僗傪撉傒崬傓
		warningPopup->PrepareLC(R_SONGINFO_WARNING_DIALOG_MP02P015);
		//儌乕僟儖傪昞帵偡傞
		warningPopup->ShowLD();

		//傾僾儕廔椆僐儅儞僪捠抦
		iAppUi.HandleCommandL(EEikCmdExit);
		}
//ADD-E

//ADD-S MAEJI 
	if(EFalse == iModel.IsGotDetailInfo())
		{
		//昞帵忣曬枹庢摼偺忬懺丗捠忢偼偁傝偊側偄偑Leave偟偨帪偵偼偙偙偵偔傞偙偲偑偁傞
		SmbMusicAPSongInfoLog::OutputLog(iLog, ESongInfoLogNo195, ELogLevelHighest, KErrArgument, KSmbMusicAPSongInfoLogNotGotDetaiInfoErr);
		return;
		}
//ADD-E	

	//張棟拞億僢僾傾僢僾偱偁傞偐妋擣偡傞
	if(aDialog == iProgressPopup)
		{
//MODIFY-S MAEJI TRK5170
//		//張棟拞億僢僾傾僢僾側偺偱暵偠傞
//		delete iProgressPopup;
//		iProgressPopup = NULL;

		//僟僀傾儘僌昞帵拞僼儔僌傪旕昞帵偵愝掕
		iProgressPopupFlag = EFalse;
//MODIFY-E

//ADD-S 憊 TRK11477
		//僾儘僌儗僗僟僀傾儘僌昞帵拞偱側偄偙偲傪僼儔僌偵僙僢僩偡傞
		iAppUi.SetShowProgressDialogFlag(EFalse);
//ADD-E
		
//ADD-S 憊 TRK10140
		//HandleCloseEventL偺堷悢偱庴偗庢偭偨Dialog偺億僀儞僞偺宆傪CSmbMusicAPLibProgressDialog偵曄峏偡傞
		CSmbMusicAPLibProgressDialog* progressDialog = static_cast<CSmbMusicAPLibProgressDialog*>(aDialog);	

		//僾儘僌儗僗僟僀傾儘僌偑帩偮僀儊乕僕儔儀儖偺億僀儞僞傪庢摼
		CSkonImageLabel* imageLabel = static_cast<CSkonImageLabel*>(progressDialog->ProgressLabel()->ComponentControl(CSkonCompoundProgressLabel::EImageLabel));
		if(NULL != imageLabel)
			{
			//傾僯儊乕僔儑儞偑掆巭偝傟偰偄側偄応崌
			if(EFalse == imageLabel->IsPaused())
				{
				//傾僯儊乕僔儑儞傪掆巭偡傞
				imageLabel->PauseL();
				}
			}
//ADD-E	

		//婲摦張棟廔椆偐偳偆偐妋擣偡傞
		if(EFalse == iStartingFlag)
			{
//DEL-S 憊 TRK4227

⌨️ 快捷键说明

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