diff -r f742655b05bf -r d38647835c2e convergedconnectionhandler/cchclientapi/inc/cchuiapiimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/convergedconnectionhandler/cchclientapi/inc/cchuiapiimpl.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,400 @@ +/* +* 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: +* +*/ + + +#ifndef C_CCHUIAPIIMPL_H +#define C_CCHUIAPIIMPL_H + +#include +#include +#include + +#include "mcchuinoteresultobserver.h" + +class CCchUiSpsHandler; +class CCchUiCchHandler; +class CCCHUiNoteHandler; +class CCchUiClientObserver; +class CCchUiConnectionHandler; + +/** + * CchUiApiImpl class + * Implementation class for CchUiApi. + * Do the actual things of CchUiApi + * + * @since @since S60 5.0 + */ +NONSHARABLE_CLASS( CCchUiApiImpl ) : public CBase, + public MCchUiNoteResultObserver, + public MCchServiceStatusObserver + { +public: + + /** + * Two-phased constructor. + * @param aObserver reference to observer insterested in CCH UI events + */ + static CCchUiApiImpl* NewL( CCch& aCch ); + + /** + * Destructor. + */ + virtual ~CCchUiApiImpl(); + + /** + * Adds observer for listening cchui events. + * + * @since S60 5.0 + * @param aObserver Event observing class + */ + void AddObserverL( MCchUiObserver& aObserver ); + + /** + * Removes the observer of cchui events. + * + * @since S60 5.0 + * @param aObserver Event observing class + */ + void RemoveObserver( MCchUiObserver& aObserver ); + + /** + * Shows specific dialog or note. + * + * @since S60 5.0 + * @param aServiceId service id of the service that the + * note is shown for. Service id is used to fetch + * service specific data. + * @param aDialog specifies dialog to be shown + */ + void ShowDialogL( + TUint32 aServiceId, + MCchUiObserver::TCchUiDialogType aDialog ); + + /** + * Configures visualization params. + * + * @since S60 5.0 + * @param aAllowedNotes array of allowed notes + * @param aAllowedSubServices allowed sub services + * @return None + */ + void ConfigureVisualizationL( + RArray& aAllowedNotes, + RArray& aAllowedSubServices ); + + /** + * Cancels all notes. Same behaviour can be achieved by deleting + * this instance. Client can use this method to dismiss note and keep this + * API instance in order to show some other notes in the future. + * If there is nothing to dismiss, call to this method does nothing. + * + * @since S60 5.0 + */ + void CancelNotes(); + + /** + * Starts observing events for specific service defined by aServiceId + * + * @since S60 5.0 + * @param aService, service identifier + * @param aEnableResult, enable result error code + */ + void ManualEnableResultL( TUint aServiceId, TInt aEnableResult ); + + +// from base class MCchUiNoteResultObserver + + /** + * From MCchUiNoteResultObserver. + * Called when certain dialog has completed without errors. + * + * @since S60 5.0 + * @param aCompleteCode Complete code. + * @param aResultParams Result params of the dialog. + */ + void DialogCompletedL( + TInt aCompleteCode, + TCCHUiNotifierParams aResultParams ); + +// from base class MCchServiceStatusObserver + + /** + * Observer implementation for service specific events. + * by aServiceId. + * + * @since S60 5.0 + * @param aServiceId service id + * @param aType sub service type + * @param aServiceStatus service status + */ + void ServiceStatusChanged( + TInt aServiceId, + TCCHSubserviceType aType, + const TCchServiceStatus& aServiceStatus ); + +protected: // constructor + + CCchUiApiImpl(); + + void ConstructL( CCch& aCch ); + +protected: // functions + /** + * Handles authentication failed dialog result. + * + * @since S60 5.0 + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void DoHandleAuthenticationFailedCompleteL( + TInt aCompleteCode, + TCCHUiNotifierParams aResultParams ); + + /** + * Handles no connections dialog result. + * + * @since S60 5.0 + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void DoHandleNoConnectionsCompleteL( + TInt aCompleteCode, + TCCHUiNotifierParams aResultParams ); + + /** + * Handles change connection confirmation note result. + * + * @since S60 5.0 + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void DoHandleConfirmChangeConnectionCompleteL( + TInt aCompleteCode, + TCCHUiNotifierParams aResultParams ); + + /** + * Handles change connection query result. + * + * @since S60 5.0 + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void DoHandleChangeConnectionCompleteL( + TInt aCompleteCode, + TCCHUiNotifierParams aResultParams ); + + /** + * Handles service specific error. + * + * @since S60 5.0 + * @param aServiceId service id + * @param aType subservice type + * @param aServiceStatus service status + */ + void DoHandleServiceErrorL( + TInt aServiceId, + TCCHSubserviceType aType, + const TCchServiceStatus& aServiceStatus ); + + /** + * Handles service specific status event. + * + * @since S60 5.0 + * @param aServiceId service id + * @param aType subservice type + * @param aServiceStatus service status + */ + void DoHandleServiceEventL( + TInt aServiceId, + TCCHSubserviceType aType, + const TCchServiceStatus& aServiceStatus ); + + /** + * Handles search wlan dialog result. + * + * @since S60 5.0 + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void HandleSearchWlanCompleteL( + TInt& aCompleteCode, + TCCHUiNotifierParams& aResultParams ); + + /** + * Handles search access points error code. + * + * @since S60 5.0 + * @param aErr error code to handle. + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void HandleSearchAccessPointsErrorL( + TInt aErr, + TInt& aCompleteCode, + TCCHUiNotifierParams& aResultParams ); + + /** + * Handles search wlan dialog result when use gprs selected. + * + * @since S60 5.0 + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void HandleCopyGprsCompleteL( + TInt& aCompleteCode, + TCCHUiNotifierParams& aResultParams ); + + /** + * Handle changing to new connection. + * + * @since S60 5.0 + * @param aCompleteCode Complete code of the dialog. + * @param aResultParams Result parameters from the dialog. + */ + void HandleChangeConnectionL( + TInt& aCompleteCode, + TCCHUiNotifierParams& aResultParams ); + + /** + * Informs event to all observers. + * + * @since S60 5.0 + * @param aServiceId service id. + */ + void InformObserversL( TInt aServiceId ); + + /** + * Checks if specific dialog is allowed. If client has not configured, + * all dialogs are allowed. + * + * @since S60 5.0 + * @param aDialog dialog to be checked. + * @return TBool, ETrue if aDialog is allowed + */ + TBool DialogIsAllowed( MCchUiObserver::TCchUiDialogType aDialog ); + + /** + * Checks if specific sub service is allowed. If client has not configured, + * only voip sub service is allowed. + * + * @since S60 5.0 + * @param aSubService sub service to be checked. + * @return TBool, ETrue if aSubService is allowed + */ + TBool SubServiceIsAllowed( TCCHSubserviceType aSubService ); + + /** + * Checks subservice state is allowed for showing dialogs. + * + * @since S60 5.0 + * @param aState sub service state + * @return TBool, ETrue if state is allowed for showing dialogs + */ + TBool StateIsAllowed( const TCCHSubserviceState aState ); + + /** + * Handles re-enabling of service. + * + * @since S60 5.0 + * @param aServiceId service id + */ + void HandleServiceReEnablingL( TUint aServiceId ); + + /** + * Handles manual enable errors. + * + * @since S60 5.0 + * @param aService, service identifier + * @param aEnableResult, enable result error code + */ + void HandleManualEnableErrorL( TUint aServiceId, TInt aEnableResult ); + +private: // data + + /** + * Array of encapsulated observers (clients) + * Own. + */ + RPointerArray iObservers; + + /** + * CCH handler. + * Own. + */ + CCchUiCchHandler* iCCHHandler; + + /** + * Controller class for dialogs. + * Own. + */ + CCCHUiNoteHandler* iNoteController; + + /** + * Service settings handler. + * Own. + */ + CCchUiSpsHandler* iSpsHandler; + + /** + * Connection handler. Handles iaps & snaps. + * Own. + */ + CCchUiConnectionHandler* iConnectionHandler; + + /** + * Own. Stores service ids of the monitored services + */ + RArray iObservervedServices; + + /** + * Own. Stores allowed notes (client provided) + */ + RArray iAllowedNotes; + + /** + * Own. Stores allowed sub services (client provided) + */ + RArray iAllowedSubServices; + + /** + * Flag for indicating if re-enabling of service needs + * after service disabled event. + */ + TBool iReEnableService; + + /** + * For iap id which can be removed when change connection + * performed succesfully. + */ + TInt iRemovableConnection; + + /** + * Service which we have added cch observer. + */ + TInt iObservedService; + + /** + * Stores last cchui operation result. + */ + MCchUiObserver::TCchUiOperationResult iLastOperationResult; + + CCHUI_UNIT_TEST( UT_CchUi ) + }; + +#endif // C_CCHUIAPIIMPL_H + +