diff -r 92eadaba67e6 -r 45e21fd808cd engine/src/FeedEngine.cpp --- a/engine/src/FeedEngine.cpp Thu Jul 15 21:29:09 2010 +0100 +++ b/engine/src/FeedEngine.cpp Mon Jul 19 13:46:06 2010 +0200 @@ -27,9 +27,13 @@ #include "PodcastUtils.h" #include #include "Podcatcher.pan" +#include +#include + _LIT(KFeedParseStorePath, "feeds\\"); + CFeedEngine* CFeedEngine::NewL(CPodcastModel& aPodcastModel) { CFeedEngine* self = new (ELeave) CFeedEngine(aPodcastModel); @@ -80,6 +84,10 @@ TRAP_IGNORE(ImportFeedsL(importFile)); } + + // offline profile support + iRepository = CRepository::NewL( KCRUidProfileEngine ); + RunFeedTimer(); } @@ -102,6 +110,8 @@ delete iParser; delete iFeedClient; delete iOpmlParser; + // + delete iRepository; } /** @@ -148,9 +158,22 @@ { User::Leave(KErrInUse); } - + // check for offline profile, done by polling here, perhpas CenRep notifier woudl be better + TInt currentProfileId = 0; // general profile + TBool isOfflineProfile = EFalse; + // Get ID of current profile + if(KErrNone == iRepository->Get( KProEngActiveProfile, currentProfileId ) ) // better to assume online then leave if CRep fails + { + // Check value to determine the active profile if no error + if ( 5 == currentProfileId) + { + // current profile is the offline profile + isOfflineProfile = ETrue; + } + } + // iAutoUpdatedInitiator = aAutoUpdate; - if (iFeedsUpdating.Count() > 0) + if ((iFeedsUpdating.Count() > 0) || (isOfflineProfile)) // cancel update if in offline mode { DP("Cancelling update"); iFeedClient->Stop();