ipsservices/ipssosplugin/src/ipsplgimap4connectop.cpp
branchRCL_3
changeset 8 e1b6206813b4
parent 4 e7aa27f58ae1
child 24 d189ee25cf9d
equal deleted inserted replaced
4:e7aa27f58ae1 8:e1b6206813b4
   186     TFSProgress result = { TFSProgress::EFSStatus_Waiting, 0, 0, KErrNone };
   186     TFSProgress result = { TFSProgress::EFSStatus_Waiting, 0, 0, KErrNone };
   187     result.iError = KErrNone;
   187     result.iError = KErrNone;
   188     switch( iState )
   188     switch( iState )
   189         {
   189         {
   190         case EStateQueryingDetails:
   190         case EStateQueryingDetails:
       
   191         case EStateQueryingDetailsBusy:
   191             result.iProgressStatus = TFSProgress::EFSStatus_Authenticating;
   192             result.iProgressStatus = TFSProgress::EFSStatus_Authenticating;
   192             break;
   193             break;
   193         case EStateStartConnect:
   194         case EStateStartConnect:
   194             result.iProgressStatus = TFSProgress::EFSStatus_Started;
   195             result.iProgressStatus = TFSProgress::EFSStatus_Started;
   195             break;
   196             break;
   266         }
   267         }
   267     
   268     
   268     switch( iState )
   269     switch( iState )
   269         {
   270         {
   270         case EStateQueryingDetails:
   271         case EStateQueryingDetails:
   271             
   272             // querying pass finished - try to reconnect
   272             if ( KErrNone != err )
   273             DoConnectOpL();
   273                 {
       
   274                 // user might be cancelled query
       
   275                 // or it IS EMPTY
       
   276                 iError = err;
       
   277                 iState = EStateIdle;
       
   278                 }
       
   279             else
       
   280                 {
       
   281                 // Retry connect.
       
   282                 DoConnectOpL();
       
   283                 }
       
   284             break;
   274             break;
   285         case EStateStartConnect:
   275         case EStateStartConnect:
   286         	StartL();
   276         	StartL();
   287         	break;
   277         	break;
   288         case EStateConnectAndSync:
   278         case EStateConnectAndSync:
   289             // Connection completed
   279             // Connection completed
   290                 
   280 
   291             if( err == KErrImapBadLogon )
   281             if ( err == KErrImapBadLogon )
   292                 {
   282                 {
   293                 // Login details are wrong.
   283                 // Login details are wrong. Trying to ask for password
   294                 QueryUserPwdL();
   284                 if ( QueryUserPassL() )
   295                 iState = EStateQueryingDetails;
   285                     {
   296                 
   286                     err = KErrNone;
   297                 err = KErrNone;
   287                     }
   298                 }
   288                 }
   299             else if ( err == KErrNone )
   289             else if ( err == KErrNone )
   300                 {
   290                 {
   301                 // no errors in connection
   291                 // no errors in connection
   302                 if( !iDoPlainConnect )
   292                 if( !iDoPlainConnect )
   518 
   508 
   519 // ----------------------------------------------------------------------------
   509 // ----------------------------------------------------------------------------
   520 // CIpsPlgImap4ConnectOp::QueryUserPwdL()
   510 // CIpsPlgImap4ConnectOp::QueryUserPwdL()
   521 // ----------------------------------------------------------------------------
   511 // ----------------------------------------------------------------------------
   522 // 
   512 // 
   523 void CIpsPlgImap4ConnectOp::QueryUserPwdL()
   513 TBool CIpsPlgImap4ConnectOp::QueryUserPassL()
   524     {
   514     {
   525     if ( iEventHandler )
   515     if ( iEventHandler )
   526         {
   516         {
   527         iEventHandler->QueryUsrPassL( iService, this );
   517         // ask for credentials for imap account and wait for callback
   528         }
   518         if ( iEventHandler->QueryUsrPassL( iService, this ) )
       
   519             {
       
   520             iState = EStateQueryingDetails;
       
   521             }
       
   522         else
       
   523             {
       
   524             // another operation is waiting for password
       
   525             iState = EStateQueryingDetailsBusy;
       
   526             }
       
   527 
       
   528         return ETrue;
       
   529         }
       
   530 
       
   531     return EFalse;
   529     }
   532     }
   530 
   533 
   531     
   534     
   532 // ----------------------------------------------------------------------------
   535 // ----------------------------------------------------------------------------
   533 // CIpsPlgImap4ConnectOp::GetOperationErrorCodeL()
   536 // CIpsPlgImap4ConnectOp::GetOperationErrorCodeL()
   578 void CIpsPlgImap4ConnectOp::SignalSyncCompleted( TInt aError )
   581 void CIpsPlgImap4ConnectOp::SignalSyncCompleted( TInt aError )
   579     {
   582     {
   580     FUNC_LOG;
   583     FUNC_LOG;
   581     if ( iEventHandler && aError == KErrImapBadLogon )
   584     if ( iEventHandler && aError == KErrImapBadLogon )
   582         {
   585         {
       
   586         /*
   583         iEventHandler->SetNewPropertyEvent( 
   587         iEventHandler->SetNewPropertyEvent( 
   584                 iService, KIpsSosEmailSyncCompleted, aError );
   588                 iService, KIpsSosEmailSyncCompleted, aError );
       
   589         */
   585         iIsSyncStartedSignaled = EFalse;
   590         iIsSyncStartedSignaled = EFalse;
   586         }
   591         }
   587     }
   592     }
   588 
   593 
   589 
   594 
   590 // ----------------------------------------------------------------------------
   595 // ----------------------------------------------------------------------------
   591 // ----------------------------------------------------------------------------
   596 // ----------------------------------------------------------------------------
   592 void CIpsPlgImap4ConnectOp::CredientialsSetL( TInt aEvent )
   597 void CIpsPlgImap4ConnectOp::CredientialsSetL( TInt aEvent )
   593     {
   598     {
   594     FUNC_LOG;
   599     FUNC_LOG;
   595     if ( aEvent == EIPSSosCredientialsCancelled )
   600 
   596         {
   601     if ( iState == EStateQueryingDetails )
       
   602         {
       
   603         // response for our operation`s query
       
   604         if ( aEvent == EIPSSosCredientialsCancelled )
       
   605             {
       
   606             // user canceled operation
       
   607             CompleteObserver( KErrCancel );
       
   608             }
       
   609 
       
   610         // password has been set, continue with operation
       
   611         SetActive();
       
   612         CompleteThis();
       
   613         }
       
   614     else if ( iState == EStateQueryingDetailsBusy )
       
   615         {
       
   616         // response for other operation`s query
       
   617         // we could try to ask for password now,
       
   618         // but decision was made to cancel operation
   597         CompleteObserver( KErrCancel );
   619         CompleteObserver( KErrCancel );
   598         }
   620         SetActive();
   599     //password has been set, continue with operation
   621         CompleteThis();
   600     
   622         }
   601     SetActive();
       
   602     CompleteThis();
       
   603     }
   623     }
   604 // End of File
   624 // End of File
   605 
   625