equal
deleted
inserted
replaced
259 { |
259 { |
260 User::Leave(KErrInUse); |
260 User::Leave(KErrInUse); |
261 } |
261 } |
262 |
262 |
263 iActiveFeed = GetFeedInfoByUid(aFeedUid); |
263 iActiveFeed = GetFeedInfoByUid(aFeedUid); |
264 |
|
265 iCancelRequested = EFalse; |
264 iCancelRequested = EFalse; |
266 |
|
267 if (iActiveFeed->LastUpdated() == 0) |
|
268 { |
|
269 newFeed = ETrue; |
|
270 } |
|
271 |
|
272 showsAdded = 0; |
|
273 |
265 |
274 iActiveFeed->SetLastError(KErrNone); |
266 iActiveFeed->SetLastError(KErrNone); |
275 DBUpdateFeedL(*iActiveFeed); |
267 DBUpdateFeedL(*iActiveFeed); |
276 |
268 |
277 iUpdatingFeedFileName.Copy (iPodcastModel.SettingsEngine().PrivatePath ()); |
269 iUpdatingFeedFileName.Copy (iPodcastModel.SettingsEngine().PrivatePath ()); |
310 PodcastUtils::CleanHtmlL(ptr); |
302 PodcastUtils::CleanHtmlL(ptr); |
311 |
303 |
312 aItem.SetDescriptionL(*description); |
304 aItem.SetDescriptionL(*description); |
313 CleanupStack::PopAndDestroy(description); |
305 CleanupStack::PopAndDestroy(description); |
314 |
306 |
315 if (newFeed) { |
|
316 // for new feeds, set all shows played |
|
317 aItem.SetPlayState(EPlayed); |
|
318 // except the first one |
|
319 if (showsAdded == 0) { |
|
320 aItem.SetPlayState(ENeverPlayed); |
|
321 } |
|
322 } |
|
323 |
307 |
324 TRAPD(err, iPodcastModel.ShowEngine().AddShowL(aItem)); |
308 TRAPD(err, iPodcastModel.ShowEngine().AddShowL(aItem)); |
325 |
309 |
326 if (err == KErrNone && aItem.PlayState() == ENeverPlayed && |
310 if (err == KErrNone && aItem.PlayState() == ENeverPlayed && |
327 iPodcastModel.SettingsEngine().DownloadAutomatically()) |
311 iPodcastModel.SettingsEngine().DownloadAutomatically()) |
328 { |
312 { |
329 iPodcastModel.ShowEngine().AddDownloadL(aItem); |
313 iPodcastModel.ShowEngine().AddDownloadL(aItem); |
330 } |
314 } |
331 |
315 |
332 showsAdded++; |
|
333 DP("CFeedEngine::NewShowL END"); |
316 DP("CFeedEngine::NewShowL END"); |
334 } |
317 } |
335 |
318 |
336 void CFeedEngine::GetFeedImageL(CFeedInfo *aFeedInfo) |
319 void CFeedEngine::GetFeedImageL(CFeedInfo *aFeedInfo) |
337 { |
320 { |
607 break; |
590 break; |
608 default: |
591 default: |
609 { |
592 { |
610 if (!iCancelRequested) { |
593 if (!iCancelRequested) { |
611 iActiveFeed->SetLastError(aError); |
594 iActiveFeed->SetLastError(aError); |
612 TTime time; |
595 |
613 time.HomeTime(); |
|
614 iActiveFeed->SetLastUpdated(time); |
|
615 |
|
616 if( aError == KErrNone) |
596 if( aError == KErrNone) |
617 { |
597 { |
618 // Parse the feed. We need to trap this call since it could leave and then |
598 // Parse the feed. We need to trap this call since it could leave and then |
619 // the whole update chain will be broken |
599 // the whole update chain will be broken |
620 // change client state |
600 // change client state |
653 else |
633 else |
654 { |
634 { |
655 // even if it fails, this will allow us to move on |
635 // even if it fails, this will allow us to move on |
656 iClientState = EIdle; |
636 iClientState = EIdle; |
657 } |
637 } |
|
638 TTime time; |
|
639 time.HomeTime(); |
|
640 iActiveFeed->SetLastUpdated(time); |
658 } |
641 } |
659 iCancelRequested = EFalse; |
642 iCancelRequested = EFalse; |
660 }break; |
643 }break; |
661 } |
644 } |
662 DBUpdateFeedL(*iActiveFeed); |
645 DBUpdateFeedL(*iActiveFeed); |
1212 for (TInt i=0;i<iObservers.Count();i++) |
1195 for (TInt i=0;i<iObservers.Count();i++) |
1213 { |
1196 { |
1214 iObservers[i]->OpmlParsingComplete(aError, aNumFeedsAdded); |
1197 iObservers[i]->OpmlParsingComplete(aError, aNumFeedsAdded); |
1215 } |
1198 } |
1216 } |
1199 } |
|
1200 |
|
1201 void CFeedEngine::ParserShowUpdatedL(CShowInfo& aShow) |
|
1202 { |
|
1203 iPodcastModel.ShowEngine().UpdateShowL(aShow); |
|
1204 if (aShow.PlayState() == ENeverPlayed && |
|
1205 iPodcastModel.SettingsEngine().DownloadAutomatically()) |
|
1206 { |
|
1207 iPodcastModel.ShowEngine().AddDownloadL(aShow); |
|
1208 } |
|
1209 } |