securitydialogs/Autolock/src/AutoLockModel.cpp
branchRCL_3
changeset 21 09b1ac925e3f
parent 20 63339781d179
child 22 03674e5abf46
--- a/securitydialogs/Autolock/src/AutoLockModel.cpp	Thu Aug 19 10:45:23 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,444 +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 <aknappui.h>
-#include <activitymanager.h>
-#include <bldvariant.hrh>
-#include <featmgr.h>
-#include <AknNotifierController.h>
-#include <featmgr.h>
-#include <e32property.h>
-#include <PSVariables.h>
-#include <startupdomainpskeys.h>
-#include <coreapplicationuisdomainpskeys.h>
-#include <ctsydomainpskeys.h>
-
-#include <SCPClient.h>
-
-#include "AutoLockModelPS.h"  
-#include "AutolockAppUiPS.h"
-#include "AutoLockLockObserverPS.h"
-#include "AutoLockCenRepI.h"
-
-
-const TInt AutoLockOff(60000);
-
-
-
-// ================= MEMBER FUNCTIONS =======================
-//
-// ----------------------------------------------------------
-// CAutoLockModel::NewL()
-// ----------------------------------------------------------
-//
-
-CAutoLockModel* CAutoLockModel::NewL(CAutolockAppUi* aAppUi, TBool aLocked)
-  {
-  CAutoLockModel* self = new (ELeave) CAutoLockModel(aAppUi);
-  CleanupStack::PushL(self);
-  self->ConstructL( aLocked );
-  CleanupStack::Pop(); //self
-  return self;
-  }
-//
-// ----------------------------------------------------------
-// CAutoLockModel::CAutoLockModel()
-// C++ default constructor
-// ----------------------------------------------------------
-// 
-CAutoLockModel::CAutoLockModel(CAutolockAppUi* aAppUi) : 
- iAppUi( aAppUi ), iMonitoring(EFalse)  
-  {
-  }
-
-//
-// ----------------------------------------------------------
-// CAutoLockModel::ConstructL()
-// Symbian OS default constructor
-// ----------------------------------------------------------
-//
-void CAutoLockModel::ConstructL( TBool aLocked )
-  {
-    FeatureManager::InitializeLibL();
-  #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::ConstructL() BEGIN"));
-  #endif  
-    iCenRepI = CAutolockCenRepI::NewL(iAppUi);
-  // lock status observer
-  iLockObserver = CLockObserver::NewL(iAppUi);
-  // Activitymanager
-  iActivityManager = CUserActivityManager::NewL(CActive::EPriorityStandard);
-  StartActivityMonitoringL();
-    // In GSM the device is always unlocked.
-    // In CDMA, SecClientUi will lock the device on boot-up if needed.
-    if ( aLocked == EFalse ) {       
-       SetLockedL(EAutolockOff);
-       #if defined(_DEBUG)
-       RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::ConstructL() EAutolockOff"));
-       #endif       
-    }     
-       
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::ConstructL() END"));
-    #endif
-  }
-  //
-// ----------------------------------------------------------
-// CAutoLockModel::StartActivityMonitoringL()
-// Start monitoring user activity
-// ----------------------------------------------------------
-//
-void CAutoLockModel::StartActivityMonitoringL()
-  { 
-  SetActivityManagerL();
-  }
-
-//
-// ----------------------------------------------------------
-// CAutoLockModel::StopActivityMonitoring()
-// Stop monitoring user activity
-// ----------------------------------------------------------
-//
-void CAutoLockModel::StopActivityMonitoring()
-  {
-  CancelActivityManager();
-  }
-
-//
-// ----------------------------------------------------------
-// CAutoLockModel::SetActivityManagerL()
-// Initializes activymanager   
-// ----------------------------------------------------------
-//
-void CAutoLockModel::SetActivityManagerL()
-  {
-  if (AutoLockTimeout() )
-    {
-    iActivityManager->Start(AutoLockTimeout(), TCallBack(HandleInactiveEventL,this), 
-                TCallBack(HandleActiveEventL,this));
-    }
-  else
-    {
-    iActivityManager->Start(AutoLockOff, TCallBack(HandleInactiveEventL,this), 
-                TCallBack(HandleActiveEventL,this));
-    }
-
-  }
-//
-// ----------------------------------------------------------
-// CAutoLockModel::CancelActivityManager()
-// UnInitializes activymanager   
-// ----------------------------------------------------------
-//
-void CAutoLockModel::CancelActivityManager()
-  {
-    if ( iActivityManager )
-        {
-      iActivityManager->Cancel();
-        }
-  delete iActivityManager;
-  iActivityManager = NULL;
-  }
-//
-// ----------------------------------------------------------
-// CAutoLockModel::~CAutoLockModel()
-// Destructor   
-// ----------------------------------------------------------
-//
-CAutoLockModel::~CAutoLockModel()
-  {
-    delete iCenRepI;
-  delete iLockObserver;
-  StopActivityMonitoring();
-  FeatureManager::UnInitializeLib();
-    // close custom phone
-  }
-//
-// ----------------------------------------------------------
-// CAutoLockModel::AutoLockTimeout()
-// Returns current autolock period
-// ----------------------------------------------------------
-//
-TInt CAutoLockModel::AutoLockTimeout()
-  {
-    return iCenRepI->Timeout();
-  }
-//
-// ----------------------------------------------------------
-// CAutoLockModel::ResetInactivityTimeoutL()
-// Gets autolock period and starts monitoring user activity 
-// ----------------------------------------------------------
-//
-void CAutoLockModel::ResetInactivityTimeout()
-  { 
-  if (AutoLockTimeout() )
-    {
-    iActivityManager->SetInactivityTimeout(AutoLockTimeout());
-    }
-  else
-    {
-    iActivityManager->SetInactivityTimeout(AutoLockOff);
-    }
-  }
-//
-// ----------------------------------------------------------
-// CAutoLockModel::HandleActiveEventL()
-// Handles Active event. Called by ActivityManager
-// ----------------------------------------------------------
-//
-TInt CAutoLockModel::HandleActiveEventL(TAny* /*aPtr*/)
-  {
-  return KErrNone;
-  }
-
-//
-// ----------------------------------------------------------
-// CAutoLockModel::HandleInactiveEventL()
-// Handles InActive event. Called by ActivityManager
-// ----------------------------------------------------------
-//
-TInt CAutoLockModel::HandleInactiveEventL(TAny* aPtr)
-  {
-  if ( STATIC_CAST(CAutoLockModel*, aPtr)->AutoLockTimeout() )
-    {
-      TInt value(EStartupUiPhaseUninitialized);
-      RProperty::Get(KPSUidStartup, KPSStartupUiPhase, value);
-      //Don't lock unless boot is over.
-      if(value == EStartupUiPhaseAllDone)
-        {
-        #if defined(_DEBUG)
-        RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::HandleInactiveEventL() Boot over"));
-        #endif
-        #ifdef RD_REMOTELOCK
-        STATIC_CAST(CAutoLockModel*, aPtr)->LockSystemL(ETimerLocked);
-        #else
-        STATIC_CAST(CAutoLockModel*, aPtr)->LockSystemL(EAutolockOn);
-        #endif //RD_REMOTELOCK
-        }
-      else
-      {
-        #if defined(_DEBUG)
-        RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::HandleInactiveEventL() In boot; don't lock"));
-        #endif
-      }
-    }
-  return KErrNone;
-  }
-
-//
-// ----------------------------------------------------------
-// CAutoLockModel::LockSystemL()
-// Locks system
-// ----------------------------------------------------------
-//
-void CAutoLockModel::LockSystemL(TInt aAutolockState)
-  {
-  #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() BEGIN"));
-    #endif
-    // If already locked, do nothing. Otherwise we'll end up
-    // on top of Screensaver
-    // Check if iSideKey2 is zero or not (locked if nonzero)
-    // Also, phone should not be locked if PUK1 code query is up.
-#ifdef FF_STARTUP_OMA_DM_SUPPORT  // New booting order  Start ID:  MVKS-7PZDZ5
-    TInt autolock_value = 0;
-    RProperty::Get(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, autolock_value);  
-    if (autolock_value == EAutolockStatusUninitialized)
-    {
-        return;         
-    }   
-#endif  //End ID:  MVKS-7PZDZ5
-    if (iAppUi->Locked() || iAppUi->IsPinBlocked())
-        {
-        return;
-        }
-  
-  TInt lightStatus=EForcedLightsUninitialized; 
-  RProperty::Get(KPSUidCoreApplicationUIs,KLightsVTForcedLightsOn,lightStatus ); 
-  //If display is forced on. don't lock 
-  if(lightStatus == EForcedLightsOn ) 
-    {
-    #if defined(_DEBUG) 
-    RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() Display is forced on. Device not locked")); 
-    #endif 
-    return;
-    }
-
-    //Check which state we are in to see if it's OK to lock the phone
-    //In CDMA when there is no SIM (RUIM) support we should be able to lock
-    //the phone after reboot. In this case ESWStateNormal is too late to lock the phone
-    //and other states below are needed.
-    TBool okToLock = EFalse;
-    TInt sysState = 0;
-    iProperty.Get(KPSUidStartup, KPSGlobalSystemState, sysState);    
-    //If NOT in CDMA the Autolock should come up only after the phone has booted up.
-    if ( FeatureManager::FeatureSupported( KFeatureIdProtocolCdma ) || iAppUi->HiddenReset())
-        {
-        if( (sysState == ESwStateNormalRfOn       ||
-            sysState == ESwStateNormalRfOff       ||
-             sysState == ESwStateCriticalPhaseOK) &&
-            (aAutolockState > EAutolockOff) ) // EMKK-7N3G7R
-            {
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() LOCKED AFTER HIDDEN RESET"));
-            #endif
-            okToLock = ETrue;
-            }
-        }
-    else //Feature Manager
-        {
-        if( (sysState == ESwStateNormalRfOn       ||
-             sysState == ESwStateNormalRfOff)      &&
-            (aAutolockState > EAutolockOff) ) // EMKK-7N3G7R
-            {
-            okToLock = ETrue;
-            }
-        }
-   TInt tarmFlag=0;
-if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))    
-{
-    // Get the TARM admin flag value
-  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
-        }
-}
-    
-    TInt callState=0;
-    iProperty.Get(KPSUidCtsyCallInformation, KCTsyCallState, callState);
-TBool isConditionSatisfied = EFalse;
-if(FeatureManager::FeatureSupported(KFeatureIdSapTerminalControlFw ))
-{        
-    if ( ( callState != EPSCTsyCallStateNone ) && (!( tarmFlag & KSCPFlagAdminLock )) )    
-          isConditionSatisfied = ETrue;
-}
-else
-{
-    if ( callState != EPSCTsyCallStateNone )
-        isConditionSatisfied = ETrue;
-}
-    if (isConditionSatisfied)
-        {
-        TBool remoteLocked(EFalse);
-        #ifdef RD_REMOTELOCK
-        remoteLocked = (aAutolockState == ERemoteLocked);
-        #endif //RD_REMOTELOCK
-         if(remoteLocked) 
-         {
-            #if defined(_DEBUG)
-            RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() REMOTE LOCKED"));
-            #endif
-            okToLock = ETrue;
-            
-         }
-         else
-            okToLock = EFalse;        
-        }
-       
-    if (!iAppUi->IsForeground() && okToLock)
-        {
-        #if defined(_DEBUG)
-        RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() LOCK PHONE"));
-        #endif   
-    // close fast-swap window
-    CEikonEnv::Static()->DismissTaskList();
-    // inform Avokon & Other app that system is locked
-    // unless the value has already been set in secuisystemlock
-    #ifdef RD_REMOTELOCK
-    if(aAutolockState != EManualLocked)
-        {
-            #if defined(_DEBUG)
-                RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() Timer/Remote locked: %d"), aAutolockState);
-                #endif
-            SetLockedL(aAutolockState);       
-        }
-    else if((aAutolockState == EManualLocked)  && !iAppUi->Locked() && iAppUi->HiddenReset())
-         {   //set the PubSub key if we are to be locked after a hidden reset has occurred.
-             #if defined(_DEBUG)
-                 RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() HIDDEN RESET LOCK"));
-                 #endif
-             SetLockedL(aAutolockState);     
-         }
-    else
-        {   //Normal manual lock from power key. Just set the CenRep key.
-            iCenRepI->SetLockedL(okToLock);
-        }
-    #else //! RD_REMOTELOCK
-    SetLockedL(aAutolockState);
-    #endif//RD_REMOTELOCK
-    // lock keys
-    iAppUi->LockKeysL();
-    // iAppUi->EnableWGListChangeEventListening();	// this was in previous versions. It's not needed because it will come on top of bigClock
-    // app to foreground
-    iAppUi->BringAppToForegroundL();
-         // Reset inactivity time so that Screensaver gets to
-        // run again after its timeout. We'll ignore the new
-        // inactivity timeout, if already locked
-        // RDebug::Printf( "%s %s (%u) CR 428-469 avoid User::ResetInactivityTime=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
-        // User::ResetInactivityTime();
-    }
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::LockSystemL() END"));
-    #endif
-} 
-  
-//
-// ----------------------------------------------------------
-// CAutoLockModel::SetLocked
-// Sets lockvalue in Publish & Subscribe and Central Repository
-// ----------------------------------------------------------
-//
-void CAutoLockModel::SetLockedL(TInt aAutolockState)
-  {
-  #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() begin"));
-    #endif
-  TBool locked = (aAutolockState > EAutolockOff);
-  if (locked)
-    {
-        iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, aAutolockState);
-        #if defined(_DEBUG)
-        RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() LOCK"));
-        #endif
-    }   
-  else
-    {       
-        iProperty.Set(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
-        #if defined(_DEBUG)
-        RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() UNLOCK"));         
-        #endif
-    }
-
-    iCenRepI->SetLockedL(locked);
-    #if defined(_DEBUG)
-    RDebug::Print(_L("(AUTOLOCK)CAutoLockModel::SetLockedL() end"));
-    #endif
-  }
-
-// END OF FILE