phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp
branchRCL_3
changeset 19 7d48bed6ce0c
parent 3 a4a774cb6ea7
child 20 987c9837762f
equal deleted inserted replaced
18:594d59766373 19:7d48bed6ce0c
     1 /*
     1 /*
     2 * Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
     2 * Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). 
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 
    19 
    20 // INCLUDE FILES
    20 // INCLUDE FILES
    21 #include "CPhCltUssdImp.h"
    21 #include "cphcltussdimp.h" 
    22 #include "CPhCltUssdRequestHandler.h"
    22 #include "cphcltussdrequesthandler.h" 
    23 #include "PhCltClientServer.h"
    23 #include "phcltclientserver.h" 
    24 #include <PhCltTypes.h>
    24 #include <phclttypes.h> 
    25 
    25 
    26 #include <etelmm.h>
    26 #include <etelmm.h>
    27 #include <f32file.h>
    27 #include <f32file.h>
    28 #include <charconv.h>
    28 #include <charconv.h>
    29 #include <gsmuelem.h>
    29 #include <gsmuelem.h>
    30 //
    30 #include <coemain.h>  
    31 #include <coemain.h>
    31 //#include <phoneclient.rsg> 
    32 #include <avkon.hrh>
       
    33 #include <avkon.rsg> 
       
    34 
       
    35 #include <PhoneClient.rsg>
       
    36 #include <exterror.h>
    32 #include <exterror.h>
    37 
    33 
    38 #include <gsmerror.h>
    34 #include <gsmerror.h>
    39 #include <etelsat.h>
    35 #include <etelsat.h>
    40 
    36 
    41 #include "MPhCltUssdNoteControllerCallBack.h"
    37 #include "mphcltussdnotecontrollercallback.h" 
    42 #include "CPhCltUssdNoteController.h"
    38 #include "cphcltussdnotecontroller.h" 
    43 
    39 #include "cphcltussdcommonconstant.h"
       
    40 #include "tflogger.h"
    44 // CONSTANTS
    41 // CONSTANTS
    45 
    42 
    46 const TUint8 KPhCltUssdDcsDefaultAlphabet = 0x0f; // 00001111
    43 const TUint8 KPhCltUssdDcsDefaultAlphabet = 0x0f; // 00001111
    47                        
    44                        
    48 const TUint8 KPhCltUssdDcsAlphabetDefaultPrecededLanguage = 0x10; // 00010000 
    45 const TUint8 KPhCltUssdDcsAlphabetDefaultPrecededLanguage = 0x10; // 00010000 
   331 // Two-phased constructor.
   328 // Two-phased constructor.
   332 // -----------------------------------------------------------------------------
   329 // -----------------------------------------------------------------------------
   333 //
   330 //
   334 CPhCltUssdImp* CPhCltUssdImp::NewL( TBool aShowNotes )
   331 CPhCltUssdImp* CPhCltUssdImp::NewL( TBool aShowNotes )
   335     {
   332     {
       
   333     TFLOGSTRING("CPhCltUssdImp: NewL call")
   336     CPhCltUssdImp* self = new( ELeave ) CPhCltUssdImp;
   334     CPhCltUssdImp* self = new( ELeave ) CPhCltUssdImp;
   337     CleanupStack::PushL( self );
   335     CleanupStack::PushL( self );
   338     self->ConstructL( aShowNotes );
   336     self->ConstructL( aShowNotes );
   339     CleanupStack::Pop(); // self
   337     CleanupStack::Pop(); // self
       
   338     TFLOGSTRING("CPhCltUssdImp: NewL exit")
   340     return self;
   339     return self;
   341     }
   340     }
   342 
   341 
   343 
   342 
   344 // -----------------------------------------------------------------------------
   343 // -----------------------------------------------------------------------------
   346 // Symbian 2nd phase constructor can leave.
   345 // Symbian 2nd phase constructor can leave.
   347 // -----------------------------------------------------------------------------
   346 // -----------------------------------------------------------------------------
   348 //
   347 //
   349 void CPhCltUssdImp::ConstructL( TBool aShowNotes )
   348 void CPhCltUssdImp::ConstructL( TBool aShowNotes )
   350     {
   349     {
       
   350     TFLOGSTRING("CPhCltUssdImp: ConstructL call")
   351     // The note controller is needed only if the notes are shown.
   351     // The note controller is needed only if the notes are shown.
   352     iNoteController = NULL;
   352     iNoteController = NULL;
   353     
   353     
   354     if ( aShowNotes )
   354     if ( aShowNotes )
   355         {
   355         {
   356         iNoteController = CPhCltUssdNoteController::NewL( 
   356         iNoteController = CPhCltUssdNoteController::NewL( 
   357             *this, 
   357             *this );
   358             CActive::EPriorityStandard );
       
   359         }
   358         }
   360 
   359 
   361     iDCS = KPhCltUssdDcsDefaultAlphabet;
   360     iDCS = KPhCltUssdDcsDefaultAlphabet;
   362     iWait = new( ELeave ) CActiveSchedulerWait;
   361     iWait = new( ELeave ) CActiveSchedulerWait;
   363 
   362 
   364     // The one that send the request forward.
   363     // The one that send the request forward.
   365     iRequestHandler = CPhCltUssdRequestHandler::NewL( 
   364     iRequestHandler = CPhCltUssdRequestHandler::NewL( 
   366         *this, 
   365         *this, 
   367         CActive::EPriorityStandard );
   366         CActive::EPriorityStandard );
       
   367     TFLOGSTRING("CPhCltUssdImp: ConstructL exit")
   368     }
   368     }
   369 
   369 
   370 
   370 
   371 // -----------------------------------------------------------------------------
   371 // -----------------------------------------------------------------------------
   372 // CPhCltUssdImp::CPhCltUssdImp
   372 // CPhCltUssdImp::CPhCltUssdImp
   374 // might leave.
   374 // might leave.
   375 // -----------------------------------------------------------------------------
   375 // -----------------------------------------------------------------------------
   376 //
   376 //
   377 CPhCltUssdImp::CPhCltUssdImp()
   377 CPhCltUssdImp::CPhCltUssdImp()
   378     {
   378     {
       
   379     TFLOGSTRING("CPhCltUssdImp: CPhCltUssdImp call_exit")
   379     } 
   380     } 
   380 
   381 
   381 
   382 
   382 // -----------------------------------------------------------------------------
   383 // -----------------------------------------------------------------------------
   383 // CPhCltUssdImp::~CPhCltUssdImp
   384 // CPhCltUssdImp::~CPhCltUssdImp
   384 // Destructor.
   385 // Destructor.
   385 // -----------------------------------------------------------------------------
   386 // -----------------------------------------------------------------------------
   386 //
   387 //
   387 CPhCltUssdImp::~CPhCltUssdImp()
   388 CPhCltUssdImp::~CPhCltUssdImp()
   388     {
   389     {
       
   390     TFLOGSTRING("CPhCltUssdImp: ~CPhCltUssdImp call") 
   389     if ( iWait )
   391     if ( iWait )
   390         {
   392         {
   391         if ( iWait->IsStarted() )
   393         if ( iWait->IsStarted() )
   392             {
   394             {
   393             iWait->AsyncStop();
   395             iWait->AsyncStop();
   398 
   400 
   399     delete iRequestHandler;
   401     delete iRequestHandler;
   400     iRequestHandler = NULL;
   402     iRequestHandler = NULL;
   401     
   403     
   402     delete iNoteController;
   404     delete iNoteController;
   403     iNoteController = NULL;      
   405     iNoteController = NULL;
       
   406     TFLOGSTRING("CPhCltUssdImp: ~CPhCltUssdImp exit") 
   404     }
   407     }
   405 
   408 
   406 
   409 
   407 // -----------------------------------------------------------------------------
   410 // -----------------------------------------------------------------------------
   408 // CPhCltUssdImp::HandleSendEventL
   411 // CPhCltUssdImp::HandleSendEventL
   411 // positive -> the Send is completed due received message.
   414 // positive -> the Send is completed due received message.
   412 // -----------------------------------------------------------------------------
   415 // -----------------------------------------------------------------------------
   413 //
   416 //
   414 void CPhCltUssdImp::HandleSendEventL( const TInt aError )
   417 void CPhCltUssdImp::HandleSendEventL( const TInt aError )
   415     {
   418     {
   416     *iSendError = Min( aError , KErrNone );
   419     iSendError = Min( aError , KErrNone );
   417 
   420     TFLOGSTRING2("CPhCltUssdImp: HandleSendEventL\
       
   421             aError = %d call", aError)
   418     // iNoteController is allocated only if notes are shown.
   422     // iNoteController is allocated only if notes are shown.
   419     if ( iNoteController )
   423     if ( iNoteController )
   420         {
   424         {
   421         // Send request is completed, now destroy the wait note
   425         // Send request is completed, now destroy the wait note
   422         iNoteController->DestroyGlobalWaitNote();
   426         iNoteController->DestroyGlobalWaitNote();
   426             {
   430             {
   427             switch ( aError )
   431             switch ( aError )
   428                 {
   432                 {
   429                 // All Ok.
   433                 // All Ok.
   430                 case KErrNone:
   434                 case KErrNone:
   431                     iNoteController->ShowGlobalConfirmationNoteL( R_TEXT_DONE );
   435                     iNoteController->ShowGlobalInformationNoteL( EPhCltUssdDone );
   432                     break;
   436                     break;
   433 
   437 
   434                 // Operation cancelled.
   438                 // Operation cancelled.
   435                 case KErrCancel:
   439                 case KErrCancel:
   436                     iNoteController->ShowGlobalInformationNoteL( R_TEXT_UNCONFIRMED );
   440                     iNoteController->ShowGlobalInformationNoteL( EPhCltUssdUnconfirme );
   437                     break;
   441                     break;
   438 
   442 
   439                 // Ongoing Ussd session or the string is barred due SS request
   443                 // Ongoing Ussd session or the string is barred due SS request
   440                 // or Fixed Dialling feature.
   444                 // or Fixed Dialling feature.
   441                 case KErrInUse:
   445                 case KErrInUse:
   442                 case KErrAccessDenied:
   446                 case KErrAccessDenied:
   443                 case KErrGsmSSCallBarred:
   447                 case KErrGsmSSCallBarred:
   444                     iNoteController->ShowGlobalInformationNoteL( R_TEXT_NOT_ALLOWED );
   448                     iNoteController->ShowGlobalInformationNoteL( EPhCltUssdNotallowed );
   445                     break;
   449                     break;
   446 
   450 
   447                 // No network coverage.
   451                 // No network coverage.
   448                 case KErrGsmSMSNoNetworkService:
   452                 case KErrGsmSMSNoNetworkService:
   449                     iNoteController->ShowGlobalInformationNoteL( R_TEXT_NO_SERVICE );
   453                     iNoteController->ShowGlobalInformationNoteL(EPhCltUssdNoservice );
   450                     break;
   454                     break;
   451 
   455 
   452                 // Offline mode.
   456                 // Offline mode.
   453                 case KErrGsmOfflineOpNotAllowed:
   457                 case KErrGsmOfflineOpNotAllowed:
   454                     iNoteController->ShowGlobalInformationNoteL( R_TEXT_OFFLINE );
   458                     iNoteController->ShowGlobalInformationNoteL( EPhCltUssdOffline );
   455                     break;
   459                     break;
   456                     
   460                     
   457                 case KErrSatControl:
   461                 case KErrSatControl:
   458                     break; 
   462                     break; 
   459 
   463 
   460                 // Unknown error.
   464                 // Unknown error.
   461                 default:
   465                 default:
   462                     iNoteController->ShowGlobalInformationNoteL( R_TEXT_NOT_DONE );
   466                     iNoteController->ShowGlobalInformationNoteL( EPhCltUssdNotDone );
   463                     break;
   467                     break;
   464                 }
   468                 }
   465             }
   469             }
   466         }
   470         }
   467 
   471 
   468     // Let the original active object (one that did the send request) run again.
   472     // Let the original active object (one that did the send request) run again.
   469     if ( iWait->IsStarted() )
   473     if ( iWait->IsStarted() )
   470         {
   474         {
   471         iWait->AsyncStop();
   475         iWait->AsyncStop();
   472         }
   476         }
       
   477     TFLOGSTRING("CPhCltUssdImp: HandleSendEventL exit")
   473     }
   478     }
   474 
   479 
   475 
   480 
   476 // -----------------------------------------------------------------------------
   481 // -----------------------------------------------------------------------------
   477 // CPhCltUssdImp::SendUssd
   482 // CPhCltUssdImp::SendUssd
   529 //
   534 //
   530 TInt CPhCltUssdImp::SendUssd( 
   535 TInt CPhCltUssdImp::SendUssd( 
   531     const TDesC8& aMsgData, 
   536     const TDesC8& aMsgData, 
   532     const TUint8 iSendDcs )
   537     const TUint8 iSendDcs )
   533     {
   538     {
       
   539     TFLOGSTRING("CPhCltUssdImp: SendUssd call")
   534     __ASSERT_ALWAYS( aMsgData.Length() <= KPhCltUssdMax7BitCharacterOctets,
   540     __ASSERT_ALWAYS( aMsgData.Length() <= KPhCltUssdMax7BitCharacterOctets,
   535         User::Invariant() );
   541         User::Invariant() );
   536 
   542 
   537 	RMobileUssdMessaging::TMobileUssdAttributesV1 attribute;
   543     RMobileUssdMessaging::TMobileUssdAttributesV1 attribute;
   538 
   544 
   539     attribute.iFlags = 
   545     attribute.iFlags = 
   540         RMobileUssdMessaging::KUssdDataFormat + 
   546         RMobileUssdMessaging::KUssdDataFormat + 
   541         RMobileUssdMessaging::KUssdMessageDcs;
   547         RMobileUssdMessaging::KUssdMessageDcs;
   542     if ( iDCS2  == KPhCltDcs7Bit )
   548     if ( iDCS2  == KPhCltDcs7Bit )
   547         {
   553         {
   548         attribute.iFormat = RMobileUssdMessaging::EFormatUnspecified;
   554         attribute.iFormat = RMobileUssdMessaging::EFormatUnspecified;
   549         }
   555         }
   550         
   556         
   551     if ( iSendDcs == KPhCltUssdDcsNotSet  ) // 0x00
   557     if ( iSendDcs == KPhCltUssdDcsNotSet  ) // 0x00
   552 		{
   558         {
   553 		attribute.iDcs = KPhCltUssdDcsDefaultAlphabet;
   559         attribute.iDcs = KPhCltUssdDcsDefaultAlphabet;
   554  		}
   560         }
   555  	else
   561     else
   556  		{
   562         {
   557  		attribute.iDcs = iSendDcs;
   563         attribute.iDcs = iSendDcs;
   558  		} 
   564         } 
   559     
   565     
   560     RMobileUssdMessaging::TMobileUssdAttributesV1Pckg 
   566     RMobileUssdMessaging::TMobileUssdAttributesV1Pckg 
   561         attributePckg( attribute );
   567         attributePckg( attribute );
   562 
   568 
   563 
   569 
   564     if ( iWait->IsStarted() )
   570     if ( iWait->IsStarted() )
   565         {
   571         {
   566         return KErrInUse;
   572         return KErrInUse;
   567         }
   573         }
   568 
   574 
   569     TInt error = KErrNone;
   575     iSendError = KErrNone;
   570     iSendError = &error;
   576     TFLOGSTRING("CPhCltUssdImp: SendUssd iRequestHandler")
   571   
   577     iRequestHandler->SendUssd( aMsgData , attributePckg );
   572   	iRequestHandler->SendUssd( aMsgData , attributePckg );
       
   573     // iNoteController is allocated only if notes are shown.
   578     // iNoteController is allocated only if notes are shown.
       
   579     TFLOGSTRING("CPhCltUssdImp: SendUssd ShowGlobalWaitNoteL")
   574     if ( iNoteController )
   580     if ( iNoteController )
   575         {
   581         {
   576         TRAP_IGNORE( iNoteController->ShowGlobalWaitNoteL( 
   582         TRAP_IGNORE( iNoteController->ShowGlobalWaitNoteL(); 
   577         	R_TEXT_SENDING, 
   583                     );
   578             R_AVKON_SOFTKEYS_QUIT ) );
   584         }
   579         }
   585     TFLOGSTRING("CPhCltUssdImp: SendUssd iWait") 
   580 
   586 
   581     // Set this active object to wait the completion of the send request.
   587     // Set this active object to wait the completion of the send request.
   582     iWait->Start();
   588     iWait->Start();
   583     
   589 
   584     // Need to check iWait handle here because the destructor may be called
   590     TFLOGSTRING("CPhCltUssdImp: SendUssd exit") 
   585     // while pending for completion of the send request.
   591     return iSendError;
   586     // coverity[check_after_deref]
       
   587     if( iWait )
       
   588         {
       
   589         iSendError = NULL;
       
   590         }
       
   591     
       
   592     return error;
       
   593     }
   592     }
   594 
   593 
   595 
   594 
   596 // -----------------------------------------------------------------------------
   595 // -----------------------------------------------------------------------------
   597 // CPhCltUssdImp::SendUssdCancel
   596 // CPhCltUssdImp::SendUssdCancel
   599 // Cancels the out-standing request.
   598 // Cancels the out-standing request.
   600 // -----------------------------------------------------------------------------
   599 // -----------------------------------------------------------------------------
   601 //
   600 //
   602 void CPhCltUssdImp::SendUssdCancel()
   601 void CPhCltUssdImp::SendUssdCancel()
   603     {
   602     {
       
   603     TFLOGSTRING("CPhCltUssdImp: SendUssdCancel call")
   604     iRequestHandler->SendUssdCancel();
   604     iRequestHandler->SendUssdCancel();
       
   605     TFLOGSTRING("CPhCltUssdImp: SendUssdCancel exit")
   605     }
   606     }
   606 
   607 
   607 
   608 
   608 // -----------------------------------------------------------------------------
   609 // -----------------------------------------------------------------------------
   609 // CPhCltUssdImp::StartUssdEditor
   610 // CPhCltUssdImp::StartUssdEditor
   622 // UI informs that it is been created
   623 // UI informs that it is been created
   623 // -----------------------------------------------------------------------------
   624 // -----------------------------------------------------------------------------
   624 //
   625 //
   625 TInt CPhCltUssdImp::AppStarting()
   626 TInt CPhCltUssdImp::AppStarting()
   626     {
   627     {
   627     return iRequestHandler->UssdClient().AppStarting();
   628     TFLOGSTRING("CPhCltUssdImp: AppStarting call")
       
   629     TInt res = iRequestHandler->UssdClient().AppStarting();
       
   630     TFLOGSTRING2("CPhCltUssdImp: AppStarting exit res = %d",res)
       
   631     return res;
   628     }
   632     }
   629     
   633     
   630 // -----------------------------------------------------------------------------
   634 // -----------------------------------------------------------------------------
   631 // CPhCltUssdImp::AppTerminating
   635 // CPhCltUssdImp::AppTerminating
   632 // 
   636 // 
   634 // -----------------------------------------------------------------------------
   638 // -----------------------------------------------------------------------------
   635 //    
   639 //    
   636 TInt CPhCltUssdImp::AppTerminating( 
   640 TInt CPhCltUssdImp::AppTerminating( 
   637       TPhCltUssdAppExitReason aExitReason )
   641       TPhCltUssdAppExitReason aExitReason )
   638     {
   642     {
   639     return iRequestHandler->UssdClient().AppTerminating( aExitReason );
   643     TFLOGSTRING("CPhCltUssdImp: AppTerminating call")
       
   644     TInt res = iRequestHandler->UssdClient().AppTerminating( aExitReason );
       
   645     TFLOGSTRING2("CPhCltUssdImp: AppTerminating exit res = %d",res)
       
   646     return res;
   640     }
   647     }
   641     
   648     
   642 // -----------------------------------------------------------------------------
   649 // -----------------------------------------------------------------------------
   643 // CPhCltUssdImp::AppToForeground
   650 // CPhCltUssdImp::AppToForeground
   644 // 
   651 // 
   645 // UI informs that it is brougth to foreground
   652 // UI informs that it is brougth to foreground
   646 // -----------------------------------------------------------------------------
   653 // -----------------------------------------------------------------------------
   647 //    
   654 //    
   648 TBool CPhCltUssdImp::AppToForeground()
   655 TBool CPhCltUssdImp::AppToForeground()
   649     {
   656     {
   650     return iRequestHandler->UssdClient().AppToForeground();
   657     TFLOGSTRING("CPhCltUssdImp: AppToForeground call")
       
   658     TBool res =  iRequestHandler->UssdClient().AppToForeground();
       
   659     TFLOGSTRING2("CPhCltUssdImp: AppToForeground exit res = %d",res)
       
   660     return res;
   651     }
   661     }
   652     
   662     
   653 // -----------------------------------------------------------------------------
   663 // -----------------------------------------------------------------------------
   654 // CPhCltUssdImp::AppToBackground
   664 // CPhCltUssdImp::AppToBackground
   655 // 
   665 // 
   656 // UI informs that it is gone background
   666 // UI informs that it is gone background
   657 // -----------------------------------------------------------------------------
   667 // -----------------------------------------------------------------------------
   658 //    
   668 //    
   659 TInt CPhCltUssdImp::AppToBackground()
   669 TInt CPhCltUssdImp::AppToBackground()
   660     {
   670     {
   661     return iRequestHandler->UssdClient().AppToBackground();
   671     TFLOGSTRING("CPhCltUssdImp: AppToBackground call")
       
   672     TInt res = iRequestHandler->UssdClient().AppToBackground();
       
   673     TFLOGSTRING2("CPhCltUssdImp: AppToBackground exit res = %d",res)
       
   674     return res;
   662     }
   675     }
   663 
   676 
   664 // -----------------------------------------------------------------------------
   677 // -----------------------------------------------------------------------------
   665 // CPhCltUssdImp::StartSAT
   678 // CPhCltUssdImp::StartSAT
   666 // 
   679 // 
   670 void  CPhCltUssdImp::StartSAT( 
   683 void  CPhCltUssdImp::StartSAT( 
   671             TRequestStatus& aStatus, 
   684             TRequestStatus& aStatus, 
   672             TDes& aReceiveMessage, 
   685             TDes& aReceiveMessage, 
   673             TPckg< TUint >& aShowNotesAndDcs )
   686             TPckg< TUint >& aShowNotesAndDcs )
   674     {
   687     {
       
   688     TFLOGSTRING("CPhCltUssdImp: StartSAT call")
   675     iRequestHandler->UssdClient().StartSAT( aStatus, aReceiveMessage, aShowNotesAndDcs );
   689     iRequestHandler->UssdClient().StartSAT( aStatus, aReceiveMessage, aShowNotesAndDcs );
       
   690     TFLOGSTRING("CPhCltUssdImp: StartSAT exit")
   676     }
   691     }
   677  
   692  
   678 // -----------------------------------------------------------------------------
   693 // -----------------------------------------------------------------------------
   679 // CPhCltUssdImp::StopSAT
   694 // CPhCltUssdImp::StopSAT
   680 // 
   695 // 
   681 // Cancels SAT session
   696 // Cancels SAT session
   682 // -----------------------------------------------------------------------------
   697 // -----------------------------------------------------------------------------
   683 //   
   698 //   
   684  void CPhCltUssdImp::StopSAT()
   699  void CPhCltUssdImp::StopSAT()
   685     {
   700     {
       
   701     TFLOGSTRING("CPhCltUssdImp: StopSAT call")
   686     iRequestHandler->UssdClient().StopSAT();
   702     iRequestHandler->UssdClient().StopSAT();
   687     }
   703     TFLOGSTRING("CPhCltUssdImp: StopSAT exit")
   688 
   704     }
   689 
   705 
   690 // -----------------------------------------------------------------------------
   706 
   691 // CPhCltUssdImp::GlobalNoteDismissedL
   707 // -----------------------------------------------------------------------------
   692 //
   708 // CPhCltUssdImp::GlobalWaitNoteHidden
   693 // Dialog is cancelled by the right softkey.
   709 //
   694 // -----------------------------------------------------------------------------
   710 // Dialog is hidden by the cancel key.
   695 //
   711 // -----------------------------------------------------------------------------
   696 void CPhCltUssdImp::GlobalWaitNoteDismissedL( TInt aButtonId )
   712 //
   697     {
   713 void CPhCltUssdImp::GlobalWaitNoteHidden()
   698     if ( aButtonId == EAknSoftkeyClose || 
   714     {
   699          aButtonId == EAknSoftkeyCancel ||
   715     TFLOGSTRING("CPhCltUssdImp: GlobalWaitNoteHidden call")
   700          aButtonId == EAknSoftkeyQuit )
   716     TFLOGSTRING("CPhCltUssdImp: GlobalWaitNoteHidden exit")
   701         {   
       
   702         SendUssdCancel();
       
   703         }
       
   704     }
   717     }
   705 
   718 
   706 
   719 
   707 // -----------------------------------------------------------------------------
   720 // -----------------------------------------------------------------------------
   708 // CPhCltUssdImp::EncodeL
   721 // CPhCltUssdImp::EncodeL
   710 // Converts a given Uniocde string into 7-bit buffer.
   723 // Converts a given Uniocde string into 7-bit buffer.
   711 // -----------------------------------------------------------------------------
   724 // -----------------------------------------------------------------------------
   712 //
   725 //
   713 void CPhCltUssdImp::EncodeL( const TDesC& aSrc, TDes8& aDes )
   726 void CPhCltUssdImp::EncodeL( const TDesC& aSrc, TDes8& aDes )
   714     {
   727     {
   715     //
   728     TFLOGSTRING("CPhCltUssdImp: EncodeL call")
   716      aDes.Zero();
   729     aDes.Zero();
   717     TSmsDataCodingScheme::TSmsAlphabet alphabet = 
   730     TSmsDataCodingScheme::TSmsAlphabet alphabet = 
   718         TSmsDataCodingScheme::ESmsAlphabet7Bit; // default
   731         TSmsDataCodingScheme::ESmsAlphabet7Bit; // default
   719         
   732         
   720     CCnvCharacterSetConverter* charConv = CCnvCharacterSetConverter::NewLC();
   733     CCnvCharacterSetConverter* charConv = CCnvCharacterSetConverter::NewLC();
   721     
   734     
   814             }
   827             }
   815         // If DCS not 8-bit or UCS2, then EPhCltDcsUnknown is returned.
   828         // If DCS not 8-bit or UCS2, then EPhCltDcsUnknown is returned.
   816         }
   829         }
   817     
   830     
   818     CleanupStack::PopAndDestroy(3); // fs, packer, charConv
   831     CleanupStack::PopAndDestroy(3); // fs, packer, charConv
       
   832     TFLOGSTRING("CPhCltUssdImp: EncodeL exit")
   819     }
   833     }
   820 
   834 
   821 // -----------------------------------------------------------------------------
   835 // -----------------------------------------------------------------------------
   822 // CPhCltUssdImp::SetDCS()
   836 // CPhCltUssdImp::SetDCS()
   823 //
   837 //