syncmlfw/syncmlnotifier/inc/SyncMLFwUpdNotifier.h
changeset 0 b497e44ab2fc
child 9 57a65a3a658c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/syncmlnotifier/inc/SyncMLFwUpdNotifier.h	Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,235 @@
+/*
+* Copyright (c) 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:  Synchronisation server alert and application launcher notifier.
+*
+*/
+
+
+
+#ifndef CSYNCMLFWUPDNOTIFIER_H
+#define CSYNCMLFWUPDNOTIFIER_H
+
+//  INCLUDES
+#include <SyncMLNotifierParams.h>
+#include "SyncMLNotifierBase.h"    // Base class
+#include "SyncMLMessageQueryDialog.h"
+#include <SyncService.h>
+
+// CONSTANTS
+// Taken from S60\OmaDSAppUi\inc\NSmlDMSyncPrivateCRKeys.h
+const TUid KCRUidNSmlDMSyncApp = {0x101f6de5};
+const TUint32 KNSmlDMFotaConfigurationKey = 0x00000001;
+const TUint KNSmlDMFotaEnableFotaViewFlag = 0x0004;
+
+//Constants required to indicate key presses in dialogs
+enum 
+	{
+    ESyncMLDlgRespKeyNone = -3,
+    ESyncMLDlgRespKeyOk = -2,
+    ESyncMLDlgRespKeyOthers = -1,
+    ESyncMLDlgRespKeyCancel = 0
+    };
+
+
+//Constants used when update happen NSC/DM 
+enum {
+		EFotaUpdateNSC=1,
+		EFotaUpdateNSCBg,
+		EFotaUpdateDM
+};
+
+// CLASS DECLARATION
+/**
+*  Notifier for showing the rsult of the firmware
+*  update to the user.
+*
+*  @lib SyncMLNotifier
+*  @since Series 60 3.1
+*/
+NONSHARABLE_CLASS( CSyncMLFwUpdNotifier ) : public CSyncMLNotifierBase
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * Two-phased constructor.
+        */
+        static CSyncMLFwUpdNotifier* NewL();
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CSyncMLFwUpdNotifier();
+
+    private: // New functions
+
+        /**
+        * Shows a note describing the error situation that has been encountered
+        * when checking the prerequisites for firmware update.
+        * @param None
+        * @return Result to the query
+        */
+        TInt ShowUpdateErrorNoteL();
+
+        /**
+        * Shows a note describing the result of firmware update.
+        * @param None
+        * @return Result to the query
+        */
+        TInt ShowUpdateResultNoteL();
+
+        /**
+        * Informs the user about the firmware update and its consequences.
+        * Queries if the user wants to continue with the update.
+        * @param None
+        * @return Result to the query
+        */
+        TInt ShowUpdateStartQueryL();
+		
+        /**
+        * Informs the user about the firmware update while encrypted phone memory.
+        * Queries if the user wants to continue with the update.
+        * @param None
+        * @return Result to the query
+        */
+        TInt ShowUpdateStartQueryEncryptionL();
+        
+        /**
+        * Shows a note describing the result of firmware update. Also queries
+        * user to encrypt memory 
+        * @param None
+        * @return Result to the query
+        */
+        TInt ShowUpdateResultWithEncryptionNoteL();
+
+        /**
+        * Retrieves the profile name using the profile identifier stored
+        * in iNoteInfo.
+        * @param aServerName Returns the clear-text name of the corresponding server.
+        * @return None
+        */
+        void RetrieveProfileNameL( TDes& aServerName );
+        /*Information note shown  to the user after selecting No reminder case in
+	    * the reminder dialog. This note informs the user that downloaded package 
+ 	    * can be installed manually. 
+ 	    */
+
+        TInt ShowNoReminderQueryL();
+        
+        /*Message query note shown  to the user when ever there is no enough memory
+        * space to download the update package
+ 	    */
+        TInt ShowNotEnoughMemoryL( TInt &aMemoryNeeded ,TBool aOmaDL );
+
+				/*Message query note shown to the user when ever the user cancels the download
+				 * and whether the user wants to resume the download at a later point of time. 
+				 * @param None
+         * @return Result to the query
+ 	       */
+				TInt ShowDownloadUserCancelL();
+		
+				/*Message note shown to the user when ever 
+				 * the user postponds the download 
+		     * @param None
+         * @return Result to the query
+ 	       */
+				TInt ShowDownloadPostponedL();
+		
+				/*Message note shown to the user when ever 
+				 * the user cancels the download 
+		     * @param None
+         * @return Result to the query
+ 	       */
+				TInt ShowDownloadCancelledL();
+		
+				/*Message note shown to the user when ever 
+				 * the user wants to resume the download.
+		     * @param None
+         * @return Result to the query
+ 	       */
+				TInt ShowDownloadResumeL();
+    private: // Functions from base classes
+
+        /**
+        * From CSyncMLNotifierBase Called when a notifier is first loaded.        
+        * @param None.
+        * @return A structure containing priority and channel info.
+        */
+        TNotifierInfo RegisterL();
+
+        /**
+        * From CSyncMLNotifierBase The notifier has been deactivated 
+        * so resources can be freed and outstanding messages completed.
+        * @param None.
+        * @return None.
+        */
+        void Cancel();
+
+        /**
+        * From CSyncMLNotifierBase Gets called when a request completes.
+        * @param None.
+        * @return None.
+        */
+        void RunL();
+
+        /**
+        * From CSyncMLNotifierBase Used in asynchronous notifier launch to 
+        * store received parameters into members variables and 
+        * make needed initializations.
+        * @param aBuffer A buffer containing received parameters
+        * @param aReturnVal The return value to be passed back.
+        * @param aMessage Should be completed when the notifier is deactivated.
+        * @return None.
+        */
+        void GetParamsL( const TDesC8&       aBuffer,
+                               TInt          aReplySlot,
+                         const RMessagePtr2& aMessage );
+        /**
+        * IsLanguageSupported
+        * @param ret
+        * @return True if the language is supported.
+        */                 
+				TBool IsLanguageSupportedL();
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CSyncMLFwUpdNotifier();
+
+    private: // Data
+        // Type of note to be shown
+        TSyncMLFwUpdNoteTypes   iNoteType;
+        
+        // Possible additional information required by the note
+        TInt                    iNoteInfo;
+        
+        //Memory needed for the for the fota update package to be downloaded
+//        #ifdef RD_FOTA_FLEXIBLE_MEMORY_USAGE
+        TInt        iFotaMemoryNeeded;
+//        #endif
+        //Checks whether dialog from RUNL popped and waiting for user input
+        TBool iRunLhang;
+        
+        //Reference to the Dialog launched from RunL
+        CSyncMLMessageQueryDialog* iDlg;
+        
+		//To decide on encryption note or default note.
+        TBool iFotaEncryptReq;
+
+    };
+
+
+#endif      // CSYNCMLFWUPDNOTIFIER_H   
+            
+// End of File