diff -r 3386d3081945 -r d1539f926e3e engine/src/FeedEngine.cpp --- a/engine/src/FeedEngine.cpp Thu Jul 15 22:07:33 2010 +0100 +++ b/engine/src/FeedEngine.cpp Mon Jul 19 16:28:42 2010 +0100 @@ -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();