Remove icon index. Start caching icons as mbms.
--- 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<CGulIcon>* 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;
}
}
--- 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 &)
--- 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
--- 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<CFeedInfo> RFeedInfoArray;
--- 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;
--- 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 <e32hashtab.h>
#include <fbs.h>
+#include <bautils.h>
+#include <eikenv.h>
+_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;
- }
--- 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);
--- 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;
}