securitydialogs/SecUi/Src/SecUiCodeQueryDialog.cpp
changeset 26 aad866c37519
parent 0 164170e6151a
child 50 03674e5abf46
child 66 67b3e3c1fc87
--- a/securitydialogs/SecUi/Src/SecUiCodeQueryDialog.cpp	Thu May 27 13:44:17 2010 +0300
+++ b/securitydialogs/SecUi/Src/SecUiCodeQueryDialog.cpp	Fri Jun 11 14:28:40 2010 +0300
@@ -18,13 +18,6 @@
 
 #include <AknQueryDialog.h>
 #include "secuicodequerydialog.h"
-#include <eikseced.h>
-#include "SecUiCodeQueryControl.h"
-#include "secui.hrh"
-#include <SecUi.rsg>
-#include <aknsoundsystem.h>
-#include <aknappui.h> 
-#include <AknIncallBubbleNotify.h>
 
 // ================= MEMBER FUNCTIONS =======================
 //
@@ -33,9 +26,7 @@
 // C++ constructor
 // ----------------------------------------------------------
 //
-EXPORT_C CCodeQueryDialog::CCodeQueryDialog(TDes& aDataText,TInt aMinLength,TInt aMaxLength,TInt aMode, TBool aIsRemoteLockQuery):
-			CAknTextQueryDialog(aDataText,ENoTone), iMinLength(aMinLength), iMaxLength(aMaxLength), iMode(aMode), iIsRemoteLockQuery(aIsRemoteLockQuery)
-
+EXPORT_C CCodeQueryDialog::CCodeQueryDialog(TDes& aDataText,TInt aMinLength,TInt aMaxLength,TInt aMode, TBool aIsRemoteLockQuery) : CBase()
 	{		
 	}
 //
@@ -46,462 +37,7 @@
 //
 CCodeQueryDialog::~CCodeQueryDialog()
 	{
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::~CCodeQueryDialog()"));
-    #endif
-    
-    if ( AknLayoutUtils::PenEnabled() )
-        {
-        TRAP_IGNORE ( SetIncallBubbleAllowedInUsualL( ETrue ) );
-        }
-    
-	if (iFront)
-		{
-		// uncapture keys  
-		if (iMode != ESecUiNone)		
-			{
-			RWindowGroup& groupWin=iCoeEnv->RootWin();
-			groupWin.CancelCaptureKeyUpAndDowns(iAppKey);
-			groupWin.CancelCaptureKeyUpAndDowns(iVoiceKey2);
-			groupWin.CancelCaptureKey(iVoiceKey1);
-			}
-			
-		CAknAppUi* aknappui =static_cast<CAknAppUi*>(iEikonEnv->EikAppUi());
-		
-		if(!iIsRemoteLockQuery)
-		    {
-		    // return normal high-priority in case there are other notifiers active 
-    		// and were are not going to lose foregroung right after following call     
-        	if (!aknappui->IsFullScreenApp())//check that we are autolock and not a "normal" i.e. full screen application.	
-    			iEikonEnv->RootWin().SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront); 
-		    }
-		
-		 
-		iEikonEnv->BringForwards(EFalse);	
-		iEikonEnv->EikAppUi()->RemoveFromStack(this);
-		aknappui->KeySounds()->ReleaseContext();
-		aknappui->KeySounds()->PopContext();		
-		iFront = EFalse;
-		}
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::~CCodeQueryDialog() END"));
-    #endif
 	}
