diff -r 71e7b994dff4 -r 586d88ba9aa1 satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp --- a/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp Tue Apr 27 17:13:17 2010 +0300 +++ b/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp Tue May 11 16:43:51 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-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,8 +17,10 @@ #include -#include +#include +#include #include +#include #include "MSatSystemState.h" #include "MSatApi.h" @@ -257,6 +259,9 @@ // Allow next terminal response to be sent iTerminalRespSent = EFalse; + + iSendUssdRsp.iUssdString.iUssdString.FillZ(); + iSendUssdRsp.iUssdString.iDcs = 0; RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus( iUtils->SystemState().GetNetworkRegistrationStatus() ); @@ -592,6 +597,14 @@ iSendUssdRsp.iUssdString.iUssdString.Copy( receiveMessage ); + if ( RSat::EAlphaIdProvided != iSendUssdData.iAlphaId.iStatus ) + { + // if no Alpha ID provided, show the text note. + LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdString Show Note" ) + TRAP_IGNORE( + ShowUssdResponseNoteL( iSendUssdRsp.iUssdString.iUssdString ) ); + } + HandleSendUssdResult( error ); LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdString exiting" ) @@ -668,6 +681,23 @@ } // ----------------------------------------------------------------------------- +// Show the ussd response note. +// ----------------------------------------------------------------------------- +// +void CSendUssdHandler::ShowUssdResponseNoteL( const TDesC& aText ) + { + LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::ShowUssdResponseNoteL calling" ) + + CAknGlobalNote* note = CAknGlobalNote::NewLC(); + note->SetSoftkeys( R_AVKON_SOFTKEYS_OK_EMPTY ); + note->ShowNoteL( EAknGlobalConfirmationNote, + iSendUssdRsp.iUssdString.iUssdString ); + CleanupStack::PopAndDestroy( note ); + + LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::ShowUssdResponseNoteL exiting" ) + } + +// ----------------------------------------------------------------------------- // Handles the result of Ussd sending. // ----------------------------------------------------------------------------- // @@ -887,6 +917,11 @@ LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendTerminalResponse iTerminalRespSent \ false" ) + + LOG3(SIMPLE, "SENDUSSD: CSendUssdHandler::SendTerminalResponse \ + iDcs=%d,iUssdString=%s", iSendUssdRsp.iUssdString.iDcs, + &iSendUssdRsp.iUssdString.iUssdString); + iTerminalRespSent = ETrue; iSendUssdRsp.SetPCmdNumber( iSendUssdData.PCmdNumber() ); TerminalRsp( RSat::ESendUssd, iSendUssdRspPckg );