diff -r 39bb7c3571e9 -r 052078dda061 networkcontrol/ipupsplugins/dialogcreator/inc/ipupsdialog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/networkcontrol/ipupsplugins/dialogcreator/inc/ipupsdialog.h Tue Jun 29 19:20:22 2010 +0530 @@ -0,0 +1,98 @@ +// Copyright (c) 2008-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: +// Class declaration for Reference dialog creator plug-in for IP. +// +// + +/** + @file + @internalTechnology + @prototype +*/ + +#ifndef IPUPSDIALOG_H +#define IPUPSDIALOG_H + +#include +#include +#include +#include +#include + +using namespace UserPromptService; + +/** + Reference implementation of a User Prompt Service dialog creator ECOM plug-in for IP. + */ +NONSHARABLE_CLASS(CIpUpsDialog) : public CDialogCreator + { + public: + typedef enum + { + EIdle, + EPrepareDialog, + EDisplayDialog, + EProcessResult + } TState; + static CIpUpsDialog* CreateDialogCreatorL(); + ~CIpUpsDialog(); + +protected: + // From CActive + void DoCancel(); + void RunL(); + TInt RunError(TInt aError); + + // From CDialogCreator + void PrepareDialog( + const CPromptRequest& aRequest, const CPolicy& aPolicy, + const RPointerArray& aFingerprints, const CClientEntity* aClientEntity, + const TAny* aDialogCreatorParams, TRequestStatus& aStatus); + void DisplayDialog(CPolicy::TOptions& aOptionSelcted, const CFingerprint*& aFingerprint, + TUint& aEvaluatorInfo, TRequestStatus& aStatus); + +private: + CIpUpsDialog(); + void ConstructL(); + void ResolveClientNameL(const TSecureId& aSid); + TBool ResolveClientNameFromAppArcL(const TSecureId& aSid); + TBool ResolveClientNameFromSisRegistryL(const TSecureId& aSid); + void ResolveVendorNameL(const TVendorId& aVid); + void DoPrepareDialogL(); + void DoDisplayDialogL(); + void DoProcessResultL(); + + // Const data from UPS & policy evaluator + const CPromptRequest* iRequest; //< Request data from system server + const CPolicy* iPolicy; //< The policy that matches iRequest + const RPointerArray* iFingerprints; //< Fingerprints generated by policy evaluator from iRequest + const TAny* iEvalPrivateData; //< Extra data generated by policy evaluator + + TRequestStatus* iClientStatus; //< UPS's request object + + // Return data for DisplayDialog + CPolicy::TOptions* iOptionSelected; //< The option selected by the user + const CFingerprint** iFingerprint; //< The fingerprint for the new decision if Always or Never selected + TUint* iEvaluatorInfo; //< Plug-in specific field in decision record + + CPromptData* iPromptData; //< Data used by notifier to render dialog + RBuf8 iPromptDataDes; //< Externalized prompt data + TPromptResult iPromptResult; //< Response buffer for notifier + TPckg iPromptResultPckg; //< Packages iPromptResult + RNotifier iNotifier; //< Connection to notifier framework + TState iState; //< Current state + TUint iNotifierId; //< User prompting user Id + }; +#endif // SMSUPSDIALOG_H +