diff -r 7d48bed6ce0c -r 987c9837762f satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/CSetUpIdleModeTextHandler.cpp --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/CSetUpIdleModeTextHandler.cpp Tue Aug 31 15:45:17 2010 +0300 +++ b/satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/CSetUpIdleModeTextHandler.cpp Wed Sep 01 12:15:03 2010 +0100 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2007 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" @@ -18,7 +18,7 @@ #include #include -#include +#include #include "SATPrivateCRKeys.h" #include "MSatApi.h" #include "MSatUtils.h" @@ -66,6 +66,14 @@ LOG( SIMPLE, "SETUPIDLEMODETEXT: \ CSetUpIdleModeTextHandler::ConstructL calling" ) + iWaitingForResponse = EFalse; + + // Register to listen Idle mode responses. + iUtils->RegisterL( this, MSatUtils::EIdleModeResponseSuccess ); + iUtils->RegisterL( this, MSatUtils::EIdleModeResponseSuccessNoIcon ); + iUtils->RegisterL( this, MSatUtils::EIdleModeResponseUnableToProcess ); + iUtils->RegisterL( this, MSatUtils::EIdleModeResponseBeyondCapabilities ); + // Register to listen ESimReset execution. iUtils->RegisterL( this, MSatUtils::ESimResetCalled ); iUtils->RegisterL( this, MSatUtils::ESimResetCancelled ); @@ -127,9 +135,50 @@ { LOG( SIMPLE, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::Event calling" ) + TBool responseOk( EFalse ); + // Check the response switch ( aEvent ) { + case MSatUtils::EIdleModeResponseSuccess: + { + LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ + KSuccess") + iSetUpIdleModeTextRsp.iGeneralResult = RSat::KSuccess; + responseOk = ETrue; + break; + } + + case MSatUtils::EIdleModeResponseSuccessNoIcon: + { + LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ + KSuccessReqIconNotDisplayed") + iSetUpIdleModeTextRsp.iGeneralResult = + RSat::KSuccessRequestedIconNotDisplayed; + responseOk = ETrue; + break; + } + + case MSatUtils::EIdleModeResponseUnableToProcess: + { + LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ + KMeUnableToProcessCmd") + iSetUpIdleModeTextRsp.iGeneralResult = + RSat::KMeUnableToProcessCmd; + responseOk = ETrue; + break; + } + + case MSatUtils::EIdleModeResponseBeyondCapabilities: + { + LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ + KBeyondMeCapabilities") + iSetUpIdleModeTextRsp.iGeneralResult = + RSat::KCmdBeyondMeCapabilities; + responseOk = ETrue; + break; + } + case MSatUtils::ESimResetCalled: { LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ @@ -195,6 +244,17 @@ break; } } + + if ( responseOk && iWaitingForResponse ) + { + LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ + send response") + iWaitingForResponse = EFalse; + + // Send terminal response, if the event was solved + TerminalRsp( RSat::ESetUpIdleModeText, iSetUpIdleModeTextRspPckg ); + } + LOG( SIMPLE, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::Event exiting" ) } @@ -342,6 +402,8 @@ } else { + iWaitingForResponse = ETrue; + // Save data for restore. iSimResetExecuting = EFalse; iLastValidText = idleModeText; @@ -369,9 +431,6 @@ remove the homezone indicator and return %d", errorCode ) } } - - iSetUpIdleModeTextRsp.iGeneralResult = RSat::KSuccess; - TerminalRsp( RSat::ESetUpIdleModeText, iSetUpIdleModeTextRspPckg ); } LOG( SIMPLE,