diff -r b183ec05bd8c -r 19bba8228ff0 devicemgmtnotifications/dmdevdialogserver/inc/dmdevicedialogserver.h --- a/devicemgmtnotifications/dmdevdialogserver/inc/dmdevicedialogserver.h Tue Aug 31 16:04:06 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,345 +0,0 @@ -/* - * Copyright (c) 2009 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: Implementation of DM Device Dialogs - */ - -#ifndef __DMDEVDIALOGSERVER_H__ -#define __DMDEVDIALOGSERVER_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include "dmdevdialogclientserver.h" -#include "dmdevicedialogdebug.h" - -class CDmDeviceDialogSession; -class CDmDeviceDialogServer; -class CHbIndicatorSymbian; - - -_LIT(KDeviceDialogType,"com.nokia.hb.devicemanagementdialog/1.0"); -_LIT(KNotifierType, "syncmlfw"); -_LIT(KProfileId, "profileid"); -_LIT(KUImode, "uimode"); -_LIT(KServerdisplayname, "serverdisplayname"); -_LIT(KDMJobId, "jobid"); -_LIT(KServerpushalertInfo, "serverpushinformative"); -_LIT(KServerpushalertConfirm, "serverpushconfirmative"); -_LIT(KDMProgressIndicatorType, "com.nokia.devicemanagement.progressindicatorplugin/1.0"); -_LIT(KFotaDefaultProfile, "fotadefaultprofile"); -_LIT(KPkgZeroTimeout, "pkgzerotimeout"); - - -const TInt KRequestTriggerWaitTime(1000000); - -const TInt KDefaultNotifierId = 1000000; -const TInt KConnectNotifierId = 1000001; -// Device manager key UID -const TUid KCRUidNSmlDMSyncApp = {0x101f6de5}; -// CenRep keys for default dm profile used in the -// firmware update over the air. -const TUint32 KNSmlDMDefaultFotaProfileKey = 0x00000002; - -#define KSosServerUid 0x101f99fb -#define KFotaServerUid 0x102072C4 -#define KScomoServerUid 0x200267FB - - - -class CDmDeviceDialogServer : public CServer2, - public MHbDeviceDialogObserver, - public MSyncMLEventObserver, - public MHbIndicatorSymbianObserver - { - friend class CDmDeviceDialogSession; - -public: - enum TNoteType - { - EPkgZeroNote, - EConnectNote, - EInformativeAlertNote, - EConfirmationAlertNote - }; - - enum TSyncMLSANSupport - { - ESANNotSpecified, - ESANSilent, - ESANUserInformative, - ESANUserInteractive - }; - /** - * Destructor - */ - virtual ~CDmDeviceDialogServer(); - - /** - * Static method which creates the server instance - * @param None - * @return CServer2* - */ - static CServer2* NewLC(); - - /** - * Stops the session and closes the server - * @param None - * @return None - */ - void CloseServer(); - - /** - * For asynchronous network request to be - * logged on active object, using CPeriodic - * @param None - * @return None - */ - void PeriodicServerCloseL(); - - /** - * Launches package zero device dialog - * @param aProfileId, ProfileId of the DM server - * @param ajobId, Id of the DM job created due to package zero - * @param aUimode, Server alert ui mode type - * @param aReplySlot, Response to Sos server - * @param aMessage, reference to RMessage2 of current session. - * @return None. - */ - void LaunchPkgZeroNoteL(TInt &aProfileId, TInt &aJobId, - const TInt &aReplySlot, TInt &aUimode, - const RMessage2& aMessage); - - /** - * Launches display alert specific device dialog - * @param aAlertText, Text to be dsiplayed on display alert - * @param aMessage, reference to RMessage2 of current session. - * @return None. - */ - void ShowDisplayalertL(const TDesC &aAlertText, - const RMessage2& aMessage); - - /** - * Launches Confirmation(1101) alert dialog - * @param aTimeout, Timeout of the dialog. - * @param aNoteDisplayText, Text to be displayed on the note - * @param aNoteHeader, Text to be displayed as dialog header - * @param aMessage, reference to RMessage2 of current session. - * @return None. - */ - void ShowConfirmationalertL(const TInt& aTimeOut, const TDesC& aHeader, - const TDesC& aText, const RMessage2& aMessage); - - /** - * Keeps track of number of asynchronous requests - * @param None. - * @return None. - */ - void NewAsyncRequest(); - - /** - * Tells any request pending or not - * @param None. - * @return None. - */ - TBool RequestPending(); - - /** - * Cancels the earlier requested server shutdown - * annd serves for the incoming request. - * @param None. - * @return None. - */ - void CancelServerCloseRequest(); - - /** - * Callback method from Device dialog plugin for user action. - * @param aData, User response to the device dialog note - * @return None. - */ - virtual void DataReceived(CHbSymbianVariantMap& aData); - - /** - * Callback method from Device dialog plugin when dialog gets closed. - * @param aCompletionCode, Error code. - * @return None. - */ - virtual void DeviceDialogClosed(TInt aCompletionCode); - - /** - * From MSyncMLEventObserver - * Called when SyncML session events oocur. - * @param aEvent Sync event - * @param aIdentifier Identifier for the sync event - * @param aError Synce event error - * @param aAdditionalData. - * @return None. - */ - virtual void OnSyncMLSessionEvent(TEvent aEvent, TInt aIdentifier, - TInt aError, TInt aAdditionalData); - - /** - * Tells whether package zero query is currently shown or not. - * @param None. - * @return TBool, status of package zero note display. - */ - TBool IsPkgZeroNoteDisplaying(); - - /** - * Cancels outstanding package zero request. - * @param None. - * @return None. - */ - void CancelPendingServerAlert(); - - /** - * Callback method from Device dialog Indicator when user taps on Indicator. - * @param aType - Type of the indicator that user interacted with. - * @param aData - Data sent by the indicator. - * @return None. - */ - virtual void IndicatorUserActivated (const TDesC &aType, - CHbSymbianVariantMap &aData); - -private: - - /** - * second phase constructor - * @param None - */ - void ConstructL(); - - /** - * Default constructor - * @param None - */ - CDmDeviceDialogServer(); - - /** - * Called to close the server. - * @param None. - * @return None. - */ - void StopServer(); - - /** - * Dsimisses the Connect device dialog - * @param None. - * @return None. - */ - void DismissDialog(); - - /** - * Starts DM Job after user accepted the package zero message. - * @param None. - * @return None. - */ - void GetDMJobStatusL(); - - /** - * Tells whether connect dialog is currently shown or not. - * @param None. - * @return boolean, status of the connect dialog. - */ - TBool IsConenctDialogDisplaying(); - - /** - * Display connect dialog, if dismissed earlier. - * @param None. - * @return None. - */ - void ShowConnectDialogAgainL(); - - /** - * Called to process the response of user action on specified Device dialog - * @param aData, User response to the device dialog note - * @return None. - */ - void DevDialogResponseL(CHbSymbianVariantMap& aData); - -protected: - - /** - * Calls when a New session is getting created - * @param aVersion - * @param aMessage - * @return CSession2* - */ - CSession2* NewSessionL(const TVersion& aVersion, - const RMessage2& aMessage) const; - -private: - //Periodic timer used while shutting down the server - CPeriodic* iServerCloseRequest; - - //DM Server Profile Id - TInt iProfileId; - - //Current Dm Session Job Id - TInt iJobId; - - //Server alert type of package zero message - TUint iUimode; - - //Pointer to Device dialog server - CHbDeviceDialogSymbian* iDevDialog; - - //Reference to Indicator framework - CHbIndicatorSymbian* iDmIndicator; - - //Status variable to identify the status of Connecting note - TBool iPkgZeroConnectionNoteShown; - - //User response of device dialog note - TInt iResponse; - - //RMessage reference used to notify the caller - RMessage2 iMessage; - - //Status variable to know whether server can be stopped or not - TBool iStopServer; - - // SyncML Session - RSyncMLSession iSyncMLSession; - - // Job id after starting DM Job - TInt iSyncJobId; - - // DM job - RSyncMLDevManJob iSyncJob; - - //Status variable to know whether a DM Job is ongoing or not - TBool iJobongoing; - - //Status variable to know currently any device dialog is displayed or not - TBool iAnyDialogDisplaying; - - //Status variable to know whether an Indicator is launched or not - TBool iIndicatorLaunched; - - //Identifies the number of requests pending - TInt iSessionCount; - - //Identifies whether package zero note is displaying or not - TBool iPkgZeroQueryNoteDisplaying; - - //Response slot to write the result - TInt iReplySlot; - }; - -#endif