securitydialogs/Autolock/src/AutolockAppUi.cpp
branchGCC_SURGE
changeset 40 604cd42065d1
parent 29 b63e8c2d8cff
parent 38 e0432375ea67
--- a/securitydialogs/Autolock/src/AutolockAppUi.cpp	Thu Jun 17 12:11:51 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1060 +0,0 @@
-/*
-* Copyright (c) 2002 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-#include <apgtask.h>
-#include <etelmm.h>
-#include <AknEcs.h>
-#include <aknnotedialog.h>
-#include <aknkeylock.h>
-#include <AknLayoutDef.h>
-#include <AknLayout.lag>
-#include <bldvariant.hrh>
-#include <aknappui.h> 
-#include <centralrepository.h>
-#include <settingsinternalcrkeys.h>
-#include <secuisecurityhandler.h>
-#include <secui.h>
-#include <featmgr.h>
-#include <Autolock.rsg>
-#include <mmtsy_names.h>
-#include <e32property.h>
-#include <PSVariables.h>   // Property values
-#include <coreapplicationuisdomainpskeys.h>
-#include <startupdomainpskeys.h>
-#include <ctsydomainpskeys.h>
-#include <securityuisprivatepskeys.h>
-#include <AknSgcc.h>
-
-#include "AutolockAppUiPS.h"
-#include "AutoLockValueObserverPS.h"
-#include "AutoLockModelPS.h"
-#include "AutolockApp.h"
-#include "autolock.hrh"
-#include "AutolockView.h"
-
-#include <SCPClient.h>
-#include <AknSoftNotifier.h>
-
-// sysap uid and message enums defined in eikon.hrh
-// for sending messages to sysap
-#include <eikon.hrh>
-#include <apgwgnam.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-
-//  LOCAL CONSTANTS AND MACROS  
-#define KSysApUid TUid::Uid(0x100058F3)
-
-const TInt KTriesToConnectServer( 2 );
-const TInt KTimeBeforeRetryingServerConnection( 50000 );
-const TInt PhoneIndex( 0 );
-
-// ================= MEMBER FUNCTIONS =======================
-//
-// ----------------------------------------------------------
-// CAutolockAppUi::ConstructL()
-// ?implementation_description
-// ----------------------------------------------------------
-//
-void CAutolockAppUi::ConstructL()
-    {
-    	RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-    		
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::ConstructL"));
-    #endif
-    
-   	RDebug::Printf( "%s %s (%u) EAutolockOff=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EAutolockOff );
-    RProperty::Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
-
-    BaseConstructL( EAknEnableSkin | EAknEnableMSK );
-    
-	}
-// ----------------------------------------------------
-// CAutolockAppUi::~CAutolockAppUi()
-// Destructor
-// Frees reserved resources
-// ----------------------------------------------------
-//
-CAutolockAppUi::~CAutolockAppUi()
-    {
-    RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::~CAutolockAppUi() BEGIN"));
-    #endif
-
-    if(iWait)
-        {
-        // Cancel active requests
-        if(iWait->IsActive())
-            {
-            #if defined(_DEBUG)
-	        RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::~CAutolockAppUi() CANCEL REQ"));
-	        #endif
-            iPhone.CancelAsyncRequest(iWait->GetRequestType());
-            }
-        }
-    //close ETel connections
-    if (iCustomPhone.SubSessionHandle())
-        iCustomPhone.Close();
-    
-    if (iPhone.SubSessionHandle())
-    	iPhone.Close();
-    
-    if (iServer.Handle())
-        {           
-        iServer.UnloadPhoneModule(KMmTsyModuleName);
-        iServer.Close();
-        }
-  RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-	delete iModel;
-	delete iPhoneObserver;
-	delete iIncallBubble;
-RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-	#ifdef RD_AUTO_KEYGUARD
-	delete iKeyguardObserver;
-#endif
-
-    delete iEcsDetector;
-    delete iEcsNote; // Ecs change
-	RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-	  delete iWait;
-    FeatureManager::UnInitializeLib();
-    delete iGripStatusObserver;
-    delete iFpsStatusObserver;
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::~CAutolockAppUi() END"));
-    #endif
-RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-		}
-// ----------------------------------------------------
-// CAutolockAppUi::HandleForegroundEventL()
-// Handles foreground event.
-// ----------------------------------------------------
-//
-void CAutolockAppUi::HandleForegroundEventL(TBool aForeground)
-	{
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleForegroundEventL()"));
-    #endif
-	if (aForeground )
-		{
-		if (iLocked)
-			{
-			// lock voice key 
-			LockSideKeyL();			
-			}
-		else
-			{
-			// app back to background
-			TApaTask self(iCoeEnv->WsSession());
-			self.SetWgId(iCoeEnv->RootWin().Identifier());
-			self.SendToBackground();
-			}
-		}
-
-	if (!aForeground && iLocked)
-		{
-        TInt callState=0;
-        TInt simStatus=0;
-        RProperty::Get(KPSUidCtsyCallInformation, KCTsyCallState, callState );
-        RProperty::Get(KPSUidStartup, KPSSimStatus, simStatus);
-
-        if (callState == EPSCTsyCallStateNone && simStatus != ESimNotPresent)
-			{	
-			// try put autolock back to foreground
-			TApaTask self(iCoeEnv->WsSession());
-			self.SetWgId(iCoeEnv->RootWin().Identifier());
-			self.BringToForeground();		
-			}
-		else
-			{
-			// unlock voice key while there is active call
-			UnLockSideKey();
-			}
-		}
-
-	CAknAppUi::HandleForegroundEventL(aForeground);
-	
-	}
-	
-
-// ----------------------------------------------------
-// CAutolockAppUi::HandleMessageL
-//
-// Handles the TARM command to unlock the phone.
-// ----------------------------------------------------
-//	
-MCoeMessageObserver::TMessageResponse CAutolockAppUi::HandleMessageL( 
-                                TUint32 aClientHandleOfTargetWindowGroup, 
-                                TUid aMessageUid, 
-                                const TDesC8& aMessageParameters 
-                               )
-    {
-    	
-    	if(!FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))  
-    	{
-    		User::Leave(KErrNotSupported);
-    	}
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL()"));
-    #endif
-    
-    MCoeMessageObserver::TMessageResponse messageResponse( EMessageHandled );
-    
-    if ( aMessageUid.iUid == SCP_CMDUID_UNLOCK )
-        {        
-        // For security reasons we must check from the SCP server did this 
-        // command originate from it.                                
-        RSCPClient scpClient;
-        if ( scpClient.Connect() == KErrNone )
-            {
-            CleanupClosePushL( scpClient );
-        
-            if ( scpClient.QueryAdminCmd( ESCPCommandUnlockPhone ) )
-                {
-                // Switch autolock to BG
-                #if defined(_DEBUG)
-                RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
-                    Admin command received, unlocking"));
-                #endif            
-            
-                if ( !iLocked )
-                    {
-                    #if defined(_DEBUG)
-                    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
-                        Ignoring Unlock message - not locked."));
-                    #endif            
-                    }   
-                else
-                    {
-                    iLocked = EFalse;
-                  DisableWGListChangeEventListening();  
-	                UnLockKeys();
-	                iModel->SetLockedL(EFalse);
-			// Disable keyguard after remote unlock
-	                RAknKeyLock iKeyLock;
-	                TInt tempResult = iKeyLock.Connect();
-	                iKeyLock.DisableKeyLock();
-	                // end Disable keyguard after remote unlock
-	                SwitchToPreviousAppL();
-                    }   
-                }           
-            else
-                {
-                #if defined(_DEBUG)
-                RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
-                    Unauthorized attempt to unlock"));
-                #endif
-                }
-        
-            CleanupStack::PopAndDestroy(); // scpClient                               
-            }
-        else
-            {          
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleMessageL():\
-                Failed to connect to SCP, ignoring unlock-message."));
-            #endif            
-            
-            }
-        }               
-    else // aMessageUid.iUid != SCP_CMDUID_UNLOCK 
-        {
-        messageResponse = CAknAppUi::HandleMessageL( aClientHandleOfTargetWindowGroup, 
-                                                     aMessageUid,
-                                                     aMessageParameters
-                                                   );
-        }
-    
-    return messageResponse;
-    }
-    	 	
- 	
-// ------------------------------------------------------------------------------
-// CAutolockAppUi::::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
-//  This function is called by the UIKON framework just before it displays
-//  a menu pane. Its default implementation is empty, and by overriding it,
-//  the application can set the state of menu items dynamically according
-//  to the state of application data.
-// ------------------------------------------------------------------------------
-//
-void CAutolockAppUi::DynInitMenuPaneL(
-    TInt /*aResourceId*/,CEikMenuPane* /*aMenuPane*/)
-    {
-    }
-
-void CAutolockAppUi::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-		}
-// ----------------------------------------------------
-// CAutolockAppUi::HandleKeyEventL(
-//     const TKeyEvent& aKeyEvent,TEventCode /*aType*/)
-// ----------------------------------------------------
-//
-TKeyResponse CAutolockAppUi::HandleKeyEventL(
-    const TKeyEvent& aKeyEvent,TEventCode aType)
-    {
-	if ( aKeyEvent.iCode == EKeyBell)
- 		{
- 		HandleCommandL(ESecUiCmdUnlock);
- 		return EKeyWasConsumed; 
- 		}
-
-    TBool featureNoPowerkey = FeatureManager::FeatureSupported( KFeatureIdNoPowerkey );
-    // If power key pressed, tell SysAp about if
-    if( (aKeyEvent.iScanCode == EStdKeyDevice2 && aType == EEventKeyDown )
-        || (aType == EEventKey && featureNoPowerkey && aKeyEvent.iCode == EKeyNo))
-        {
-        SendMessageToSysAp(EEikKeyLockPowerKeyPressed);
-        if ( featureNoPowerkey )
-            {
-            SendMessageToSysAp(EEikKeyLockLightsOnRequest);              
-            }
-        }
-    return EKeyWasNotConsumed;
-    }
-
-void CAutolockAppUi::SendMessageToSysAp(TInt aMessage)
-    {
-    RWsSession& ws = iEikonEnv->WsSession();
-    TInt wgId=0;
-    CApaWindowGroupName::FindByAppUid(KSysApUid, ws, wgId);
-    if (wgId)
-        {
-        TWsEvent event;
-        event.SetType(aMessage);
-        event.SetTimeNow();
-        ws.SendEventToWindowGroup(wgId, event);
-        }
-    }
-
-// ----------------------------------------------------
-// HideSoftNotification()
-// dismiss all the pending notes just before asking the unlocking code
-// ----------------------------------------------------
-//
-void HideSoftNotification()
-    {
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)HideSoftNotification"));
-    #endif
-    CAknSoftNotifier *softNotifier = NULL;
-    TRAPD (err, {
-            softNotifier = CAknSoftNotifier::NewL();
-            softNotifier->AddNotificationL(ESetIdleState, 0);
-    };)
-    delete softNotifier;
-    }
-// CAutolockAppUi::HandleCommandL(TInt aCommand)
-// ----------------------------------------------------
-//
-void CAutolockAppUi::HandleCommandL(TInt aCommand)
-    {
-	#if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleCommandL()"));
-    #endif
-	switch ( aCommand )
-        {
-        case EEikCmdExit:
-			{
-			#if defined(_DEBUG)
-			RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleCommandL() EEikCmdExit"));
-			#endif
-            Exit();
-            break;
-			}
-        case ESecUiCmdUnlock:
-			{
-			RDebug::Printf( "%s %s (%u) ESecUiCmdUnlock is not longer handled by Autolock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, ESecUiCmdUnlock );
-
-			break;
-			}
-        default:
-            break;      
-        } 
-    }
-
-// ----------------------------------------------------
-// CAutolockAppUi::SwitchToPreviousAppL()
-// Activates previous app 
-//----------------------------------------------------
-//
-void CAutolockAppUi::SwitchToPreviousAppL()
-	{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::SwitchToPreviousAppL()"));
-	#endif
-	iEcsDetector->Reset(); // Ecs queue is cleared; keys up til here are forgotten
-	// stop observing phone events
-	iPhoneObserver->Stop();
-	CAknView* view = View(KAutoLockViewId);
-	if(view)
-	  {
-	  STATIC_CAST(CAutolockView*, view)->MakeVisible(EFalse);
-	  }
-	else
-	  {
-	  #if defined(_DEBUG)
-	  RDebug::Printf( "%s %s (%u) no view ????=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, view );
-	  #endif
-	  }
-	// app to background
-	TApaTask self(iCoeEnv->WsSession());
-	self.SetWgId(iCoeEnv->RootWin().Identifier());
-	self.SendToBackground();
-	// flush
-	iCoeEnv->WsSession().Flush();
-	}
-// ----------------------------------------------------
-// CAutolockAppUi::BringAppToForegroundL()
-// Activates autolock app
-//----------------------------------------------------
-//
-void CAutolockAppUi::BringAppToForegroundL()
-	{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL()"));
-	#endif
-	TBool tarmAdminFlag(EFalse);
-	TBool remotelockState(EFalse);
-if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
-{
-    tarmAdminFlag = TarmState();
-}
-
-#ifdef RD_REMOTELOCK
-        TInt autolockState;
-        RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolockState);
-        remotelockState = (autolockState == ERemoteLocked);           
-#endif//RD_REMOTELOCK
-	// If TARM admin flag is set, bring Autolock to foreground regardless of call state.
-	if(!tarmAdminFlag)
-	{   //If phone has been remote locked bring Autolock to foreground regardless of call state.
-	    if(!remotelockState)
-	    {   // check if there is active call
-    	    TInt callState;
-    	    RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
-            if (callState != EPSCTsyCallStateNone )
-                {
-    		    iModel->SetLockedL(EFalse);
-    		    iModel->ResetInactivityTimeout();
-    		    UnLockKeys();
-    		    return;
-    		    }   
-	    }
-	    
-	}
-         		
-
-	#ifndef __WINS__
-
-	#ifndef __NO_DOS__
-
-		/*****************************************************
-		*	Series 60 Customer / ETEL
-		*	Series 60 ETEL API
-		*****************************************************/
-
-	// check that device locked in DOS side too
-	RMobilePhone::TMobilePhoneLock lockType = RMobilePhone::ELockPhoneDevice;
-	RMobilePhone::TMobilePhoneLockInfoV1 lockInfo;
-	RMobilePhone::TMobilePhoneLockInfoV1Pckg lockInfoPkg(lockInfo);
-
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL() GetLockInfo"));
-	#endif
-	iWait->SetRequestType(EMobilePhoneGetLockInfo);
-	iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
-	TInt res = iWait->WaitForRequestL();
-	User::LeaveIfError(res);
-	if (iWait->iStatus == KErrNone)
-		{
-		// if not don't lock ui either
-		#if defined(_DEBUG)
-		RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL() KErrNone"));
-		#endif
-		if (lockInfo.iSetting == RMobilePhone::ELockSetDisabled)
-			{
-			iModel->SetLockedL(EFalse);
-			UnLockKeys();
-			return;
-			}
-		}
-	#endif
-
-	#endif
-
-	// in case Telephone-app is topmost, then the user is confused because he sees but can't use it.
-	// therefore it's required to hide it, by sending to background. ETMA-7M8A2Y 20090105
-	if ( AknLayoutUtils::PenEnabled() )
-     	{ 		
-   			TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
-   			#define KPhoneAppUid TUid::Uid(0x100058B3)
-
-   			TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
-   			if (apaTask.Exists())
-       	{
-			 		#if defined(_DEBUG)
-			 			RDebug::Print(_L("(AUTOLOCK)CAknKeyLockControl::EnableKeylock() Bring phone to background"));
-			 		#endif
-       		// Bring phone to background
-       		apaTask.SendToBackground();
-       	}
-			}	
-	
-	iPhoneObserver->Start();
-	iLocked = ETrue;
-	// app to foreground	
-	TApaTask self(iCoeEnv->WsSession());
-	self.SetWgId(iCoeEnv->RootWin().Identifier());
-	self.BringToForeground();
-	ActivateLocalViewL(KAutoLockViewId);
-	CAknView* view = View(KAutoLockViewId);
-	if(view)
-	  {
-	  STATIC_CAST(CAutolockView*, view)->MakeVisible(ETrue);
-	  }
-	else
-	  {
-	  #if defined(_DEBUG)
-	  RDebug::Printf( "%s %s (%u) no view ????=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, view );
-	  #endif
-	  }
-	}
-
-// ----------------------------------------------------
-// CAutolockAppUi::LockKeysL()
-// locks keys 
-//----------------------------------------------------
-//
-void CAutolockAppUi::LockKeysL()
-	{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::LockKeysL()"));
-	#endif
-	// capture appkey & volume key
-	if (!iAppKey)
-		{
-		RWindowGroup& groupWin=iCoeEnv->RootWin();
-		#if defined(_DEBUG)
-		RDebug::Printf( "%s %s (%u) searching for popupclock.exe =%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x0 );
-		#endif
-		TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
-		const TUid KBigClockUid = { 0x2000FDC3 };
-		TApaTask task( taskList.FindApp( KBigClockUid ) );
-		if ( task.Exists() )
-			{
-			#if defined(_DEBUG)
-			RDebug::Printf( "%s %s (%u) popupclock.exe is running. Not capturing EStdKeyApplication0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStdKeyApplication0 );
-			#endif
-			}
-		else
-			{
-			#if defined(_DEBUG)
-			RDebug::Printf( "%s %s (%u) popupclock.exe not running. Not capturing EStdKeyApplication0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, EStdKeyApplication0 );
-			#endif
-			iAppKey = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0); // Capture app key
-			}
-		}
-	LockSideKeyL();
-	}
-// ----------------------------------------------------
-// CAutolockAppUi::UnLockKeys()
-// unlocks keys 
-//----------------------------------------------------
-//
-void CAutolockAppUi::UnLockKeys()
-	{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::UnLockKeysL()"));
-	#endif
-	// uncapture appkey
-	if (iAppKey)
-		{
-		RWindowGroup& groupWin=iCoeEnv->RootWin();
-		groupWin.CancelCaptureKeyUpAndDowns(iAppKey);
-		iAppKey = 0;
-		}
-	UnLockSideKey();
-	}
-// ----------------------------------------------------
-// CAutolockAppUi::LockSideKeyL()
-// unlocks side-key 
-//----------------------------------------------------
-//
-void CAutolockAppUi::LockSideKeyL()
-	{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::LockSideKeyL()"));
-	#endif
-	if (!iSideKey1)
-		{
-		RWindowGroup& groupWin=iCoeEnv->RootWin();
-		iSideKey1 = groupWin.CaptureKey(EKeySide,0,0);
-		iSideKey2 = groupWin.CaptureKeyUpAndDowns(EStdKeyDevice6, 0, 0);
-		}
-	}
-
-// -------------------------------------------------------------------------------------------------------------
-// part of emergency call handling when telephony+devicelock is active
-// this solution is meant only for 3.1 and 3.2
-void CAutolockAppUi::HandleEcsEvent( CAknEcsDetector* aEcsDetector, CAknEcsDetector::TState aState )
-    {
-    switch ( aState )
-        {
-        case CAknEcsDetector::ECompleteMatchThenSendKey:
-            // Do nothing since note will be removed on ECallAttempted event
-            break;
-        case CAknEcsDetector::ECompleteMatch:
-            iEcsNote->SetEmergencyNumber( aEcsDetector->CurrentMatch() );
-            
-            // Tell sysAp to switch lights on
-            SendMessageToSysAp( EEikEcsQueryLights );
-            
-            iEcsNote->ShowNote();
-            iEcsNote->iNoteOnScreen =ETrue;
-            break;
-        case CAknEcsDetector::EPartialMatch:
-            iEcsNote->SleepNote();
-            break;
-        case CAknEcsDetector::ECallAttempted:
-            iEcsNote->SleepNote();
-            break;
-        case CAknEcsDetector::EEmpty:
-            iEcsNote->SleepNote();
-            break;
-        case CAknEcsDetector::ENoMatch:
-            iEcsNote->SleepNote();
-            break;
-        default:
-            break;
-        }
-    }
-
-CEcsNote::CEcsNote() : iNoteOnScreen( EFalse )
-    {}
-    
-void CEcsNote::ConstructSleepingNoteL(TInt aResourceId)
-    {
-    CAknNoteDialog::ConstructSleepingDialogL(aResourceId);
-    }
-    
-TInt CEcsNote::ShowNote()
-    {
-    ReportUserActivity();
-    iTimeoutInMicroseconds = CAknNoteDialog::EUndefinedTimeout;
-    iTone = CAknNoteDialog::ENoTone;    
-    if (!iNoteOnScreen)
-        {  
-        return RouseSleepingDialog();
-        }
-        // return value not used
-    else
-        // return value not used
-        return NULL;
-    }
-
-void CEcsNote::SleepNote()
-    {
-    if (iNoteOnScreen)
-        ExitSleepingDialog(); // Causes flicker to other notes if called when note is not on screen
-    iNoteOnScreen = EFalse;
-    }
-
-TKeyResponse CEcsNote::OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, TEventCode /*aType*/)
-    {
-    return EKeyWasConsumed;
-    }
-
-void CEcsNote::SetEmergencyNumber( const TDesC& aMatchedNumber )
-    {
-    TRect screen(iAvkonAppUi->ApplicationRect());
-    TAknLayoutRect mainPane;
-    mainPane.LayoutRect(screen, AKN_LAYOUT_WINDOW_main_pane(screen, 0, 1, 1));
-    TAknLayoutRect popupNoteWindow;
-    AknLayoutUtils::TAknCbaLocation cbaLocation( AknLayoutUtils::CbaLocation() );
-    TInt variety( 0 );
-    if ( cbaLocation == AknLayoutUtils::EAknCbaLocationRight )
-        {
-        variety = 5;
-        }
-    else if ( cbaLocation == AknLayoutUtils::EAknCbaLocationLeft )
-        {
-        variety = 8;
-        }
-    else
-        {
-        variety = 2;
-        }
-
-    popupNoteWindow.LayoutRect(mainPane.Rect(), AknLayoutScalable_Avkon::popup_note_window( variety ));
-    TAknLayoutText textRect;
-    textRect.LayoutText(popupNoteWindow.Rect(), AKN_LAYOUT_TEXT_Note_pop_up_window_texts_Line_1(4));
-
-    // Size of a temporary buffer that contains new lines, spaces and 
-    // emergency number for a note.
-    TBuf16<KAknEcsMaxMatchingLength+80> number;
-    number.Append('\n');
-    number.Append('\n');
-
-    TInt spaceCharWidthInPixels = textRect.Font()->CharWidthInPixels(' ');
-    if (spaceCharWidthInPixels < 1)
-        {
-        // Avoid divide by zero situation even the space char would have zero length.
-        spaceCharWidthInPixels = 1;
-        }
-    
-    TInt length = (textRect.TextRect().Width() - textRect.Font()->TextWidthInPixels(aMatchedNumber))
-                    / spaceCharWidthInPixels;
-
-    const TInt matchedNumberLength = aMatchedNumber.Length();
-    const TInt numberLength = number.Length();
-    const TInt numberMaxLength = number.MaxLength();
-    
-    if ( numberLength + length + matchedNumberLength > numberMaxLength)
-        {
-        // To make sure that buffer overflow does not happen.
-        length = numberMaxLength - numberLength - matchedNumberLength;
-        }
-    for (int i = 0; i < length ; i++)
-        {
-        number.Append(' ');
-        }
-
-    number.Append(aMatchedNumber);
-    TRAP_IGNORE(SetTextL(number));
-
-    }
-        
-// -------------------------------------------------------------------------------------------------------------
-	
-// ----------------------------------------------------
-// CAutolockAppUi::UnLockSideKey()
-// unlocks side-key 
-//----------------------------------------------------
-//
-void CAutolockAppUi::UnLockSideKey()
-	{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::UnLockSideKeyL()"));
-	#endif
-	if (iSideKey1)
-		{
-		RWindowGroup& groupWin=iCoeEnv->RootWin();
-		groupWin.CancelCaptureKeyUpAndDowns(iSideKey2);
-		groupWin.CancelCaptureKey(iSideKey1);
-		iSideKey1 = 0;
-		iSideKey2 = 0;
-		}
-	}
-	
-
-//
-// ---------------------------------------------------------
-// CAutolockAppUi::HandleScreenDeviceChangedL()
-// Handles screen layout changes, called by CCoeAppUi
-// ---------------------------------------------------------
-//
-void CAutolockAppUi::HandleScreenDeviceChangedL()
-{
-  CAknAppUiBase::HandleScreenDeviceChangedL();
-   //get autolock view from CAknViewAppUi
-  CAknView* view = View(KAutoLockViewId);
-  if(view)
-    {
-        STATIC_CAST(CAutolockView*, view)->ScreenDeviceChanged();
-    }
-  
-}
-
-//
-// ----------------------------------------------------------
-// CAutolockAppUi::IsPinBlocked()
-// Checks whether PIN1/UPIN is blocked
-// ----------------------------------------------------------
-//
-TBool CAutolockAppUi::IsPinBlocked()
-{
-	RMmCustomAPI::TSecurityCodeType secCodeType;
-	TBool wcdmaSupported(FeatureManager::FeatureSupported( KFeatureIdProtocolWcdma ));
-	TBool upinSupported(FeatureManager::FeatureSupported( KFeatureIdUpin ));
-
-	if(wcdmaSupported || upinSupported)
-	  {
-    	RMobilePhone::TMobilePhoneSecurityCode activePin;
-    	iCustomPhone.GetActivePin(activePin);
-    	if(activePin == RMobilePhone::ESecurityUniversalPin)
-    		secCodeType = RMmCustomAPI::ESecurityUniversalPin;
-    	else
-    		secCodeType = RMmCustomAPI::ESecurityCodePin1;
-	  }
-	else 
-	    secCodeType = RMmCustomAPI::ESecurityCodePin1;
-	
-	TBool isBlocked = EFalse;
-    iCustomPhone.IsBlocked(secCodeType,isBlocked);
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::IsPinBlocked result: %d"), isBlocked);
-    #endif
-	return isBlocked;
-}
-
-//
-// ----------------------------------------------------------
-// CAutolockAppUi::HandleWsEventL()
-// 
-// ----------------------------------------------------------
-//
-void CAutolockAppUi::HandleWsEventL( const TWsEvent& aEvent,CCoeControl* aDestination )
-    {
-    	const TInt type = aEvent.Type();
-    	
-    	switch ( type )
-    	{
-    		case KAknFullOrPartialForegroundLost: // partial or full fg lost
-    			if( iIncallBubble )
-                    {
-                    #if defined(_DEBUG)
-    				RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleWsEventL: DISABLE call bubble"));
-    				#endif                    
-                    iIncallBubble->SetIncallBubbleAllowedInIdleL( EFalse );
-                    }
-				break;
-		    case KAknFullOrPartialForegroundGained: // partial or full fg gained
-		    	if( iIncallBubble )
-		           	{
-		             	#if defined(_DEBUG)
-		    			RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleWsEventL: ENABLE call bubble"));
-		    			#endif                      
-		                iIncallBubble->SetIncallBubbleAllowedInIdleL( ETrue );
-		            }
-		    	break;	
-    	    case EEventWindowGroupListChanged:
-    	        HandleWindowGroupListChange();
-    	        break;
-    	    case EEventPointer:
-    	    case EEventDragDrop:
-    	    		{
-    	    		TInt callState = 0;
-    	    		RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
-			        if ( 1==1 || callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
-			        	{
-	    	        TPointerEvent *pointer = aEvent.Pointer();
-	    	          CAknView* view = View(KAutoLockViewId);
-								  if(view)
-								    {	
-								        STATIC_CAST(CAutolockView*, view)->ScreenDeviceChanged();
-								    	TRect aCallRect;
-								        STATIC_CAST(CAutolockView*, view)->HandleCall(1, aCallRect);
-   								    	if(aCallButtonRect.iBr.iX==0)
-   								    		aCallButtonRect = TRect (aCallRect);
-								    }
-	    	        if(pointer->iType==TPointerEvent::EButton1Up)
-	    	        	{
-		    	        TPoint iPosition = pointer->iPosition;
-						if(aCallButtonRect.iBr.iX<iPosition.iX && iPosition.iX<aCallButtonRect.iBr.iX+aCallButtonRect.iTl.iX && iPosition.iY<400 )
-	    		        	{
-	    		        		#define KPhoneAppUid1 TUid::Uid(0x100058B3)
-	    		        		TApaTaskList tasklist( iCoeEnv->WsSession() );
-                      TApaTask phonetask = tasklist.FindApp( KPhoneAppUid1 );
-	    		        		if ( phonetask.Exists() )
-                        {
-										    TRawEvent event;
-										    event.Set(TRawEvent::EKeyDown, EStdKeyNo);
-										    iEikonEnv->WsSession().SimulateRawEvent(event);
-                        					User::After(1000);
-										    event.Set(TRawEvent::EKeyUp, EStdKeyNo);
-										    iEikonEnv->WsSession().SimulateRawEvent(event);
-                        }
-	    		        	}
-	    		        }
-	    		      }
-    		      }
-    	        break;
-    	    case EEventKeyUp:	// on touch devices, this happens only for the switch-key, which should turn on the lights.
-    	    case EEventKey:
-    	    case EEventKeyDown:
-    		if(iLocked)
-	    	        SendMessageToSysAp( EEikSecurityQueryLights );
-	    	        break;
-		    default:
-		    	break;
-    	}
-    	
-    	// All events are sent to base class.
-    	CAknViewAppUi::HandleWsEventL( aEvent, aDestination );
-        
-        // part of emergency call handling when telephony+devicelock is active
-        // this solution is meant only for 3.1 and 3.2
-        // Emergency detector only handles key down events
-        if ( iEmergencySupportReady )
-        	iEcsDetector->HandleWsEventL( aEvent, aDestination);    	
-    }
-
-TBool CAutolockAppUi::DeviceLockQueryStatus()
-    {
-    return iDeviceLockQueryStatus;
-    }
-
-TBool CAutolockAppUi::DeviceLockStatus()
-    {
-    return iLocked;
-    }
-
-TBool CAutolockAppUi::DeviceFpsLock(TInt iStatus)
-    {
-		if(iStatus)
-			HandleCommandL(ESecUiCmdUnlock);
-		else
-			iModel->SetLockedL(ETimerLocked);
-    return ETrue;
-    }
-void CAutolockAppUi::HandleWindowGroupListChange()
-    {
-    if ( !iLocked )
-        {
-        // System is not locked, make sure app is not on the foreground.
-        if ( !iCoeEnv->RootWin().OrdinalPosition() )
-            {
-            CAknSgcClient::MoveApp(
-                iCoeEnv->RootWin().Identifier(), 
-                ESgcMoveAppToBackground );
-            }
-        }
-    else
-        {
-		            CAknView* view = View(KAutoLockViewId);
-								  if(view)
-								    {	
-								    	TRect aCallRect;
-								        STATIC_CAST(CAutolockView*, view)->HandleCall(10, aCallRect);
-												if(aCallButtonRect.iBr.iX==0)
-   								    		aCallButtonRect = TRect (aCallRect);
-								    }
-        // So now system is locked. When call is not ongoing, autolock should
-        // be on the foreground.
-        TInt callState = 0;
-        RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
-        if ( callState == EPSCTsyCallStateNone || 
-             callState == EPSCTsyCallStateUninitialized )
-            {
-            // No calls ongoing.
-            if ( iCoeEnv->RootWin().OrdinalPosition() > 0 ) 
-                {
-                // Not on foreground
-                CAknSgcClient::MoveApp(
-                    iCoeEnv->RootWin().Identifier(), 
-                    ESgcMoveAppToForeground );
-                }
-            }
-        }
-    }
-
-TBool CAutolockAppUi::TarmState()
-{
-TBool ret(EFalse);
-if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
-{
-    // Get the TARM admin flag value
-    TInt tarmFlag;
-	TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
-    
-    if ( tRet != KErrNone )
-        {
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL(): Warning: failed to get TARM Admin Flag state"));
-            #endif
-        }
-    else
-        {
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL(): TARM flag: %d"),
-                tarmFlag );
-            #endif
-        }
-        
-    // Unset the admin flag if set
-    if ( tarmFlag & KSCPFlagAdminLock )
-        {
-        ret = ETrue;
-        TInt tRet = RProperty::Get( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
-        
-        if ( tRet == KErrNone )
-            {
-            tarmFlag &= ~KSCPFlagAdminLock;
-            tRet = RProperty::Set( KSCPSIDAutolock, SCP_TARM_ADMIN_FLAG_UID, tarmFlag );
-            }
-
-        if ( tRet != KErrNone )
-            {
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::BringAppToForegroundL(): FAILED to unset TARM Admin Flag"));
-            #endif
-            }                    
-        }  
-
-}
-return ret;
-}
-
-// ---------------------------------------------------------
-// CAutolockAppUi::HiddenReset()
-// ---------------------------------------------------------
-TBool CAutolockAppUi::HiddenReset()
-    {
-    #if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HiddenReset() begin"));
-	#endif	    				    			
-
-    TBool ret_val ( EFalse );
-	TInt startupReason(ENormalStartup);
-	TInt errorCode(KErrNone);
-	
-	RProperty::Get(KPSUidStartup, KPSStartupReason, startupReason);
-	
-	if ( errorCode != KErrNone )
-		{
-		    #if defined(_DEBUG)
-	        RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HiddenReset() error getting startup reason"));
-	        #endif
-	    }
-    ret_val = (startupReason != ENormalStartup);
-    #if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HiddenReset() END: %d"), ret_val);
-	#endif
-    return ret_val;
-    }
-void CAutolockAppUi::EnableWGListChangeEventListening()
-{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::EnableWGListChangeEventListening()"));
-	#endif
-    RWindowGroup& rootWin = iCoeEnv->RootWin();
-    rootWin.EnableGroupListChangeEvents();
-    rootWin.EnableScreenChangeEvents();
-}
-void CAutolockAppUi::DisableWGListChangeEventListening()
-{
-	#if defined(_DEBUG)
-	RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::DisableWGListChangeEventListening()"));
-	#endif
-    RWindowGroup& rootWin = iCoeEnv->RootWin();
-    rootWin.DisableGroupListChangeEvents();
-    rootWin.DisableScreenChangeEvents();
-}
-// End of File