diff -r 6757f1e2efd2 -r 5b858729772b omadm/omadmappui/inc/NSmlDMSyncAppUi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadm/omadmappui/inc/NSmlDMSyncAppUi.h Wed Sep 01 12:31:32 2010 +0100 @@ -0,0 +1,346 @@ +/* +* Copyright (c) 2005-2010 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: Header file for Application UI Class CNSmlDMSyncAppUi +* +*/ + + + +#ifndef __NSMLDMSYNCAPPUI_H +#define __NSMLDMSYNCAPPUI_H + +// INCLUDES +#include + +#include +#include + +#include "NSmlDMdef.h" +#include "NSmlDMSyncAppEngine.h" + +// FORWARD DECLARATIONS +class CAknNavigationControlContainer; +class CAknNavigationDecorator; + +class CNSmlDMProfilesView; +class CNSmlDMDlgProfileView; +class CNSmlDMSyncDocument; +class CNSmlDMSyncAppEngine; +class CNSmlDMFotaModel; +class CNSmlDMDbNotifier; +class CNSmlDMFotaView; + +/** +* Application UI class. +* Provides support for the following features: +* - dialog architecture +* +*/ +NONSHARABLE_CLASS (CNSmlDMSyncAppUi) : public CAknViewAppUi, + public MNSmlDMSyncObserver + + { + enum TViews + { + MainView, + LogView, + SettingsView, + ProgressView + }; + + public: // Constructors and destructor + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Destructor. + */ + virtual ~CNSmlDMSyncAppUi(); + + public: // New functions + + /** + * Used to close the settings view gracefully + * @param aRefresh + * @return - + */ + void ChangeViewL( TBool aRefresh = EFalse ); + + /** + * Help context + * @param None. + * @return pointer to CArrayFix + */ + CArrayFix* HelpContextL() const; + /** + * Shows profile editing dialog + * @param aMode (EEditProfile to edit or ENewProfile to create a profile + * @return - + */ + void ShowEditProfileDialogL( TNSmlEditMode aMode, TInt aStartUp = 0 ); + + /** + * Public method to access HandleCommandL outside the class + * @param aCommand -forwards command from listquery + * @return - + */ + void HandleContextMenu( TInt aCommand ) { HandleCommandL( aCommand ); } + + /** + * Called before the application is started + * @param aCommand - StartUp command + * @param aDocumentName - Document name + * @param aTail - Additional information (profileID) + * @return - + */ + TBool ProcessCommandParametersL( TApaCommand aCommand, + TFileName& aDocumentName, + const TDesC8& aTail ); + + /** + * Called by settingsdialog to set if the settingdialog is properly closed + * @param - + * @return - + */ + void DoExit() { iDestroyed = 0; + CloseGs(); + + } + + /** + * Called to exit Dm application and control panel + * @param - + * @return - + */ + void CloseGs(); + + + /** + * Shows error note + * @param TInt aResource resource id + * @return - + */ + void ShowResourceErrorNoteL( TInt aResource ) const; + + /** + * Returns the iFotaModel pointer. + * @param None. + * @return Pointer to the CNSmlDMFotaModel instance or NULL if it does not exist. + */ + CNSmlDMFotaModel* FotaModel() const; + + /** + * Saves the current state of update packages. + * @param None. + * @return None. + */ + void MarkFwUpdChangesStartL(); + + /** + * Checks if the state of update packages has changed since the saved + * situation. + * @param None. + * @return True if there are differences in pcakage identifiers or states. + */ + TBool FwUpdStatesChangedL(); + + + void SetTitleCall(TInt aView) + { + iViewTitle = aView; + } + + + public: // Functions from base classes + + /** + * Initiates a device management session with a server. + * @param aProfileId Profile identifier, with which the session is be + * started. If left empty, defaults to Currently + * selected profile in the list. + * @param aUseFotaProgressNote If true, the progress notes are replaced + * with a simpler FOTA specific note and + * changes in firmware update packages are + * checked after the session. + * @return None + */ + void StartSyncL( const TInt aProfileId = KErrNotFound, + const TBool aUseFotaProgressNote = EFalse ); + + /** + * Confirms if the synchronisation on and the progress dialog is up + * @param None + * @return ETrue if sync running + */ + TBool Synchronise(); + + /** + * Handles error notes + * @param aError error number + * @return - + */ + void ShowErrorNoteL( TInt aError ) const; + + void SyncComplete( TNSmlStatus aStatus ); + + /** + * Sets the iExitPress value of fota view + * @param None + * @return - + */ + void ExitCallL(); + + /** + * Refrsehes Main view + * @param None + * @return - + */ + void RefreshMainViewL(); + + /** + * Used to check the fota download going + * @param aNone + * @return aNone + */ + void CheckFotaDlL(); + + void CheckAMDlL(); + private: + + + /** + * From MEikMenuObserver, called by the framework before + * the options menu is shown + * @param aResourceId - resourceid of the menu + * @param aMenuPane - pointer to that menu + * @return - + */ + void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + private: + + /** + * From CEikAppUi, takes care of command handling. + * @param aCommand - id of the command to be handled + * @return - + */ + void HandleCommandL( TInt aCommand ); + + /** + * From CEikAppUi, handles key events. + * @param aKeyEvent - Event to handled. + * @param aType - Type of the key event. + * @return Reponse code (EKeyWasConsumed, EKeyWasNotConsumed). + */ + virtual TKeyResponse HandleKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + private: + + /** + * Handles up scroll and forwards the action to right view + * @param - + * @return - + */ + void HandleUpScrollL(); + + /** + * Handles down scroll and forwards the action to right view + * @param - + * @return - + */ + void HandleDownScrollL(); + + /** + * Handles the error in synchronisation + * @param aProfileId the id of the + * @return 0 if no error or user cancellation + */ + TInt HandleSyncErrorL( TInt aProfileId ); + + /** + * Handles the error message text in synchronisation + * @param aError Error value + * @param aMsg the error message + * @return - + */ + void SetErrorMessageL( TInt aError, TDes& aMsg ) const; + + /** + * Shows confirmation dialog + * @param aResource prompt resource id + * @return ETrue in case note is accepted or EFalse if rejected + */ + TBool ShowConfirmationNoteL( TInt aResource ) const; + + /** + * Utility function for handling New profile command + * @param None + * @return None + */ + void HandleCommandNewProfileL(); + + /** + * Utility function for handling erase profile command + * @param None + * @return None + */ + void HandleCommandEraseProfileL(); + + /** + * Determines whether Fota update is allowed. + * @param Server profile to check + * @return ETrue if allowed + * EFalse if not not allowed + */ + TBool IsUpdateAllowedL( CNSmlDMSyncProfile& aProfile ); + + + private: //Data + CNSmlDMProfilesView* iProfilesView; + + CNSmlDMDlgProfileView* iAppView; + CNSmlDMDbNotifier* iSmlDbNotifier; + CEikStatusPane* iStatusPane; + CAknNavigationControlContainer* iNaviPane; // NaviPane + CAknNavigationDecorator* iNaviDecorator; + + TInt iViewTitle;// 1 for DM main view, 0-for servers view + + CNSmlDMFotaView* iMainView; + // Left/RightSoftkeys and scrolling + CEikButtonGroupContainer* iControlPane; + TInt iActiveView; + CAknTitlePane* iTitlePane; + + TInt iDialogUp; + TInt iDestroyed; + TInt iConfedProfileId; + TBool iDbChanged; + TBool iBusy; + + CNSmlDMSyncDocument* iSyncDocument; + CNSmlDMSyncAppEngine* iSyncAppEngine; + + // Pointer to the fota model. + CNSmlDMFotaModel* iFotaModel; + + }; + +#endif + +// End of File