125 iPodcastModel.FeedEngine().RemoveObserver(this); |
125 iPodcastModel.FeedEngine().RemoveObserver(this); |
126 delete iFeedsFormat; |
126 delete iFeedsFormat; |
127 delete iNeverUpdated; |
127 delete iNeverUpdated; |
128 delete iStylusPopupMenu; |
128 delete iStylusPopupMenu; |
129 delete iUpdater; |
129 delete iUpdater; |
|
130 iFeedIdForIconArray.Close(); |
130 } |
131 } |
131 |
132 |
132 void CPodcastFeedView::UpdateItemL(TInt aIndex) |
133 void CPodcastFeedView::UpdateItemL(TInt aIndex) |
133 { |
134 { |
134 _LIT(KPanicCategory, "CPodcastFeedView::UpdateItemL"); |
135 _LIT(KPanicCategory, "CPodcastFeedView::UpdateItemL"); |
376 { |
377 { |
377 GetFeedErrorText(unplayedShows, aFeedInfo.LastError()); |
378 GetFeedErrorText(unplayedShows, aFeedInfo.LastError()); |
378 } |
379 } |
379 } |
380 } |
380 CArrayPtr<CGulIcon>* icons = iListContainer->Listbox()->ItemDrawer()->FormattedCellData()->IconArray(); |
381 CArrayPtr<CGulIcon>* icons = iListContainer->Listbox()->ItemDrawer()->FormattedCellData()->IconArray(); |
381 |
382 iconIndex = iFeedIdForIconArray.Find(aFeedInfo.Uid()); |
382 if(aFeedInfo.FeedIcon() != NULL && |
383 if(iconIndex == KErrNotFound && aFeedInfo.FeedIcon() != NULL && |
383 aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 && |
384 aFeedInfo.FeedIcon()->SizeInPixels().iHeight > 0 && |
384 aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0) |
385 aFeedInfo.FeedIcon()->SizeInPixels().iWidth > 0) |
385 { |
386 { |
386 // Hopefully temporary haxx to prevent double delete. I would prefer if |
387 // Hopefully temporary haxx to prevent double delete. I would prefer if |
387 // this could be solved with a little better design. |
388 // this could be solved with a little better design. |
388 CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap; |
389 CFbsBitmap* bmpCopy = new (ELeave) CFbsBitmap; |
389 CleanupStack::PushL(bmpCopy); |
390 CleanupStack::PushL(bmpCopy); |
390 bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle()); |
391 bmpCopy->Duplicate(aFeedInfo.FeedIcon()->Handle()); |
391 icons->AppendL( CGulIcon::NewL(bmpCopy, NULL)); |
392 icons->AppendL( CGulIcon::NewL(bmpCopy, NULL)); |
|
393 iFeedIdForIconArray.Append(aFeedInfo.Uid()); |
392 CleanupStack::Pop(bmpCopy); |
394 CleanupStack::Pop(bmpCopy); |
393 iconIndex = icons->Count()-1; |
395 iconIndex = icons->Count()-1; |
394 } |
396 } |
395 else |
397 else |
396 { |
398 { |
397 iconIndex = 0; |
399 iconIndex++; |
398 } |
400 } |
399 |
|
400 |
401 |
401 if (unplayedShows.Length() > 0) { |
402 if (unplayedShows.Length() > 0) { |
402 unplayedShows.Insert(0,_L(", ")); |
403 unplayedShows.Insert(0,_L(", ")); |
403 } |
404 } |
404 |
405 |