engine/src/FeedEngine.cpp
changeset 84 3b59b88b089e
parent 83 a2e43aa1ad11
child 93 c2f1ea38ec70
equal deleted inserted replaced
83:a2e43aa1ad11 84:3b59b88b089e
   241 	BaflUtils::EnsurePathExistsL(iPodcastModel.FsSession(), iUpdatingFeedFileName);
   241 	BaflUtils::EnsurePathExistsL(iPodcastModel.FsSession(), iUpdatingFeedFileName);
   242 	
   242 	
   243 	_LIT(KFileNameFormat, "%lu.xml");
   243 	_LIT(KFileNameFormat, "%lu.xml");
   244 	iUpdatingFeedFileName.AppendFormat(KFileNameFormat, aFeedUid);
   244 	iUpdatingFeedFileName.AppendFormat(KFileNameFormat, aFeedUid);
   245 	
   245 	
       
   246 	iClientState = EUpdatingFeed;
       
   247 			
       
   248 	for (TInt i=0;i<iObservers.Count();i++)
       
   249 		{
       
   250 		TRAP_IGNORE(iObservers[i]->FeedDownloadStartedL(iAutoUpdatedInitiator?MFeedEngineObserver::EFeedAutoUpdate:MFeedEngineObserver::EFeedManualUpdate, iActiveFeed->Uid()));
       
   251 		}
       
   252 
   246 	if(iFeedClient->GetL(iActiveFeed->Url(), iUpdatingFeedFileName, iPodcastModel.SettingsEngine().SpecificIAP()))
   253 	if(iFeedClient->GetL(iActiveFeed->Url(), iUpdatingFeedFileName, iPodcastModel.SettingsEngine().SpecificIAP()))
   247 		{
   254 		{
   248 		iClientState = EUpdatingFeed;
   255 		
   249 		
       
   250 		for (TInt i=0;i<iObservers.Count();i++)
       
   251 			{
       
   252 			TRAP_IGNORE(iObservers[i]->FeedDownloadStartedL(iAutoUpdatedInitiator?MFeedEngineObserver::EFeedAutoUpdate:MFeedEngineObserver::EFeedManualUpdate, iActiveFeed->Uid()));
       
   253 			}
       
   254 
       
   255 		DP("FeedEngine::UpdateFeedL END, return ETrue");
   256 		DP("FeedEngine::UpdateFeedL END, return ETrue");
   256 		return ETrue;
   257 		return ETrue;
   257 		}
   258 		}
   258 	else
   259 	else
   259 		{
   260 		{
   602 									iClientState = EIdle;							
   603 									iClientState = EIdle;							
   603 									}
   604 									}
   604 								}	
   605 								}	
   605 							}
   606 							}
   606 						}
   607 						}
       
   608 					else
       
   609 						{
       
   610 						// even if it fails, this will allow us to move on
       
   611 						iClientState = EIdle;
       
   612 						}
   607 					}
   613 					}
   608 				iCancelRequested = EFalse;
   614 				iCancelRequested = EFalse;
   609 				}break;
   615 				}break;
   610 			}
   616 			}
   611 			DBUpdateFeedL(*iActiveFeed);
   617 			DBUpdateFeedL(*iActiveFeed);
   653 				NotifyOpmlParsingCompleteL(aError, 0);
   659 				NotifyOpmlParsingCompleteL(aError, 0);
   654 				}
   660 				}
   655 			
   661 			
   656 			BaflUtils::DeleteFile(iPodcastModel.FsSession(), iSearchResultsFileName);
   662 			BaflUtils::DeleteFile(iPodcastModel.FsSession(), iSearchResultsFileName);
   657 			}break;
   663 			}break;
       
   664 		case EIdle:
       
   665 			UpdateNextFeedL();	
       
   666 			break;
   658 		default:
   667 		default:
   659 			Panic(EPodcatcherPanicFeedEngineState);
   668 			Panic(EPodcatcherPanicFeedEngineState);
   660 			break;
   669 			break;
   661 		}
   670 		}
   662 	DP("CFeedEngine::CompleteL END");
   671 	DP("CFeedEngine::CompleteL END");
   897 	{
   906 	{
   898 	DP("DBLoadFeeds BEGIN");
   907 	DP("DBLoadFeeds BEGIN");
   899 	iSortedFeeds.Reset();
   908 	iSortedFeeds.Reset();
   900 	CFeedInfo *feedInfo = NULL;
   909 	CFeedInfo *feedInfo = NULL;
   901 	
   910 	
   902 	_LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle from feeds");
   911 	_LIT(KSqlStatement, "select url, title, description, imageurl, imagefile, link, built, lastupdated, uid, feedtype, customtitle, lasterror from feeds");
   903 	iSqlBuffer.Format(KSqlStatement);
   912 	iSqlBuffer.Format(KSqlStatement);
   904 
   913 
   905 	sqlite3_stmt *st;
   914 	sqlite3_stmt *st;
   906 	 
   915 	 
   907 	TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle);
   916 	TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle);
   955 			if (customtitle)
   964 			if (customtitle)
   956 				{
   965 				{
   957 				feedInfo->SetCustomTitle();
   966 				feedInfo->SetCustomTitle();
   958 				}
   967 				}
   959 			
   968 			
   960 			TInt lasterror = sqlite3_column_int(st, 11);
   969 			sqlite3_int64 lasterror = sqlite3_column_int(st, 11);
   961 			feedInfo->SetLastError(lasterror);
   970 			feedInfo->SetLastError(lasterror);
   962 			
   971 			
   963 			TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle);
   972 			TLinearOrder<CFeedInfo> sortOrder( CFeedEngine::CompareFeedsByTitle);
   964 
   973 
   965 			iSortedFeeds.InsertInOrder(feedInfo, sortOrder);
   974 			iSortedFeeds.InsertInOrder(feedInfo, sortOrder);