diff -r e32024264ebb -r d7fc66ccd6fb phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp --- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp Fri Apr 16 15:31:58 2010 +0300 +++ b/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp Mon May 03 13:01:45 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -17,15 +17,27 @@ // INCLUDE FILES -#include //CAknGlobalNote -#include -#include -#include +#include +#include +#include #include "phcltclientserver.h" #include "cphcltussdnotecontroller.h" +#include "tflogger.h" +_LIT(KFilename, "phcltsrvussd.ts"); +_LIT(KPath, "z://data"); +_LIT(KUssdRequesting, "txt_common_info_requesting"); // Requesting +// Will be replaced by Hidden +_LIT(KUssdRequestingQuit, "txt_ussd_button_exit"); // Quit +_LIT(KUssdDone, "txt_ussd_dpopinfo_done"); // Done +_LIT(KUssdNotDone, "txt_ussd_dpopinfo_not_done"); // NotDone +_LIT(KUssdNotAllowed, "txt_ussd_dpopinfo_not_allowed"); //NotAllowed +_LIT(KUssdUnconfirmed, "txt_ussd_dpopinfo_unconfirmed"); // Unconfirmed +_LIT(KUssdNoService, "txt_ussd_dpopinfo_no_service"); // NoService +_LIT(KUssdOffline, "txt_ussd_dpopinfo_offline_not_possible"); // Offline +const int KPhCltUssdProgressBarMaxLength = 10; // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -34,19 +46,19 @@ // ----------------------------------------------------------------------------- // CPhCltUssdNoteController* CPhCltUssdNoteController::NewL( - MPhCltUssdNoteControllerCallBack& aCallBack, - TInt aPriority ) + MPhCltUssdNoteControllerCallBack& aCallBack ) { + TFLOGSTRING("CPhCltUssdNoteController: NewL call") CPhCltUssdNoteController* self = new( ELeave ) - CPhCltUssdNoteController( aCallBack, aPriority ); - + CPhCltUssdNoteController( aCallBack ); + CleanupStack::PushL( self ); self->ConstructL(); CleanupStack::Pop( self ); + TFLOGSTRING("CPhCltUssdNoteController: NewL exit") return self; } - // ----------------------------------------------------------------------------- // CPhCltUssdNoteController::ConstructL // Symbian 2nd phase constructor can leave. @@ -54,26 +66,29 @@ // void CPhCltUssdNoteController::ConstructL() { - LoadResourceFileL(); + TFLOGSTRING( "CPhCltUssdNoteController: ConstructL\ + init in" ) + iIsResolverSuccess = HbTextResolverSymbian::Init(KFilename, KPath); + TFLOGSTRING2("CPhCltUssdNoteController: ConstructL\ + init filename iIsResolverSuccess = %d", iIsResolverSuccess ) } - // ----------------------------------------------------------------------------- // CPhCltUssdNoteController::CPhCltUssdNoteController // C++ constructor can NOT contain any code, that // might leave. // ----------------------------------------------------------------------------- CPhCltUssdNoteController::CPhCltUssdNoteController( - MPhCltUssdNoteControllerCallBack& aCallBack, - TInt aPriority ) - : CActive( aPriority ), - iCallBack( aCallBack ), - iWaitNoteId( KErrNotFound ) + MPhCltUssdNoteControllerCallBack& aCallBack ) + : iGlobalWaitNote( NULL ), + iCallBack( aCallBack ), + iIsResolverSuccess( EFalse ), + iGlobalResource( NULL ) { - CActiveScheduler::Add( this ); + TFLOGSTRING("CPhCltUssdNoteController: CPhCltUssdNoteController call") + TFLOGSTRING("CPhCltUssdNoteController: CPhCltUssdNoteController exit") } - - + // ----------------------------------------------------------------------------- // CPhCltUssdNoteController:~CPhCltUssdNoteController // C++ default constructor can NOT contain any code, that @@ -82,182 +97,163 @@ // CPhCltUssdNoteController::~CPhCltUssdNoteController() { - Cancel(); - + TFLOGSTRING("CPhCltUssdNoteController: ~CPhCltUssdNoteController call") DestroyGlobalWaitNote(); - - delete iMessageBuffer; - iMessageBuffer = NULL; - - if ( iResourceLoader ) - { - iResourceLoader->Close(); - delete iResourceLoader; - iResourceLoader = NULL; - } + TFLOGSTRING("CPhCltUssdNoteController: ~CPhCltUssdNoteController exit") } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::RunL -// -// Called when dialog is dismissed by pressing a softkey. -// ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::RunL() - { - iCallBack.GlobalWaitNoteDismissedL( iStatus.Int() ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::DoCancel -// ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::DoCancel() - { - DestroyGlobalWaitNote(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ShowInformationNoteL -// ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::ShowInformationNoteL( TInt aResourceId ) - { - ShowNoteL( EPhCltUssdInformationNote, aResourceId ); - } - - // ----------------------------------------------------------------------------- // CPhCltUssdNoteController::ShowGlobalInformationNoteL // ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::ShowGlobalInformationNoteL( TInt aResourceId ) +void CPhCltUssdNoteController::ShowGlobalInformationNoteL( + const TPhCltUssdInformationType aInfoType ) { - ShowNoteL( EPhCltUssdGlobalInformationNote, aResourceId ); - } - + TFLOGSTRING2("CPhCltUssdNoteController: ShowGlobalInformationNoteL\ + aInfoType = %d call", aInfoType) -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ShowGlobalConfirmationNoteL -// ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::ShowGlobalConfirmationNoteL( TInt aResourceId ) - { - ShowNoteL( EPhCltUssdGlobalConfirmationNote, aResourceId ); + HBufC* temp(NULL); + switch ( aInfoType ) + { + case EPhCltUssdUnconfirme: + { + temp = LoadDefaultStringL(KUssdUnconfirmed); + break; + } + case EPhCltUssdNotallowed: + { + temp = LoadDefaultStringL(KUssdNotAllowed); + break; + } + case EPhCltUssdNoservice: + { + temp = LoadDefaultStringL(KUssdNoService); + break; + } + case EPhCltUssdOffline: + { + temp = LoadDefaultStringL(KUssdOffline); + break; + } + case EPhCltUssdDone: + { + temp = LoadDefaultStringL(KUssdDone); + break; + } + case EPhCltUssdNotDone: + { + temp = LoadDefaultStringL(KUssdNotDone); + break; + } + default: + { + User::Leave( KErrArgument ); + } + break; + } + CHbDeviceMessageBoxSymbian* dlg = CHbDeviceMessageBoxSymbian::NewL( + CHbDeviceMessageBoxSymbian::EInformation); + CleanupStack::PushL( dlg ); + dlg->SetTextL( temp->Des() ); + dlg->SetButton( CHbDeviceMessageBoxSymbian::EAcceptButton, + ETrue ); + dlg->ExecL(); + CleanupStack::PopAndDestroy( dlg ); + delete temp; + temp = NULL; + TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalInformationNoteL exit") } - // ----------------------------------------------------------------------------- // CPhCltUssdNoteController::ShowGlobalWaitNoteL // ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::ShowGlobalWaitNoteL( - TInt aResourceId, - TInt aSoftkeyResourceId ) +void CPhCltUssdNoteController::ShowGlobalWaitNoteL( ) { - delete iMessageBuffer; - iMessageBuffer = NULL; - iMessageBuffer = StringLoader::LoadL( aResourceId ); - + TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL call") DestroyGlobalWaitNote(); - - iGlobalWaitNote = CAknGlobalNote::NewL(); - - if ( aSoftkeyResourceId ) - { - iGlobalWaitNote->SetSoftkeys( aSoftkeyResourceId ); - } - - SetActive(); - - iWaitNoteId = iGlobalWaitNote->ShowNoteL( iStatus, - EAknGlobalWaitNote, - *iMessageBuffer ); + //CHbDeviceProgressDialogSymbian + iGlobalWaitNote = CHbDeviceProgressDialogSymbian::NewL( + CHbDeviceProgressDialogSymbian::EProgressDialog ); + CleanupStack::PushL( iGlobalWaitNote ); + iGlobalResource = LoadDefaultStringL( KUssdRequesting ); + iGlobalWaitNote->SetTextL( iGlobalResource->Des() ); + iGlobalWaitNote->SetObserver( this ); + TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL before setactive") + iGlobalWaitNote->SetRange(0,KPhCltUssdProgressBarMaxLength); + iGlobalWaitNote->SetProgressValue(KPhCltUssdProgressBarMaxLength); + iGlobalWaitNote->SetAutoClose(EFalse); + iGlobalWaitNote->ShowL(); + CleanupStack::Pop( iGlobalWaitNote ); + TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL after setactive") + TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL exit") } - // ----------------------------------------------------------------------------- // CPhCltUssdNoteController::DestroyGlobalWaitNote // ----------------------------------------------------------------------------- void CPhCltUssdNoteController::DestroyGlobalWaitNote() { + TFLOGSTRING("CPhCltUssdNoteController: DestroyGlobalWaitNote call") if ( iGlobalWaitNote ) { - if ( iWaitNoteId != KErrNotFound ) - { - TRAP_IGNORE( iGlobalWaitNote->CancelNoteL( iWaitNoteId ) ); - iWaitNoteId = KErrNotFound; - } + iGlobalWaitNote->Cancel(); delete iGlobalWaitNote; iGlobalWaitNote = NULL; + delete iGlobalResource; + iGlobalResource = NULL; } + TFLOGSTRING("CPhCltUssdNoteController: DestroyGlobalWaitNote exit") } - // ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ShowNoteL +// CPhCltUssdNoteController::ProgressDialogCancelled // -// Launches a corresponding dialog with the given string. +// // ----------------------------------------------------------------------------- // -void CPhCltUssdNoteController::ShowNoteL( TPhCltUssdNoteType aType, TInt aResourceId ) +void CPhCltUssdNoteController::ProgressDialogCancelled( + const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/) { - switch ( aType ) - { - case EPhCltUssdInformationNote: - { - delete iMessageBuffer; - iMessageBuffer = NULL; - iMessageBuffer = StringLoader::LoadL( aResourceId ); - - if ( iMessageBuffer->Length() == 0 ) - { - break; - } - CAknInformationNote* dlg = new ( ELeave ) - CAknInformationNote( ETrue ); - - dlg->ExecuteLD( *iMessageBuffer ); - break; - } - case EPhCltUssdGlobalInformationNote: - case EPhCltUssdGlobalConfirmationNote: - { - CAknGlobalNote* dlg = CAknGlobalNote::NewLC(); - - delete iMessageBuffer; - iMessageBuffer = NULL; - iMessageBuffer = StringLoader::LoadL( aResourceId ); - - if ( aType == EPhCltUssdGlobalInformationNote ) - { - dlg->ShowNoteL( EAknGlobalInformationNote , *iMessageBuffer ); - } - else if ( aType == EPhCltUssdGlobalConfirmationNote ) - { - dlg->ShowNoteL( EAknGlobalConfirmationNote , *iMessageBuffer ); - } - CleanupStack::PopAndDestroy(); // dlg - break; - } - - default: - break; - } + TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogCancelled call") + iCallBack.GlobalWaitNoteHidden(); + delete iGlobalResource; + iGlobalResource = NULL; + TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogCancelled exit") } // ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::LoadResourceFileL +// CPhCltUssdNoteController::ProgressDialogClosed // -// Loads resource file via RConeResourceLoader. +// // ----------------------------------------------------------------------------- // -void CPhCltUssdNoteController::LoadResourceFileL() +void CPhCltUssdNoteController::ProgressDialogClosed( + const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/) { - // load resource file for notes - iResourceLoader = new( ELeave ) RConeResourceLoader( *CCoeEnv::Static() ); - TFileName fileName ( KPhCltServerZDrive ); - fileName.Append( KDC_RESOURCE_FILES_DIR ); - fileName.Append( KPhCltResourceFileNameAndPath ); - fileName.ZeroTerminate(); - iResourceLoader->OpenL( fileName ); + TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogClosed call") + TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogClosed exit") + } + +// ----------------------------------------------------------------------------- +// CPhCltUssdNoteController::LoadDefaultString +// +// +// ----------------------------------------------------------------------------- +// +HBufC* CPhCltUssdNoteController::LoadDefaultStringL( const TDesC& aText ) + { + TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString call") + HBufC* newText = NULL; + if ( iIsResolverSuccess ) + { + newText = HbTextResolverSymbian::LoadL( aText ); + } + else + { + newText = aText.AllocL(); + TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString load failed."); + } + TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString exit") + return newText; } // End of file