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(); |