omadm/omadmappui/inc/NSmlDMFotaView.h
changeset 0 3ce708148e4d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omadm/omadmappui/inc/NSmlDMFotaView.h	Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,335 @@
+/*
+* Copyright (c) 2005-2006 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:  Declares the firmware update view for the application
+*
+*/
+
+
+
+#ifndef CNSMLDMFOTAVIEW_H
+#define CNSMLDMFOTAVIEW_H
+
+//  INCLUDES
+#include <aknview.h>
+#include <AknWaitNoteWrapper.h>
+#include <e32property.h>
+#include "NSmlDMProgress.h"
+
+// FORWARD DECLARATIONS
+class CNSmlDMFotaContainer;
+class CNSmlDMFotaModel;
+class CAknIconArray;
+class CDLObserver;
+// CLASS DECLARATION
+
+/**
+*  Fota view in the NSmlDMSyncApp.
+*
+*  @lib NSmlDMSyncApp
+*  @since Series 60 3.1
+*/
+enum TFotaState
+			{
+			/** No firmware update has been started */
+	    EIdle                       = 10,
+	    /** Client has sent a client initiated request */
+	    EClientRequest              = 5,
+	    /** There is no data available and download is about to start */
+	    EStartingDownload           = 15,
+	    /** Download failed and there is no data received */
+	    EDownloadFailed             = 20,
+	    /** Download is progressing with resume support. This state shouldn't be set as FUMO state*/
+		EDownloadProgressingWithResume	= 25,
+	    /** Denotes that a download has started and that 0 or more bytes of 
+        data have been downloaded */
+	    EDownloadProgressing        = 30,
+	    /** Have data and download has been completed successfully */
+	    EDownloadComplete           = 40,
+	    /** Have data and about to start update */
+	    EStartingUpdate             = 50,
+	    /** Denotes that the update is currently running, but has not yet 
+        completed */
+	    EUpdateProgressing          = 60,
+	    /** Have data but update failed */
+	    EUpdateFailed               = 70,
+	    /** Update failed and data deleted or removed */
+	    EUpdateFailedNoData         = 80,
+	    /** Update complete and data still available */
+	    EUpdateSuccessful           = 90,
+	    /** Data deleted or removed after a successful update */
+	    EUpdateSuccessfulNoData     = 100,	
+			};
+
+class CNSmlDMFotaView : public CAknView, public MAknBackgroundProcess
+    {
+    friend  class CDLObserver;
+    public:  // Constructors and destructor
+        
+        /**
+        * Symbian 2nd phase constructor.
+        */
+        void ConstructL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CNSmlDMFotaView();
+
+    public: // Functions from base classes
+
+        /**
+        * From CAknView Returns view id.
+        * @since Series 60 3.1
+        * @param None.
+        * @return View identifier.
+        */
+        TUid Id() const;
+		
+		/**
+        * From CAknView Handles user commands.
+        * @since Series 60 3.1
+        * @param aCommand The command identifier.
+        * @return None.
+        */
+        void HandleCommandL( TInt aCommand );
+
+        /**
+        * From MAknBackgroundProcess Is called periodically by the
+        * wait note wrapper.
+        * @since Series 60 3.1
+        * @param None.
+        * @return None.
+        */
+        void StepL();
+		
+        /**
+        * From MAknBackgroundProcess Checks if the process is finished
+        * and the wait note can be dismissed.
+        * @since Series 60 3.1
+        * @param None.
+        * @return Can the wait note be dismissed.
+        */
+		TBool IsProcessDone() const;
+		
+	public: // New functions
+        
+        /**
+        * Refreshes the container contents.
+        * @since Series 60 3.2
+        * @param aPostponeDisplay, on ETrue adds the first list item
+        * @return None.
+        */
+        
+        void RefreshL(TBool aPostponeDisplay);
+        
+        
+        /**
+        * For setting the iExitPress value.        
+        * @since Series 60 3.2
+        * @param None.
+        * @return None.
+        */
+        void UpdateExitL();
+        	
+    private:  // New functions
+        
+        /**
+        * ?member_description.
+        * @since Series 60 3.1
+        * @param None
+        * @return None
+        */
+        void InitiateFotaCheckL();
+
+        /**
+        * Shows a popup list of available device management
+        * profiles. Leaves if the query is cancelled.
+        * @since Series 60 3.1
+        * @param None
+        * @return Identifier of the selected profile.
+        */
+        TInt ShowFotaProfileQueryL();
+        
+        /**
+        * Formats the fota initiation profile query
+        * listbox items.
+        * @since Series 60 3.1
+        * @param aItems Array of items included in the listbox
+        * @param aProfileIdList Is changed to an array of profile identifiers. The order is the same as the listbox itmes.
+        * @return None
+        */
+        void FormatProfileQueryListItemsL( CDesCArray*          aItems,
+                                           CArrayFixFlat<TInt>* aProfileIdList );
+
+        /**
+        * Creates a listbox icon array containing the device
+        * management bearer icons.
+        * @since Series 60 3.1
+        * @param aIconArray Pointer to the icon array to be formatted.
+        * @return None
+        */
+        void CreateIconArrayL( CAknIconArray* aIconArray );
+
+        /**
+        * Initiates a firmware update package installation.
+        * @since Series 60 3.1
+        * @param None.
+        * @return None.
+        */
+        void InitiateFwUpdInstallL();
+		
+		/**
+        * Continues a firmware update package installation which is suspended.
+        * @since Series 60 3.2
+        * @param None.
+        * @return None.
+        */
+        void InitiateFwUpdContinueL();
+
+        /**
+        * Manual check allowed or not.
+        * @since Series 60 3.2
+        * @param None.
+        * @return TBool based on manual; check allowed or not.
+        */
+        TBool ManualCheckAllowedL();
+        
+        /**
+        * Enabling context options msk.
+        * @since Series 60 3.2
+        * @param TBool aEnabled.
+        * @return None.
+        */
+        void EnableMskL ( TBool aEnable );
+                                
+    private:  // Functions from base classes
+        /**
+        * From CAknView Activates view.
+        * @since Series 60 3.1
+        * @param aPrevViewId Id of previous view.
+        * @param aCustomMessageId Custom message id.
+        * @param aCustomMessage Custom message.
+        * @return None.
+        */
+        void DoActivateL( const TVwsViewId& aPrevViewId,
+                                TUid aCustomMessageId,
+                          const TDesC8& aCustomMessage );
+
+        /**
+        * From CAknView Deactivates view.        
+        * @since Series 60 3.1
+        * @param None.
+        * @return None.
+        */
+        void DoDeactivate();
+
+        /**
+        * From CAknView Dynamically initialises options menu.
+        * @since Series 60 3.1
+        * @param aResourceId Id identifying the menu pane to initialise.
+        * @param aMenuPane The in-memory representation of the menu pane.
+        * @return None.
+        */
+        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+    
+    protected:
+        /**
+        * From CAknView to handle foreground events
+        * @since Series 60 3.2
+        * @param aForeground         
+        * @return None.
+        */ 
+    	void HandleForegroundEventL(TBool aForeground);        
+
+    private:    // Data
+        // Container for view contol.
+        CNSmlDMFotaContainer*   iContainer;
+        
+        // Pointer to the fota model instance.
+        CNSmlDMFotaModel*       iFotaModel;
+        
+        // Pointer to the wait note wrapper that is used during
+        // the manual checking of firmware updates.
+        CAknWaitNoteWrapper*    iWaitNoteWrapper;
+        
+        //For storing cenrep value of manual check updates
+        TInt iManCheckAllowed;
+      
+        //T be used in HandleForegroundeventL for Exit and End key press
+        TInt iExitPress;
+
+		// Active object for refreshing main view    
+        CDLObserver* iFotaDLObserver;
+    };
+
+// CLASS DECLARATION
+// Active object for refreshing main view    
+class CDLObserver : public CActive
+	{	
+	friend class CNSmlDMFotaView;	
+	public:
+	
+		/**
+	     * Constructor.
+	     */
+		inline CDLObserver();    	
+		
+		/**
+	     * Starts the active object monitoring on P&S key
+	     * @param aResetKey,whcih sets the P&S key 
+	     * @return None
+	     */
+		void StartL(TBool aResetKey);
+		
+		/**
+	     * Destructor.
+	     */    	
+		~CDLObserver();
+		
+	private:
+	
+		/**
+	     * From CActive. Called when asynchronous request completes.
+	     * @param None
+	     * @return None
+	     */
+		void RunL();
+		
+		/**
+	      * From CActive. Cancels asynchronous request.
+	      * @param None
+	      * @return None
+	      */
+		void DoCancel();
+		
+		/**
+	     * Symbian 2nd phase constructor.
+	     */
+		void ConstructL(CNSmlDMFotaView *iFotaView);
+		
+		/**
+	     * From CActive. Called when RunL Leaves.
+	     * @param None
+	     * @return error
+	     */
+	    TInt RunError( TInt aError );    	    	
+	    
+	private:	      	
+		CNSmlDMFotaView* iView;
+		RProperty iProperty;    
+	}; 
+
+#endif      // CNSMLDMFOTAVIEW_H   
+            
+// End of File