phonebookui/Phonebook2/ccapplication/ccadetailsviewplugin/src/ccappdetailsviewplugin.cpp
branchRCL_3
changeset 39 a6539d1e8e43
parent 23 5586b4d2ec3e
child 64 c1e8ba0c2b16
--- a/phonebookui/Phonebook2/ccapplication/ccadetailsviewplugin/src/ccappdetailsviewplugin.cpp	Tue May 25 12:26:45 2010 +0300
+++ b/phonebookui/Phonebook2/ccapplication/ccadetailsviewplugin/src/ccappdetailsviewplugin.cpp	Wed Jun 09 09:26:27 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Implementation of details view plugin
-*  Version     : %version: he1s60#23.1.1.2.17 %
+*  Version     : %version: be1s60pr#23.1.1.2.18 %
 *
 */
 
@@ -507,13 +507,40 @@
 // --------------------------------------------------------------------------
 //
 void CCCAppDetailsViewPlugin::StoreUnavailable(
-    MVPbkContactStore& /*aContactStore*/,
+    MVPbkContactStore& aContactStore,
     TInt /*aReason*/)
 {
-    if (iSchedulerWait.IsStarted())
-    {
-        iSchedulerWait.AsyncStop();
-    }
+    if( iLink )
+        {
+        TVPbkContactStoreUriPtr linkuri = 
+                iLink->ContactStore().StoreProperties().Uri();
+        
+        TVPbkContactStoreUriPtr uri = aContactStore.StoreProperties().Uri();
+        
+        if( linkuri.Compare( uri, 
+                TVPbkContactStoreUriPtr::EContactStoreUriAllComponents ) == 0 )
+            {
+            /*
+             * When the end user is selecting a phone contact, the SIM store 
+             * will be opened during opening phone stores, and this function is 
+             * called if the SIM store is unavailable.However the scheduler wait
+             * object can not stop during the operation (phone contact 
+             * selecting), since the program is keeping on waiting for the 
+             * other call backs coming.
+             */
+            if (iSchedulerWait.IsStarted())
+                {
+                iSchedulerWait.AsyncStop();
+                }
+            }
+        }
+    else
+        {
+        if (iSchedulerWait.IsStarted())
+            {
+            iSchedulerWait.AsyncStop();
+            }
+        }
 }
 
 // --------------------------------------------------------------------------