diff -r 000000000000 -r 3ce708148e4d omadm/omadmappui/inc/NSmlDMSyncDocument.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/omadm/omadmappui/inc/NSmlDMSyncDocument.h Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,338 @@ +/* +* Copyright (c) 2002-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: Header file for CNSmlDMSyncDocument +* +*/ + + + +#ifndef NSMLDMSYNCDOCUMENT_H +#define NSMLDMSYNCDOCUMENT_H + +// INCLUDES +#include +#include + +#include "NSmlDMSyncUi.hrh" +#include "NSmlDMDlgProfileView.h" +#include "NSmlDMUIDefines.h" +#include "NSmlDMDbNotifier.h" + +// FORWARD DECLARATIONS +class CEikAppUi; +class CEikonEnv; +class CNSmlDMSyncAppEngine; +class CNSmlDMSyncProfileList; +class CNSmlDMFotaModel; + +// CLASS DECLARATION + + +/** +* TNSmlDMProfileItem helper class +*/ +NONSHARABLE_CLASS (TNSmlDMProfileItem) + { + public: + TBuf iProfileName; + TInt iProfileId; + TBool iSynced; + TTime iLastSync; + TInt iBearer; + TInt iActive; + TTime iLastSuccessSync; + TBool iDeleteAllowed; + TBool iProfileLocked; + }; + +/** +* CNSmlDMSyncDocument application class. +*/ +NONSHARABLE_CLASS (CNSmlDMSyncDocument) : public CAknDocument, + public MNSmlDMDbEventHandler + { + enum TSanSupport + { + EOff, + EOn + }; + public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CNSmlDMSyncDocument* NewL( CAknApplication& aApp ); + + /** + * Destructor. + */ + virtual ~CNSmlDMSyncDocument(); + + public: // New functions + + /** + * Returns the pointer to the appengine + * @param - + * @return Pointer to appEngine + */ + inline CNSmlDMSyncAppEngine* AppEngine() const { return iAppEngine; } + + /** + * Returns the id of the recently accessed profile + * @param - + * @return - old profile id + */ + inline TInt OldProfileID() const { return iOldProfileId; } + + /** + * Return the number of items + * @param - + * @return Profile item count + */ + inline TInt ProfileCount() const { return iProfileList->Count(); } + + /** + * Returns the pointer to the fota model. + * @since Series 60 3.1 + * @param None. + * @return Pointer to the fota model instance. + */ + 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(); + + /** + * Return the pointer to the profileitem list + * @param aIndex Sets current index on the caller + * @return Pointer to the profileitem list + */ + CArrayFixFlat< TNSmlDMProfileItem >* ProfileList( TInt& aIndex ); + + /** + * Set current index + * @param aIndex - new index value + * @return - + */ + void SetCurrentIndex(TInt aIndex); + + /** + * Reads profiles again from the database and fills the profilelist + * @param - + * @return - + */ + inline void RefreshProfileListL() { ReadProfileListL(); } + + /** + * Reads profiles again from the database and fills the profilelist + * @param aIncludeHidden Should hidden profile be included + * @return - + */ + inline void RefreshProfileListL( TBool aIncludeHidden ) { ReadProfileListL( aIncludeHidden ); } + + /** + * Deletes selected profile and updates new index + * @param aIndex Set new index + * @return (1 the deleted profile was default one / + * 0 deleted was other than default or there was only one left) + */ + TInt DeleteProfile( TInt& aIndex ); + + /** + * Return the current profile item + * @param - + * @return Pointer to the current TProfileItem profile item + */ + TNSmlDMProfileItem* ProfileItem() const; + + /** + * Return the current profile item + * @param - + * @return Pointer to the indexed TProfileItem profile item + */ + TNSmlDMProfileItem* ProfileItemAt( TInt aIndex ) const; + + /** + * Return the pointer to the CEikAppUi class + * @param - + * @return Pointer to the CEikAppUi + */ + CEikAppUi* AppUi() const { return iAppUi; } + + /** + * Moves the index on the main view to the profile + * with specified profile Id + * @param aProfileId profile id + * @return - + */ + void MoveIndexToProfile( TInt aProfileId ); + + /** + * Copies an existing profile settings to a new id + * @param aProfileId profile id + * @return - + */ + void GetCopyProfileL( TInt& aProfileId ); + + /** + * Return next available default profile name + * @param - + * @return - new default profile name + */ + HBufC* GetNextProfileNameLC(); + + /** + * Disables DB events + * @param aEvent + * @return None + */ + void DisableDbNotifications( TBool aEvent ); + + /** + * Handles DB events + * @param aEvent DB event + * @return None + */ + void HandleDbEventL( TNSmlDMDbEvent aEvent ); + + /** + * Utility function. + * @param - + * @return None. + */ + TBool IsServerAlertSync(); + + /** + * Utility function. + * @param - + * @return None. + */ + void StartServerL(); + + /** + * ServerAlert Support function + * @param - + * @return TBool. + */ + TBool SANSupport(); + + /** + * ServerAlert type return function + * @param - + * @return TBool. + */ + TBool SilentSession(); + + /** + * ServerAlert type variable reset function + * @param - + * @return None. + */ + void ResetSession(); + + /** + * Server profiles view current index + * @param - + * @return index of the current focussed profile. + */ + TInt CurrentIndex(); + + /** + * FOTA set DL active P&S key defined by DM or not + * @param None + * @return ETrue or EFalse. + */ + TBool DMDefinesFotaDLKey(); + + private: + /** + * C++ default constructor. + */ + CNSmlDMSyncDocument(CEikApplication& aApp): CAknDocument(aApp) { } + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + /** + * Read settings from the database + * @param - + * @return - + */ + void ReadProfileListL(); + + /** + * Read settings from the database + * @param aIncludeHidden Should hidden profile be included + * @return - + */ + void ReadProfileListL( TBool aIncludeHidden ); + + /** + * From CEikDocument, create CNSmlDMSyncAppUi "App UI" object. + */ + CEikAppUi* CreateAppUiL(); + + /** + * Restore + * @param aStore Stream store + * @param aStreamDic Dictionary + * @return None + */ + void RestoreL( const CStreamStore& aStore, + const CStreamDictionary& aStreamDic ); + + private: + //Application engine + CNSmlDMSyncAppEngine* iAppEngine; + // Profile list + CNSmlDMSyncProfileList* iSyncProfileList; + // DB notifier + CNSmlDMDbNotifier* iDbNotifier; + //Profile list array + CArrayFixFlat* iProfileList; + // Current index + TInt iCurrentIndex; + // Eikon environment + CEikonEnv* iEikEnv; + // Old profile id + TInt iOldProfileId; + // Blocks db events + TBool iDbEventsBlocked; + + CApaAppServer* iServer; + //Server alert support + TInt iSanSupport; + //Silent session or not + TBool iSilent; + //FOTA DL Active P&S key defined by DM or not + TBool iDMDefinesFotaDLKey; + }; + +#endif // NSMLDMSYNCDOCUMENT_H + +// End of File