satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/CSetUpIdleModeTextHandler.cpp
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
--- 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    <e32property.h>
 #include    <centralrepository.h>
-#include    <networkhandlingdomainpskeys.h>
+#include    <NetworkHandlingDomainPSKeys.h>
 #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,