browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp
branchRCL_3
changeset 63 4baee4f15982
parent 62 5a044f6358c2
--- a/browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp	Thu Jul 15 18:42:04 2010 +0300
+++ b/browserui/browser/FavouritesSrc/BrowserBookmarksView.cpp	Thu Aug 19 09:57:56 2010 +0300
@@ -451,6 +451,9 @@
 #ifdef __RSS_FEEDS
         case EWmlCmdOpenFeedsFolder:
             {
+            //complete remaining startup in Browser and then proceed
+            if ( !ApiProvider().StartedUp() )
+                ApiProvider().CompleteDelayedInit();
             ApiProvider().FeedsClientUtilities().ShowFolderViewL();
             break;
             }
@@ -930,8 +933,7 @@
         aRsk.setPair(EBrowserBookmarksCmdBack, R_BROWSER_BOOKMARKS_DYN_SK_TEXT_SOFTKEY_BACK);
 
         // OR, it could be exit under these conditions
-        if ( !ApiProvider().StartedUp() ||
-             (!iInAdaptiveBookmarksFolder && !ApiProvider().IsPageLoaded() && !ApiProvider().Fetching())  )
+        if ( (!iInAdaptiveBookmarksFolder && !ApiProvider().IsPageLoaded() && !ApiProvider().Fetching())  )
             {
             if ( iCurrentFolder == KFavouritesRootUid )
                 {
@@ -1215,7 +1217,7 @@
             }
         }
 
-    if ( TheContainer()->Listbox()->CurrentItem()->IsFolder() )
+    if ( TheContainer()->Listbox()->CurrentItem() && TheContainer()->Listbox()->CurrentItem()->IsFolder() )
         {
         SetEmptyTextL();
         }
@@ -1360,7 +1362,7 @@
         case R_GOTO_SUBMENU:
             {
             // back to page
-            if ( !ApiProvider().StartedUp() || (!ApiProvider().IsPageLoaded() && !ApiProvider().Fetching()))
+            if ( !ApiProvider().IsPageLoaded() && !ApiProvider().Fetching())
                 {
                 aMenuPane->SetItemDimmed( EWmlCmdBackToPage, ETrue );
                 }
@@ -2154,7 +2156,9 @@
             }
         
         // complete remaining application launch process, aynchronously
-        iAsyncComplete  = CIdle::NewL( CActive::EPriorityIdle );
+        // complete remaining init as soon as possible, otherwise it can be dangerous (crash)
+        // since UI code (views) are interdependent
+        iAsyncComplete  = CIdle::NewL( CActive::EPriorityHigh );
         iAsyncComplete->Start( TCallBack( CompleteAppInitCallback, &iApiProvider ) );
         return;
         }
@@ -2244,7 +2248,8 @@
 //
 void CBrowserBookmarksView::UpdateFavIconsL()
     {
-    Container()->Listbox()->UpdateFavIconsL();
+    if ( Container() && Container()->Listbox() )
+        Container()->Listbox()->UpdateFavIconsL();
     }