deviceencryption/DevEncUi/inc/DevEncUiEncryptionOperator.h
changeset 0 6a9f87576119
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceencryption/DevEncUi/inc/DevEncUiEncryptionOperator.h	Mon Jan 18 20:09:41 2010 +0200
@@ -0,0 +1,178 @@
+/*
+* Copyright (c) 2005 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:  Performs required preparations before encryption 
+*               operations can place.
+*
+*/
+
+#ifndef DEVENCUI_ENCRYPTIONOPERATOR_H_
+#define DEVENCUI_ENCRYPTIONOPERATOR_H_
+
+//INCLUDES
+
+//System includes
+#include <avkon.rsg>
+#include <e32base.h>
+#include <badesca.h> // for CDesCArrayFlat
+
+//User Includes
+
+// FORWARD DECLARATIONS
+class CDevEncUiMemoryEntity;
+class CEikonEnv;
+class CAknViewAppUi;
+class CRepository;
+
+class CDevEncUiEncryptionOperator: public CBase
+    {
+    public:
+    // Constructors and destructor
+        static CDevEncUiEncryptionOperator* NewL( CEikonEnv& aEikonEnv,
+                                                  CAknViewAppUi& aAppUi,
+                                                  CRepository*& aCrSettings );
+        static CDevEncUiEncryptionOperator* NewLC( CEikonEnv& aEikonEnv,
+                                                   CAknViewAppUi& aAppUi,
+                                                   CRepository*& aCrSettings );
+        ~CDevEncUiEncryptionOperator();
+
+    // Functions related to encryption
+        void HandlePhoneMemEncryptRequestL( CDevEncUiMemoryEntity* aMem, CDevEncUiMemoryEntity* aPrimaryMem = NULL );
+
+        void HandleMmcEncryptRequestL( CDevEncUiMemoryEntity* aMem,
+                                       TInt aCommand );
+
+        void HandleMmcDecryptRequestL( CDevEncUiMemoryEntity* aMem,
+                                       TInt aCommand );
+
+        void DestroyKeyQueryL( TBool aShowMmcNote );
+        
+        void BatteryStatusCallback();
+
+        void SuggestMmcEncryptionL( CDevEncUiMemoryEntity* aMem );
+
+        void SuggestMmcDecryptionL( CDevEncUiMemoryEntity* aMem );
+
+        void SuggestMmcImportKeyL( CDevEncUiMemoryEntity* aMem,
+                                   TBool aFirstAttempt );
+        
+        void ShowWrongKeyNoteL();
+
+        /**
+         * Displays an error note.
+         * @param aResourceId the error text to display
+         */
+        void ErrorNoteL( TInt aResourceId,
+                         TBool aWaitingNote = ETrue );
+
+        /**
+         * Displays an information note.
+         * @param aResourceId the text to display
+         */
+        void InfoNoteL( TInt aResourceId,
+                        TBool aWaitingNote = EFalse );
+
+    private:
+        CDevEncUiEncryptionOperator( CEikonEnv& aEikonEnv,
+                                     CAknViewAppUi& aAppUi,
+                                     CRepository*& aCrSettings );
+
+        // Second-phase constructor
+        void ConstructL();
+
+        TBool PrepareEncryptionL();
+
+        TBool PrepareDecryptionL();
+
+        void SetPowerMenuStatusL( TBool aOpen );
+
+        TBool MessageQueryL( TInt aResourceId,
+                             TInt aSoftKeysId = R_AVKON_SOFTKEYS_OK_CANCEL );
+
+        TBool QueryDialogL( TInt aResourceId,
+                            TInt aSoftKeysId = R_AVKON_SOFTKEYS_OK_CANCEL );
+
+        TBool DataQueryDialogL( TDes& aResult,
+                                TInt aPromptResourceId,
+                                TInt aMaxLength );
+
+        /**
+         * Displays a query dialog to let the user enter a password.
+         * @param aPromptResourceId the prompt text to display
+         * @param aPassword On return, contains the password
+         * @return ETrue if the user entered a password, EFalse if
+         *   the dialog was cancelled.
+         */
+        TBool PasswordQueryL( TInt aPromptResourceId,
+                              TDes8& aPassword );
+
+        /**
+         * Checks if there's enough battery power to update.
+         * @return ETrue if battery OK or charger connected
+         */
+        TBool CheckBatteryL();
+
+        /**
+         * Prompts the user for a key name and password, then creates
+         * a pkcs#5 encrypted key using the common utility component.
+         * @return ETrue if the key was created and saved successfully
+         */
+        TBool CreateAndSaveKeyL();
+
+        /**
+         * Lets the user select a key and enter a password, then loads
+         * the specified key and takes it in use using the common utility
+         * component.
+         * @return ETrue if the key was loaded and set successfully
+         */
+        TBool LoadAndSetKeyL();
+
+        /**
+         * Creates a random key and sets it in the security driver.
+         * @return ETrue if the key was created and set successfully
+         */
+        TBool CreateKeyL();
+
+        /**
+         * Resets the key in the security driver (fills with null chars).
+         * Before destroying the key, a confirmation query is shown to
+         * the user.
+         */
+        void DestroyKeyL();
+
+        void RemountMmcL();
+        
+        TInt CheckMMCStatus();
+
+        // For testing, remove
+        void CheckNotesL();
+        void CheckNotesWithHeaderL();
+
+
+    // data
+        /** Not owned */
+        CEikonEnv& iEikEnv;
+
+        /** Not owned */
+        CAknViewAppUi& iAppUi;
+        
+        /** Owned */
+        CDesCArrayFlat* iListQueryItemArray;
+        
+        /** Not owned */
+        CRepository*& iCrSettings;
+    };
+
+#endif /* DEVENCUI_ENCRYPTIONOPERATOR_H_ */
+
+// END OF FILE