diff -r 98b66e4fb0be -r 26b6f0522fd8 iaupdate/IAD/ui/inc/iaupdateengine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iaupdate/IAD/ui/inc/iaupdateengine.h Mon May 03 12:38:03 2010 +0300 @@ -0,0 +1,244 @@ +/* +* 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: This file contains the header file of the IAUpdateEngine +* class +* +*/ + +#ifndef IAUPDATEENGINE_H_ +#define IAUPDATEENGINE_H_ + +#include + +#include "iaupdateuidefines.h" +#include "iaupdateuicontrollerobserver.h" +#include "iaupdatenode.h" + +class IAUpdateServiceProvider; +class CIAUpdateUiController; +class CIAUpdateParameters; +class CIAUpdateGlobalLockHandler; +class MIAUpdateNode; +class MIAUpdateFwNode; +class CEikonEnv; +class RCmManagerExt; +class CIdle; + +class IAUpdateEngine : public QObject, + public MIAUpdateUiControllerObserver + { + Q_OBJECT + +public: + IAUpdateEngine(QObject *parent = 0); + virtual ~IAUpdateEngine(); + + void StartedByLauncherL( TBool aRefreshFromNetworkDenied ); + + /** + * When the update check operation is started through + * the API, the session directs the requests for the UI. UI will + * handle the operation and inform the observer when the operation is + * completed. + * @param aFilterParams These parameters are used when update items + * are filtered for the UI list. + */ + void CheckUpdatesRequestL( int wgid, CIAUpdateParameters* aFilterParams ); + + /** + * When the show update operation is started through + * the API, the session directs the requests for the UI. UI will + * hanle the operation and inform the observer when the operation is + * completed. + * @param aFilterParams These parameters are used when update items + * are filtered for the UI list. + */ + void ShowUpdatesRequestL( int wgid, CIAUpdateParameters* aFilterParams ); + + + + /** + * When the update operation is started through + * the API, the session directs the requests for the UI. UI will + * hanle the operation and inform the observer when the operation is + * completed. + * @param aUid Uid of the caller of the request + */ + void ShowUpdateQueryRequestL( int wgid, TUint aUid ); + + /** + * Set this application visible/unvisible + * @param aVisible If EFalse application is put background and is hidden in FSW + */ + void SetVisibleL( TBool aVisible ); + + /** + * Set window group id of client application + * + * @param aWgId Window group id + */ + void SetClientWgId( TInt aWgId ); + + /** + * Is client application in backround + * + * @param True value if client application is in background + */ + TInt ClientInBackgroundL() const; + + //void refresh(int error); +signals: + void toMainView(); + + /** + * Refreshes main view + * @param aError Error code + */ + void refresh(const RPointerArray& nodes, + const RPointerArray& fwNodes, + int error); + + void toHistoryView(); + +public slots: + void handleAllClientsClosed(); + + +private: // From MIAUpdateUiControllerObserver + /** + * Called when async engine start-up is completed + * + * @param aError Error code + */ + void StartupComplete( TInt aError ); + + /** + * Leaving method, called as trapped in StartupComplete + */ + void StartupCompleteL(); + + + /** + * Handles leave error. + * + * @param aError Error code + */ + void HandleLeaveErrorL( TInt aError ); + + /** + * Handles leave error withot leaving + * + * @param aError Error code + */ + void HandleLeaveErrorWithoutLeave( TInt aError ); + + /** + * Called when async update list refresh is completed + * + * @param aError Error code + */ + void RefreshCompleteL( TBool aWithViewActivation, TInt aError ); + + /** + * Called when async updating is completed + * + * @param aError Error code + */ + void UpdateCompleteL( TInt aError ); + +private: //new methods + + /** + * Informs an observer that its async request is completed + * + * @param aError Error code + */ + void InformRequestObserver( TInt aError ); + + /** + * Sets the default connection method used for network access. + * Connection can be set as an accesspoint or as a snap for example. + * + * @param aTotalSilent Set to ETrue if want silent connection + * + * @note Not stored persistently. A client needs to set this + * again every time it creates the controller. + * + * @note Leaves with KErrNotFound if connection method was not + * set in the repocitory. + */ + void SetDefaultConnectionMethodL( TBool aTotalSilent ); + + /** + * Choose a usable IAP from all SNAPs + * + * @param aCmManagerExt handle of connection manager + */ + TUint32 GetBestIAPInAllSNAPsL( RCmManagerExt& aCmManagerExt ); + + /** + * Choose a usable IAP from Internet SNAP + * + * @param aCmManagerExt handle of connection manager + */ + TUint32 GetBestIAPInInternetSNAPL( RCmManagerExt& aCmManagerExt ); + + /** + * Choose the best IAP under the given SNAP + * + * @param aCmManagerExt handle of connection manager + * @param aSNAP SNAP ID + */ + TUint32 GetBestIAPInThisSNAPL( RCmManagerExt& aCmManagerExt, TUint32 aSNAP = 0); + + /** + * Shows update query dialog (now/later) + */ + void ShowUpdateQueryL(); + + void HideApplicationInFSWL( TBool aHide ) const; + + /** + * CIdle callback function, that shows update query dialog + * To be used because a client to be informed immediately that its + * async request is issued. Waiting dialog cannot be shown before responding to a client + * + * @param aPtr Pointer to this instance + */ + static TInt UpdateQueryCallbackL( TAny* aPtr ); + + + +public: //temp +//private: + IAUpdateServiceProvider *mServiceProvider; + +private: + CIAUpdateUiController* iController; + CIAUpdateGlobalLockHandler* iGlobalLockHandler; + CEikonEnv* iEikEnv; //not owned + CIdle* iIdle; + + IAUpdateUiDefines::TIAUpdateUiRequestType iRequestType; + TBool iUpdateNow; + RArray iDestIdArray; + TBool iRequestIssued; + TBool iStartedFromApplication; + TUint iUpdatequeryUid; + TInt iWgId; + + + }; + +#endif /* IAUPDATEENGINE_H_ */