diff -r 75a71fdb4c92 -r 7d11f9a6646f pnpmobileservices/pnpms/OnlineSupport/src/CCMAppUi.cpp --- a/pnpmobileservices/pnpms/OnlineSupport/src/CCMAppUi.cpp Tue Feb 02 00:03:17 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2651 +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: This module contains the implementation of CCMAppUi class -* methods -* -*/ - - -// INCLUDE FILES -#include -#include // for RApaLsSession -#include // for CCommsDatabase -#include // for CCommsDbConnectionPrefTableView -#include // for CAknGlobalNote -#include // for CAknGlobalConfirmationQuery -#include -#include -#include -#include -#include -#include // has to be system include. -#include // link against centralrepository.lib -#include // for KCRUidBrowser -#include // for KCRUidCoreApplicationUIs -//#include // BrowserUiSDKCRKeys.h file can replace this header file -#include // for the profile strings - -#include "OnlineSupportLogger.h" -#include "CCMAppUi.h" -#include "CCMRegistrationMonitor.h" -#include "CCMSocketsEngine.h" -#include "OnlineSupport.hrh" -#include "PnpUtilImpl.h" -#include "CCMDocument.h" -#include "MiniBrowser.h" -#include "DeviceParameterDefs.h" -#include "VersionStrings.h" -#include "OnlineSupportPrivateCRKeys.h" // Own central repository keys -#include -#include -#include - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS - -// UID of the application -const TUid KUidConfigurationManager = { 0x10204338 }; -// TimeoutValue for the RegistrationMonitor, -// Registration monitor itself has a time-out of 15 seconds -const TInt KMonitoringTimeOut = 20000000; -// TimeoutValue for the ConnectionTest -const TInt KConnectionTimeOut = 35000000; -// Timeout after the startupOperation will continue after ConstructL() -const TInt KStartUpTimeOut = 20; - -// 0.1s Timeout for closing the app after the user has selected "Cancel" to -// ConfirmationDialogL or to iWaitDialog. -// See comments on TApplicationStatus (CCMAppUi.h) -const TInt KExitTimeOut = 100000; - -_LIT( KInitAccess, "initAccess" ); - -_LIT( KSlash,"/"); - -// Help portal -_LIT(KHelpPortal,".help-portal.com"); - -// Nokia -_LIT( KServerNokia,"nokia" ); -_LIT( KNokia,"pnpms.nokia.com"); - -// HTTP -_LIT(KHttp, "http://"); - -// Default server string -_LIT(KDefaultServerString,"www"); - -// Default page string -_LIT(KDefaultPageString,"page1"); - -_LIT( KMNC0, "mnc0" ); -_LIT( KMCC, "mcc" ); -_LIT( KGprs, "gprs" ); -_LIT( KDot, "." ); - -const TInt KMaxAPNLength = 256; - -_LIT( KDefaultRoamingName, "PNP Default Roaming" ); - -_LIT( KInitAccessRoamingName, "PNP InitAccess Roaming" ); - -const TInt KMaxSilentModeRedirectCount(3); - - -// MACROS -// None - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// ============================= LOCAL FUNCTIONS =============================== -// None - - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CCMAppUI::CCMAppUi -// ----------------------------------------------------------------------------- -// -CCMAppUi::CCMAppUi(): - iAccessPoint(0), - iAutoStart( EFalse), - iTokenOverride( EFalse ), - iStartingBrowser( EFalse ), - iRedirectsLeft( KMaxSilentModeRedirectCount ), - iInitAccessOn(KErrNone) - { - } - -// ----------------------------------------------------------------------------- -// CCMAppUi::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCMAppUi::ConstructL() - { - LOGSTRING( "Enter to CCMAppUi::ConstrtuctL" ); - // Send to background - BaseConstructL(ENoScreenFurniture); - TApaTaskList taskList( CEikonEnv::Static()->WsSession() ); - TApaTask task = taskList.FindApp( KUidConfigurationManager ); - task.SendToBackground(); - - HideApplicationFromFSW(); - - iPreferencesChanged = EFalse; - iFirstStartInHomeNetwork = EFalse; - iNetworkStatusOk = EFalse; - iNetworkStatus = CCMRegistrationMonitor::EStatusUnknown; - iApplicationStatus = EAppStatusInactive; - iInitAccessPointUsed = EFalse; - - iWaitDialogProgressVal = 1; - - LOGSTRING( "BaseConstructOk" ); - - //this->StatusPane()->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT); - this->StatusPane()->MakeVisible( EFalse ); - - CEikonEnv::Static()->AddForegroundObserverL( *this ); - - TRAPD( err, iRepository = CRepository::NewL( KCRUidConfigurationManager ) ); - if( err != KErrNone ) - { - LOGSTRING2( "Central repository init: %i", err ); - User::Leave( err ); - } - err = GetIntValue(KOnlineSupportInitAccessOn,iInitAccessOn); - if( KErrNone == err && iInitAccessOn == KErrNone) - {//Fetaure off - iConnectingVia = EConnectingViaInit; - } - else //feature off or Issue in reading cenrep key - { - iConnectingVia = EConnectingViaNull; - } - // The default values; these might change later in ProcessCommandParametersL - SetServerString( KDefaultServerString ); - SetPageString( KDefaultPageString ); - SetConnectReason( EConnectReasonUnknown ); - - FetchProductModelAndSwVersionL(); - - iTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - iEngine = CCMSocketsEngine::NewL( *this ); - iRegistrationMonitor = CCMRegistrationMonitor::NewL( *this ); - iApplicationStatus = EAppStatusStartingUp; - LOGSTRING( "Exit from ConstructL()" ); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::IsNetworkConnectionsAllowedL -// ----------------------------------------------------------------------------- -// -TBool CCMAppUi::IsNetworkConnectionsAllowedL() - { - LOGSTRING( "Enter to CCMAppUi::IsNetworkConnectionsAllowedL()" ); - TBool networkConnectionsAllowed( EFalse ); - TInt allowed(0); - CRepository* coreAppUisCr = CRepository::NewLC( KCRUidCoreApplicationUIs ); - User::LeaveIfError( coreAppUisCr->Get( KCoreAppUIsNetworkConnectionAllowed, allowed ) ); - CleanupStack::PopAndDestroy( coreAppUisCr ); - if( allowed == ECoreAppUIsNetworkConnectionAllowed ) - { - LOGSTRING( "ConnectionAllowed" ); - networkConnectionsAllowed = ETrue; - } - else - { - // display dialog that operation that possible in offline mode - HBufC* string = StringLoader::LoadLC( R_OFFLINE_MODE ); - CAknGlobalNote* globalNote = CAknGlobalNote::NewL(); - CleanupStack::PushL( globalNote ); - globalNote->ShowNoteL( EAknGlobalErrorNote , *string ); - CleanupStack::PopAndDestroy(2 ); - } - - LOGSTRING( "Exit from CCMAppUi::IsNetworkConnectionsAllowedL()" ); - return networkConnectionsAllowed; - } - -// Destructor -// ----------------------------------------------------------------------------- -// CCMAppUI::~CCMAppUi -// ----------------------------------------------------------------------------- -// -CCMAppUi::~CCMAppUi() - { - LOGSTRING( "Enter ~CCMAppUI" ); - - CEikonEnv::Static()->RemoveForegroundObserver( *this ); - - if (iTimer) - { - iTimer->Cancel(); - } - delete iTimer; - LOGSTRING( "Timer deleted" ); - - if (iRegistrationMonitor) - { - iRegistrationMonitor->StopMonitoring(); - } - delete iRegistrationMonitor; - LOGSTRING( "Monitor deleted" ); - - delete iRepository; - - delete iMiniBrowser; - // Must be deleted after iMiniBrowser since iMiniBrowser uses RSocketServ and - // RConnection instances of iEngine - delete iEngine; - - if (iCommonDialogMonitor) - { - iCommonDialogMonitor->Cancel(); - delete iCommonDialogMonitor; - } - if (iGlobalConfirmationQuery) - { - delete iGlobalConfirmationQuery; - } - if( iGlobalWaitNote ) - { - //iGlobalWaitNote->CancelNoteL(iWaitNoteId); - delete iGlobalWaitNote; - } - - LOGSTRING( "Exit ~CCMAppUI" ); - } - - - -// ----------------------------------------------------------------------------- -// CCMAppUI::ConfirmationDialogL -// Activates Confirmation dialog -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::ConfirmationDialogL() - { - LOGSTRING("CCMAppUi::ConfirmationDialogL"); - if( !iAutoStart ) - { - HBufC* msgText = CEikonEnv::Static()->AllocReadResourceLC( - R_CONFMANAGER_CONFIRMATION ); - - if (iCommonDialogMonitor) - { - iCommonDialogMonitor->Cancel(); - delete iCommonDialogMonitor; - iCommonDialogMonitor = NULL; - } - // instantiate the active object CGlobalConfirmationObserver - iCommonDialogMonitor = CCMDialogMonitor::NewL( *this ); - iCommonDialogMonitor->SetDialogMode( CCMDialogMonitor::EConfirmation ); - // SetActive - iCommonDialogMonitor->Start(); - // iGlobalConfirmationQuery is an instance of the global - // confirmation query class CAknGlobalConfirmationQuery. - // show the global confirmation query, set the iStatus variable - // of the active object as a parameter. - if (!iGlobalConfirmationQuery) - { - iGlobalConfirmationQuery = CAknGlobalConfirmationQuery::NewL(); - } - - iGlobalConfirmationQuery->ShowConfirmationQueryL( - iCommonDialogMonitor->iStatus, - *msgText, - R_AVKON_SOFTKEYS_YES_NO__YES, - R_QGN_NOTE_QUERY_ANIM); - - CleanupStack::PopAndDestroy( msgText ); - } - } - - -// ----------------------------------------------------------------------------- -// CCMAppUI::ErrorNoteConnectionL() -// Activates error note. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::ErrorNoteConnectionL() - { - LOGSTRING( "CCMAppUi::ErrorNoteConnectionL" ); - if( !iAutoStart ) - { - HBufC* msgText = CEikonEnv::Static()-> - AllocReadResourceLC( R_CONFMANAGER_ERRORNOTE ); - - CAknGlobalNote* globalNote = CAknGlobalNote::NewL(); - CleanupStack::PushL( globalNote ); - globalNote->ShowNoteL( EAknGlobalErrorNote , *msgText ); - CleanupStack::PopAndDestroy( 2 ); - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::ErrorNoteUnknownL -// ----------------------------------------------------------------------------- -// -void CCMAppUi::ErrorNoteUnknownL( TInt aError ) - { - LOGSTRING2( "CCMAppUi::ErrorNoteUnknownL %i", aError ); - if( !iAutoStart ) - { - CTextResolver* textResolver = CTextResolver::NewLC(); - TPtrC errMsg = textResolver->ResolveErrorString( aError ); - HBufC* errMsgBuf = HBufC::NewLC( errMsg.Length() ); - errMsgBuf->Des().Append( errMsg ); - - CAknGlobalNote* globalNote = CAknGlobalNote::NewL(); - CleanupStack::PushL( globalNote ); - globalNote->ShowNoteL( EAknGlobalErrorNote , *errMsgBuf ); - - CleanupStack::PopAndDestroy( globalNote ); - CleanupStack::PopAndDestroy( errMsgBuf ); - CleanupStack::PopAndDestroy( textResolver ); - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::ProcessCommandParametersL -// 2 params -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCMAppUi::ProcessCommandParametersL( TApaCommand /*aCommand*/, TFileName& /*aDocumentName*/ ) - { - LOGSTRING( "CCMAppUi::ProcessCommandParametersL 2 params" ); - return( ETrue ); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::ProcessCommandParametersL -// 3 params -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCMAppUi::ProcessCommandParametersL( TApaCommand /*aCommand*/, TFileName& /*aDocumentName*/, const TDesC8& aTail ) - { - LOGSTRING( "CCMAppUi::ProcessCommandParametersL 3 params" ); - LOGSTRING( "aTail:" ); - LOGTEXT( aTail ); - if( !IsNetworkConnectionsAllowedL() ) - { - // network connections not allowed - LOGSTRING( "Network connections not allowed" ); - //DelayedExit(); - Exit(); - return ETrue; - } - - if( aTail.Length() == 0 ) - { - LOGSTRING( "no params" ) - } - else - { - // aTail is in 8-bit format, cast - // (The format was changed from 16-bit to 8-bit because of 3.0 porting; - // there is not CApaCommandLine::SetFullCommandLine in 3.0, SetTailEndL - // is used instead and it uses 8-bit format) - HBufC* paramsBuf = HBufC::NewLC( aTail.Length() ); - TPtr paramsBufPtr = paramsBuf->Des(); - paramsBufPtr.Copy( aTail ); - TLex lexx( *paramsBuf ); - TChar getchar; - - for( ;; ) - { - lexx.SkipSpace(); - lexx.Mark(); - TPtrC token = lexx.NextToken(); - - if( token.Length() == 0 ) - { - LOGSTRING( "token length == 0"); - break; - } - else if( token.Length() == 1 ) - { - LOGSTRING( "token length == 1"); - break; - } - - // s"www" - // 012345 - - if( token[1] == '\"' && token[token.Length()-1] != '\"' ) - { - do - { - getchar = lexx.Get(); - } while( (getchar != '\"') && (getchar != 0) ); - token.Set( lexx.MarkedToken() ); - } - - LOGSTRING( "token:" ); - LOGTEXT( token ); - - TChar param = token[0]; - TPtrC paramVal; - if( token[1] == '\"' ) - { - if( token[2] == '\"' ) - { - // just quotes, e.g. q"" - } - else - { - paramVal.Set( token.Mid(2,token.Length()-3) ); - } - } - else - { - paramVal.Set( token.Mid(1) ); - } - - LOGSTRING( "paramVal:" ); - LOGTEXT( paramVal ); - - switch( param ) - { - case 's': - { - LOGSTRING( "setting server to:" ); - LOGTEXT( paramVal ); - SetServerString( paramVal ); - break; - } - case 'p': - { - LOGSTRING( "setting page to:" ); - LOGTEXT( paramVal ); - SetPageString( paramVal ); - break; - } - case 'r': - { - TLex lexx2( paramVal ); - TInt reason = 0; - lexx2.Val(reason); - // Store connect reason - switch(reason) - { - case 0: - SetConnectReason(CCMAppUi::EConnectReasonUnknown); - LOGSTRING( "Unknown connection reason" ); - break; - case 1: - SetConnectReason(CCMAppUi::EConnectReasonFirstBoot); - LOGSTRING( "Connection reason first boot" ); - break; - case 2: - SetConnectReason(CCMAppUi::EConnectReasonNewSim); - LOGSTRING( "Connection reason new sim" ); - break; - case 3: - SetConnectReason(CCMAppUi::EConnectReasonUserTriggered); - LOGSTRING( "Connection reason user triggered" ); - break; - case 4: - SetConnectReason(CCMAppUi::EConnectReasonApplicationTriggered); - LOGSTRING( "Connection reason application triggered" ); - break; - case 5: - SetConnectReason(CCMAppUi::EConnectReasonRemoteTriggered); - LOGSTRING( "Connection reason remote triggered" ); - break; - default: - LOGSTRING( "Invalid connect reason parameter" ); - break; - } - break; - } - case 'q': - { - LOGSTRING( "setting query string to:" ); - LOGTEXT( paramVal ); - SetQueryString( paramVal ); - break; - } - case 'a': - { - LOGSTRING( "setting autostart to:" ); - TLex lexx2( paramVal ); - TInt autostart = 0; // Default is "off" - TInt hiddenEnabled(0); - TInt err(KErrNone); - lexx2.Val( autostart ); - LOGTEXT( paramVal ); - switch( autostart ) - { - case 0: - iAutoStart = EFalse; - break; - case 1: - // check that autostart mode is allowed - err = GetIntValue( KOnlineSupportHiddenEnabled, hiddenEnabled ); - if (err != KErrNone) - { - LOGSTRING2( "GetIntValue(KOnlineSupportHiddenEnabled) errorcode %i", err ); - } - - if(hiddenEnabled == 1) - { - iAutoStart = ETrue; - } - else - { - LOGSTRING( "Autostart not allowed" ); - iAutoStart = EFalse; - } - break; - default: - iAutoStart = EFalse; - break; - } - break; - } - case 't': - { - LOGSTRING( "setting TOKEN override to:" ); - TLex lexx2( paramVal ); - TInt tokenOverride = 0; // Default is "off" - lexx2.Val( tokenOverride ); - LOGTEXT( paramVal ); - switch( tokenOverride ) - { - case 0: - iTokenOverride = EFalse; - break; - case 1: - iTokenOverride = ETrue; - break; - default: - iTokenOverride = EFalse; - break; - } - break; - } - default: - { - LOGSTRING( "commandline parse error, unrecognized param indentifier" ); - break; - } - } - lexx.SkipCharacters(); - - } - LOGSTRING( "cmdline parsing done" ); - - CleanupStack::PopAndDestroy( paramsBuf ); - } // else - - - if( iAutoStart ) - { - // do not show confirmation dialog, but call "ok"-button handler - CommonDialogDismissedL(CCMDialogMonitor::EConfirmation, EAknSoftkeyYes); - } - else - { - // show confirmation dialog to user, after user has accepted or cancelled - // CommonDialogDismissedL -function is called - ConfirmationDialogL(); - - } - - - //StartTimeOut( KStartUpTimeOut ); - - //TRAP_IGNORE( WaitDialogL( iWaitDialogProgressVal ) ); - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::DelayedExit -// ----------------------------------------------------------------------------- -// -void CCMAppUi::DelayedExit() - { - LOGSTRING("CCMAppUi::DelayedExit - begin"); - StartTimeOut( KExitTimeOut ); - iApplicationStatus = EAppStatusClosing; - - // In case doing a delayed exit, iWaitDialog has not been deleted yet - // (except if delayed exit is being done via iWaitDialog "Cancel" selection - // -> see DialogDismissedL) - /*if( iWaitDialog && !iWaitDialogProcessFinished ) - { - LOGSTRING( "iWaitDialog->ProcessFinishedL" ); - iWaitDialogProcessFinished = ETrue; - TRAP_IGNORE( iWaitDialog->ProcessFinishedL() ); - LOGSTRING( "iWaitDialog->ProcessFinishedL - done" ); - }*/ - - LOGSTRING("DelayedExit - done"); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::TimeOutCallBack -// ----------------------------------------------------------------------------- -// -TInt CCMAppUi::TimeOutCallBack( TAny* aCCMAppUi ) - { - TRAPD( err, ( ( CCMAppUi* )aCCMAppUi )->DoTimeOutCallBackL() ); - // DoTimeOutCallBackL might have called Exit() - if( err == KLeaveExit ) - { - User::Leave( KLeaveExit ); - } - return err; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::DoTimeOutCallBackL -// ----------------------------------------------------------------------------- -// -void CCMAppUi::DoTimeOutCallBackL() - { - LOGSTRING( "CCMAppUi::DoTimeOutCallBackL()" ); - LOGSTRING2( "application status %i", iApplicationStatus ) - if( iTimer->IsActive() ) - { - iTimer->Cancel(); - } - - switch( iApplicationStatus ) - { - case EAppStatusMonitoring: - LOGSTRING("CCMAppUi calls StopMonitoring "); - iRegistrationMonitor->StopMonitoring(); - iApplicationStatus = EAppStatusInactive; - //ErrorNoteNetworkL(); - ErrorNoteConnectionL(); - //DelayedExit(); - Exit(); - break; - case EAppStatusConnecting: - LOGSTRING("CCMAppUi calls disconnect"); - iEngine->Disconnect(); - iApplicationStatus = EAppStatusInactive; - ConnectionResultL( KErrTimedOut ); - break; - case EAppStatusWaitingDisconnect: - LOGSTRING("Connection will be disconnected"); - iEngine->Disconnect(); - iApplicationStatus = EAppStatusInactive; - break; - case EAppStatusStartingUp: - LOGSTRING("Starting up"); - StartUpOperationL(); - break; - case EAppStatusClosing: - LOGSTRING("EAppStatusClosing"); - LOGSTRING("Restore settings"); - // Exit immediately, a call to DelayedExit has been made - // (and the exit timeout has already been passed) - Exit(); // Leaves with KLeaveExit - break; - default: - LOGSTRING("Restore settings"); - //DelayedExit(); - Exit(); - break; - }; - - LOGSTRING( "DoTimeOutCallBack - done" ); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::InitiateNextConnectionTestL() -// ----------------------------------------------------------------------------- -// -void CCMAppUi::InitiateNextConnectionTestL() - { - LOGSTRING( "CCMAppUi::InitiateNextConnectionTestL" ); - TInt err( KErrNone ); - - if( iNetworkStatus != CCMRegistrationMonitor::EHomenetwork && - iNetworkStatus != CCMRegistrationMonitor::ERoaming ) - { - LOGSTRING( "InitiateNextConnectionTestL, network NOT ok" ); - if( iGlobalWaitNote ) - { - iGlobalWaitNote->CancelNoteL(iWaitNoteId); - delete iGlobalWaitNote; - iGlobalWaitNote = NULL; - } - /*if( iWaitDialog && !iWaitDialogProcessFinished ) - { - LOGSTRING("iWaitDialog->ProcessFinishedL()"); - iWaitDialogProcessFinished = ETrue; - iWaitDialog->ProcessFinishedL(); - }*/ - if( iConnectReason == CCMAppUi::EConnectReasonFirstBoot ) - { - LOGSTRING( "...startupstart" ); - //Roaming information to confmanager's ini file - if ( iNetworkStatusOk == EFalse ) - { - StoreIntValue( KOnlineSupportRoaming, EFalse ); - } - Exit(); - //DelayedExit(); - return; - } - else // menu start, show error note - { - LOGSTRING( "ErrorNoteConnectionL" ); - //ErrorNoteNetworkL(); - ErrorNoteConnectionL(); - Exit(); - //DelayedExit(); - return; - } - } - if( iConnectingVia == EConnectingViaNull && iInitAccessOn ) - { - iConnectingVia = EConnectingViaInit; - if( TryInitAccessL() ) - { - return; - } - } - if( iConnectingVia == EConnectingViaInit ) - { - iConnectingVia = EConnectingViaDefault; - __UHEAP_MARK; - TBool value( EFalse ); - TRAP( err, value = TryDefaultAccessL() ); - __UHEAP_MARKEND; - if( value ) - { - return; - } - } - if( iConnectingVia == EConnectingViaDefault ) - { - iConnectingVia = EConnectingViaUser; - TBool value( EFalse ); - TRAP( err, value = TryUserAccessL() ); - if( value ) - { - LOGSTRING( "User access test initiated" ); - return; - } - else - { - LOGSTRING2( "TryUserAccessL err: %i", err ); - LOGSTRING( "ErrorNoteConnectionL" ) - ErrorNoteConnectionL(); - LOGSTRING( "Exit" ) - //DelayedExit(); - Exit(); - } - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::TryInitAccessL() -// ----------------------------------------------------------------------------- -// -TBool CCMAppUi::TryInitAccessL() - { - LOGSTRING( "CCMAppUi::TryInitAccessL()" ); - if( iInitAccessOn ) - { - TUint32 ap = InitAccessPointL(); - iInitAccessPointUsed = ETrue; - - if ( ap != 0 ) - { - TBuf<255> domain; - AppendDomainL( domain ); - LOGSTRING( "Starting Init access test" ); - iEngine->ConnectL( ap, domain ); - - StartTimeOut( KConnectionTimeOut ); - iApplicationStatus = EAppStatusConnecting; - return( ETrue ); - } - - LOGSTRING( "Init access failed in db" ); - return( EFalse ); - } - else - { - LOGSTRING( "CCMAppUi::TryInitAccessL() InitAccess feature off " ); - return EFalse; - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::StartTimeOut -// ----------------------------------------------------------------------------- -// -void CCMAppUi::StartTimeOut( const TInt aTimeOut ) - { - LOGSTRING2( "CCMAppUi::StartTimeOut: %i", aTimeOut ); - // EAppStatusClosing means we are already waiting for the timer to - // trigger application exit, no need for a new time-out in that case - if( iApplicationStatus != EAppStatusClosing ) - { - TCallBack callBack( TimeOutCallBack, this ); - if( iTimer->IsActive() ) - { - iTimer->Cancel(); - } - iTimer->Start( aTimeOut, aTimeOut, callBack ); - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::TryDefaultAccessL() -// ----------------------------------------------------------------------------- -// -TBool CCMAppUi::TryDefaultAccessL() - { - LOGSTRING( "CCMAppUi::TryDefaultAccessL" ); - TUint32 ap = CheckDefaultAccessPointL(); - iInitAccessPointUsed = EFalse; - - if ( ap != 0 ) - { - TBuf<255> domain; - AppendDomainL( domain ); - LOGSTRING( "Starting default access test" ); - iEngine->ConnectL( ap, domain ); - - StartTimeOut( KConnectionTimeOut ); - iApplicationStatus = EAppStatusConnecting; - return( ETrue ); - } - - LOGSTRING( "Default access failed in db" ); - return( EFalse ); - } - - -// ----------------------------------------------------------------------------- -// CCMAppUI::TryUserAccessL() -// ----------------------------------------------------------------------------- -// -TBool CCMAppUi::TryUserAccessL() - { - LOGSTRING( "CCMAppUi::TryUserAccessL" ); - TInt accessPoints = CheckSettingsL(); - iInitAccessPointUsed = EFalse; - - // initAccess and browser default is tested, if more ap then ask from user - if ( !iAutoStart ) - { - if( (iInitAccessOn && accessPoints > 2) || !iInitAccessOn) - { - LOGSTRING( "Starting user access test" ); - - TBuf<255> domain; - AppendDomainL( domain ); - iEngine->ConnectL( 0, domain ); - - StartTimeOut( KConnectionTimeOut ); - iApplicationStatus = EAppStatusConnecting; - - return( ETrue ); - } - } - - LOGSTRING( "User access test not started" ); - return( EFalse ); - } - -/// ----------------------------------------------------------------------------- -// CCMAppUI::CheckSettingsL -// Cheks if there is wap setting available. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCMAppUi::CheckSettingsL() - { - CCommsDatabase* theDb; - CCommsDbTableView* theView; - TInt settings( 0 ); - TInt errorCode( KErrNone ); - theDb = CCommsDatabase::NewL( ); - CleanupStack::PushL( theDb ); - theView = theDb->OpenTableLC( TPtrC( IAP ) ); - errorCode = theView->GotoFirstRecord(); - if ( errorCode != KErrNotFound ) - { - settings = 1; - while ( errorCode != KErrNotFound ) - { - errorCode = theView->GotoNextRecord(); - if ( errorCode == KErrNone ) - { - settings++; - } - } - } - CleanupStack::PopAndDestroy( 2 ); - return settings; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::AppendDomainL -// ----------------------------------------------------------------------------- -// -void CCMAppUi::AppendDomainL( TDes& aUrl ) - { - if( iServer.Compare( KServerNokia ) == 0 ) - { - if( aUrl.MaxLength() < aUrl.Length() + KNokia().Length() ) - { - User::Leave( KErrArgument ); - } - aUrl.Append( KNokia ); - } - else - { - if( aUrl.MaxLength() < aUrl.Length() + iServer.Length() + KHelpPortal().Length() ) - { - User::Leave( KErrArgument ); - } - aUrl.Append( iServer ); - aUrl.Append( KHelpPortal ); - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::OpenWapBrowserL -// Opens WAP browser -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::OpenWapBrowserL() - { - LOGSTRING( "Enter to CCMAppUi::OpenWapBrowserL" ); - iWapPage.Zero(); - - DeleteServiceActivationInfoL(); - - CPnpUtilImpl* pnpUtil = CPnpUtilImpl::NewLC(); - - LOGSTRING( "OpenWapBrowserL 2" ); - - if( !iAutoStart ) - { - // Help portal address and type - // 4 means Url address. (see Browser API documentation) - _LIT ( KAddressType, "4 " ); - iWapPage.Copy( KAddressType ); - } - - LOGSTRING( "OpenWapBrowserL 3" ); - - iWapPage.Append( KHttp ); - AppendDomainL( iWapPage ); - iWapPage.Append( KSlash ); - - LOGSTRING( "OpenWapBrowserL 4" ); - iWapPage.Append( iPage ); - iWapPage.Append( KQuestionMark ); - -#ifdef __WINS__ - RMobilePhone::TMobilePhoneNetworkInfoV1 homeNetworkInfo; - homeNetworkInfo.iCountryCode.Copy( _L("244") ); - homeNetworkInfo.iNetworkId.Copy( _L("05") ); -#else - const RMobilePhone::TMobilePhoneNetworkInfoV1& homeNetworkInfo = iRegistrationMonitor->GetHomeNetworkInfo(); -#endif - // Home MCC - //iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KSimMccParameter ); - iWapPage.Append( homeNetworkInfo.iCountryCode ); - pnpUtil->SetHomeMccL( homeNetworkInfo.iCountryCode ); - - LOGSTRING( "OpenWapBrowserL 5" ); - // Home MNC - RMobilePhone::TMobilePhoneNetworkIdentity formattedMnc; - pnpUtil->FormatMncCodeL( homeNetworkInfo.iCountryCode, homeNetworkInfo.iNetworkId, formattedMnc ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KSimMncParameter ); - iWapPage.Append( formattedMnc ); - pnpUtil->SetHomeMncL( formattedMnc ); - - LOGSTRING( "OpenWapBrowserL 6" ); -#ifdef __WINS__ - RMobilePhone::TMobilePhoneNetworkInfoV1 currentNetworkInfo; - currentNetworkInfo.iCountryCode.Copy( _L("244") ); - currentNetworkInfo.iNetworkId.Copy( _L("05") ); -#else - const RMobilePhone::TMobilePhoneNetworkInfoV1& currentNetworkInfo = iRegistrationMonitor->GetCurrentNetworkInfo(); -#endif - // current MCC - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KCurrentMccParameter ); - iWapPage.Append( currentNetworkInfo.iCountryCode ); - pnpUtil->SetNetworkMccL( currentNetworkInfo.iCountryCode ); - - LOGSTRING( "OpenWapBrowserL 7" ); - // current MNC - TRAPD( err, pnpUtil->FormatMncCodeL( currentNetworkInfo.iCountryCode, currentNetworkInfo.iNetworkId, formattedMnc ) ); - if( err != KErrNone ) - { - LOGSTRING2( "FormatMncCodeL err: %i", err ); - pnpUtil->SetNetworkMncL( currentNetworkInfo.iNetworkId ); - } - else - { - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KCurrentMncParameter ); - iWapPage.Append( formattedMnc ); - pnpUtil->SetNetworkMncL( formattedMnc ); - } - - LOGSTRING( "OpenWapBrowserL 8" ); - //pnpUtil->StoreAccessPoint( iAccessPoint ); // not needed anymore - - // Init AP, use token - LOGSTRING( "iServer:" ); - LOGTEXT( iServer ); - - // AppendTokenAndNonceVal - AppendTokenAndNonceValL(); - - // Connection reason - LOGSTRING( "connection reason" ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KConnectReasonParameter ); - if( iConnectReason == EConnectReasonUnknown ) - { - iWapPage.AppendNum( (TInt)EConnectReasonUserTriggered ); - } - else - { - iWapPage.AppendNum( (TInt)iConnectReason ); - } - - // PnpVersion - TBuf pnpversion; - User::LeaveIfError( pnpUtil->Version( pnpversion ) ); - LOGSTRING( "PnPVersion" ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KPnpVersionParameter ); - iWapPage.Append( pnpversion ); - LOGSTRING( "PopAndDestroy pnpUtil" ) - CleanupStack::PopAndDestroy( pnpUtil ); - - // help query string - if( iQuery.Length() > 0 ) - { - LOGSTRING( "query" ); - HBufC16* param = EscapeUtils::EscapeEncodeL(iQuery,EscapeUtils::EEscapeUrlEncoded); - if(param) - { - LOGSTRING( "converted:" ); - LOGTEXT( *param ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KQueryParameter ); - iWapPage.Append( *param ); - delete param; - } - - } - - - - // Append Device Information to URL - - AppendDeviceInfoL(); - - - // Operator name, service provider - const RMobilePhone::TMobilePhoneServiceProviderNameV2& serviceProviderName = iRegistrationMonitor->GetServiceProviderName(); - if( serviceProviderName.iSPName.Length() > 0 ) - { - LOGSTRING( "spname" ); - HBufC16* param = EscapeUtils::EscapeEncodeL( serviceProviderName.iSPName, EscapeUtils::EEscapeUrlEncoded ); - if(param) - { - LOGSTRING( "converted:" ); - LOGTEXT( *param ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KOperatorNameParameter ); - iWapPage.Append( *param ); - delete param; - } - } - LOGTEXT( currentNetworkInfo.iShortName ); - LOGTEXT( currentNetworkInfo.iLongName ); - - // Current operator name - if( currentNetworkInfo.iLongName.Length() > 0 ) - { - LOGSTRING( "current operator name" ); - HBufC16* param = EscapeUtils::EscapeEncodeL( currentNetworkInfo.iLongName, EscapeUtils::EEscapeUrlEncoded ); - if(param) - { - LOGSTRING( "converted:" ); - LOGTEXT( *param ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KCurrentOperatorNameParameter ); - iWapPage.Append( *param ); - delete param; - } - } - - //Append WebUtils Params to URL - AppendWebUtilParamsL(); - - - - // MSISDN - const RMobileONStore::TMobileONEntryV1& ownNumberInfo = iRegistrationMonitor->GetOwnNumberInfo(); - if( ownNumberInfo.iNumber.iTelNumber.Length() ) - { - LOGSTRING( "ownNumberInfo.iNumber.iTelNumber" ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KMSISDNParameter ); - iWapPage.Append( ownNumberInfo.iNumber.iTelNumber ); - } - - // Phone alias - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KPhoneAlias ); - iWapPage.Append( KPhoneAliasValue ); - - //Create online help based on Interactive or NonInteractive feature - OnlineHelpL(); - - LOGSTRING( "Exit from OpenWapBrowser" ); - } - - -// ----------------------------------------------------------------------------- -// CCMAppUI::DeleteServiceActivationInfoL -// -// ----------------------------------------------------------------------------- -// - -void CCMAppUi::DeleteServiceActivationInfoL() -{ - - // Reset values for service activation. Service activation should not be supported - // by online support since WDS Global server URL is hardcoded (help-portal server - // connecting to WDS) if service activation required for onlinesupport comment below - // statements for PnpProvUtil. - - CPnpProvUtil* prov = CPnpProvUtil::NewLC(); - - const TUint32 uidval = 0; - prov->SetApplicationUidL(uidval); - - - TBuf<2> buf(_L("")); - prov->SetProvAdapterAppIdL(buf); - - CleanupStack::PopAndDestroy(); - -} - - -// ----------------------------------------------------------------------------- -// CCMAppUI::AppendTokenAndNonceValL -// -// ----------------------------------------------------------------------------- -// - -void CCMAppUi::AppendTokenAndNonceValL() -{ - - - CPnpUtilImpl *pnpUtil = CPnpUtilImpl::NewLC(); - - - // TOKEN has to be sent: - // - When connecting through "initAccess" to www.help-portal.com/page1 - // - When connecting through the fallback APN to *.help-portal.com EXCEPT to www.help-portal.com - // -- This feature is needed for testing of provisioning over HTTP - // TOKEN should NOT be sent: - // - When connecting through "initAccess" to any other URL - // - When connecting through the fallback APN to pnpms.nokia.com - - // Changed: - // Token override allows now giving token even when not connecting through initAccess, - // so there is no need to allow TOKEN for demo purposes if token override is not on - - if( iTokenOverride // token override set on commandline params - || - // No token override: - ( iInitAccessPointUsed - && iServer.Compare( KDefaultServerString ) == 0 ) // connecting to www.help-portal.com - ) - { - // Add Token - LOGSTRING( "token" ); - TInt validitytime = pnpUtil->GetTokenValidityTime(); - TInt tokenvalue = 0; - TInt err = pnpUtil->CreateNewToken( validitytime, tokenvalue ); - if( err != KErrNone ) - { - LOGSTRING2( "CreateNewToken returned: %i", err ); - User::Leave( err ); - } - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KTokenParameter ); - iWapPage.AppendNum( tokenvalue ); - // Token validity - LOGSTRING( "token validity" ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KTokenValidityTimeParameter ); - iWapPage.AppendNum( validitytime ); - } - - - // The KEYINFO and NONCE should be SENT: - // - in all cases, also to "*help-portal.com" and through "initAccess". - - // Nonce - LOGSTRING( "nonce" ); - // validity time not used - TBuf8 nonce8; - TBuf nonce; - TRAPD( err, pnpUtil->CreateNewNonceL( 0, nonce8 ) ); - if( err != KErrNone ) - { - LOGSTRING2( "CreateNewNonceL leave code: %i", err ); - User::Leave( err ); - } - nonce.Copy( nonce8 ); - - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KNonceParameter ); - iWapPage.Append( nonce ); - - TBuf8 keyInfo8; - TBuf keyInfo; - pnpUtil->GetKeyInfoL( keyInfo8 ); - keyInfo.Copy( keyInfo8 ); - - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KKeyInfoParameter ); - iWapPage.Append( keyInfo ); - - CleanupStack::PopAndDestroy(); - -} - - -// ----------------------------------------------------------------------------- -// CCMAppUI::AppendSWandProductVersionL -// -// ----------------------------------------------------------------------------- -// - -void CCMAppUi::AppendDeviceInfoL() -{ - - const RMobilePhone::TMobilePhoneIdentityV1& phoneIdentity = iRegistrationMonitor->GetPhoneIdentity(); - - const TInt KManufLength = 128; - - // Device type (for example dType=NOKIAE60) - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KDeviceTypeParameter ); - - _LIT(KManufacturer, "Nokia"); - - TBuf manfacturer; - manfacturer.Append(phoneIdentity.iManufacturer); - - TBuf model; - - if(manfacturer.MatchF(KManufacturer)==KErrNotFound) - model.Append( phoneIdentity.iManufacturer ); - - - model.Append( phoneIdentity.iModel ); - - HBufC16* param_manf = EscapeUtils::EscapeEncodeL(model, EscapeUtils::EEscapeUrlEncoded ); - iWapPage.Append( *param_manf ); - delete param_manf; - - - //iWapPage.Append( phoneIdentity.iModel ); - - // Add symbian os version, for example: dType=NOKIAE60(Symbian 9.1) - LOGSTRING("Reading OS versions"); - TVersionBuf s60Version; - TVersionBuf symbianVersion; - TRAPD( err, TVersionStrings::GetUserAgentVersionsL( s60Version, symbianVersion ) ); - LOGSTRING2( "Error: %i", err ); - if( err == KErrNone ) - { - TBuf symbian; - symbian.Copy( symbianVersion ); - iWapPage.Append( KParenthesisOpen ); - iWapPage.Append( KSymbianOs ); - iWapPage.Append( symbian ); - iWapPage.Append( KParenthesisClose ); - } - - - if( iSwVersion.Length() > 0 ) - { - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KSW ); - HBufC16* param_swversion = EscapeUtils::EscapeEncodeL(iSwVersion, EscapeUtils::EEscapeUrlEncoded ); - iWapPage.Append( *param_swversion ); - delete param_swversion; - } - LOGTEXT(iSwVersion); - - // Product model - if( iProductModel.Length() > 0 ) - { - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KHW ); - iWapPage.Append( iProductModel ); - } -} - - -// ----------------------------------------------------------------------------- -// CCMAppUI::LaunchMiniBrowserL() -// -// ----------------------------------------------------------------------------- -// - -void CCMAppUi::LaunchMiniBrowserL() -{ - // create a mini browser for downloading provisioned settings - // from a supporting service - // mini browser has to be a member object as it has to exist - // during the async http request-response cycle - LOGSTRING2( "opening mini-browser, using AP: %i", iEngine->IapId() ); - if( !iMiniBrowser ) - { - RSocketServ& socketServ = iEngine->SocketServ(); - RConnection& connection = iEngine->Connection(); - iMiniBrowser = CMiniBrowser::NewL( *this, socketServ, connection ); - } - - LOGSTRING( "Calling HttpGetL" ); - if( iEngine->ProxyDefined() ) - { - iMiniBrowser->HttpGetL( iWapPage, iEngine->ProxyIp(), iEngine->ProxyPort() ); - } - else - { - iMiniBrowser->HttpGetL( iWapPage ); - } -} - - - -// ----------------------------------------------------------------------------- -// CCMAppUI::LaunchS60WebBrowser() -// -// ----------------------------------------------------------------------------- -// -void CCMAppUi::LaunchS60WebBrowserL() -{ - LOGSTRING2( "opening browser, using AP: %i", iAccessPoint ); - iEngine->Disconnect(); - - // Append access point - - #if ( !defined (__WINS__) && !defined (__WINSCW) ) - iAccessPoint = iEngine->ReturnIAPID(); - iWapPage.Append( KSpace ); - iWapPage.AppendNumUC( iAccessPoint ); - #endif - - - - TApaTaskList taskList( CEikonEnv::Static()->WsSession() ); - TApaTask task = taskList.FindApp( KCRUidBrowser ); - - if ( task.Exists() ) - { - TBuf8<1024> wapPage; - wapPage.Copy( iWapPage.Left( 1024 ) ); - LOGSTRING( "OpenWapBrowserL sending message to Browser" ); - task.SendMessage( TUid::Uid( 0 ), wapPage ); // Uid is not used - } - else - { - LOGSTRING( "OpenWapBrowserL Launching Browser" ); - RApaLsSession appArcSession; - User::LeaveIfError( appArcSession.Connect() ); - CleanupClosePushL( appArcSession ); - TThreadId tid; - LOGSTRING( "before startDocument" ); - LOGTEXT(iWapPage); - - appArcSession.StartDocument( iWapPage, KCRUidBrowser, tid ); - LOGSTRING( "Document started" ); - CleanupStack::PopAndDestroy( &appArcSession ); - } - - // Browser was started, we are free to exit - iStartingBrowser = ETrue; - //DelayedExit(); - Exit(); -} - - -// ----------------------------------------------------------------------------- -// CCMAppUI::AppendWebUtilParamsL() -// -// ----------------------------------------------------------------------------- -// - -void CCMAppUi::AppendWebUtilParamsL() -{ - // language - // HttpFilterCommonStringsExt::GetLanguageString is introduced in S60 2.6 - RStringPool stringPool; - LOGSTRING("open string pool"); - stringPool.OpenL( HttpFilterCommonStringsExt::GetLanguageTable() ); - CleanupClosePushL( stringPool ); - LOGSTRING("GetLanguageString"); - RStringF languageString = HttpFilterCommonStringsExt::GetLocaleLanguage( stringPool ); - CleanupClosePushL( languageString ); - LOGSTRING("GetLanguageString - done"); - LOGTEXT( languageString.DesC() ); - const TPtrC8& language = languageString.DesC(); - LOGSTRING("languageString.DesC - done"); - LOGTEXT( language ); - if( language.Length() ) - { - const TInt KMaxLanguageLength(5); - TBuf lang; - lang.Copy( language.Left( KMaxLanguageLength ) ); - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KLanguageParameter ); - iWapPage.Append( lang ); - } - CleanupStack::PopAndDestroy(); // languageString.Close - CleanupStack::PopAndDestroy(); // stringPool.Close - - // User Agent profile - // Example value: "http://nds1.nds.nokia.com/uaprof/N6600r100.xml" - LOGSTRING( "uaProf" ); - // Assume 128 chars is big enough - TBuf<128> uaProf; - CRepository* cenRep = CRepository::NewL( KCRUidWebUtils ); - CleanupStack::PushL( cenRep ); - TInt err = cenRep->Get( KWebUtilsUaProf, uaProf ); - CleanupStack::PopAndDestroy( cenRep ); - LOGSTRING2( "cenRep->Get err: %i", err ); - LOGTEXT( uaProf ); - if( uaProf.Length() ) - { - HBufC16* param = EscapeUtils::EscapeEncodeL( uaProf, EscapeUtils::EEscapeUrlEncoded ); - LOGSTRING( "converted:" ); - LOGTEXT( *param ); - if( param ) - { - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KUAProfParameter ); - iWapPage.Append( *param ); - delete param; - } - } - - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::OnlineHelpL() -// -// ----------------------------------------------------------------------------- -// - -void CCMAppUi::OnlineHelpL() -{ - // Interactive option (silent mode) - iWapPage.Append( KParameterDelimeter ); - iWapPage.Append( KInteractiveSessionParameter ); - if( iAutoStart ) - { - iWapPage.Append( KNonInteractiveSession ); - } - else - { - iWapPage.Append( KInteractiveSession ); - } - -#ifdef _DEBUG - for( TInt i(0); i < iWapPage.Length(); i += 128 ) - { - LOGTEXT( iWapPage.Right( iWapPage.Length() - i ) ); - } -#endif - - if( iAutoStart ) - { - LaunchMiniBrowserL(); - } - else - { - LaunchS60WebBrowserL(); - } -} - -// ----------------------------------------------------------------------------- -// CCMAppUI::MiniBrowserRequestDoneL -// Called after MiniBrowser has handled a request for an URL -// (a call to HttpGetL resulted a successful http request-response) -// ----------------------------------------------------------------------------- -// -void CCMAppUi::MiniBrowserRequestDoneL() - { - LOGSTRING( "CCMAppUi::MiniBrowserRequestDoneL" ); - - // Leaves from here propagate to MiniBrowserUnhandledLeave (which causes app exit) - - // Check we have not exceed the limit for maximum number of redirects - if( iRedirectsLeft <= 0 ) - { - User::Leave( KErrOverflow ); - } - - iRedirectsLeft--; - - // Leaves with KErrNotFound if there is no valid report URL - HBufC* reportUrl = iMiniBrowser->GetReportUrlLC(); - LOGSTRING( "Calling HttpGetL" ); - if( iEngine->ProxyDefined() ) - { - iMiniBrowser->HttpGetL( *reportUrl, iEngine->ProxyIp(), iEngine->ProxyPort() ); - } - else - { - iMiniBrowser->HttpGetL( *reportUrl ); - } - CleanupStack::PopAndDestroy( reportUrl ); - } - - -// ----------------------------------------------------------------------------- -// CCMAppUI::MiniBrowserErrorL -// ----------------------------------------------------------------------------- -// -void CCMAppUi::MiniBrowserErrorL( const TInt aError ) - { - LOGSTRING2( "CCMAppUi::MiniBrowserErrorL: %i", aError ); - - // If there is no valid report url the KErrNotFound from GetReportUrlLC - // propagates to MiniBrowserUnhandledLeave and causes an Exit - HBufC* reportUrl = iMiniBrowser->GetReportUrlLC(); - if( iEngine->ProxyDefined() ) - { - iMiniBrowser->HttpGetL( *reportUrl, iEngine->ProxyIp(), iEngine->ProxyPort() ); - } - else - { - iMiniBrowser->HttpGetL( *reportUrl ); - } - CleanupStack::PopAndDestroy( reportUrl ); - // Keep compiler happy - (void)aError; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::MiniBrowserErrorL -// Called if a call to MiniBrowserRequestDoneL or MiniBrowserErrorL leaves -// ----------------------------------------------------------------------------- -// -void CCMAppUi::MiniBrowserUnhandledLeave( const TInt aError ) - { - LOGSTRING2( "CCMAppUi::MiniBrowserUnhandledLeave: %i", aError ); - //DelayedExit(); - Exit(); - // Keep compiler happy - (void)aError; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::CheckDefaultAccessPointL() -// Checks defaul access point for the browser -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint32 CCMAppUi::CheckDefaultAccessPointL() - { - LOGSTRING( "CCMAppUi::CheckDefaultAccessPointL()" ); - TInt errorCode( KErrNone ) ; - TUint32 accessPoint; - TInt defaultAccessPoint( KErrNotFound ); - CCommsDatabase* theDb; - CCommsDbTableView* theView; - CCommsDbTableView* theDefaultRoamingView; - - TUint32 returnValue( 0 ); - TInt selectionMode = 0; - - CRepository* browserRepository = CRepository::NewLC( KCRUidBrowser ); - User::LeaveIfError( browserRepository->Get( KBrowserDefaultAccessPoint, defaultAccessPoint ) ); - - // Also check with Selection mode if selection mode is always ask then go for User Access - User::LeaveIfError(browserRepository->Get( KBrowserAccessPointSelectionMode, selectionMode )); - - CleanupStack::PopAndDestroy( browserRepository ); - - if(selectionMode == 1) - User::Leave(KErrNotSupported); - - - theDb = CCommsDatabase::NewL( ); - CleanupStack::PushL( theDb ); - - theView = theDb->OpenViewMatchingUintLC( TPtrC( WAP_IP_BEARER ), - TPtrC( WAP_ACCESS_POINT_ID ), - defaultAccessPoint ); - - User::LeaveIfError( theView->GotoFirstRecord() ); - - theView->ReadUintL( TPtrC( WAP_IAP ), accessPoint); - returnValue = accessPoint; - iAccessPoint = defaultAccessPoint; - - CleanupStack::PopAndDestroy( theView ); - - // check type - theView = theDb->OpenViewMatchingUintLC( TPtrC(IAP), - TPtrC(COMMDB_ID), - accessPoint ); - errorCode = theView->GotoFirstRecord(); - if ( errorCode == KErrNone ) - { - TUint32 bearerId; - theView->ReadUintL( TPtrC(IAP_BEARER), bearerId ); - CleanupStack::PopAndDestroy( theView ); - - theView = theDb->OpenViewMatchingUintLC( TPtrC(OUTGOING_GPRS), - TPtrC(COMMDB_ID), - bearerId ); - errorCode = theView->GotoFirstRecord(); - if ( errorCode == KErrNone ) - { - TUint32 apType; - theView->ReadUintL( TPtrC(GPRS_AP_TYPE), apType ); - CleanupStack::PopAndDestroy( theView ); - LOGSTRING2( "apType:%i", apType ); - } - else - { - LOGSTRING2( "error in opening OUTGOING_GPRS:%i", errorCode ); - CleanupStack::PopAndDestroy( theView ); - } - } - else - { - LOGSTRING2( "error in opening WAP_IAP:%i", errorCode ); - CleanupStack::PopAndDestroy( theView ); - } - // type check done - - if( iNetworkStatus == CCMRegistrationMonitor::ERoaming ) - { - // check the name for roaming support - CApAccessPointItem* apItem = CApAccessPointItem::NewLC(); - CApDataHandler* apDataHandler = CApDataHandler::NewLC( *theDb ); - apDataHandler->AccessPointDataL( defaultAccessPoint, *apItem ); - const HBufC* apName = apItem->ReadConstLongTextL( EApGprsAccessPointName ); - // ownership of apName stays in apItem, so no delete here for apName - LOGSTRING( "default apn:" ); - LOGTEXT( *apName ); - // check if it ends with ".gprs" == roaming safe - TBuf<10> dotGprs; - dotGprs.Append( KDot ); - dotGprs.Append( KGprs ); - TInt offset = apName->Find( dotGprs ); - TInt expectedOffset = apName->Length() - dotGprs.Length(); - if( offset != expectedOffset ) - { - // we need to use a roaming safe version of the ap - // check if allready have made it - LOGSTRING( "Checking for existing KDefaultRoamingName" ); - theDefaultRoamingView = theDb->OpenViewMatchingTextLC( TPtrC( WAP_ACCESS_POINT ), - TPtrC( COMMDB_NAME ), - KDefaultRoamingName ); - errorCode = theDefaultRoamingView->GotoFirstRecord(); - if( errorCode == KErrNone ) - { - LOGSTRING( "found, removing it" ); - TUint32 defaultRoamingId; - theDefaultRoamingView->ReadUintL( TPtrC(COMMDB_ID), defaultRoamingId); - LOGSTRING( "accesspoint id read done" ); - - apDataHandler->RemoveAPL( defaultRoamingId ); - } - - LOGSTRING( "create it" ); - CApAccessPointItem* newAp = CApAccessPointItem::NewLC(); - - newAp->CopyFromL( *apItem ); - - const RMobilePhone::TMobilePhoneSubscriberId& imsi = iRegistrationMonitor->GetImsi(); - TBuf newName; - newName.Append( *apName ); - newName.Append( KDot ); - newName.Append( KMNC0 ); - newName.Append( imsi.Mid(3,2) ); - newName.Append( KDot ); - newName.Append( KMCC ); - newName.Append( imsi.Mid(0,3) ); - newName.Append( KDot ); - newName.Append( KGprs ); - newAp->SetNamesL( KDefaultRoamingName ); - newAp->WriteTextL( EApWapAccessPointName, KDefaultRoamingName ); - newAp->WriteLongTextL( EApGprsAccessPointName, newName ); - LOGSTRING( "calling update" ); - TInt retries = KRetryCount; - TRAPD( err, apDataHandler->CreateFromDataL(*newAp) ); - while( (err == KErrLocked) && retries-- ) - { - User::After( KRetryWait ); - TRAP( err, apDataHandler->CreateFromDataL(*newAp) ); - } - if( err != KErrNone ) - { - User::Leave( err ); - } - LOGSTRING( "calling update done" ); - - newAp->ReadUint( EApWapIap, returnValue ); - newAp->ReadUint( EApWapAccessPointID, iAccessPoint ); - - LOGSTRING( "update done" ); - CleanupStack::PopAndDestroy( newAp ); - CleanupStack::PopAndDestroy( theDefaultRoamingView ); - } - CleanupStack::PopAndDestroy( apDataHandler ); - CleanupStack::PopAndDestroy( apItem ); - } - CleanupStack::PopAndDestroy( theDb ); - - - LOGSTRING2( "Check default access point returns %i", returnValue ); - LOGSTRING2( "iAccessPoint %i", iAccessPoint ); - - return returnValue; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::InitAccessPointL() -// Cheks the id of accesspoint which APN is initAccess -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint32 CCMAppUi::InitAccessPointL() - { - LOGSTRING( "CCMAppUi::InitAccessPointL()" ); - if(iInitAccessOn) - { - CCommsDatabase* theDb; - - theDb = CCommsDatabase::NewL(); - CleanupStack::PushL( theDb ); - - TUint32 initAP( 0 ); - - TBool value( EFalse ); - TRAPD( err, value = CheckInitAccessPointL(*theDb, initAP) ); - - if( value == EFalse ) - { - CreateInitAccessPointL( *theDb ); - TRAP( err, CheckInitAccessPointL( *theDb, initAP ) ); - } - else - { - LOGSTRING( "Init AP was ok" ); - } - - - CleanupStack::PopAndDestroy( theDb ); - - return( initAP ); - } - else - { - LOGSTRING( "CCMAppUi::InitAccessPointL Init Access feature off" ); - return KErrNone; - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::CheckInitAccessPointL() -// Cheks the settings of accesspoint which APN is initAccess -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCMAppUi::CheckInitAccessPointL( CCommsDatabase& aDb, TUint32& aAccessPoint ) - { - LOGSTRING( "CCMAppUi::CheckInitAccessPointL" ); -if(iInitAccessOn) - { - CCommsDbTableView* theView; - CCommsDbTableView* iapView; - CCommsDbTableView* wapIpBearerView; - TInt errorCode; - TBool firstTime = ETrue; // crude solution - TUint32 tableId; - - TBuf initAccess; - initAccess.Append( KInitAccess ); - - const RMobilePhone::TMobilePhoneSubscriberId& imsi = iRegistrationMonitor->GetImsi(); - if( iNetworkStatus == CCMRegistrationMonitor::ERoaming ) - { - initAccess.Append( KDot ); - initAccess.Append( KMNC0 ); - initAccess.Append( imsi.Mid(3,2) ); - initAccess.Append( KDot ); - initAccess.Append( KMCC ); - initAccess.Append( imsi.Mid(0,3) ); - initAccess.Append( KDot ); - initAccess.Append( KGprs ); - } - - theView = aDb.OpenViewMatchingTextLC( TPtrC( OUTGOING_GPRS), - TPtrC( GPRS_APN ), - initAccess ); - errorCode = theView->GotoFirstRecord(); - - FOREVER // will exit when no more records found or the first one not found or a valid found - { - if( !firstTime ) - { - LOGSTRING( "trying to get next record" ); - errorCode = theView->GotoNextRecord(); - if( errorCode != KErrNone ) - { - CleanupStack::PopAndDestroy( theView ); - return( EFalse ); - } - LOGSTRING( "checking next record" ); - } - firstTime = EFalse; - - if ( errorCode == KErrNone ) - { - theView->ReadUintL( TPtrC( COMMDB_ID ), tableId ); - iapView = aDb.OpenViewMatchingUintLC(TPtrC( IAP ), - TPtrC( IAP_SERVICE ), - tableId ); - errorCode = iapView->GotoFirstRecord(); - - if ( errorCode == KErrNone ) - { - iapView->ReadUintL( TPtrC( COMMDB_ID ), aAccessPoint ); - wapIpBearerView = aDb.OpenViewMatchingUintLC(TPtrC( WAP_IP_BEARER ), - TPtrC( WAP_IAP ), - aAccessPoint ); - errorCode = wapIpBearerView->GotoFirstRecord(); - if ( errorCode == KErrNone ) - { - wapIpBearerView->ReadUintL( TPtrC( WAP_ACCESS_POINT_ID ), iAccessPoint ); - } - else - { - LOGSTRING( "wapIpBearerView->GotoFirstRecord()" ); - CleanupStack::PopAndDestroy( wapIpBearerView ); // wapIpBearerView - CleanupStack::PopAndDestroy( iapView ); // iapView - continue; - } - CleanupStack::PopAndDestroy(); // wapIpBearerView - } - else - { - LOGSTRING( "iapView->GotoFirstRecord() failed" ); - CleanupStack::PopAndDestroy( iapView ); // iapView - continue; - } - - CleanupStack::PopAndDestroy( iapView ); // iapView - } - else - { - LOGSTRING( "theView->GotoFirstRecord() failed" ); - CleanupStack::PopAndDestroy( theView ); - return( EFalse ); - } - - if( iServer == KDefaultServerString ) - { - LOGSTRING( "checking that init access not modified" ); - // check also user name, prompt password, password, authentication, homepage - TBuf8<100> userName; - theView->ReadTextL( TPtrC(GPRS_IF_AUTH_NAME), userName ); - if( userName.Length() != 0 ) - { - LOGSTRING( "username length was not 0" ); - continue; - } - TBool promptPasswd; - theView->ReadBoolL( TPtrC(GPRS_IF_PROMPT_FOR_AUTH), promptPasswd ); - if( promptPasswd != EFalse ) - { - LOGSTRING( "promptPasswd was not EFalse" ); - continue; - } - TBuf8<100> passwd; - theView->ReadTextL( TPtrC(GPRS_IF_AUTH_PASS), passwd ); - if( passwd.Length() != 0 ) - { - LOGSTRING( "passwd length was not 0" ); - continue; - } - LOGSTRING( "init access not modified" ); - } - - CleanupStack::PopAndDestroy( theView ); - return( ETrue ); - } - } - else - { - LOGSTRING( "CCMAppUi::CheckInitAccessPointL Init Access feature off" ); - return EFalse; - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::CreateInitAccessPointL( CCommsDatabase& aDb ) -// Creates the Init Access point to comms db -// ----------------------------------------------------------------------------- -// -TUint32 CCMAppUi::CreateInitAccessPointL( CCommsDatabase& aDb ) - { - if(iInitAccessOn) - { - CApDataHandler* apDataHandler = CApDataHandler::NewLC( aDb ); - CApAccessPointItem* apItem = CApAccessPointItem::NewLC(); - - TBuf initAccess; - initAccess.Append( KInitAccess ); - - if( iNetworkStatus == CCMRegistrationMonitor::ERoaming ) - { - const RMobilePhone::TMobilePhoneSubscriberId& imsi = iRegistrationMonitor->GetImsi(); - initAccess.Append( KDot ); - initAccess.Append( KMNC0 ); - initAccess.Append( imsi.Mid(3,2) ); - initAccess.Append( KDot ); - initAccess.Append( KMCC ); - initAccess.Append( imsi.Mid(0,3) ); - initAccess.Append( KDot ); - initAccess.Append( KGprs ); - } - - if( iNetworkStatus == CCMRegistrationMonitor::ERoaming ) - { - apItem->SetNamesL( KInitAccessRoamingName ); - } - else - { - apItem->SetNamesL( KInitAccess ); - } - - apItem->WriteLongTextL( EApGprsAccessPointName, initAccess ); - - LOGSTRING( "CreateInitAccessPointL, setting bearer type" ); - apItem->SetBearerTypeL( EApBearerTypeGPRS ); - LOGSTRING( "CreateInitAccessPointL, setting isp type type" ); - apItem->WriteUint( EApIspIspType, EIspTypeInternetOnly ); - LOGSTRING( "CreateInitAccessPointL, creating" ); - apDataHandler->CreateFromDataL( *apItem ); - - CleanupStack::PopAndDestroy( apItem ); - CleanupStack::PopAndDestroy( apDataHandler ); - - return apItem->WapUid(); - } - else - { - LOGSTRING( "CCMAppUi::CreateInitAccessPointL Init Access feature off" ); - return KErrNone; - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::ReadAccessPointFromPreferencesL() -// Reads the accesspoint value from Connection preferences table -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCMAppUi::ReadAccessPointFromPreferencesL() - { - LOGSTRING( "CCMAppUi::ReadAccessPointFromPreferencesL()" ); - TInt errorCode( KErrGeneral ); - TInt returnValue; - CCommsDatabase* theDb; - CCommsDbConnectionPrefTableView* thePrefView; - CCommsDbTableView* theView; - CCommsDbConnectionPrefTableView::TCommDbIapConnectionPref pref; - CCommsDbConnectionPrefTableView::TCommDbIapBearer bearer; - - theDb = CCommsDatabase::NewL( ); - CleanupStack::PushL( theDb ); - thePrefView = theDb-> - OpenConnectionPrefTableViewOnRankLC( ECommDbConnectionDirectionOutgoing, TUint( 1 )); - returnValue = thePrefView -> GotoFirstRecord(); - if ( returnValue == KErrNone ) - { - thePrefView->ReadConnectionPreferenceL( pref ); - bearer = pref.iBearer; - LOGSTRING2("ReadAccessPointFromPreferencesL: iap %i", bearer.iIapId ); - - theView = theDb->OpenViewMatchingUintLC( TPtrC( WAP_IP_BEARER ), - TPtrC( WAP_IAP ), - bearer.iIapId ); - errorCode = theView->GotoFirstRecord(); - if ( errorCode == KErrNone ) - { - theView->ReadUintL( TPtrC( WAP_ACCESS_POINT_ID ), iAccessPoint ); - } - - CleanupStack::PopAndDestroy( theView ); - CleanupStack::PopAndDestroy( thePrefView ); - CleanupStack::PopAndDestroy( theDb ); - } - - return returnValue; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::CheckIniFileSettings -// cheks what kind of information exsist in configuration managers ini file -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::CheckIniFileSettingsL() - { - LOGSTRING( "CCMAppUi::CheckIniFileSettingsL()" ); - TInt roaming(0); - - TInt errorCodeRoaming = GetIntValue( KOnlineSupportRoaming, roaming ); - LOGSTRING2("Errorcode roaming %i", errorCodeRoaming ); - - if ( errorCodeRoaming == KErrNone ) - { - iFirstStartInHomeNetwork = ETrue; - } - } - - -TInt CCMAppUi::StoreIntValue( const TUint32 aCrKey, const TInt aValue ) - { - return iRepository->Set( aCrKey, aValue ); - } - -TInt CCMAppUi::StoreStringValue( const TUint32 aCrKey, const TDesC& aValue ) - { - return iRepository->Set( aCrKey, aValue ); - } - -TInt CCMAppUi::GetIntValue( const TUint32 aCrKey, TInt& aValue ) - { - return iRepository->Get( aCrKey, aValue ); - } - -TInt CCMAppUi::GetStringValue( const TUint32 aCrKey, TDes& aValue ) - { - return iRepository->Get( aCrKey, aValue ); - } - - -// ----------------------------------------------------------------------------- -// CCMAppUI::ShowWaitDialogL -// Shows wait note -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::ShowWaitDialogL() - { - LOGSTRING( "Enter to CCMAppUi::ShowWaitDialogL"); - if( !iAutoStart ) - { - HBufC* msgText = CEikonEnv::Static()-> - AllocReadResourceLC( R_CONFMANAGER_WAITNOTE ); - - if (iCommonDialogMonitor) - { - iCommonDialogMonitor->Cancel(); - delete iCommonDialogMonitor; - iCommonDialogMonitor = NULL; - } - // instantiate the active object CGlobalConfirmationObserver - iCommonDialogMonitor = CCMDialogMonitor::NewL( *this ); - - iCommonDialogMonitor->SetDialogMode(CCMDialogMonitor::EWait); - // SetActive - iCommonDialogMonitor->Start(); - - if (!iGlobalWaitNote) - { - iGlobalWaitNote = CAknGlobalNote::NewL(); - } - - iWaitNoteId = iGlobalWaitNote->ShowNoteL( - iCommonDialogMonitor->iStatus, - EAknGlobalWaitNote, - *msgText ); - - CleanupStack::PopAndDestroy( msgText ); - } - LOGSTRING( "Exit from ShowWaitDialogL" ); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::StartUpOperationL() -// Shows wait note -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::StartUpOperationL() - { - LOGSTRING( "CCMAppUi::StartUpOperationL" ); - CheckIniFileSettingsL(); - - iApplicationStatus = EAppStatusMonitoring; - iRegistrationMonitor->StartMonitoring(); - - // Start time-out timer - StartTimeOut( KMonitoringTimeOut ); - LOGSTRING( "Monitoring started" ); - } - -// ----------------------------------------------------------------------------- -// CCMAppUi::SetServerString() -// Sets server string -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::SetServerString(const TDesC& aServer) - { - if (aServer.Length()>KMaxServerString) - { - iServer.Copy( TPtrC( aServer.Left( KMaxServerString ) ) ); - } - else - { - iServer.Copy( TPtrC( aServer ) ); - } - LOGTEXT (iServer); - } - -// ----------------------------------------------------------------------------- -// CCMAppUi::SetPageString() -// Sets page string -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::SetPageString(const TDesC& aPage) - { - if (aPage.Length() > KMaxPageString) - { - iPage = TPtrC( aPage.Left( KMaxPageString ) ); - } - else - { - iPage = TPtrC( aPage ); - } - LOGTEXT (iPage); - } - -// ----------------------------------------------------------------------------- -// CCMAppUi::SetConnectReason() -// Sets connect reason -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::SetConnectReason(TConnectReason aReason) - { - iConnectReason = aReason; - } - -// ----------------------------------------------------------------------------- -// CCMAppUi::SetQueryString() -// Sets query string -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::SetQueryString(const TDesC& aQuery) - { - if ( aQuery.Length() > KMaxQueryString ) - { - iQuery = TPtrC( aQuery.Left( KMaxQueryString ) ); - } - else - { - iQuery = TPtrC( aQuery ); - } - LOGTEXT (iQuery); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::ConnectionResultL -// ----------------------------------------------------------------------------- -// -void CCMAppUi::ConnectionResultL( const TInt aErrorCode ) - { - if( iApplicationStatus == EAppStatusClosing ) - { - return; - } - - if( iTimer->IsActive() ) - { - iTimer->Cancel(); - } - - iApplicationStatus = EAppStatusInactive; - - LOGSTRING( "CCMAppUi::ConnectionResultL" ); - LOGSTRING2( "iConnectingVia:%i", iConnectingVia ); - LOGSTRING2( "aErrrorCode:%i", aErrorCode ); - - - if( iConnectingVia == EConnectingViaUser ) // this was the last access point to test - { - if( aErrorCode != KErrNone ) - { - LOGSTRING( "ErrorNoteConnectionL" ); - ErrorNoteConnectionL(); - LOGSTRING( "RestoreSettings done" ); - //DelayedExit(); - Exit(); - return; - } - else - { - ReadAccessPointFromPreferencesL(); - } - } - - if( aErrorCode == KErrNone ) - { - if( iGlobalWaitNote ) - { - iGlobalWaitNote->CancelNoteL(iWaitNoteId); - delete iGlobalWaitNote; - iGlobalWaitNote = NULL; - } - /* - if( iConnectReason == CCMAppUi::EConnectReasonFirstBoot ) - { - TApaTaskList taskList( CEikonEnv::Static()->WsSession() ); - TApaTask task = taskList.FindApp( KUidConfigurationManager ); - if( iWaitDialog && !iWaitDialogProcessFinished ) - { - LOGSTRING("iWaitDialog->ProcessFinishedL()"); - iWaitDialogProcessFinished = ETrue; - iWaitDialog->ProcessFinishedL(); - } - - - task.BringToForeground(); - } - - // this test succeeded, open the browser - LOGSTRING( "Test succeeded, closing waitdialog" ) - if( iWaitDialog && !iWaitDialogProcessFinished ) - { - LOGSTRING("iWaitDialog->ProcessFinishedL()"); - iWaitDialogProcessFinished = ETrue; - iWaitDialog->ProcessFinishedL(); - }*/ - OpenWapBrowserL(); - } - else - { - // failed, continue to next test - iEngine->Disconnect(); - InitiateNextConnectionTestL(); - LOGSTRING( "InitiateNextConnectionTestL done" ); - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::UnhandledLeave -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::UnhandledLeave( TInt aErrorCode ) - { - LOGSTRING2( "CCMAppUi::UnhandledLeave: %i", aErrorCode ); - - TRAP_IGNORE( ErrorNoteUnknownL( aErrorCode ) ); - //DelayedExit(); - Exit(); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::StatusChanged -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::RegistrationMonitoringDoneL( CCMRegistrationMonitor::TNetworkStatus aNetworkStatus ) - { - LOGSTRING2( "CCMAppUi::RegistrationMonitoringDoneL %i", aNetworkStatus ); - - iNetworkStatus = aNetworkStatus; - - switch( aNetworkStatus ) - { - case CCMRegistrationMonitor::EStatusUnknown: - case CCMRegistrationMonitor::ERequestCancelled: - case CCMRegistrationMonitor::ERoaming: - case CCMRegistrationMonitor::EHomenetwork: - { - iNetworkStatusOk = ETrue; - if( iApplicationStatus == EAppStatusClosing ) - { - return; - } - if( iTimer->IsActive() ) - { - iTimer->Cancel(); - } - iRegistrationMonitor->StopMonitoring(); - break; - } - default: - break; - }; - LOGSTRING( "Status changed" ); - InitiateNextConnectionTestL(); - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::RegistrationReportErrorL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::RegistrationReportErrorL( const CCMRegistrationMonitor::TMonitoringStatus aStatus, const TInt aError ) - { - LOGSTRING( "CCMAppUi::RegistrationReportErrorL " ); - LOGSTRING2( "Registration monitor failed: %i", aStatus ); - LOGSTRING2( "error: %i", aError ); - LOGSTRING2( "iApplicationStatus: %i", iApplicationStatus ); - - if( iApplicationStatus != EAppStatusClosing ) - { - iApplicationStatus = EAppStatusInactive; - if( aError == KErrCancel ) - { - //ErrorNoteNetworkL(); - ErrorNoteConnectionL(); - } - else - { - ErrorNoteUnknownL(aError); - } - //DelayedExit(); - Exit(); - } - // Keep compiler happy - (void)aStatus; - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::DynInitMenuPaneL -// Takes care of menu handling. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::DynInitMenuPaneL( - TInt /*aResourceId*/, - CEikMenuPane* /*aMenuPane*/ - ) - { - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::HandleCommandL -// Handles commands -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::HandleCommandL( TInt /*aCommand*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::HandleKeyEventL -// Handles key events -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TKeyResponse CCMAppUi::HandleKeyEventL( - const TKeyEvent& /*aKeyEvent*/, // aKeyEvent Event to handled. - TEventCode /*aType*/) // aType Type of the key event. - { - return EKeyWasNotConsumed; - } - - -// ----------------------------------------------------------------------------- -// CCMAppUI::WaitDialogDismissedL -// Handles key events -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::WaitDialogDismissedL( TInt aButtonId ) - { - LOGSTRING2( "CCMAppUi::WaitDialogDismissedL %i", aButtonId ); - LOGSTRING2( "iApplicationStatus %i", iApplicationStatus ); - - if( iApplicationStatus == EAppStatusClosing ) - { - LOGSTRING("Already closing"); - return; - } - - if( iTimer->IsActive() ) - { - iTimer->Cancel(); - } - - if( aButtonId == EAknSoftkeyCancel /*EConfmSoftkeyCancel*/ - || aButtonId == EAknSoftkeyExit ) - { - // User pressed Cancel to iWaitDialog - LOGSTRING("EConfmSoftkeyCancel"); - - // iWaitDialog is already being destroyed, do not destroy again - //iWaitDialogProcessFinished = ETrue; - - iEngine->Disconnect(); - //DelayedExit(); - Exit(); - return; - } - - if ( iApplicationStatus == EAppStatusMonitoring ) - { - LOGSTRING("EAppStatusMonitoring"); - //DelayedExit(); - Exit(); - } - else if ( iApplicationStatus == EAppStatusConnecting ) - { - LOGSTRING("EAppStatusConnecting"); - iEngine->Disconnect(); - //DelayedExit(); - Exit(); - } - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::HandleGainingForeground -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::HandleGainingForeground() - { - LOGSTRING( "CCMAppUi::HandleGainingForeground" ); - #ifndef _DEBUG // if urel -> hide application in silent mode - if( iAutoStart ) - { - // prevent user from switching to ServiceHelp application - // when using silent mode by always sending ServiceHelp to background - TApaTaskList taskList( CEikonEnv::Static()->WsSession() ); - TApaTask task = taskList.FindApp( KUidConfigurationManager ); - if( task.Exists() ) - { - task.SendToBackground(); - } - } - #endif - } - -// ----------------------------------------------------------------------------- -// CCMAppUI::HandleLosingForeground -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::HandleLosingForeground() - { - LOGSTRING( "CCMAppUi::HandleLosingForeground" ); - } - -void CCMAppUi::CommonDialogDismissedL( const CCMDialogMonitor::TDialogMode aDialog, const TInt aStatusCode ) - { - LOGSTRING( "CCMAppUi::CommonDialogDismissedL" ); - if( aDialog == CCMDialogMonitor::EConfirmation ) - { - if( aStatusCode == EAknSoftkeyYes ) - { - StartTimeOut( KStartUpTimeOut ); - ShowWaitDialogL(); - } - else - { - Exit(); - } - } - else if ( aDialog == CCMDialogMonitor::EWait ) - { - // cancel - WaitDialogDismissedL( aStatusCode ); - } - } - - -// ----------------------------------------------------------------------------- -// CCMAppUI::FetchProductModelAndSwVersionL -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCMAppUi::FetchProductModelAndSwVersionL() - { - LOGSTRING( "CCMAppUi::FetchProductModelAndSwVersionL - begin" ); - iSwVersion.Zero(); - iProductModel.Zero(); - - HBufC* tmpVersion = HBufC::NewLC( KSysUtilVersionTextLength ); - TPtr ptr( tmpVersion->Des() ); - User::LeaveIfError( SysUtil::GetSWVersion( ptr ) ); - LOGTEXT(ptr); - - _LIT(KVerStrStart,"V "); - _LIT(KVerStrEnd,"\n"); - - TInt pos1 = tmpVersion->Find(KVerStrStart); - TInt pos2 = tmpVersion->Find(KVerStrEnd); - TInt verlen = ((TDesC)(KVerStrStart)).Length(); - - if( pos1==KErrNotFound) // Version does not start with "V " - { - pos1=0; - verlen=0; - } - - if( (pos1!=KErrNotFound) - && (pos2!=KErrNotFound) - && (pos2 > (pos1 + verlen) ) - ) - { - pos2 -= (verlen + pos1); - TPtrC ptrSw = ptr.Mid(pos1+verlen,pos2); - iSwVersion.Append(ptrSw); - LOGTEXT( iSwVersion); - - TPtrC ptrSeek(ptr); - pos1 = ptrSeek.Find(KVerStrEnd); - if(pos1>=0) - { - ptrSeek.Set(ptrSeek.Mid(pos1+1)); - pos1 = ptrSeek.Find(KVerStrEnd); - if( pos1 >= 0 ) - { - ptrSeek.Set(ptrSeek.Mid(pos1+1)); - pos1 = ptrSeek.Find(KVerStrEnd); - if( pos1 < 0 ) - { - ptrSeek.Set(ptrSeek.Mid(1)); - iProductModel.Append(ptrSeek); - } - else if( pos1 > 0 ) - { - ptrSeek.Set(ptrSeek.Mid(1,pos1-1)); - iProductModel.Append(ptrSeek); - } - LOGTEXT(iProductModel); - } - } - - } - - CleanupStack::PopAndDestroy(); - LOGSTRING( "CCMAppUi::FetchProductModelAndSwVersionL - end" ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// None - - -// End of File