omadm/omadmappui/inc/NSmlDMSyncDocument.h
changeset 0 3ce708148e4d
--- /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 <aknapp.h>
+#include <AknDoc.h>
+
+#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<KNSmlMaxProfileNameLength> 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<TNSmlDMProfileItem>*  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