ccservices/cmsservices/cmsengine/Server/src/cmsphonebookproxy.cpp
branchRCL_3
changeset 39 a6539d1e8e43
parent 35 4ae315f230bc
child 64 c1e8ba0c2b16
equal deleted inserted replaced
35:4ae315f230bc 39:a6539d1e8e43
   122 //
   122 //
   123 // ----------------------------------------------------------
   123 // ----------------------------------------------------------
   124 //
   124 //
   125 TBool CCmsPhonebookProxy::StoreOpenStatus()
   125 TBool CCmsPhonebookProxy::StoreOpenStatus()
   126     {
   126     {
   127     if( iAtLeastOneStoreReady && iOpenComplete && iCurrentContactStoreReady )
   127     if( iAtLeastOneStoreReady && iOpenComplete )
   128         {
   128         {
   129         return ETrue;
   129         return ETrue;
   130         }
   130         }
   131 
   131 
   132     return EFalse;
   132     return EFalse;
   140 void CCmsPhonebookProxy::InitStoresL()
   140 void CCmsPhonebookProxy::InitStoresL()
   141     {
   141     {
   142     PRINT ( _L("Start CCmsPhonebookProxy::InitStoresL()") );
   142     PRINT ( _L("Start CCmsPhonebookProxy::InitStoresL()") );
   143     
   143     
   144     if( !iOpenComplete )
   144     if( !iOpenComplete )
   145         {
   145         {                               
   146         iCurrentContactStoreReady = EFalse;
       
   147         iReadyStores.ResetAndDestroy();                        
       
   148         iStoreList->OpenAllL( *this );
   146         iStoreList->OpenAllL( *this );
   149         }
   147         }
   150     PRINT ( _L("End CCmsPhonebookProxy::InitStoresL()") );
   148     PRINT ( _L("End CCmsPhonebookProxy::InitStoresL()") );
   151     }
   149     }
   152 
   150 
   424 // ----------------------------------------------------------
   422 // ----------------------------------------------------------
   425 //
   423 //
   426 void CCmsPhonebookProxy::SetContact( MVPbkStoreContact* aContact )
   424 void CCmsPhonebookProxy::SetContact( MVPbkStoreContact* aContact )
   427     {
   425     {
   428     iContact = aContact;
   426     iContact = aContact;
   429     
   427     iCurrentContactStoreReady = EFalse;
   430     if( !iCurrentContactStoreReady  && iContact )
   428         
       
   429     if( iContact )
   431         {
   430         {
   432         for( TInt x=0; x<iReadyStores.Count(); x++ )
   431         for( TInt x=0; x<iReadyStores.Count(); x++ )
   433             {
   432             {
   434             if( iReadyStores[x]->Des().CompareC(  
   433             if( iReadyStores[x]->Des().CompareC(  
   435                     iContact->ContactStore().StoreProperties().Uri().UriDes() ) == 0 )
   434                     iContact->ContactStore().StoreProperties().Uri().UriDes() ) == 0 )
   436                 {
   435                 {                            
   437             
       
   438                 iCurrentContactStoreReady = ETrue;
   436                 iCurrentContactStoreReady = ETrue;
   439                 iCmsPhonebookOperationsObserver.StoreOpenComplete();
       
   440                 break;
   437                 break;
   441                 }                                        
   438                 }                                        
   442             }
   439             }
   443         }
   440         }            
   444     // Check in case the contact has changed
       
   445     else if( iCurrentContactStoreReady  && iContact )
       
   446         {
       
   447         iCurrentContactStoreReady = EFalse;
       
   448     
       
   449         for( TInt x=0; x<iReadyStores.Count(); x++ )
       
   450             {
       
   451             if( iReadyStores[x]->Des().Compare(  
       
   452                     iContact->ContactStore().StoreProperties().Uri().UriDes() ) == 0 )
       
   453                 {
       
   454                 // Contact found from ready stores
       
   455                 iCurrentContactStoreReady = ETrue;                
       
   456                 break;
       
   457                 }                                        
       
   458             }
       
   459         }
       
   460     }
   441     }
   461 
   442 
   462 // ----------------------------------------------------------
   443 // ----------------------------------------------------------
   463 // CCmsPhonebookProxy::ExternalStoresIntalled
   444 // CCmsPhonebookProxy::ExternalStoresIntalled
   464 //
   445 //
   486 //
   467 //
   487 void CCmsPhonebookProxy::OpenComplete()
   468 void CCmsPhonebookProxy::OpenComplete()
   488     {
   469     {
   489     PRINT( _L("Start CCmsPhonebookProxy::OpenComplete()" ) );
   470     PRINT( _L("Start CCmsPhonebookProxy::OpenComplete()" ) );
   490     iOpenComplete = ETrue;
   471     iOpenComplete = ETrue;
   491     if ( iAtLeastOneStoreReady && !iCurrentContactStoreReady )
   472     if ( iAtLeastOneStoreReady )
   492         {        
   473         {        
   493         iCmsPhonebookOperationsObserver.StoreOpenComplete();
   474         iCmsPhonebookOperationsObserver.StoreOpenComplete();
   494         iCurrentContactStoreReady = ETrue;        
   475         iCurrentContactStoreReady = ETrue;				      
   495         }
   476         }
   496     PRINT( _L("End CCmsPhonebookProxy::OpenComplete()" ) );
   477     PRINT( _L("End CCmsPhonebookProxy::OpenComplete()" ) );
   497     }
   478     }
   498 
   479 
   499 // ----------------------------------------------------------
   480 // ----------------------------------------------------------
   585     
   566     
   586     if( iContact && iContact->ContactStore().StoreProperties().Uri().UriDes().Compare(
   567     if( iContact && iContact->ContactStore().StoreProperties().Uri().UriDes().Compare(
   587     aContactStore.StoreProperties().Uri().UriDes() ) == 0 && !iCurrentContactStoreReady )
   568     aContactStore.StoreProperties().Uri().UriDes() ) == 0 && !iCurrentContactStoreReady )
   588         {
   569         {
   589         iCurrentContactStoreReady = ETrue;
   570         iCurrentContactStoreReady = ETrue;
   590         iCmsPhonebookOperationsObserver.StoreOpenComplete();        
   571         iCmsPhonebookOperationsObserver.StoreOpenComplete();
   591         }
   572         }
   592     }
   573     }
   593 
   574 
   594 // ----------------------------------------------------------
   575 // ----------------------------------------------------------
   595 // CCmsPhonebookProxy::StoreUnavailable
   576 // CCmsPhonebookProxy::StoreUnavailable
   632 // ----------------------------------------------------------
   613 // ----------------------------------------------------------
   633 //
   614 //
   634 void CCmsPhonebookProxy::ConfigurationChanged()
   615 void CCmsPhonebookProxy::ConfigurationChanged()
   635     {
   616     {
   636     PRINT( _L( "CCmsPhonebookProxy::ConfigurationChanged()" ) );
   617     PRINT( _L( "CCmsPhonebookProxy::ConfigurationChanged()" ) );
       
   618     if( iContactInterface && iContact )
       
   619         {
       
   620         iContactInterface->ContactReadyL( KErrNone, NULL );        
       
   621         }
   637     }
   622     }
   638 
   623 
   639 // ----------------------------------------------------------
   624 // ----------------------------------------------------------
   640 // CCmsPhonebookProxy::ConfigurationChangedComplete
   625 // CCmsPhonebookProxy::ConfigurationChangedComplete
   641 //
   626 //
   657 void CCmsPhonebookProxy::CreateConfigurationL()
   642 void CCmsPhonebookProxy::CreateConfigurationL()
   658     {
   643     {
   659     PRINT( _L( "Start CCmsPhonebookProxy::CreateConfigurationL()" ) );
   644     PRINT( _L( "Start CCmsPhonebookProxy::CreateConfigurationL()" ) );
   660 
   645 
   661     iAtLeastOneStoreReady = EFalse;
   646     iAtLeastOneStoreReady = EFalse;
       
   647     iCurrentContactStoreReady = EFalse;    
   662     iOpenComplete = EFalse;
   648     iOpenComplete = EFalse;
   663     delete iUriList;
   649     delete iUriList;
   664     iUriList = NULL;
   650     iUriList = NULL;
   665     iContactStore = NULL;
   651     iContactStore = NULL;
       
   652     iReadyStores.ResetAndDestroy();
   666 
   653 
   667     // Support all contact stores, not only those defined by phonebook2 setting
   654     // Support all contact stores, not only those defined by phonebook2 setting
   668     iUriList = iStoreConfiguration->SupportedStoreConfigurationL();
   655     iUriList = iStoreConfiguration->SupportedStoreConfigurationL();
   669     
   656     
   670     ixSPStoresArray.Reset();
   657     ixSPStoresArray.Reset();