diff -r 6757f1e2efd2 -r 5b858729772b omadm/omadmappui/inc/NSmlDMFotaView.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadm/omadmappui/inc/NSmlDMFotaView.h Wed Sep 01 12:31:32 2010 +0100 @@ -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 +#include +#include +#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* 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