securitydialogs/lockapp/inc/lockappkeyguardcontrol.h
changeset 0 164170e6151a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/lockapp/inc/lockappkeyguardcontrol.h	Tue Jan 26 15:20:08 2010 +0200
@@ -0,0 +1,207 @@
+/*
+* Copyright (c) 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"
+* 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:  Keyguard UI (window-owning compound control)
+ *
+*/
+
+
+#ifndef __LOCKAPPKEYGUARDCONTROL_H__
+#define __LOCKAPPKEYGUARDCONTROL_H__
+
+// INCLUDES
+#include "lockappbasecontrol.h"
+#include "lockappobserverinterface.h"
+#include <LockDomainCRKeys.h>
+
+// FORWARD DECLARATIONS
+class CLockAppPubSubObserver;
+class CLockAppCenRepObserver;
+class CUserActivityManager;
+
+/**
+ *  CLockAppKeyguardControl class represents the keyguard state in the state machine. 
+ *  Window-owning compound control that provides visible keyguard user interface. 
+ *  Owns all keyguard dialogs and commands received from the child controls like 
+ *  dialogs and cba.
+ *
+ *  @lib    lockapp
+ *  @since  5.0
+ *  @author Joona Petrell
+ *  @author Tamas Koteles
+ *  @see    CLockAppBaseControl
+ *  @see    MLockAppStateControl
+ *  @see    CUserActivityManager
+ *  @see    CLockAppPubSubObserver
+ *  @see    CLockAppCenRepObserver
+ */
+class CLockAppKeyguardControl : public CLockAppBaseControl, public MEikCommandObserver,
+        public MLockAppObserverInterface
+    {
+    public:
+
+        /**
+         * Two-phased constructor.
+         *
+         * @param aStateControl reference to the main state control
+         */
+        static CLockAppKeyguardControl* NewL( MLockAppStateControl& aStateControl );
+
+        /**
+         * Destructor.
+         */
+        ~CLockAppKeyguardControl( );
+
+        TBool ActivationAllowedL( );
+
+        TBool DeActivationAllowedL( );
+
+        virtual void HandleActivateEventL( TUint aEnvMask );
+
+        virtual void HandleDeActivateEventL( TUint aEnvMask );
+
+        virtual void HandleEnvironmentChange( TUint aEnvMask, TUint aEventMask );
+
+    private:
+
+        /**
+         * C++ default constructor.
+         *
+         * @param aStateControl reference to the main state control
+         */
+        CLockAppKeyguardControl( MLockAppStateControl& aStateControl );
+
+        /**
+         * Second constructor that can fail (leave).
+         */
+        void ConstructL( );
+
+    public:
+
+        void DisplayLockedNote( );
+
+        void DisplayKeysLockedNote( );
+
+        void DisplayKeysActiveNote( );
+
+    public:
+
+        void HandleResourceChange( TInt aType );
+
+        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
+
+    public:
+
+        /**
+         * Handle Central Repository observer callback.
+         */
+        void HandleCenRepNotify( TUid aCenRepUid, TUint32 aKeyId, TInt aValue );
+
+        /**
+         * Handle Publish & Subscribe observer callback.
+         */
+        void HandlePubSubNotify( TUid aPubSubUid, TUint aKeyId, TInt aValue );
+
+    private:
+
+        TInt CountComponentControls( ) const;
+
+        CCoeControl* ComponentControl( TInt aIndex ) const;
+
+    private:
+
+        /**
+         * UI commands to parent using method ProcessCommandL.
+         *
+         * @param aCommandId Command to be handled
+         */
+        void ProcessCommandL( TInt aCommandId );
+
+    private:
+
+        void DisplayConfirmationNote( );
+
+        // Is allowed to auto lock keys
+        TBool AutoActivationAllowedL( );
+
+        // Get auto keyguard timeout
+        TInt GetAutoKeyguardTimeout( );
+
+        // Starts monitoring user activity
+        void StartActivityMonitoringL( );
+
+        // Gets new autolock period and starts monitoring user activity
+        void ResetInactivityTimeout( );
+
+        // Stop monitoring user activity.
+        void StopActivityMonitoring( );
+
+        // Handles Active event. Called by ActivityManager
+        static TInt HandleActiveEventL( TAny* aPtr );
+
+        // Handles Inactive event. Called by ActivityManager
+        static TInt HandleInactiveEventL( TAny* aPtr );
+
+    private:
+
+        /**
+         * "Now press *" confirmation note.
+         */
+        CLockAppLockedNote* iConfirmationNote;
+
+        /**
+         * "Keys are locked. Press Unlock" note.
+         */
+        CLockAppLockedNote* iLockedNote;
+
+        /**
+         * "Keys locked" note
+         */
+        CLockAppLockedNote* iKeypadLockedNote;
+
+        /**
+         * "Keys activated" note
+         */
+        CLockAppLockedNote* iKeypadUnlockedNote;
+
+        /**
+         * CenRep observers
+         */
+        CLockAppCenRepObserver* iCRAutoKeyguardTime;
+        CLockAppCenRepObserver* iCRPersistentKeyguardStatus;
+
+        /**
+         * PubSub observers
+         */
+        CLockAppPubSubObserver* iPSStartupObserver;
+
+        /**
+         * User activity manager
+         */
+        CUserActivityManager* iActivityManager;
+
+        /**
+         * Hardware support for keyguard
+         */
+        TLockHardware iHardwareSupport;
+
+        /**
+         * Flags if we had already normal state
+         */
+        TBool iAlreadyNormalState;
+
+    };
+
+#endif // __LOCKAPPKEYGUARDCONTROL_H__
+
+// End of File