# HG changeset patch # User teknolog # Date 1270048151 -3600 # Node ID a8538f50e2ba415e2f8f0052ca7c202ffbd223a4 # Parent c06c2a75bb57c488712760a159e7caf693c67d74# Parent 8d36b76082328f09f9d72be7681711a0bb6d8b40 Merge with lars' fixes diff -r c06c2a75bb57 -r a8538f50e2ba application/inc/PodcastFeedView.h --- a/application/inc/PodcastFeedView.h Wed Mar 31 15:36:43 2010 +0100 +++ b/application/inc/PodcastFeedView.h Wed Mar 31 16:09:11 2010 +0100 @@ -96,7 +96,7 @@ void DialogDismissedL(TInt aButtonId); // from MImageHandlerCallback - void ImageOperationCompleteL(TInt aError, TUint aHandle); + void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); void HandleLongTapEventL( const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation); @@ -119,6 +119,7 @@ TBool iFirstActivateAfterLaunch; TOpmlState iOpmlState; TBool iViewingShows; + RArray iFeedIdForIconArray; }; #endif // PODCASTFEEDVIEWH diff -r c06c2a75bb57 -r a8538f50e2ba application/inc/PodcastShowsView.h --- a/application/inc/PodcastShowsView.h Wed Mar 31 15:36:43 2010 +0100 +++ b/application/inc/PodcastShowsView.h Wed Mar 31 16:09:11 2010 +0100 @@ -103,6 +103,9 @@ void DisplayShowInfoDialogL(); void HandleSetShowPlayedL(TBool aPlayed); void HandleDeleteShowL(); + void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel) {} + void HandleSetShowPlayed(TBool aPlayed); + void HandleDeleteShow(); void UpdateViewTitleL(); void CreateIconsL(); void GetShowErrorText(TDes &aErrorMessage, TInt aErrorCode); @@ -111,6 +114,8 @@ CPodcastModel& iPodcastModel; TBool iProgressAdded; + TInt iLastImageHandlerError; + TBool iSetTitlebarImage; }; #endif // PODCASTSHOWSVIEWH diff -r c06c2a75bb57 -r a8538f50e2ba application/src/PodcastFeedView.cpp --- a/application/src/PodcastFeedView.cpp Wed Mar 31 15:36:43 2010 +0100 +++ b/application/src/PodcastFeedView.cpp Wed Mar 31 16:09:11 2010 +0100 @@ -105,7 +105,6 @@ // Append the feed icon to icon array icons->AppendL( CGulIcon::NewL( bitmap, mask ) ); CleanupStack::Pop(2); // bitmap, mask - iListContainer->Listbox()->ItemDrawer()->FormattedCellData()->SetIconArrayL( icons ); CleanupStack::Pop(icons); // icons @@ -128,6 +127,7 @@ delete iNeverUpdated; delete iStylusPopupMenu; delete iUpdater; + iFeedIdForIconArray.Close(); } void CPodcastFeedView::UpdateItemL(TInt aIndex) @@ -369,33 +369,26 @@ } } CArrayPtr* icons = iListContainer->Listbox()->ItemDrawer()->FormattedCellData()->IconArray(); - - if (aFeedInfo.FeedIconIndex() != -1) { - iconIndex = aFeedInfo.FeedIconIndex(); - } else { - if(aFeedInfo.FeedIcon() != NULL && - aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 && - aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0) - { - // Hopefully temporary haxx to prevent double delete. I would prefer if - // this could be solved with a little better design. - CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap; - CleanupStack::PushL(bmpCopy); - bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle()); - icons->AppendL( CGulIcon::NewL(bmpCopy, NULL)); - CleanupStack::Pop(bmpCopy); - iconIndex = icons->Count()-1; - aFeedInfo.SetFeedIconIndex(iconIndex); - } - else { - if(BaflUtils::FileExists(iPodcastModel.FsSession(), aFeedInfo.ImageFileName())) - { - // If this fails, no reason to worry - TRAP_IGNORE(iPodcastModel.ImageHandler().LoadFileAndScaleL(aFeedInfo.FeedIcon(), aFeedInfo.ImageFileName(), TSize(64,56), *this, aFeedInfo.Uid())); - } - } - } - + iconIndex = iFeedIdForIconArray.Find(aFeedInfo.Uid()); + if(iconIndex == KErrNotFound && aFeedInfo.FeedIcon() != NULL && + aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 && + aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0) + { + // Hopefully temporary haxx to prevent double delete. I would prefer if + // this could be solved with a little better design. + CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap; + CleanupStack::PushL(bmpCopy); + bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle()); + icons->AppendL( CGulIcon::NewL(bmpCopy, NULL)); + iFeedIdForIconArray.Append(aFeedInfo.Uid()); + CleanupStack::Pop(bmpCopy); + iconIndex = icons->Count()-1; + } + else + { + iconIndex++; + } + if (unplayedShows.Length() > 0) { unplayedShows.Insert(0,_L(", ")); } @@ -403,11 +396,11 @@ iListboxFormatbuffer.Format(KFeedFormat(), iconIndex, &(aFeedInfo.Title()), &updatedDate, &unplayedShows); } -void CPodcastFeedView::ImageOperationCompleteL(TInt aError, TUint aHandle) +void CPodcastFeedView::ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& /*aPodcastModel*/) { if (aError == KErrNone) { - UpdateFeedInfoStatusL(aHandle, EFalse); - } + UpdateFeedInfoStatusL(aHandle, EFalse); + } } void CPodcastFeedView::UpdateFeedInfoDataL(CFeedInfo* aFeedInfo, TInt aIndex, TBool aIsUpdating ) diff -r c06c2a75bb57 -r a8538f50e2ba application/src/PodcastShowsView.cpp diff -r c06c2a75bb57 -r a8538f50e2ba engine/BWINS/podcastengineu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/engine/BWINS/podcastengineu.def Wed Mar 31 16:09:11 2010 +0100 @@ -0,0 +1,174 @@ +EXPORTS + ??0CShowInfo@@QAE@PAV0@@Z @ 1 NONAME ; CShowInfo::CShowInfo(class CShowInfo *) + ??1CFeedInfo@@UAE@XZ @ 2 NONAME ; CFeedInfo::~CFeedInfo(void) + ??1CImageHandler@@UAE@XZ @ 3 NONAME ; CImageHandler::~CImageHandler(void) + ??1CPodcastModel@@UAE@XZ @ 4 NONAME ; CPodcastModel::~CPodcastModel(void) + ??1CShowEngine@@UAE@XZ @ 5 NONAME ; CShowEngine::~CShowEngine(void) + ??1CShowInfo@@UAE@XZ @ 6 NONAME ; CShowInfo::~CShowInfo(void) + ?ActiveClientUid@CFeedEngine@@QAEIXZ @ 7 NONAME ; unsigned int CFeedEngine::ActiveClientUid(void) + ?ActiveFeedInfo@CPodcastModel@@QAEPAVCFeedInfo@@XZ @ 8 NONAME ; class CFeedInfo * CPodcastModel::ActiveFeedInfo(void) + ?ActiveShowList@CPodcastModel@@QAEAAV?$RPointerArray@VCShowInfo@@@@XZ @ 9 NONAME ; class RPointerArray & CPodcastModel::ActiveShowList(void) + ?AddDownloadL@CShowEngine@@QAEXAAVCShowInfo@@@Z @ 10 NONAME ; void CShowEngine::AddDownloadL(class CShowInfo &) + ?AddFeedL@CFeedEngine@@QAEHABVCFeedInfo@@@Z @ 11 NONAME ; int CFeedEngine::AddFeedL(class CFeedInfo const &) + ?AddObserver@CFeedEngine@@QAEXPAVMFeedEngineObserver@@@Z @ 12 NONAME ; void CFeedEngine::AddObserver(class MFeedEngineObserver *) + ?AddObserver@CShowEngine@@QAEXPAVMShowEngineObserver@@@Z @ 13 NONAME ; void CShowEngine::AddObserver(class MShowEngineObserver *) + ?AddObserver@CSoundEngine@@QAEXPAVMSoundEngineObserver@@@Z @ 14 NONAME ; void CSoundEngine::AddObserver(class MSoundEngineObserver *) + ?AddSearchResultL@CFeedEngine@@QAEXPAVCFeedInfo@@@Z @ 15 NONAME ; void CFeedEngine::AddSearchResultL(class CFeedInfo *) + ?AddShowL@CShowEngine@@QAEHABVCShowInfo@@@Z @ 16 NONAME ; int CShowEngine::AddShowL(class CShowInfo const &) + ?BaseDir@CSettingsEngine@@QAEAAV?$TBuf@$0BAA@@@XZ @ 17 NONAME ; class TBuf<256> & CSettingsEngine::BaseDir(void) + ?BuildDate@CFeedInfo@@QBE?AVTTime@@XZ @ 18 NONAME ; class TTime CFeedInfo::BuildDate(void) const + ?CancelUpdateAllFeeds@CFeedEngine@@QAEXXZ @ 19 NONAME ; void CFeedEngine::CancelUpdateAllFeeds(void) + ?CleanHtmlL@PodcastUtils@@SAXAAVTDes16@@@Z @ 20 NONAME ; void PodcastUtils::CleanHtmlL(class TDes16 &) + ?ClientState@CFeedEngine@@QAE?AW4TClientState@@XZ @ 21 NONAME ; enum TClientState CFeedEngine::ClientState(void) + ?ConnectionEngine@CPodcastModel@@QAEAAVCConnectionEngine@@XZ @ 22 NONAME ; class CConnectionEngine & CPodcastModel::ConnectionEngine(void) + ?CopyL@CFeedInfo@@QBEPAV1@XZ @ 23 NONAME ; class CFeedInfo * CFeedInfo::CopyL(void) const + ?CustomTitle@CFeedInfo@@QBEHXZ @ 24 NONAME ; int CFeedInfo::CustomTitle(void) const + ?DBGetShowByFileNameL@CShowEngine@@QAEPAVCShowInfo@@V?$TBuf@$0BAA@@@@Z @ 25 NONAME ; class CShowInfo * CShowEngine::DBGetShowByFileNameL(class TBuf<256>) + ?DeleteAllShowsByFeedL@CShowEngine@@QAEXIH@Z @ 26 NONAME ; void CShowEngine::DeleteAllShowsByFeedL(unsigned int, int) + ?DeleteOldShowsByFeed@CShowEngine@@QAEXI@Z @ 27 NONAME ; void CShowEngine::DeleteOldShowsByFeed(unsigned int) + ?DeletePlayedShows@CShowEngine@@QAEXAAV?$RPointerArray@VCShowInfo@@@@@Z @ 28 NONAME ; void CShowEngine::DeletePlayedShows(class RPointerArray &) + ?DeleteShowL@CShowEngine@@QAEXIH@Z @ 29 NONAME ; void CShowEngine::DeleteShowL(unsigned int, int) + ?Description@CFeedInfo@@QBEABVTDesC16@@XZ @ 30 NONAME ; class TDesC16 const & CFeedInfo::Description(void) const + ?Description@CShowInfo@@QBEABVTDesC16@@XZ @ 31 NONAME ; class TDesC16 const & CShowInfo::Description(void) const + ?DownloadAutomatically@CSettingsEngine@@QAEHXZ @ 32 NONAME ; int CSettingsEngine::DownloadAutomatically(void) + ?DownloadState@CShowInfo@@QBE?AW4TDownloadState@@XZ @ 33 NONAME ; enum TDownloadState CShowInfo::DownloadState(void) const + ?DownloadSuspended@CSettingsEngine@@QAEHXZ @ 34 NONAME ; int CSettingsEngine::DownloadSuspended(void) + ?EnsureProperPathName@PodcastUtils@@SAXAAV?$TBuf@$0BAA@@@@Z @ 35 NONAME ; void PodcastUtils::EnsureProperPathName(class TBuf<256> &) + ?ExportFeedsL@CFeedEngine@@QAEHAAV?$TBuf@$0BAA@@@@Z @ 36 NONAME ; int CFeedEngine::ExportFeedsL(class TBuf<256> &) + ?FeedEngine@CPodcastModel@@QAEAAVCFeedEngine@@XZ @ 37 NONAME ; class CFeedEngine & CPodcastModel::FeedEngine(void) + ?FeedIcon@CFeedInfo@@QBEPAVCFbsBitmap@@XZ @ 38 NONAME ; class CFbsBitmap * CFeedInfo::FeedIcon(void) const + ?AddObserver@CConnectionEngine@@QAEXPAVMConnectionObserver@@@Z @ 39 NONAME ; void CConnectionEngine::AddObserver(class MConnectionObserver *) + ?FeedUid@CShowInfo@@QBEIXZ @ 40 NONAME ; unsigned int CShowInfo::FeedUid(void) const + ?FileName@CShowInfo@@QBEABVTDesC16@@XZ @ 41 NONAME ; class TDesC16 const & CShowInfo::FileName(void) const + ?FileNameFromUrl@PodcastUtils@@SAXABVTDesC16@@AAV?$TBuf@$0BAA@@@@Z @ 42 NONAME ; void PodcastUtils::FileNameFromUrl(class TDesC16 const &, class TBuf<256> &) + ?FixProtocolsL@PodcastUtils@@SAXAAVTDes16@@@Z @ 43 NONAME ; void PodcastUtils::FixProtocolsL(class TDes16 &) + ?GetAllShowsL@CPodcastModel@@QAEXXZ @ 44 NONAME ; void CPodcastModel::GetAllShowsL(void) + ?GetAllShowsL@CShowEngine@@QAEXAAV?$RPointerArray@VCShowInfo@@@@@Z @ 45 NONAME ; void CShowEngine::GetAllShowsL(class RPointerArray &) + ?GetDownloadedStats@CFeedEngine@@QAEXAAI0@Z @ 46 NONAME ; void CFeedEngine::GetDownloadedStats(unsigned int &, unsigned int &) + ?GetFeedInfoByUid@CFeedEngine@@QAEPAVCFeedInfo@@I@Z @ 47 NONAME ; class CFeedInfo * CFeedEngine::GetFeedInfoByUid(unsigned int) + ?GetMimeType@CShowEngine@@QAEXABVTDesC16@@AAVTDes16@@@Z @ 48 NONAME ; void CShowEngine::GetMimeType(class TDesC16 const &, class TDes16 &) + ?GetNewShowsL@CPodcastModel@@QAEXXZ @ 49 NONAME ; void CPodcastModel::GetNewShowsL(void) + ?GetNewShowsL@CShowEngine@@QAEXAAV?$RPointerArray@VCShowInfo@@@@@Z @ 50 NONAME ; void CShowEngine::GetNewShowsL(class RPointerArray &) + ?GetNextShowByTrackL@CShowEngine@@QAEPAVCShowInfo@@PAV2@@Z @ 51 NONAME ; class CShowInfo * CShowEngine::GetNextShowByTrackL(class CShowInfo *) + ?GetNumDownloadingShows@CShowEngine@@QAEHXZ @ 52 NONAME ; int CShowEngine::GetNumDownloadingShows(void) + ?GetSearchResults@CFeedEngine@@QAEABV?$RPointerArray@VCFeedInfo@@@@XZ @ 53 NONAME ; class RPointerArray const & CFeedEngine::GetSearchResults(void) + ?GetShowByUidL@CShowEngine@@QAEPAVCShowInfo@@I@Z @ 54 NONAME ; class CShowInfo * CShowEngine::GetShowByUidL(unsigned int) + ?GetShowsByFeedL@CPodcastModel@@QAEXI@Z @ 55 NONAME ; void CPodcastModel::GetShowsByFeedL(unsigned int) + ?GetShowsByFeedL@CShowEngine@@QAEXAAV?$RPointerArray@VCShowInfo@@@@I@Z @ 56 NONAME ; void CShowEngine::GetShowsByFeedL(class RPointerArray &, unsigned int) + ?GetShowsDownloadedL@CPodcastModel@@QAEXXZ @ 57 NONAME ; void CPodcastModel::GetShowsDownloadedL(void) + ?GetShowsDownloadedL@CShowEngine@@QAEXAAV?$RPointerArray@VCShowInfo@@@@@Z @ 58 NONAME ; void CShowEngine::GetShowsDownloadedL(class RPointerArray &) + ?GetShowsDownloadingL@CPodcastModel@@QAEXXZ @ 59 NONAME ; void CPodcastModel::GetShowsDownloadingL(void) + ?GetShowsDownloadingL@CShowEngine@@QAEXAAV?$RPointerArray@VCShowInfo@@@@@Z @ 60 NONAME ; void CShowEngine::GetShowsDownloadingL(class RPointerArray &) + ?GetSortedFeeds@CFeedEngine@@QAEABV?$RPointerArray@VCFeedInfo@@@@XZ @ 61 NONAME ; class RPointerArray const & CFeedEngine::GetSortedFeeds(void) + ?GetStatsByFeed@CFeedEngine@@QAEXIAAI0@Z @ 62 NONAME ; void CFeedEngine::GetStatsByFeed(unsigned int, unsigned int &, unsigned int &) + ?IAPIds@CPodcastModel@@QAEAAV?$RArray@VTPodcastIAPItem@@@@XZ @ 63 NONAME ; class RArray & CPodcastModel::IAPIds(void) + ?IAPNames@CPodcastModel@@QAEPAVCDesC16ArrayFlat@@XZ @ 64 NONAME ; class CDesC16ArrayFlat * CPodcastModel::IAPNames(void) + ?ImageFileName@CFeedInfo@@QBEABVTDesC16@@XZ @ 65 NONAME ; class TDesC16 const & CFeedInfo::ImageFileName(void) const + ?ImageHandler@CPodcastModel@@QAEAAVCImageHandler@@XZ @ 66 NONAME ; class CImageHandler & CPodcastModel::ImageHandler(void) + ?ImageUrl@CFeedInfo@@QBEABVTDesC16@@XZ @ 67 NONAME ; class TDesC16 const & CFeedInfo::ImageUrl(void) const + ?ImportFeedsL@CFeedEngine@@QAEXABVTDesC16@@@Z @ 68 NONAME ; void CFeedEngine::ImportFeedsL(class TDesC16 const &) + ?IsFirstStartup@CPodcastModel@@QAEHXZ @ 69 NONAME ; int CPodcastModel::IsFirstStartup(void) + ?LastError@CFeedInfo@@QBEHXZ @ 70 NONAME ; int CFeedInfo::LastError(void) const + ?LastError@CShowInfo@@QBEHXZ @ 71 NONAME ; int CShowInfo::LastError(void) const + ?LastUpdated@CFeedInfo@@QBE?AVTTime@@XZ @ 72 NONAME ; class TTime CFeedInfo::LastUpdated(void) const + ?Link@CFeedInfo@@QBEABVTDesC16@@XZ @ 73 NONAME ; class TDesC16 const & CFeedInfo::Link(void) const + ?LoadFileAndScaleL@CImageHandler@@QAEXPAVCFbsBitmap@@ABV?$TBuf@$0BAA@@@ABVTSize@@AAVMImageHandlerCallback@@IH@Z @ 74 NONAME ; void CImageHandler::LoadFileAndScaleL(class CFbsBitmap *, class TBuf<256> const &, class TSize const &, class MImageHandlerCallback &, unsigned int, int) + ?MarkSelectionPlayed@CPodcastModel@@QAEXXZ @ 75 NONAME ; void CPodcastModel::MarkSelectionPlayed(void) + ?MetaDataReader@CShowEngine@@QAEAAVCMetaDataReader@@XZ @ 76 NONAME ; class CMetaDataReader & CShowEngine::MetaDataReader(void) + ?NewL@CFeedInfo@@SAPAV1@XZ @ 77 NONAME ; class CFeedInfo * CFeedInfo::NewL(void) + ?Url@CShowInfo@@QBEABVTDesC16@@XZ @ 78 NONAME ; class TDesC16 const & CShowInfo::Url(void) const + ?NewL@CPodcastModel@@SAPAV1@XZ @ 79 NONAME ; class CPodcastModel * CPodcastModel::NewL(void) + ?NewL@CShowEngine@@SAPAV1@AAVCPodcastModel@@@Z @ 80 NONAME ; class CShowEngine * CShowEngine::NewL(class CPodcastModel &) + ?NewL@CShowInfo@@SAPAV1@I@Z @ 81 NONAME ; class CShowInfo * CShowInfo::NewL(unsigned int) + ?NewLC@CFeedInfo@@SAPAV1@XZ @ 82 NONAME ; class CFeedInfo * CFeedInfo::NewLC(void) + ?XMLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 83 NONAME ; void PodcastUtils::XMLEncode(class TDes16 &) + ?NewLC@CShowInfo@@SAPAV1@I@Z @ 84 NONAME ; class CShowInfo * CShowInfo::NewLC(unsigned int) + ?NotifyShowListUpdatedL@CShowEngine@@QAEXXZ @ 85 NONAME ; void CShowEngine::NotifyShowListUpdatedL(void) + ?OpmlParsingComplete@CFeedEngine@@QAEXHI@Z @ 86 NONAME ; void CFeedEngine::OpmlParsingComplete(int, unsigned int) + ?Pause@CSoundEngine@@QAEXH@Z @ 87 NONAME ; void CSoundEngine::Pause(int) + ?Play@CSoundEngine@@QAEXXZ @ 88 NONAME ; void CSoundEngine::Play(void) + ?PlayPausePodcastL@CPodcastModel@@QAEXPAVCShowInfo@@H@Z @ 89 NONAME ; void CPodcastModel::PlayPausePodcastL(class CShowInfo *, int) + ?PlayState@CShowInfo@@QBE?AW4TPlayState@@XZ @ 90 NONAME ; enum TPlayState CShowInfo::PlayState(void) const + ?PlayTime@CShowInfo@@QBEIXZ @ 91 NONAME ; unsigned int CShowInfo::PlayTime(void) const + ?PlayingPodcast@CPodcastModel@@QAEPAVCShowInfo@@XZ @ 92 NONAME ; class CShowInfo * CPodcastModel::PlayingPodcast(void) + ?Position@CShowInfo@@QBE?AVTTimeIntervalMicroSeconds@@XZ @ 93 NONAME ; class TTimeIntervalMicroSeconds CShowInfo::Position(void) const + ?Position@CSoundEngine@@QAE?AVTTimeIntervalMicroSeconds@@XZ @ 94 NONAME ; class TTimeIntervalMicroSeconds CSoundEngine::Position(void) + ?PubDate@CShowInfo@@QBE?BVTTime@@XZ @ 95 NONAME ; class TTime const CShowInfo::PubDate(void) const + ?RemoveAllDownloads@CShowEngine@@QAEXXZ @ 96 NONAME ; void CShowEngine::RemoveAllDownloads(void) + ?RemoveAllFormatting@PodcastUtils@@SAXAAVTDes16@@@Z @ 97 NONAME ; void PodcastUtils::RemoveAllFormatting(class TDes16 &) + ?RemoveDownloadL@CShowEngine@@QAEHI@Z @ 98 NONAME ; int CShowEngine::RemoveDownloadL(unsigned int) + ?RemoveFeedL@CFeedEngine@@QAEXI@Z @ 99 NONAME ; void CFeedEngine::RemoveFeedL(unsigned int) + ?RemoveObserver@CFeedEngine@@QAEXPAVMFeedEngineObserver@@@Z @ 100 NONAME ; void CFeedEngine::RemoveObserver(class MFeedEngineObserver *) + ?RemoveObserver@CShowEngine@@QAEXPAVMShowEngineObserver@@@Z @ 101 NONAME ; void CShowEngine::RemoveObserver(class MShowEngineObserver *) + ?ReplaceChar@PodcastUtils@@SAXAAVTDes16@@II@Z @ 102 NONAME ; void PodcastUtils::ReplaceChar(class TDes16 &, unsigned int, unsigned int) + ?ReplaceString@PodcastUtils@@SAXAAVTDes16@@ABVTDesC16@@1@Z @ 103 NONAME ; void PodcastUtils::ReplaceString(class TDes16 &, class TDesC16 const &, class TDesC16 const &) + ?ResumeDownloadsL@CShowEngine@@QAEXXZ @ 104 NONAME ; void CShowEngine::ResumeDownloadsL(void) + ?SNAPIds@CPodcastModel@@QAEAAV?$RArray@VTPodcastIAPItem@@@@XZ @ 105 NONAME ; class RArray & CPodcastModel::SNAPIds(void) + ?SNAPNames@CPodcastModel@@QAEPAVCDesC16ArrayFlat@@XZ @ 106 NONAME ; class CDesC16ArrayFlat * CPodcastModel::SNAPNames(void) + ?SQLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 107 NONAME ; void PodcastUtils::SQLEncode(class TDes16 &) + ?SaveSettingsL@CSettingsEngine@@QAEXXZ @ 108 NONAME ; void CSettingsEngine::SaveSettingsL(void) + ?ScaledBitmap@CImageHandler@@QAEPAVCFbsBitmap@@XZ @ 109 NONAME ; class CFbsBitmap * CImageHandler::ScaledBitmap(void) + ?SearchForFeedL@CFeedEngine@@QAEXAAVTDesC16@@@Z @ 110 NONAME ; void CFeedEngine::SearchForFeedL(class TDesC16 &) + ?SetActiveFeedInfo@CPodcastModel@@QAEXPAVCFeedInfo@@@Z @ 111 NONAME ; void CPodcastModel::SetActiveFeedInfo(class CFeedInfo *) + ?SetBaseDir@CSettingsEngine@@QAEXAAV?$TBuf@$0BAA@@@@Z @ 112 NONAME ; void CSettingsEngine::SetBaseDir(class TBuf<256> &) + ?SetBuildDate@CFeedInfo@@QAEXVTTime@@@Z @ 113 NONAME ; void CFeedInfo::SetBuildDate(class TTime) + ?SetCustomTitle@CFeedInfo@@QAEXXZ @ 114 NONAME ; void CFeedInfo::SetCustomTitle(void) + ?SetDescriptionL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 115 NONAME ; void CFeedInfo::SetDescriptionL(class TDesC16 const &) + ?SetDescriptionL@CShowInfo@@QAEXABVTDesC16@@@Z @ 116 NONAME ; void CShowInfo::SetDescriptionL(class TDesC16 const &) + ?SetDownloadAutomatically@CSettingsEngine@@QAEXH@Z @ 117 NONAME ; void CSettingsEngine::SetDownloadAutomatically(int) + ?SetDownloadState@CShowInfo@@QAEXW4TDownloadState@@@Z @ 118 NONAME ; void CShowInfo::SetDownloadState(enum TDownloadState) + ?SetDownloadSuspended@CSettingsEngine@@QAEXH@Z @ 119 NONAME ; void CSettingsEngine::SetDownloadSuspended(int) + ?SetFeedIcon@CFeedInfo@@QAEXPAVCFbsBitmap@@@Z @ 120 NONAME ; void CFeedInfo::SetFeedIcon(class CFbsBitmap *) + ?SetFeedUid@CShowInfo@@QAEXI@Z @ 121 NONAME ; void CShowInfo::SetFeedUid(unsigned int) + ?SetFileNameL@CShowInfo@@QAEXABVTDesC16@@@Z @ 122 NONAME ; void CShowInfo::SetFileNameL(class TDesC16 const &) + ?SetImageFileNameL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 123 NONAME ; void CFeedInfo::SetImageFileNameL(class TDesC16 const &) + ?SetImageUrlL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 124 NONAME ; void CFeedInfo::SetImageUrlL(class TDesC16 const &) + ?SetLastError@CFeedInfo@@QAEXH@Z @ 125 NONAME ; void CFeedInfo::SetLastError(int) + ?SetLastError@CShowInfo@@QAEXH@Z @ 126 NONAME ; void CShowInfo::SetLastError(int) + ?SetLastUpdated@CFeedInfo@@QAEXVTTime@@@Z @ 127 NONAME ; void CFeedInfo::SetLastUpdated(class TTime) + ?SetLinkL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 128 NONAME ; void CFeedInfo::SetLinkL(class TDesC16 const &) + ?SetPlayState@CShowInfo@@QAEXW4TPlayState@@@Z @ 129 NONAME ; void CShowInfo::SetPlayState(enum TPlayState) + ?SetPlayTime@CShowInfo@@QAEXI@Z @ 130 NONAME ; void CShowInfo::SetPlayTime(unsigned int) + ?SetPlayingPodcast@CPodcastModel@@QAEXPAVCShowInfo@@@Z @ 131 NONAME ; void CPodcastModel::SetPlayingPodcast(class CShowInfo *) + ?SetPosition@CShowInfo@@QAEXVTTimeIntervalMicroSeconds@@@Z @ 132 NONAME ; void CShowInfo::SetPosition(class TTimeIntervalMicroSeconds) + ?SetPosition@CSoundEngine@@QAEXI@Z @ 133 NONAME ; void CSoundEngine::SetPosition(unsigned int) + ?SetPubDate@CShowInfo@@QAEXVTTime@@@Z @ 134 NONAME ; void CShowInfo::SetPubDate(class TTime) + ?SetShowSize@CShowInfo@@QAEXI@Z @ 135 NONAME ; void CShowInfo::SetShowSize(unsigned int) + ?SetShowType@CShowInfo@@QAEXW4TShowType@@@Z @ 136 NONAME ; void CShowInfo::SetShowType(enum TShowType) + ?SetSpecificIAP@CSettingsEngine@@QAEXH@Z @ 137 NONAME ; void CSettingsEngine::SetSpecificIAP(int) + ?SetTitleL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 138 NONAME ; void CFeedInfo::SetTitleL(class TDesC16 const &) + ?SetTitleL@CShowInfo@@QAEXABVTDesC16@@@Z @ 139 NONAME ; void CShowInfo::SetTitleL(class TDesC16 const &) + ?SetTrackNo@CShowInfo@@QAEXI@Z @ 140 NONAME ; void CShowInfo::SetTrackNo(unsigned int) + ?SetUid@CShowInfo@@QAEXI@Z @ 141 NONAME ; void CShowInfo::SetUid(unsigned int) + ?SetUpdateAutomatically@CSettingsEngine@@QAEXW4TAutoUpdateSetting@@@Z @ 142 NONAME ; void CSettingsEngine::SetUpdateAutomatically(enum TAutoUpdateSetting) + ?SetUpdateFeedInterval@CSettingsEngine@@QAEXH@Z @ 143 NONAME ; void CSettingsEngine::SetUpdateFeedInterval(int) + ?SetUpdateFeedTime@CSettingsEngine@@QAEXVTTime@@@Z @ 144 NONAME ; void CSettingsEngine::SetUpdateFeedTime(class TTime) + ?SetUrlL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 145 NONAME ; void CFeedInfo::SetUrlL(class TDesC16 const &) + ?SetUrlL@CShowInfo@@QAEXABVTDesC16@@@Z @ 146 NONAME ; void CShowInfo::SetUrlL(class TDesC16 const &) + ?SettingsEngine@CPodcastModel@@QAEAAVCSettingsEngine@@XZ @ 147 NONAME ; class CSettingsEngine & CPodcastModel::SettingsEngine(void) + ?ShowDownloading@CShowEngine@@QAEPAVCShowInfo@@XZ @ 148 NONAME ; class CShowInfo * CShowEngine::ShowDownloading(void) + ?ShowEngine@CPodcastModel@@QAEAAVCShowEngine@@XZ @ 149 NONAME ; class CShowEngine & CPodcastModel::ShowEngine(void) + ?ShowSize@CShowInfo@@QBEIXZ @ 150 NONAME ; unsigned int CShowInfo::ShowSize(void) const + ?ShowType@CShowInfo@@QBE?AW4TShowType@@XZ @ 151 NONAME ; enum TShowType CShowInfo::ShowType(void) const + ?SoundEngine@CPodcastModel@@QAEAAVCSoundEngine@@XZ @ 152 NONAME ; class CSoundEngine & CPodcastModel::SoundEngine(void) + ?SpecificIAP@CSettingsEngine@@QAEHXZ @ 153 NONAME ; int CSettingsEngine::SpecificIAP(void) + ?State@CSoundEngine@@QAE?AW4TSoundEngineState@@XZ @ 154 NONAME ; enum TSoundEngineState CSoundEngine::State(void) + ?Stop@CSoundEngine@@QAEXH@Z @ 155 NONAME ; void CSoundEngine::Stop(int) + ?SuspendDownloads@CShowEngine@@QAEXXZ @ 156 NONAME ; void CShowEngine::SuspendDownloads(void) + ?Title@CFeedInfo@@QBEABVTDesC16@@XZ @ 157 NONAME ; class TDesC16 const & CFeedInfo::Title(void) const + ?Title@CShowInfo@@QBEABVTDesC16@@XZ @ 158 NONAME ; class TDesC16 const & CShowInfo::Title(void) const + ?TrackNo@CShowInfo@@QBEIXZ @ 159 NONAME ; unsigned int CShowInfo::TrackNo(void) const + ?Uid@CFeedInfo@@QBEIXZ @ 160 NONAME ; unsigned int CFeedInfo::Uid(void) const + ?Uid@CShowInfo@@QBEIXZ @ 161 NONAME ; unsigned int CShowInfo::Uid(void) const + ?UpdateAllFeedsL@CFeedEngine@@QAEXH@Z @ 162 NONAME ; void CFeedEngine::UpdateAllFeedsL(int) + ?UpdateAutomatically@CSettingsEngine@@QAE?AW4TAutoUpdateSetting@@XZ @ 163 NONAME ; enum TAutoUpdateSetting CSettingsEngine::UpdateAutomatically(void) + ?UpdateFeed@CFeedEngine@@QAEXPAVCFeedInfo@@@Z @ 164 NONAME ; void CFeedEngine::UpdateFeed(class CFeedInfo *) + ?UpdateFeedInterval@CSettingsEngine@@QAEHXZ @ 165 NONAME ; int CSettingsEngine::UpdateFeedInterval(void) + ?UpdateFeedL@CFeedEngine@@QAEHI@Z @ 166 NONAME ; int CFeedEngine::UpdateFeedL(unsigned int) + ?UpdateFeedTime@CSettingsEngine@@QAE?AVTTime@@XZ @ 167 NONAME ; class TTime CSettingsEngine::UpdateFeedTime(void) + ?UpdateIAPListL@CPodcastModel@@QAEXXZ @ 168 NONAME ; void CPodcastModel::UpdateIAPListL(void) + ?UpdateSNAPListL@CPodcastModel@@QAEXXZ @ 169 NONAME ; void CPodcastModel::UpdateSNAPListL(void) + ?UpdateShow@CShowEngine@@QAEXAAVCShowInfo@@@Z @ 170 NONAME ; void CShowEngine::UpdateShow(class CShowInfo &) + ?Url@CFeedInfo@@QBEABVTDesC16@@XZ @ 171 NONAME ; class TDesC16 const & CFeedInfo::Url(void) const + ?NewL@CImageHandler@@SAPAV1@AAVRFs@@AAVCPodcastModel@@@Z @ 172 NONAME ; class CImageHandler * CImageHandler::NewL(class RFs &, class CPodcastModel &) + ?NewLC@CImageHandler@@SAPAV1@AAVRFs@@AAVCPodcastModel@@@Z @ 173 NONAME ; class CImageHandler * CImageHandler::NewLC(class RFs &, class CPodcastModel &) diff -r c06c2a75bb57 -r a8538f50e2ba engine/group/engine.mmp --- a/engine/group/engine.mmp Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/group/engine.mmp Wed Mar 31 16:09:11 2010 +0100 @@ -74,3 +74,5 @@ LIBRARY fbscli.lib LIBRARY imageconversion.lib LIBRARY bitmaptransforms.lib +LIBRARY eikcore.lib +//staticlibrary sqlite_podcatcher.lib \ No newline at end of file diff -r c06c2a75bb57 -r a8538f50e2ba engine/inc/ConnectionEngine.h --- a/engine/inc/ConnectionEngine.h Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/inc/ConnectionEngine.h Wed Mar 31 16:09:11 2010 +0100 @@ -67,7 +67,7 @@ void StartL(TConnectionType aConnectionType); RConnection& Connection(); TConnectionState ConnectionState(); - void AddObserver(MConnectionObserver* aObserver); + IMPORT_C void AddObserver(MConnectionObserver* aObserver); RSocketServ& SockServ(); private: // Methods CConnectionEngine(CPodcastModel& aPodcastModel); diff -r c06c2a75bb57 -r a8538f50e2ba engine/inc/FeedEngine.h --- a/engine/inc/FeedEngine.h Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/inc/FeedEngine.h Wed Mar 31 16:09:11 2010 +0100 @@ -95,6 +95,7 @@ IMPORT_C const RFeedInfoArray& GetSearchResults(); IMPORT_C void OpmlParsingCompleteL(TInt aError, TUint aNumFeedsAdded); + void NotifyFeedUpdateComplete(TInt aFeedUid, TInt aError); protected: static TInt CompareFeedsByTitle(const CFeedInfo &a, const CFeedInfo &b); @@ -117,7 +118,6 @@ void GetFeedImageL(CFeedInfo *aFeedInfo); void UpdateNextFeedL(); - void NotifyFeedUpdateCompleteL(TInt aError); void NotifyOpmlParsingCompleteL(TInt aError, TUint aNumFeedsAdded); diff -r c06c2a75bb57 -r a8538f50e2ba engine/inc/FeedInfo.h --- a/engine/inc/FeedInfo.h Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/inc/FeedInfo.h Wed Mar 31 16:09:11 2010 +0100 @@ -71,12 +71,12 @@ IMPORT_C CFbsBitmap* FeedIcon() const; IMPORT_C void SetFeedIcon(CFbsBitmap* aBitmapToClone); - IMPORT_C TInt FeedIconIndex() const; - IMPORT_C void SetFeedIconIndex(TInt aIndex); + // IMPORT_C TInt FeedIconIndex() const; +// IMPORT_C void SetFeedIconIndex(TInt aIndex); private: CFeedInfo(); void ConstructL(); - void ImageOperationCompleteL(TInt aError, TUint aHandle); + void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); private: HBufC* iUrl; HBufC* iTitle; @@ -90,7 +90,6 @@ TBool iCustomTitle; TInt iLastError; CFbsBitmap* iFeedIcon; - TInt iFeedIconIndex; }; typedef RPointerArray RFeedInfoArray; diff -r c06c2a75bb57 -r a8538f50e2ba engine/inc/ImageHandler.h --- a/engine/inc/ImageHandler.h Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/inc/ImageHandler.h Wed Mar 31 16:09:11 2010 +0100 @@ -22,6 +22,7 @@ #include #include #include +class CPodcastModel; /** * Listener interface that can be used to listen for image loading operation @@ -42,8 +43,10 @@ * Called by CImageHandler when an image has been loaded. * @param aError Error code given by the CImageHandler or 0 (zero) if the * image was loaded successfully. + * @param image handle + * @param reference to podcast model */ - virtual void ImageOperationCompleteL(TInt aError, TUint aHandle) = 0; + virtual void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel) = 0; }; // ============================================================================ @@ -65,27 +68,22 @@ public: // Constructors and destructor /** * Factory method that constructs a CImageHandler by using the NewLC method - * and then cleans the cleanup stack. - * @param aBitmap Bitmap where the image data is loaded to. - * @param aScaledBitmap Bitmap where the scaled image data is loaded to. + * and then cleans the cleanup stack. * @param aFs File server reference that is used to load the image data. - * @param aCallback Listener interface implementation that is notified + * @param Reference to podcast model * when an image has been loaded. * @return pointer to created CImageHandler-object */ - IMPORT_C static CImageHandler* NewL(RFs& aFs); + IMPORT_C static CImageHandler* NewL(RFs& aFs,CPodcastModel& aPodcastModel); /** * Factory method that constructs a CImageHandler and leaves it to the * cleanup stack. - * @param aBitmap Bitmap where the image data is loaded to. - * @param aScaledBitmap Bitmap where the scaled image data is loaded to. * @param aFs File server reference that is used to load the image data. - * @param aCallback Listener interface implementation that is notified - * when an image has been loaded. + * @param Reference to podcast model * @return pointer to created CImageHandler-object */ - IMPORT_C static CImageHandler* NewLC(RFs& aFs); + IMPORT_C static CImageHandler* NewLC(RFs& aFs,CPodcastModel& aPodcastModel); /** * Desctructor. Destroys the CImageDecoder used by the image handler. */ @@ -142,13 +140,12 @@ protected: /** * C++ default constructor. Just stores the given parameters to - * corresponding attributes. - * @param aScaledBitmap Bitmap where the scaled image data is loaded to. + * corresponding attributes. * @param aFs File server reference that is used to load the image data. - * @param aCallback Listener interface implementation that is notified + * @param Reference to podcast model * when an image has been loaded. */ - CImageHandler(RFs& aFs); + CImageHandler(RFs& aFs, CPodcastModel& aPodcastModel); /** * 2nd phase constructor. Adds this object to the active scheduler. */ @@ -182,6 +179,9 @@ /* Handle passed back to caller */ TUint iHandle; + + /** Reference to the podcast model used for callbacks to be able to notify*/ + CPodcastModel& iPodcastModel; }; #endif diff -r c06c2a75bb57 -r a8538f50e2ba engine/inc/PodcastModel.h --- a/engine/inc/PodcastModel.h Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/inc/PodcastModel.h Wed Mar 31 16:09:11 2010 +0100 @@ -100,7 +100,7 @@ CPodcastModel(); void ConstructL(); // From ImageHandler - void ImageOperationCompleteL(TInt aError, TUint aHandle); + void ImageOperationCompleteL(TInt aError, TUint aHandle, CPodcastModel& aPodcastModel); private: CShowInfo* iPlayingPodcast; diff -r c06c2a75bb57 -r a8538f50e2ba engine/src/ConnectionEngine.cpp --- a/engine/src/ConnectionEngine.cpp Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/src/ConnectionEngine.cpp Wed Mar 31 16:09:11 2010 +0100 @@ -261,7 +261,7 @@ return iConnectionState; } -void CConnectionEngine::AddObserver(MConnectionObserver* aObserver) +EXPORT_C void CConnectionEngine::AddObserver(MConnectionObserver* aObserver) { iObserverArray.Append(aObserver); } diff -r c06c2a75bb57 -r a8538f50e2ba engine/src/FeedEngine.cpp --- a/engine/src/FeedEngine.cpp Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/src/FeedEngine.cpp Wed Mar 31 16:09:11 2010 +0100 @@ -517,7 +517,7 @@ time.HomeTime(); iActiveFeed->SetLastUpdated(time); iActiveFeed->SetLastError(aError); - NotifyFeedUpdateCompleteL(aError); + NotifyFeedUpdateComplete(iActiveFeed->Uid(), aError); } break; case EUpdatingFeed: @@ -587,8 +587,8 @@ }break; } - NotifyFeedUpdateCompleteL(aError); - + NotifyFeedUpdateComplete(iActiveFeed->Uid(), aError); + // we will wait until the image has been downloaded to start the next feed update. if (iClientState == EIdle) { @@ -599,8 +599,16 @@ { // change client state to not updating iClientState = EIdle; - - NotifyFeedUpdateCompleteL(aError); + if(aError == KErrNone) + { + if( BaflUtils::FileExists(CEikonEnv::Static()->FsSession(), iActiveFeed->ImageFileName() )) + { + // If this fails, no reason to worry + TRAP_IGNORE(iPodcastModel.ImageHandler().LoadFileAndScaleL(iActiveFeed->FeedIcon(), iActiveFeed->ImageFileName(), TSize(64,56), *iActiveFeed, iActiveFeed->Uid())); + } + } + + NotifyFeedUpdateComplete(iActiveFeed->Uid(), aError); UpdateNextFeedL(); }break; case ESearching: @@ -629,13 +637,12 @@ DP("CFeedEngine::CompleteL END"); } -void CFeedEngine::NotifyFeedUpdateCompleteL(TInt aError) +void CFeedEngine::NotifyFeedUpdateComplete(TInt aFeedUid, TInt aError) { - DP("CFeedEngine::NotifyFeedUpdateComplete"); - DBUpdateFeedL(*iActiveFeed); + DP("CFeedEngine::NotifyFeedUpdateComplete"); for (TInt i=0;iFeedDownloadFinishedL(iAutoUpdatedInitiator?MFeedEngineObserver::EFeedAutoUpdate:MFeedEngineObserver::EFeedManualUpdate, iActiveFeed->Uid(), aError)); + TRAP_IGNORE(iObservers[i]->FeedDownloadFinishedL(MFeedEngineObserver::EFeedAutoUpdate, aFeedUid, aError)); } } diff -r c06c2a75bb57 -r a8538f50e2ba engine/src/FeedInfo.cpp --- a/engine/src/FeedInfo.cpp Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/src/FeedInfo.cpp Wed Mar 31 16:09:11 2010 +0100 @@ -17,8 +17,13 @@ */ #include "FeedInfo.h" +#include "FeedEngine.h" +#include "PodcastModel.h" #include #include +#include +#include +_LIT(KMbmExtension, ".mbm"); EXPORT_C CFeedInfo* CFeedInfo::NewL() { @@ -47,22 +52,21 @@ copy->SetLinkL(Link()); copy->SetBuildDate(BuildDate()); copy->SetLastUpdated(LastUpdated()); + copy->iFeedIcon->Duplicate(iFeedIcon->Handle()); copy->SetImageFileNameL(ImageFileName()); - copy->iFeedIcon->Duplicate(iFeedIcon->Handle()); if(CustomTitle()) { copy->SetCustomTitle(); } copy->SetLastError(LastError()); - copy->SetFeedIconIndex(FeedIconIndex()); + CleanupStack::Pop(copy); return copy; } CFeedInfo::CFeedInfo() { iCustomTitle = EFalse; - iFeedIconIndex = -1; } EXPORT_C CFeedInfo::~CFeedInfo() @@ -191,13 +195,23 @@ EXPORT_C void CFeedInfo::SetImageFileNameL(const TDesC& aFileName) { + TFileName cacheFileName; + if (iImageFileName) { delete iImageFileName; iImageFileName = NULL; } - iImageFileName = aFileName.AllocL(); - } + iImageFileName = aFileName.AllocL(); + TParsePtrC parser(*iImageFileName); + cacheFileName = parser.DriveAndPath(); + cacheFileName.Append(parser.Name()); + cacheFileName.Append(KMbmExtension()); + if( iFeedIcon->SizeInPixels() == TSize(0,0) && BaflUtils::FileExists(CEikonEnv::Static()->FsSession(), cacheFileName) ) + { + iFeedIcon = CEikonEnv::Static()->CreateBitmapL(cacheFileName, 0); + } + } EXPORT_C TBool CFeedInfo::CustomTitle() const { @@ -229,17 +243,17 @@ iFeedIcon->Duplicate(aBitmapToClone->Handle()); } -void CFeedInfo::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/) - { +void CFeedInfo::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/, CPodcastModel& aPodcastModel) + { + if (aError == KErrNone && iImageFileName && iFeedIcon) + { + TFileName cacheFileName; + TParsePtrC parser(*iImageFileName); + cacheFileName = parser.DriveAndPath(); + cacheFileName.Append(parser.Name()); + cacheFileName.Append(KMbmExtension()); + iFeedIcon->Save(cacheFileName); + aPodcastModel.FeedEngine().NotifyFeedUpdateComplete(this->iUid, KErrNone); + } } - -EXPORT_C TInt CFeedInfo::FeedIconIndex() const - { - return iFeedIconIndex; - } - -EXPORT_C void CFeedInfo::SetFeedIconIndex(TInt aIndex) - { - iFeedIconIndex = aIndex; - } diff -r c06c2a75bb57 -r a8538f50e2ba engine/src/ImageHandler.cpp --- a/engine/src/ImageHandler.cpp Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/src/ImageHandler.cpp Wed Mar 31 16:09:11 2010 +0100 @@ -31,12 +31,13 @@ // might leave. // ----------------------------------------------------------------------------- // -CImageHandler::CImageHandler( RFs& aFs ) +CImageHandler::CImageHandler( RFs& aFs, CPodcastModel& aPodcastModel ) : CActive(CActive::EPriorityStandard) , iDecoder(NULL) , iScaler(NULL) , iFs(aFs) , iSize(0,0) + , iPodcastModel(aPodcastModel) { } @@ -56,9 +57,9 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -EXPORT_C CImageHandler* CImageHandler::NewL(RFs& aFs) +EXPORT_C CImageHandler* CImageHandler::NewL(RFs& aFs, CPodcastModel& aPodcastModel) { - CImageHandler* self = NewLC(aFs); + CImageHandler* self = NewLC(aFs, aPodcastModel); CleanupStack::Pop(); return self; } @@ -68,9 +69,9 @@ // Two-phased constructor. // ----------------------------------------------------------------------------- // -EXPORT_C CImageHandler* CImageHandler::NewLC(RFs& aFs) +EXPORT_C CImageHandler* CImageHandler::NewLC(RFs& aFs, CPodcastModel& aPodcastModel) { - CImageHandler* self = new (ELeave) CImageHandler(aFs); + CImageHandler* self = new (ELeave) CImageHandler(aFs, aPodcastModel); CleanupStack::PushL( self ); self->ConstructL(); @@ -202,7 +203,7 @@ else { // Invoke callback. - iCallback->ImageOperationCompleteL(iStatus.Int(), iHandle); + iCallback->ImageOperationCompleteL(iStatus.Int(), iHandle, iPodcastModel); if(iCallbackQue.Count()) { TInt loaderror = KErrNotFound; diff -r c06c2a75bb57 -r a8538f50e2ba engine/src/PodcastModel.cpp --- a/engine/src/PodcastModel.cpp Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/src/PodcastModel.cpp Wed Mar 31 16:09:11 2010 +0100 @@ -76,7 +76,7 @@ iIapNameArray = new (ELeave) CDesCArrayFlat(KDefaultGranu); iSNAPNameArray = new (ELeave) CDesCArrayFlat(KDefaultGranu); iCmManager.OpenL(); - iImageHandler = CImageHandler::NewL(FsSession()); + iImageHandler = CImageHandler::NewL(FsSession(), *this); UpdateIAPListL(); UpdateSNAPListL(); @@ -242,13 +242,15 @@ DP("CPodcastModel::DB BEGIN"); if (iDB == NULL) { TFileName dbFileName; - iFsSession.PrivatePath(dbFileName); + dbFileName.Copy(iSettingsEngine->PrivatePath()); + //iFsSession.PrivatePath(dbFileName); dbFileName.Append(KDBFileName); DP1("DB is at %S", &dbFileName); if (!BaflUtils::FileExists(iFsSession, dbFileName)) { TFileName dbTemplate; - iFsSession.PrivatePath(dbTemplate); + dbTemplate.Copy(iSettingsEngine->PrivatePath()); + //iFsSession.PrivatePath(dbTemplate); dbTemplate.Append(KDBTemplateFileName); DP1("No DB found, copying template from %S", &dbTemplate); BaflUtils::CopyFile(iFsSession, dbTemplate,dbFileName); @@ -398,7 +400,7 @@ } -void CPodcastModel::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/) +void CPodcastModel::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/, CPodcastModel& /*aPodcastModel*/) { } diff -r c06c2a75bb57 -r a8538f50e2ba engine/src/SettingsEngine.cpp --- a/engine/src/SettingsEngine.cpp Wed Mar 31 15:36:43 2010 +0100 +++ b/engine/src/SettingsEngine.cpp Wed Mar 31 16:09:11 2010 +0100 @@ -222,7 +222,11 @@ TFileName CSettingsEngine::PrivatePath() { TFileName privatePath; +#ifdef __WINS__ iPodcastModel.FsSession().PrivatePath(privatePath); +#else + privatePath = _L("e:\\pod\\"); +#endif TRAP_IGNORE(BaflUtils::EnsurePathExistsL(iPodcastModel.FsSession(), privatePath)); return privatePath; } diff -r c06c2a75bb57 -r a8538f50e2ba group/bld.inf --- a/group/bld.inf Wed Mar 31 15:36:43 2010 +0100 +++ b/group/bld.inf Wed Mar 31 16:09:11 2010 +0100 @@ -22,9 +22,9 @@ PRJ_MMPFILES -#ifdef SQLITE_INCLUDED +//#ifdef SQLITE_INCLUDED ..\engine\sqlite\group\sqlite.mmp -#endif +//#endif PRJ_MMPFILES ..\engine\group\engine.mmp