128 aCommSelector ) : |
128 aCommSelector ) : |
129 iObserver( aObserver ), |
129 iObserver( aObserver ), |
130 iPriorities( aPriorities ), |
130 iPriorities( aPriorities ), |
131 iRskBack( aRskBack ), |
131 iRskBack( aRskBack ), |
132 iFieldTypeSelector ( aFieldTypeSelector ), |
132 iFieldTypeSelector ( aFieldTypeSelector ), |
133 iCommMethod( aCommSelector ) |
133 iCommMethod( aCommSelector ), |
|
134 iContactRetrieved( EFalse ) |
134 { |
135 { |
135 } |
136 } |
136 |
137 |
137 // -------------------------------------------------------------------------- |
138 // -------------------------------------------------------------------------- |
138 // CPbk2CommAddressSelectPhase::~CPbk2CommAddressSelectPhase |
139 // CPbk2CommAddressSelectPhase::~CPbk2CommAddressSelectPhase |
241 // |
242 // |
242 void CPbk2CommAddressSelectPhase::LaunchServicePhaseL() |
243 void CPbk2CommAddressSelectPhase::LaunchServicePhaseL() |
243 { |
244 { |
244 // Start by retrieving first contact |
245 // Start by retrieving first contact |
245 iState = EMainContactRetrieving; |
246 iState = EMainContactRetrieving; |
|
247 iContactRetrieved = ETrue; |
246 RetrieveContactL(); |
248 RetrieveContactL(); |
247 } |
249 } |
248 |
250 |
249 // -------------------------------------------------------------------------- |
251 // -------------------------------------------------------------------------- |
250 // CPbk2CommAddressSelectPhase::CancelServicePhase |
252 // CPbk2CommAddressSelectPhase::CancelServicePhase |
579 if (!iPresenceIconsRetrieved) |
581 if (!iPresenceIconsRetrieved) |
580 { |
582 { |
581 // Error occured, destroy presence icon array |
583 // Error occured, destroy presence icon array |
582 iPresenceIconsRetrieved = ETrue; |
584 iPresenceIconsRetrieved = ETrue; |
583 iPresenceIconArray.ResetAndDestroy(); |
585 iPresenceIconArray.ResetAndDestroy(); |
584 |
586 //Needn't to launch address fetch dialog if contact had been retrieved, |
585 // start address fetch dialog, if it waits for presence icons |
587 //because it will start this dialog after retrieve the contact, |
586 TRAPD( err, DoSelectAddressesL() ); |
588 //avoid multiple launching of the select dialog |
587 if ( err != KErrNone ) |
589 if ( !iContactRetrieved ) |
588 { |
590 { |
589 iObserver.PhaseError( *this, err ); |
591 // Launch the address fetch dialog if it's waiting for presence icons. |
590 } |
592 TRAPD( err, DoSelectAddressesL() ); |
|
593 if ( err != KErrNone ) |
|
594 { |
|
595 iObserver.PhaseError( *this, err ); |
|
596 } |
|
597 } |
591 } |
598 } |
592 } |
599 } |
593 |
600 |
594 // -------------------------------------------------------------------------- |
601 // -------------------------------------------------------------------------- |
595 // CPbk2CommAddressSelectPhase::ReceiveIconInfosL |
602 // CPbk2CommAddressSelectPhase::ReceiveIconInfosL |