uiservicetab/vimpstengine/src/cvimpstengine.cpp
branchRCL_3
changeset 11 bef90b82da71
parent 10 78867dafe7eb
child 14 9fdee5e1da30
equal deleted inserted replaced
10:78867dafe7eb 11:bef90b82da71
   723 		{
   723 		{
   724 		//Presence Service needs to Register for the XIMP Events once when
   724 		//Presence Service needs to Register for the XIMP Events once when
   725 		//the context gets binded
   725 		//the context gets binded
   726 		//Get Presence SubService   
   726 		//Get Presence SubService   
   727 		CVIMPSTEnginePresenceSubService* presSubService = 
   727 		CVIMPSTEnginePresenceSubService* presSubService = 
   728 									dynamic_cast<CVIMPSTEnginePresenceSubService*>(SubService(TVIMPSTEnums::EPresence));               
   728 									dynamic_cast<CVIMPSTEnginePresenceSubService*>(SubService(TVIMPSTEnums::EPresence));     
       
   729 		// in case of roaming(moving from one network to another)
       
   730 		// servicetab goes from registered to connecting state, hence the unbind is done here.
       
   731     if (  presSubService && TVIMPSTEnums::ESVCERegistered == previousState &&
       
   732           TVIMPSTEnums::ESVCENetworkConnecting == iState )
       
   733           {
       
   734           TRACE( T_LIT( "HandleServceConnectionEventL()-UnsubscribeLists" ) );
       
   735           
       
   736           TRAPD( err, presSubService->UnsubscribeListsL() );
       
   737 	  
       
   738           TRACE( T_LIT( "HandleServceConnectionEventL()-UnsubscribeLists -err: %d" ), err );
       
   739 	  
       
   740           if ( iSessionCntxtObserver )
       
   741               {
       
   742               iSessionCntxtObserver->ServerUnBindL( ETrue );
       
   743               }
       
   744           }          
   729 		TInt count = iObserverArray.Count();
   745 		TInt count = iObserverArray.Count();
   730 		for (TInt index=0; index<count; index++)		
   746 		for (TInt index=0; index<count; index++)		
   731 			{
   747 			{
   732 			TRACE( T_LIT("HandleServceConnectionEventL()calling HandleServiceEventL") );
   748 			TRACE( T_LIT("HandleServceConnectionEventL()calling HandleServiceEventL") );
   733 			iObserverArray[index]->HandleServiceEventL(iState, KErrNone);
   749 			iObserverArray[index]->HandleServiceEventL(iState, KErrNone);