application/src/PodcastFeedView.cpp
changeset 61 8d36b7608232
parent 60 bbf5c5204844
child 63 a8538f50e2ba
equal deleted inserted replaced
60:bbf5c5204844 61:8d36b7608232
   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