convergedconnectionhandler/cchclientapi/cchuinotif/src/cchuinotifierimpl.cpp
branchRCL_3
changeset 11 6134b5029079
parent 0 a4daefaec16c
child 12 876a3df1f464
--- a/convergedconnectionhandler/cchclientapi/cchuinotif/src/cchuinotifierimpl.cpp	Wed Mar 31 21:20:05 2010 +0300
+++ b/convergedconnectionhandler/cchclientapi/cchuinotif/src/cchuinotifierimpl.cpp	Wed Apr 14 15:49:55 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -26,6 +26,7 @@
 #include <cenrepnotifyhandler.h>
 #include <ctsydomainpskeys.h>
 #include <crcseprofileregistry.h>
+#include <AknNotiferAppServerApplication.h>  // Application Key enable/disable
 
 #include "cchuilogger.h"
 #include "cchuicommon.hrh"
@@ -60,6 +61,14 @@
     {
     CCHUIDEBUG( "CCCHUiNotifierImpl::~CCCHUiNotifierImpl - IN" );	
     
+    if ( iAppKeyBlocked )
+        {
+        // Remove application key blocking
+        (void) ((CAknNotifierAppServerAppUi*)
+            iEikEnv->EikAppUi())->SuppressAppSwitching(EFalse);    
+        iAppKeyBlocked = EFalse;
+        }
+    
     CCCHUiNotifierBase::Cancel();
     iListQueryDialog = NULL;
     delete iBrandingHandler;
@@ -146,6 +155,11 @@
     
     CAknMultiLineDataQueryDialog* dlg = CAknMultiLineDataQueryDialog::NewL( 
         ptrUserName, ptrPassWord );
+     
+    // Block application key while showing query
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(ETrue); 
+    iAppKeyBlocked = ETrue;
     
     if ( dlg->ExecuteLD( R_CCHUINOTIF_USERNAME_PWD_DIALOG ) )
         {	
@@ -163,6 +177,12 @@
         CCHUIDEBUG( "ShowUsernamePasswordQueryL - cancelled" );	
         CompleteMessage( KErrCancel );
         }
+    
+    // Remove application key blocking
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(EFalse);    
+    iAppKeyBlocked = EFalse;
+    
     CleanupStack::PopAndDestroy( passWord );
     CleanupStack::PopAndDestroy( userName );
     
@@ -263,7 +283,12 @@
         {
         // Error occurred in RetrieveServiceIconL. Nothing to do.
         }
-      
+         
+    // Block application key while showing query
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(ETrue); 
+    iAppKeyBlocked = ETrue;
+    
     CCHUIDEBUG( "ShowNoConnectionsQueryL - run dialog" );   
     iListQueryDialog->RunLD();
     CCHUIDEBUG( "ShowNoConnectionsQueryL - run dialog done" );
@@ -289,6 +314,12 @@
         CCHUIDEBUG( "ShowNoConnectionsQueryL - complete with cancel" ); 
         CompleteMessage( KErrCancel );
         }
+    
+    // Remove application key blocking
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(EFalse);    
+    iAppKeyBlocked = EFalse;
+    
     CleanupStack::PopAndDestroy( string );
     CleanupStack::PopAndDestroy( &commandArray );
     CleanupStack::PopAndDestroy( arrayforDialog );    
@@ -399,7 +430,12 @@
         {
         // Error occurred in RetrieveServiceIconL. Nothing to do.
         }
-
+   
+    // Block application key while showing query
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(ETrue); 
+    iAppKeyBlocked = ETrue;
+    
     CCHUIDEBUG( "ShowChangeConnectionQueryL - run dialog" );
     
     // List query dialog is deleted via RunLD except if there is
@@ -435,6 +471,11 @@
         iListQueryDialog = NULL;
         }
     
+    // Remove application key blocking
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(EFalse);    
+    iAppKeyBlocked = EFalse;
+    
     CleanupStack::PopAndDestroy( string );    
     CleanupStack::PopAndDestroy( &iapName );   
     CleanupStack::PopAndDestroy( &commandArray );
@@ -622,6 +663,11 @@
     query->SetPromptL( *textForQuery );    
     CleanupStack::PopAndDestroy( textForQuery );
     CleanupStack::Pop( query );
+       
+    // Block application key while showing query
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(ETrue); 
+    iAppKeyBlocked = ETrue;
     
     // Run query
     if( query->RunLD() )
@@ -657,6 +703,11 @@
         CompleteMessage( KErrCancel );
         }
     
+    // Remove application key blocking
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(EFalse);    
+    iAppKeyBlocked = EFalse;
+    
     CleanupStack::PopAndDestroy( &iapName );
     
     CCHUIDEBUG( "CCCHUiNotifierImpl::ShowConfirmChangeConnectionL - OUT" );
@@ -699,6 +750,11 @@
     CCHUIDEBUG( "ShowGprsSelectionL - set item array" );	
     dialog->SetItemTextArray( arrayforDialog );
     dialog->SetOwnershipType( ELbmDoesNotOwnItemArray );
+      
+    // Block application key while showing query
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(ETrue); 
+    iAppKeyBlocked = ETrue;
     
     CCHUIDEBUG( "ShowGprsSelectionL - run dialog" );	
     dialog->RunLD();
@@ -714,6 +770,11 @@
         {
         User::Leave( KErrCancel );
         }
+    
+    // Remove application key blocking
+    (void) ((CAknNotifierAppServerAppUi*)
+        iEikEnv->EikAppUi())->SuppressAppSwitching(EFalse);    
+    iAppKeyBlocked = EFalse;
 
     CleanupStack::PopAndDestroy( string );
     CleanupStack::PopAndDestroy( arrayforDialog );