--- 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 <avkon.hrh>
-#include <apgcli.h> // for RApaLsSession
-#include <commdb.h> // for CCommsDatabase
-#include <cdbpreftable.h> // for CCommsDbConnectionPrefTableView
-#include <AknGlobalNote.h> // for CAknGlobalNote
-#include <AknGlobalConfirmationQuery.h> // for CAknGlobalConfirmationQuery
-#include <escapeutils.h>
-#include <etelmm.h>
-#include <textresolver.h>
-#include <sysutil.h>
-#include <httpfiltercommonstringsext.h>
-#include <OnlineSupport.rsg> // has to be system include.
-#include <centralrepository.h> // link against centralrepository.lib
-#include <BrowserUiSDKCRKeys.h> // for KCRUidBrowser
-#include <CoreApplicationUIsSDKCRKeys.h>// for KCRUidCoreApplicationUIs
-//#include <BrowserUiInternalCRKeys.h> // BrowserUiSDKCRKeys.h file can replace this header file
-#include <WebUtilsInternalCRKeys.h> // 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 <PnpProvUtil.h>
-#include <aknnotewrappers.h>
-#include <StringLoader.h>
-
-// 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<KMaxVersionStringLength> 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<KNonceLength> nonce8;
- TBuf<KNonceLength> 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<KMaxKeyInfoLength> keyInfo8;
- TBuf<KMaxKeyInfoLength> 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<KManufLength> manfacturer;
- manfacturer.Append(phoneIdentity.iManufacturer);
-
- TBuf<KManufLength> 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<KMaxVersionBufLength> 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<KMaxLanguageLength> 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<KMaxAPNLength> 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<KMaxAPNLength> 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<KMaxAPNLength> 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