# HG changeset patch # User Lars Persson # Date 1270016375 -7200 # Node ID 87cb33beeae2583862fdc57f9a6f2259f14a6e29 # Parent 9569ea080d5a49a5570a638fbe8382a54c74cbdf Remove icon index. Start caching icons as mbms. diff -r 9569ea080d5a -r 87cb33beeae2 application/src/PodcastFeedView.cpp --- a/application/src/PodcastFeedView.cpp Thu Mar 11 20:53:00 2010 +0100 +++ b/application/src/PodcastFeedView.cpp Wed Mar 31 08:19:35 2010 +0200 @@ -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 @@ -380,9 +379,9 @@ } CArrayPtr* icons = iListContainer->Listbox()->ItemDrawer()->FormattedCellData()->IconArray(); - if (aFeedInfo.FeedIconIndex() != -1) { + /*if (aFeedInfo.FeedIconIndex() != -1) { iconIndex = aFeedInfo.FeedIconIndex(); - } else { + } else*/ { if(aFeedInfo.FeedIcon() != NULL && aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 && aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0) @@ -393,16 +392,11 @@ CleanupStack::PushL(bmpCopy); bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle()); icons->AppendL( CGulIcon::NewL(bmpCopy, NULL)); - CleanupStack::Pop(bmpCopy); - iconIndex = icons->Count()-1; - aFeedInfo.SetFeedIconIndex(iconIndex); + CleanupStack::Pop(bmpCopy); } else { - if(BaflUtils::FileExists(iEikonEnv->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 = 0; } } diff -r 9569ea080d5a -r 87cb33beeae2 engine/BWINS/podcastengineu.def --- a/engine/BWINS/podcastengineu.def Thu Mar 11 20:53:00 2010 +0100 +++ b/engine/BWINS/podcastengineu.def Wed Mar 31 08:19:35 2010 +0200 @@ -37,7 +37,7 @@ ?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 - ?FeedIconIndex@CFeedInfo@@QBEHXZ @ 39 NONAME ; int CFeedInfo::FeedIconIndex(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> &) @@ -119,59 +119,57 @@ ?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 *) - ?SetFeedIconIndex@CFeedInfo@@QAEXH@Z @ 121 NONAME ; void CFeedInfo::SetFeedIconIndex(int) - ?SetFeedUid@CShowInfo@@QAEXI@Z @ 122 NONAME ; void CShowInfo::SetFeedUid(unsigned int) - ?SetFileNameL@CShowInfo@@QAEXABVTDesC16@@@Z @ 123 NONAME ; void CShowInfo::SetFileNameL(class TDesC16 const &) - ?SetImageFileNameL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 124 NONAME ; void CFeedInfo::SetImageFileNameL(class TDesC16 const &) - ?SetImageUrlL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 125 NONAME ; void CFeedInfo::SetImageUrlL(class TDesC16 const &) - ?SetLastError@CFeedInfo@@QAEXH@Z @ 126 NONAME ; void CFeedInfo::SetLastError(int) - ?SetLastError@CShowInfo@@QAEXH@Z @ 127 NONAME ; void CShowInfo::SetLastError(int) - ?SetLastUpdated@CFeedInfo@@QAEXVTTime@@@Z @ 128 NONAME ; void CFeedInfo::SetLastUpdated(class TTime) - ?SetLinkL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 129 NONAME ; void CFeedInfo::SetLinkL(class TDesC16 const &) - ?SetPlayState@CShowInfo@@QAEXW4TPlayState@@@Z @ 130 NONAME ; void CShowInfo::SetPlayState(enum TPlayState) - ?SetPlayTime@CShowInfo@@QAEXI@Z @ 131 NONAME ; void CShowInfo::SetPlayTime(unsigned int) - ?SetPlayingPodcast@CPodcastModel@@QAEXPAVCShowInfo@@@Z @ 132 NONAME ; void CPodcastModel::SetPlayingPodcast(class CShowInfo *) - ?SetPosition@CShowInfo@@QAEXVTTimeIntervalMicroSeconds@@@Z @ 133 NONAME ; void CShowInfo::SetPosition(class TTimeIntervalMicroSeconds) - ?SetPosition@CSoundEngine@@QAEXI@Z @ 134 NONAME ; void CSoundEngine::SetPosition(unsigned int) - ?SetPubDate@CShowInfo@@QAEXVTTime@@@Z @ 135 NONAME ; void CShowInfo::SetPubDate(class TTime) - ?SetShowSize@CShowInfo@@QAEXI@Z @ 136 NONAME ; void CShowInfo::SetShowSize(unsigned int) - ?SetShowType@CShowInfo@@QAEXW4TShowType@@@Z @ 137 NONAME ; void CShowInfo::SetShowType(enum TShowType) - ?SetSpecificIAP@CSettingsEngine@@QAEXH@Z @ 138 NONAME ; void CSettingsEngine::SetSpecificIAP(int) - ?SetTitleL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 139 NONAME ; void CFeedInfo::SetTitleL(class TDesC16 const &) - ?SetTitleL@CShowInfo@@QAEXABVTDesC16@@@Z @ 140 NONAME ; void CShowInfo::SetTitleL(class TDesC16 const &) - ?SetTrackNo@CShowInfo@@QAEXI@Z @ 141 NONAME ; void CShowInfo::SetTrackNo(unsigned int) - ?SetUid@CShowInfo@@QAEXI@Z @ 142 NONAME ; void CShowInfo::SetUid(unsigned int) - ?SetUpdateAutomatically@CSettingsEngine@@QAEXW4TAutoUpdateSetting@@@Z @ 143 NONAME ; void CSettingsEngine::SetUpdateAutomatically(enum TAutoUpdateSetting) - ?SetUpdateFeedInterval@CSettingsEngine@@QAEXH@Z @ 144 NONAME ; void CSettingsEngine::SetUpdateFeedInterval(int) - ?SetUpdateFeedTime@CSettingsEngine@@QAEXVTTime@@@Z @ 145 NONAME ; void CSettingsEngine::SetUpdateFeedTime(class TTime) - ?SetUrlL@CFeedInfo@@QAEXABVTDesC16@@@Z @ 146 NONAME ; void CFeedInfo::SetUrlL(class TDesC16 const &) - ?SetUrlL@CShowInfo@@QAEXABVTDesC16@@@Z @ 147 NONAME ; void CShowInfo::SetUrlL(class TDesC16 const &) - ?SettingsEngine@CPodcastModel@@QAEAAVCSettingsEngine@@XZ @ 148 NONAME ; class CSettingsEngine & CPodcastModel::SettingsEngine(void) - ?ShowDownloading@CShowEngine@@QAEPAVCShowInfo@@XZ @ 149 NONAME ; class CShowInfo * CShowEngine::ShowDownloading(void) - ?ShowEngine@CPodcastModel@@QAEAAVCShowEngine@@XZ @ 150 NONAME ; class CShowEngine & CPodcastModel::ShowEngine(void) - ?ShowSize@CShowInfo@@QBEIXZ @ 151 NONAME ; unsigned int CShowInfo::ShowSize(void) const - ?ShowType@CShowInfo@@QBE?AW4TShowType@@XZ @ 152 NONAME ; enum TShowType CShowInfo::ShowType(void) const - ?SoundEngine@CPodcastModel@@QAEAAVCSoundEngine@@XZ @ 153 NONAME ; class CSoundEngine & CPodcastModel::SoundEngine(void) - ?SpecificIAP@CSettingsEngine@@QAEHXZ @ 154 NONAME ; int CSettingsEngine::SpecificIAP(void) - ?State@CSoundEngine@@QAE?AW4TSoundEngineState@@XZ @ 155 NONAME ; enum TSoundEngineState CSoundEngine::State(void) - ?Stop@CSoundEngine@@QAEXH@Z @ 156 NONAME ; void CSoundEngine::Stop(int) - ?SuspendDownloads@CShowEngine@@QAEXXZ @ 157 NONAME ; void CShowEngine::SuspendDownloads(void) - ?Title@CFeedInfo@@QBEABVTDesC16@@XZ @ 158 NONAME ; class TDesC16 const & CFeedInfo::Title(void) const - ?Title@CShowInfo@@QBEABVTDesC16@@XZ @ 159 NONAME ; class TDesC16 const & CShowInfo::Title(void) const - ?TrackNo@CShowInfo@@QBEIXZ @ 160 NONAME ; unsigned int CShowInfo::TrackNo(void) const - ?Uid@CFeedInfo@@QBEIXZ @ 161 NONAME ; unsigned int CFeedInfo::Uid(void) const - ?Uid@CShowInfo@@QBEIXZ @ 162 NONAME ; unsigned int CShowInfo::Uid(void) const - ?UpdateAllFeedsL@CFeedEngine@@QAEXH@Z @ 163 NONAME ; void CFeedEngine::UpdateAllFeedsL(int) - ?UpdateAutomatically@CSettingsEngine@@QAE?AW4TAutoUpdateSetting@@XZ @ 164 NONAME ; enum TAutoUpdateSetting CSettingsEngine::UpdateAutomatically(void) - ?UpdateFeed@CFeedEngine@@QAEXPAVCFeedInfo@@@Z @ 165 NONAME ; void CFeedEngine::UpdateFeed(class CFeedInfo *) - ?UpdateFeedInterval@CSettingsEngine@@QAEHXZ @ 166 NONAME ; int CSettingsEngine::UpdateFeedInterval(void) - ?UpdateFeedL@CFeedEngine@@QAEHI@Z @ 167 NONAME ; int CFeedEngine::UpdateFeedL(unsigned int) - ?UpdateFeedTime@CSettingsEngine@@QAE?AVTTime@@XZ @ 168 NONAME ; class TTime CSettingsEngine::UpdateFeedTime(void) - ?UpdateIAPListL@CPodcastModel@@QAEXXZ @ 169 NONAME ; void CPodcastModel::UpdateIAPListL(void) - ?UpdateSNAPListL@CPodcastModel@@QAEXXZ @ 170 NONAME ; void CPodcastModel::UpdateSNAPListL(void) - ?UpdateShow@CShowEngine@@QAEXAAVCShowInfo@@@Z @ 171 NONAME ; void CShowEngine::UpdateShow(class CShowInfo &) - ?Url@CFeedInfo@@QBEABVTDesC16@@XZ @ 172 NONAME ; class TDesC16 const & CFeedInfo::Url(void) const - ?Url@CShowInfo@@QBEABVTDesC16@@XZ @ 173 NONAME ; class TDesC16 const & CShowInfo::Url(void) const - ?XMLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 174 NONAME ; void PodcastUtils::XMLEncode(class TDes16 &) - ?AddObserver@CConnectionEngine@@QAEXPAVMConnectionObserver@@@Z @ 175 NONAME ; void CConnectionEngine::AddObserver(class MConnectionObserver *) + ?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 + ?Url@CShowInfo@@QBEABVTDesC16@@XZ @ 172 NONAME ; class TDesC16 const & CShowInfo::Url(void) const + ?XMLEncode@PodcastUtils@@SAXAAVTDes16@@@Z @ 173 NONAME ; void PodcastUtils::XMLEncode(class TDes16 &) diff -r 9569ea080d5a -r 87cb33beeae2 engine/group/engine.mmp --- a/engine/group/engine.mmp Thu Mar 11 20:53:00 2010 +0100 +++ b/engine/group/engine.mmp Wed Mar 31 08:19:35 2010 +0200 @@ -75,3 +75,4 @@ LIBRARY fbscli.lib LIBRARY imageconversion.lib LIBRARY bitmaptransforms.lib +LIBRARY eikcore.lib diff -r 9569ea080d5a -r 87cb33beeae2 engine/inc/FeedInfo.h --- a/engine/inc/FeedInfo.h Thu Mar 11 20:53:00 2010 +0100 +++ b/engine/inc/FeedInfo.h Wed Mar 31 08:19:35 2010 +0200 @@ -71,8 +71,8 @@ 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(); @@ -90,7 +90,6 @@ TBool iCustomTitle; TInt iLastError; CFbsBitmap* iFeedIcon; - TInt iFeedIconIndex; }; typedef RPointerArray RFeedInfoArray; diff -r 9569ea080d5a -r 87cb33beeae2 engine/src/FeedEngine.cpp --- a/engine/src/FeedEngine.cpp Thu Mar 11 20:53:00 2010 +0100 +++ b/engine/src/FeedEngine.cpp Wed Mar 31 08:19:35 2010 +0200 @@ -599,7 +599,15 @@ { // change client state to not updating iClientState = EIdle; - + 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(aError); UpdateNextFeedL(); }break; diff -r 9569ea080d5a -r 87cb33beeae2 engine/src/FeedInfo.cpp --- a/engine/src/FeedInfo.cpp Thu Mar 11 20:53:00 2010 +0100 +++ b/engine/src/FeedInfo.cpp Wed Mar 31 08:19:35 2010 +0200 @@ -19,6 +19,9 @@ #include "FeedInfo.h" #include #include +#include +#include +_LIT(KMbmExtension, ".mbm"); EXPORT_C CFeedInfo* CFeedInfo::NewL() { @@ -55,14 +58,13 @@ } copy->SetLastError(LastError()); - copy->SetFeedIconIndex(FeedIconIndex()); + CleanupStack::Pop(copy); return copy; } CFeedInfo::CFeedInfo() { iCustomTitle = EFalse; - iFeedIconIndex = -1; } EXPORT_C CFeedInfo::~CFeedInfo() @@ -191,12 +193,22 @@ 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( BaflUtils::FileExists(CEikonEnv::Static()->FsSession(), cacheFileName) ) + { + iFeedIcon = CEikonEnv::Static()->CreateBitmapL(cacheFileName, 0); + } } EXPORT_C TBool CFeedInfo::CustomTitle() const @@ -229,17 +241,21 @@ iFeedIcon->Duplicate(aBitmapToClone->Handle()); } -void CFeedInfo::ImageOperationCompleteL(TInt /*aError*/, TUint /*aHandle*/) - { - - } - -EXPORT_C TInt CFeedInfo::FeedIconIndex() const +void CFeedInfo::ImageOperationCompleteL(TInt aError, TUint /*aHandle*/) { - return iFeedIconIndex; + + if (aError == KErrNone && iImageFileName && iFeedIcon) + { + TFileName cacheFileName; + + TParsePtrC parser(*iImageFileName); + cacheFileName = parser.DriveAndPath(); + cacheFileName.Append(parser.Name()); + cacheFileName.Append(KMbmExtension()); + if( !BaflUtils::FileExists(CEikonEnv::Static()->FsSession(), cacheFileName) ) + { + iFeedIcon->Save(cacheFileName); + } + + } } - -EXPORT_C void CFeedInfo::SetFeedIconIndex(TInt aIndex) - { - iFeedIconIndex = aIndex; - } diff -r 9569ea080d5a -r 87cb33beeae2 engine/src/PodcastModel.cpp --- a/engine/src/PodcastModel.cpp Thu Mar 11 20:53:00 2010 +0100 +++ b/engine/src/PodcastModel.cpp Wed Mar 31 08:19:35 2010 +0200 @@ -281,13 +281,15 @@ { 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); diff -r 9569ea080d5a -r 87cb33beeae2 engine/src/SettingsEngine.cpp --- a/engine/src/SettingsEngine.cpp Thu Mar 11 20:53:00 2010 +0100 +++ b/engine/src/SettingsEngine.cpp Wed Mar 31 08:19:35 2010 +0200 @@ -223,7 +223,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; }