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 // |