--- a/browserui/browser/FavouritesSrc/BrowserFavouritesListbox.cpp Wed Jun 09 09:45:02 2010 +0300
+++ b/browserui/browser/FavouritesSrc/BrowserFavouritesListbox.cpp Mon Jun 21 15:43:41 2010 +0300
@@ -107,6 +107,8 @@
delete iIconIndexes;
delete iItems;
delete iNewState;
+ if(iIconUpdateCallback) iIconUpdateCallback->Cancel();
+ delete iIconUpdateCallback;
if ( iFontItalic )
{
@@ -144,7 +146,16 @@
CleanupStack::PushL( aItems );
// Get all favicons asynchronously by iteration on icon array
+ /* TODO: There should a callback from engine when favIcon are decode
+ otherwise it takes some redundant calls to engine in order to get
+ the favIcons to UI. */
+#ifdef BRDO_PERF_IMPROVEMENTS_ENABLED_FF
+ if(iApiProvider.StartedUp())
+ UpdateFavIconsL();
+#else
iFaviconHandler->StartGetFaviconsL( aItems );
+#endif
+
// Get icon indexes into new list. Replace the existing
// data only if successfully gotten. This ensures that they don't go out
@@ -188,6 +199,33 @@
}
// ---------------------------------------------------------
+// CBrowserFavouritesListbox::UpdateFavIcons
+// ---------------------------------------------------------
+//
+void CBrowserFavouritesListbox::UpdateFavIconsL()
+ {
+ if(iIconUpdateCallback)
+ iIconUpdateCallback->Cancel();
+ else
+ iIconUpdateCallback = CIdle::NewL(CActive::EPriorityIdle);
+
+ iFaviconHandler->RequestFavicons(iItems);
+ iIconUpdateCallback->Start(TCallBack(UpdateFavIconsCallback, this));
+ }
+
+// ----------------------------------------------------------------------------
+// CBrowserBookmarksView::CompleteAppInitCallback
+// ----------------------------------------------------------------------------
+//
+TInt CBrowserFavouritesListbox::UpdateFavIconsCallback( TAny* aParam )
+ {
+ CBrowserFavouritesListbox *favListBox = STATIC_CAST(CBrowserFavouritesListbox*, aParam);
+ TRAP_IGNORE( (favListBox->iFaviconHandler->StartGetFaviconsL(favListBox->iItems)) )
+ return EFalse;
+ }
+
+
+// ---------------------------------------------------------
// CBrowserFavouritesListbox::DrawFavicons
// ---------------------------------------------------------
//