--- a/pnpmobileservices/pnpms/OnlineSupport/inc/CCMAppUi.h Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,626 +0,0 @@
-/*
-* Copyright (c) 2003-2006 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: Header file for Ui class
-*
-*/
-
-
-
-#ifndef CCMAPPUI_H
-#define CCMAPPUI_H
-
-// INCLUDES
-#include <eikapp.h>
-#include <eikdoc.h>
-#include <e32std.h>
-#include <coeccntx.h>
-#include <aknappui.h>
-#include <favouriteslimits.h> // for KFavouritesMaxUrl
-#include <sysutil.h>
-#include <ApDataHandler.h> // for creating new Init Access
-#include <ApAccessPointItem.h> // for creating new Init Access
-
-#include "MCMSocketsEngineNotifier.h"
-#include "MCMRegisterationStatusNotifier.h"
-#include "MiniBrowserObserver.h"
-#include "mcmdialogstatusnotifier.h"
-#include "ccmdialogmonitor.h"
-
-
-// CONSTANTS
-//Maximun length of WAP address
-const TInt KMaximumLengthOfWapAddress = KFavouritesMaxUrl;
-const TInt KMaxServerString = 20;
-const TInt KMaxPageString = 20;
-const TInt KMaxQueryString = 256;
-
-// MACROS
-// None
-
-// DATA TYPES
-// None
-
-// FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-class CRepository;
-class CCMRegistrationMonitor;
-class CCMSocketsEngine;
-class CMiniBrowser;
-class CCMDialogMonitor;
-class CAknGlobalConfirmationQuery;
-class CAknGlobalNote;
-// CLASS DECLARATION
-
-/**
-* CCMAppUi application class.
-*
-* @lib ConfManager.app
-* @since 2.0
-*/
-class CCMAppUi : public CAknAppUi,
- /*public MProgressDialogCallback,*/
- public MCMSocketsEngineNotifier,
- public MCMRegisterationStatusNotifier,
- public MCoeForegroundObserver,
- public MMiniBrowserObserver,
- public MCMDialogStatusNotifier
- {
- public: // Constructors and destructor
- CCMAppUi();
-
- /**
- * Destructor.
- */
- ~CCMAppUi();
-
- public: // New methods
-
- /**
- * ApplicationStatus used when the timer expires
- */
- enum TApplicationStatus
- {
- EAppStatusMonitoring,
- EAppStatusConnecting,
- EAppStatusWaitingDisconnect,
- EAppStatusInactive,
- EAppStatusStartingUp,
- /*(if the app is closed immediately, it crashes after calling the destructor.
- Seems like CAknMessageQueryDialog releases some of it's resources after some
- kind of delay and this causes the crash)
- */
- EAppStatusClosing
- };
-
- /**
- * ApplicationStatus used when the timer expires
- */
- enum TConnectingVia
- {
- EConnectingViaNull, // Initial state, no connection has been tried yet
- EConnectingViaInit, // Trying to connect via Init Access
- EConnectingViaDefault, // Trying to connect via Browser default AP
- EConnectingViaUser // Trying to connect via AP asked from user
- };
-
-
- /**
- * ConnectReason used to inform help-portal
- */
- enum TConnectReason
- {
- EConnectReasonUnknown = 0,
- EConnectReasonFirstBoot = 1,
- EConnectReasonNewSim = 2,
- EConnectReasonUserTriggered = 3,
- EConnectReasonApplicationTriggered = 4,
- EConnectReasonRemoteTriggered = 5
- };
-
- /**
- * Activates confirmation dialog
- * @since 2.0
- */
- void ConfirmationDialogL();
-
- /**
- * Activates error note
- * @since 2.0
- * @return void
- */
- void ErrorNoteConnectionL();
-
- /**
- * Activates error note, displaying the error value
- * @since 2.0
- * @param aError errorvalue, will displayed in the note
- * @return void
- */
- void ErrorNoteUnknownL( TInt aError );
-
- /**
- * StartUp starting sequence.
- * @since 2.0
- * @return errorcode.
- */
- TInt StartUpStartL();
-
- /**
- * Checks if there is accesspoint available
- * @since 2.0
- * @return errorcode
- */
- TInt CheckSettingsL();
-
- /**
- * opens wap browser
- * @since 2.0
- * @return void
- */
- void OpenWapBrowserL( );
-
- /**
- * Checks if there is defaul accesspoint available
- * @since 2.0
- * @returns ID of the accesspoint or KErrNotFound
- */
- TUint32 CheckDefaultAccessPointL();
-
- /**
- * Checks if there is init accesspoint available
- * @since 2.0
- * @returns ID of the accesspoint or KErrNotFound
- */
- TUint32 InitAccessPointL();
-
- /**
- * Checks the settings of init access point
- * @since 2.0
- * @param aDb Commsdb connection
- * @param aAccessPoint id of the AP to be checked
- * @returns ETrue if the AP was ok, EFalse if not
- */
- TBool CheckInitAccessPointL( CCommsDatabase& aDb, TUint32& aAccessPoint );
-
- /**
- * Creates the init accesspoint
- * @since 2.0
- * @param aDb Commsdb connection
- * @returns ID of the accesspoint or KErrNotFound
- */
- TUint32 CreateInitAccessPointL( CCommsDatabase& aDb );
-
- /**
- * Initiates next test
- * @since 2.0
- * @returns void
- */
- void InitiateNextConnectionTestL();
-
- /**
- * Checks if init access is ok in the comms db
- * if not creates one and cheks again
- * if init access AP is ok initiates the init access test
- * otherwise returns EFalse
- * @since 2.0
- * @returns ETrue if connection test was initiated, EFalse if not
- */
- TBool TryInitAccessL();
-
- /**
- * Checks if browser default access is ok in the comms db
- * if so initiates the default access test
- * otherwise returns EFalse
- * @since 2.0
- * @returns ETrue if connection test was initiated or EFalse
- */
- TBool TryDefaultAccessL();
-
- /**
- * Prompts the user to select an ap to test
- * @since 2.0
- * @returns ETrue if connection test was initiated or EFalse
- */
- TBool TryUserAccessL();
-
- /**
- * Reads the accesspoint id from the preferences table and changes
- * iAccessPoint to refer to the id in the WAP_ACCESS_POINT table.
- * @since 2.0
- * @returns ID of the accesspoint or KErrNotFound
- */
- TInt ReadAccessPointFromPreferencesL();
-
- /**
- * function checks the settings in the ini file
- * @since 2.0
- * @return void
- */
- void CheckIniFileSettingsL();
-
- /**
- * Shows wait Dialog
- * @since 2.0
- * @return void
- */
- void ShowWaitDialogL();
-
- /**
- * Starts the real functionality of the configuration Manager
- * @since 2.0
- * @return void
- */
- void StartUpOperationL();
-
- /**
- * Sets server string (http://<server>.help-portal.com)
- * @param aServer the server string, max length KMaxServerString
- * @since 2.0
- * @return void
- */
- void SetServerString(const TDesC& aServer);
-
- /**
- * Sets page string (http://server.help-portal.com/<page>)
- * @param aPage the page string, max length KMaxPageString
- * @since 2.0
- * @return void
- */
- void SetPageString(const TDesC& aPage);
-
- /**
- * Sets connect reason
- * @param aReason the connect reason
- * @since 2.0
- * @return void
- */
- void SetConnectReason(TConnectReason aReason);
-
- /**
- * Sets query string
- * @param aQuery the query string, max length KMaxQueryString
- * @since 2.0
- * @return void
- */
- void SetQueryString(const TDesC& aQuery);
-
- /**
- * Sets iAtBoot
- * @param aAtBoot if ETrue indicates that Support is started as part
- * of boot process
- * @return voi
- */
- void SetAtBoot( TBool aAtBoot);
-
- /**
- * Fetch product model and sw version
- * @since 2.0
- * @return void
- */
- void FetchProductModelAndSwVersionL();
-
-
- /**
- * Exit application. The implementation depends on the platform.
- * On 3.0 a short delay is needed on exit because dialogs do not release
- * all resources when ExecuteLD function completes. The delay is needed
- * since the app panics on exit if all resources has not been freed.
- */
- void DelayedExit();
-
- public: //Functions from base classes
-
- /**
- * TimerExpired function was replaced by TimeOutCallBack
- * after replacing class CCMTimer with CPeriodic. Calls DoTimeOutCallBack.
- * @return TInt KErrNone in case everything was Ok.
- */
- static TInt TimeOutCallBack( TAny* aCCMAppUi );
-
- /**
- * The functionality from TimerExpired function was moved here
- */
- void DoTimeOutCallBackL();
-
- /**
- Starts a time-out period of aTimeOut micro seconds. Calls TimeOutCallBack
- after that.
- */
- void StartTimeOut( const TInt aTimeOut );
-
- /**
- * From MCMSocketsEngineNotifier notifies the connection result
- * @since 2.0
- * @param aErrorCode error code of the connection test
- * @return void
- */
- void ConnectionResultL( TInt aErrorCode );
-
- /**
- * A method for CCMSocketEngine to tell that a unhandled
- * leave has occurred during it's RunL handling.
- * Displays a Unknown Error note
- * @param aErrorCode the errorcode of the unhandled leave
- * @return voi
- */
- void UnhandledLeave( TInt aErrorCode );
-
- /**
- * From MCMRegisterationStatusNotifier
- * @param aNetworkStatus
- */
- void RegistrationMonitoringDoneL( CCMRegistrationMonitor::TNetworkStatus aNetworkStatus );
-
- /**
- * From MCMRegisterationStatusNotifier
- * @param aStatus
- * @param aError
- */
- void RegistrationReportErrorL( const CCMRegistrationMonitor::TMonitoringStatus aStatus, const TInt aError );
-
- /**
- * From CEikAppui
- * Handles commandline params
- * @since 2.0
- * @param aCommand see sdk help
- * @param aDocumentName see sdk help
- * @return void
- */
- TBool ProcessCommandParametersL( TApaCommand aCommand, TFileName& aDocumentName );
-
- /**
- * From CEikAppui
- * Handles commandline params
- * @since 2.0
- * @param aCommand see sdk help
- * @param aDocumentName see sdk help
- * @param aTail see sdk help
- * @return void
- */
- TBool ProcessCommandParametersL( TApaCommand aCommand, TFileName& aDocumentName, const TDesC8& aTail );
-
- /**
- * takes care of wait dialog command handling.
- * @since 2.0
- * @param aCommand command
- * @return void
- */
- void WaitDialogDismissedL( TInt aButtonId );
-
- public: // from MMiniBrowserObserver
-
- /**
- Called after MiniBrowser has handled a request for an URL
- (a call to HttpGetL successfully done)
- */
- void MiniBrowserRequestDoneL();
-
- /**
- Called if RunL of CMiniBrowser leaves.
- @param aError The leave code.
- */
- void MiniBrowserErrorL( const TInt aError );
-
- /**
- Called if a call to MiniBrowserRequestDoneL or MiniBrowserErrorL leaves
- @param aError The leave code
- */
- void MiniBrowserUnhandledLeave( const TInt aError );
-
- public: // from MCoeForegroundObserver
- void HandleGainingForeground();
- void HandleLosingForeground();
-
- public: // from MCMDialogStatusNotifier
- void CommonDialogDismissedL( const CCMDialogMonitor::TDialogMode aDialog, const TInt aStatusCode );
-
- private: // Functions from base classes
-
-
- /**
- * Checks if network connections are allowed. The current implementation
- * checks the value of KCoreAppUIsNetworkConnectionAllowed central
- * repository key in KCRUidCoreApplicationUIs.
- * @return TBool ETrue if network connections are allowed
- */
- TBool IsNetworkConnectionsAllowedL();
-
- /**
- * From MEikMenuObserver takes care of menu handling.
- * @since 2.0
- * @param aResourceId resourceid
- * @param aMenuPane menu
- * @return void
- */
- void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
-
- /**
- * From CEikAppUi takes care of command handling.
- * @since 2.0
- * @param aCommand command
- * @return void
- */
- void HandleCommandL( TInt aCommand );
-
- /**
- * From CEikAppUi handles key events.
- * @since 1.0
- * @param aKeyEvent key event
- * @param aType event type code
- * @return Response code (EKeyWasConsumed, EKeyWasNotConsumed).
- */
- virtual TKeyResponse HandleKeyEventL
- (
- const TKeyEvent& aKeyEvent, TEventCode aType
- );
-
- /**
- For storing an integer value.
- */
- TInt StoreIntValue( const TUint32 aCrKey, const TInt aValue );
-
- /**
- For storing a string value.
- */
- TInt StoreStringValue( const TUint32 aCrKey, const TDesC& aValue );
-
- /**
- For restoring an integer value that was stored by using StoreIntValue.
- */
- TInt GetIntValue( const TUint32 aCrKey, TInt& aValue );
-
- /**
- For restoring a string value that was stored by using StoreStringValue.
- */
- TInt GetStringValue( const TUint32 aCrKey, TDes& aValue );
-
- /**
- Appends the domain to be used for redirecting browser (for example
- www.help-portal.com)
- @param aUrl The descriptor the domain is appended to.
- */
- void AppendDomainL( TDes& aUrl );
-
- /**
- Clear Service Activation Information if there are any, online support should not read
- */
- void DeleteServiceActivationInfoL();
-
- /**
- Append Token And Nonce Value to WAPPage
- */
- void AppendTokenAndNonceValL();
-
- /**
- Append Device Information to URL
- */
- void AppendDeviceInfoL();
-
- /**
- Create Minibrowser and Launch
- */
- void LaunchMiniBrowserL();
-
- /*
- Launch s60 Web browser using command line parameters
- */
- void LaunchS60WebBrowserL();
-
- /*
- Append parameters to URL required from Server
- */
- void AppendWebUtilParamsL();
-
- /*
- Create Online Help for settings based on Autostart value
- Can be either Silent or Non Silent.
- In case of Silent settings are downloaded settings silently
- connecting to browser in background
- In case of Non-Silent Browser will be opened with display of
- webpage where user can select settings based on his wish
- */
- void OnlineHelpL();
-
- private:
- /**
- * By default EPOC constructor is private.
- */
- void ConstructL();
-
- private: //Data
-
- // RegistrarionMonitor
- CCMRegistrationMonitor* iRegistrationMonitor;
- // Sockets engine
- CCMSocketsEngine* iEngine;
- // Timer
- CPeriodic* iTimer;
- // WAP page address
- TBuf <KMaximumLengthOfWapAddress> iWapPage;
- // if this is true the application has changed the preferences
- TBool iPreferencesChanged;
- // If this is true the phone is in homenetwork
- TBool iNetworkStatusOk;
- // This is set to true if the phone has been started before while it
- //hasn't been registered to it's homenetwork and now the phone has
- //been started in the homenetework.
- TBool iFirstStartInHomeNetwork;
- // if this is true the application knows that the confirmation dialog will be showed
- TBool iShowConfirmation;
- /** Id for the current AccessPoint this id refers to the WAP_ACCESS_POINT table. */
- TUint32 iAccessPoint;
- // Application status
- TApplicationStatus iApplicationStatus;
- // This is for the initAccess
- TBool iInitAccessPointUsed;
-
- // Connection reason (EConnectReasonUnknown if not started with parameters)
- TConnectReason iConnectReason;
- // Page string (http://<server>.help-portal.com/)
- TBuf<KMaxServerString> iServer;
- // Page string (http://server.help-portal.com/<page>)
- TBuf<KMaxPageString> iPage;
- // SW version
- TBuf<KSysUtilVersionTextLength> iSwVersion;
- // Product model
- TBuf<KSysUtilVersionTextLength> iProductModel;
- // Query string
- TBuf<KMaxQueryString> iQuery;
-
- // Tells by which AP the connection is tried, so that the state machine in
- // TimerExpired can try the next AP if the current did not work
- TConnectingVia iConnectingVia;
- // The number to show in wait dialog
- TInt iWaitDialogProgressVal;
-
- // Last configured IMSI from ini file
- RMobilePhone::TMobilePhoneSubscriberId iLastConfIMSI;
-
- CCMRegistrationMonitor::TNetworkStatus iNetworkStatus;
-
- /** Tells if the application was started in auto start (quiet) mode */
- TBool iAutoStart;
- /** Tells if we should override need for initAccess in order to use TOKEN (TokenOverride).
- set to ETrue to append TOKEN and tValid parameters even if not using initAccess */
- TBool iTokenOverride;
- /** Tells if we started Browser (needed in considering whether a long exit delay is needed) */
- TBool iStartingBrowser;
-
- CRepository* iRepository;
-
- /*!
- Note that iMiniBrowser must have an opened RSocketServ handle and an
- opened and started RConnection handle until it is destroyed. This means
- that it has to be deleted after iEngine (iMiniBrowser uses the RSocketServ
- and RConnection handles of iEngine).
- */
- CMiniBrowser* iMiniBrowser;
-
- CCMDialogMonitor* iCommonDialogMonitor;
- /*!
- To prevent infinite redirects in silent mode
- */
- TInt iRedirectsLeft;
-
- CAknGlobalConfirmationQuery* iGlobalConfirmationQuery;
- CAknGlobalNote* iGlobalWaitNote;
- TInt iWaitNoteId;
- TInt iInitAccessOn;
- };
-
-#endif // CCMAPPUI_H
-
-// End of File