-//
-// ----------------------------------------------------------
-// CCodeQueryDialog::PreLayoutDynInitL()
-// Called by framework before dialog is shown 
-// ----------------------------------------------------------
-//
-void CCodeQueryDialog::PreLayoutDynInitL()
-    {
-    CAknTextQueryDialog::PreLayoutDynInitL();
-    
-    //disable in call bubble.
-    if ( AknLayoutUtils::PenEnabled() )
-        {
-        SetIncallBubbleAllowedInUsualL( EFalse );
-        }
-    
-	SetMaxLength(iMaxLength);
-	// Add this higher than the environment filter, otherwise
-	// we cannot capture keys from the EikSrvUi KeyFilter. 
-	// Used because this query might be called from notifier
-	if (iMode == ESecUiNone)
-		{
-		iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityEnvironmentFilter+100,ECoeStackFlagRefusesAllKeys);
-		}
-	else
-		{
-		iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityEnvironmentFilter+100,ECoeStackFlagRefusesFocus);
-		}
-	
-	// capture app,voice and end keys if necessary
-	if (iMode != ESecUiNone)		
-		{
-		
-		RWindowGroup& groupWin=iCoeEnv->RootWin();
-		// Capture app key
-		iAppKey = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0);
-		// capture voice key
-		iVoiceKey1 = groupWin.CaptureKey(EKeySide,0,0);
-		iVoiceKey2 = groupWin.CaptureKeyUpAndDowns(EStdKeyDevice6, 0, 0);
-		}
-    if (!iIsRemoteLockQuery)
-        {
-        MakeLeftSoftkeyVisible(EFalse);
-
-        RWsSession& wsSession = iEikonEnv->WsSession();
-        TInt myWgId = iEikonEnv->RootWin().Identifier();
-
-        TInt wgPrio = wsSession.GetWindowGroupOrdinalPriority(myWgId);
-        // we are already on forgeround, need to update priority differently
-        /*
-         if (wgPrio == ECoeWinPriorityAlwaysAtFront)
-         {
-         iEikonEnv->RootWin().SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront+1); 
-         }
-         */
-
-        // this must be done always to keep the reference count in synch  
-        // this does not have any effect if autoforwarding has not been set true (normal application.)
-        iEikonEnv->BringForwards(ETrue, ECoeWinPriorityAlwaysAtFront + 1);
-
-        /// -- Change Window Priority for dialog and CBA 	
-        DrawableWindow()->SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront); //
-        ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(
-                0, ECoeWinPriorityAlwaysAtFront);
-        }
-    	
-	//key sounds
-	static_cast<CAknAppUi*>(iEikonEnv->EikAppUi())->KeySounds()->PushContextL(R_AVKON_DEFAULT_SKEY_LIST);
-	static_cast<CAknAppUi*>(iEikonEnv->EikAppUi())->KeySounds()->BringToForeground();
-	static_cast<CAknAppUi*>(iEikonEnv->EikAppUi())->KeySounds()->LockContext();
-	iFront = ETrue;
-
-	}
-//
-// ---------------------------------------------------------
-// CCodeQueryDialog::OfferKeyEventL
-// called by framework when any key is pressed
-// ---------------------------------------------------------
-//
-TKeyResponse CCodeQueryDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
-	{
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL"));
-    TInt keycode = aKeyEvent.iCode;
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL keycode: %d"), keycode);
-    TInt scancode = aKeyEvent.iScanCode;
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL scancode: %d"), scancode);
-    #endif
-    if(!iIsRemoteLockQuery)
-        {
-        // '#' key 
-    	if( aKeyEvent.iScanCode == EStdKeyHash  && aType == EEventKeyUp)
-    		{ 
-    		TryExitL(EEikBidOk);
-    		return EKeyWasConsumed;
-    		}
-    	
-    	// '*' key
-    	if (aKeyEvent.iCode == '*')
-    		{
-    		return EKeyWasConsumed;
-    		}
-
-        }
-	
-	// app key
-	if (aKeyEvent.iScanCode == EStdKeyApplication0)
-		{
-		if (iMode == ESecUiNone)
-			{
-			TryExitL(EAknSoftkeyCancel);
-			return EKeyWasNotConsumed;	
-			}
-		return EKeyWasConsumed;
-		}
-		
-	// end key
-	if (aKeyEvent.iCode == EKeyPhoneEnd)
-		{
-		#if defined(_DEBUG)
-        RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: EKeyPhoneEnd"));
-        #endif
-		TryExitL(EAknSoftkeyCancel);
-		return EKeyWasConsumed;
-		}
-	if ((aKeyEvent.iScanCode == EStdKeyYes))
-	    {//Since dialler listens to down/up event, 
-	     //have to consume those to prevent it from opening
-	    if(AknLayoutUtils::PenEnabled())
-	       {
-	       CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
-	       if(!control->IsEmergencyCallSupportOn())
-	         { //Only needed in dialogs where there is no emergency call support
-                #if defined(_DEBUG)
-                RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: Send down/up event consumed."));
-                #endif
-                return EKeyWasConsumed;
-	         }
-	       }    
-	    }
-	if (aKeyEvent.iCode == EKeyPhoneSend)
-		 {
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: EKeyPhoneSend"));
-            #endif
-		    if(AknLayoutUtils::PenEnabled())
-		        {
-		        #if defined(_DEBUG)
-            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: pen enabled"));
-            #endif
-	    		 	CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
-	    		 	if(control->IsEmergencyCallSupportOn())
-	    		 	  {
-			    		 	#if defined(_DEBUG)
-		            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: ECS on"));
-		            #endif
-		    		 	if(!control->IsEmergencyNumber())
-		    		 	  {
-		    		 	  	#if defined(_DEBUG)
-			            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: Not E number!"));
-			            #endif
-            			
-		    		 	    ShowWarningNoteL();
-		    		 	 
-		    		 	    #if defined(_DEBUG)
-			            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: send key consumed!"));
-			            #endif
-		    		 	      return EKeyWasConsumed;
-		    		 	  }
-	    		 	  }
-	    		 	else //consume the key to prevent dialler from opening
-	    		 	    {
-                        #if defined(_DEBUG)
-                        RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: No ECS. send key consumed!"));
-                        #endif
-	    		 	        return EKeyWasConsumed;
-	    		 	    }
-			      }
-		 }
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OfferKeyEventL: To AVKON"));
-    #endif
-	return CAknTextQueryDialog::OfferKeyEventL(aKeyEvent,aType);
-	}
-//
-// ---------------------------------------------------------
-// CCodeQueryDialog::NeedToDismissQueryL()
-// Handles '#' key called by CAknTextQueryDialog::OfferKeyEventL()
-// ---------------------------------------------------------
-//
-TBool CCodeQueryDialog::NeedToDismissQueryL(const TKeyEvent& /*aKeyEvent*/)
-	{
-	return EFalse;
-	}
-//
-// ---------------------------------------------------------
-// CCodeQueryDialog::OkToExitL()
-// called by framework when the Softkey is pressed
-// ---------------------------------------------------------
-//
-TBool CCodeQueryDialog::OkToExitL(TInt aButtonId)
-	{
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:%d"), aButtonId);
-    #endif
-	CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
-	TInt lenght = 0;
-	TBool returnvalue;
-	switch(aButtonId)
-	    {
-	    case EAknSoftkeyOk:
-		    #if defined(_DEBUG)
-            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EAknSoftkeyOk"));
-            #endif
-            if(control)
-              {
-                lenght = control->GetTextLength();
-              }
-		    if (lenght < iMinLength)
-			    {
-			    #if defined(_DEBUG)
-                RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length < MIN: %d"), lenght);
-                #endif	
-		    	// code was too short -> play error tone & clear editor
-			    if (lenght != 0)
-				    {
-				    #if defined(_DEBUG)
-                    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length < MIN, Play Sound"));
-                    #endif
-                    if(control)
-                        {
-                        
-			    	    control->PlaySound(EAvkonSIDErrorTone);
-				        #if defined(_DEBUG)
-                        RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length < MIN, Reset Editor"));
-                        #endif
-				        control->ResetEditorL();
-                        }
-				    }
-			    returnvalue = EFalse;
-			    }	
-		    else
-			    {
-			    #if defined(_DEBUG)
-                RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:length >= MIN: %d"), lenght);
-                #endif		
-			    returnvalue = CAknTextQueryDialog::OkToExitL(aButtonId);
-			    }
-            break;
-		
-	    case EEikBidCancel: //Also includes EAknSoftkeyCancel as they have the same numerical value
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel"));
-            #endif       
-            if(iMode != ESecUiNone) //PUK1 code or PIN1 in boot. Must not exit until code has been input.
-                {
-                #if defined(_DEBUG)
-                RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel: get length."));
-                #endif   
-                if(control)
-                  {
-                    lenght = control->GetTextLength();
-                  }
-                returnvalue = EFalse;
-                if (lenght > 0) //reset editor
-                    {  
-                    #if defined(_DEBUG)
-                    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel: length >0."));
-                    #endif              
-                     if (control)
-                       {
-                        #if defined(_DEBUG)
-                        RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:EEikBidCancel, reset editor"));
-                        #endif
-                        control->ResetEditorL();
-                       }
-                    }
-                }
-            else
-                returnvalue = ETrue;
-            break;
-        case  ESecUiEmergencyCall: //user has called emergency number from dialog; exit.
-        	#if defined(_DEBUG)
-            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:Emergency Call"));
-            #endif
-        	returnvalue = ETrue;
-        	break;
-        case EAknSoftkeyEmergencyCall:
-            returnvalue = ETrue;
-            CAknTextQueryDialog::OkToExitL(aButtonId);
-            break;
-	    case ESecUiDeviceLocked: //Dialog was left open when Device lock was activated by timer and must be closed.
-	    	#if defined(_DEBUG)
-            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:Phone Locked"));
-            #endif
-	    	if(iMode == ESecUiNone)  
-                 returnvalue = ETrue;//Not a PUK1 code query.
-            else
-            	 returnvalue = EFalse;
-	    	break;
-        default:
-        	#if defined(_DEBUG)
-            RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:DEFAULT!"));
-            #endif  
-            if(iMode == ESecUiNone)
-		        returnvalue = ETrue;
-		    else
-                returnvalue = EFalse;
-            break;
-	    }
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::OkToExitL:END: %d"), returnvalue);
-    #endif
-	return returnvalue;
-	}
-//
-// ---------------------------------------------------------
-// CCodeQueryDialog::HandleQueryEditorStateEventL()
-// Gets called when editor sends state event
-// ---------------------------------------------------------
-//
-TBool CCodeQueryDialog::HandleQueryEditorStateEventL(CAknQueryControl* aQueryControl, 
-													TQueryControlEvent aEventType, 
-													TQueryValidationStatus aStatus)
-{
-	
-    if (aEventType == MAknQueryControlObserver::EEmergencyCallAttempted)
-        {
-        TryExitL(ESecUiEmergencyCall);
-        return EFalse;
-        }
-    else
-    	{
-    	return CAknQueryDialog::HandleQueryEditorStateEventL(aQueryControl, aEventType, aStatus );
-    	}
-    
-
-}
-//
-// ---------------------------------------------------------
-// CCodeQueryDialog::TryCancelQueryL()
-// Gets called when a client wishes to cancel the query
-// ---------------------------------------------------------
-//
-void CCodeQueryDialog::TryCancelQueryL(TInt aReason)
-{
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::TryCancelQuery BEGIN"));
-    #endif
-	TryExitL(aReason);
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::TryCancelQuery END"));
-    #endif
-}
-
-// -----------------------------------------------------------------------------
-// CCodeQueryDialog::CheckIfEntryTextOk()
-// -----------------------------------------------------------------------------
-//
-TBool CCodeQueryDialog::CheckIfEntryTextOk() const
-    {
-	CCodeQueryControl* control = STATIC_CAST(CCodeQueryControl*,Control(EGeneralQuery));
-	if (control)
-	{
-		control->GetText(iDataText);
-	}
-	const TInt textLength = Text().Length();
-	return (textLength <= iMaxLength && textLength >= iMinLength);
-    }
-
-// -----------------------------------------------------------------------------
-// CCTPinQueryDialog::UpdateLeftSoftKeyL()
-// -----------------------------------------------------------------------------
-//
-void CCodeQueryDialog::UpdateLeftSoftKeyL()
-    {
-	CAknTextQueryDialog::UpdateLeftSoftKeyL();
-    if(iIsRemoteLockQuery)
-	    MakeLeftSoftkeyVisible(CheckIfEntryTextOk());
-    }
-// -----------------------------------------------------------------------------
-// CCodeQueryDialog::ShowWarningNoteL()
-// -----------------------------------------------------------------------------
-//
-void CCodeQueryDialog::ShowWarningNoteL()
-    {
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::ShowWarningNoteL BEGIN"));
-    #endif
-    
-    CAknNoteDialog* noteDlg = new (ELeave) CAknNoteDialog();
-    noteDlg->PrepareLC(R_EMERGENCY_CALLS_ONLY);
-    noteDlg->SetTimeout(CAknNoteDialog::ELongTimeout);
-    noteDlg->SetTone(CAknNoteDialog::EErrorTone);
-    
-    noteDlg->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront+1); //
-    noteDlg->ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront+1); 
-    
-    noteDlg->RunLD();
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(SECUI)CCodeQueryDialog::ShowWarningNoteL END"));
-    #endif
-    }
-
-// -----------------------------------------------------------------------------
-// CCodeQueryDialog::SetIncallBubbleAllowedInUsualL()
-// -----------------------------------------------------------------------------
-//
-void CCodeQueryDialog::SetIncallBubbleAllowedInUsualL(TBool aAllowed)
-    {
-    CAknIncallBubble *incallBubble =  CAknIncallBubble::NewL();
-    CleanupStack::PushL(incallBubble);
-    incallBubble->SetIncallBubbleAllowedInUsualL( aAllowed );
-    CleanupStack::PopAndDestroy();
-    }
 
 // End of file