diff -r 65a3ef1d5bd0 -r f742655b05bf voipplugins/accountcreationplugin/src/acpqueryview.cpp --- a/voipplugins/accountcreationplugin/src/acpqueryview.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,419 +0,0 @@ -/* -* Copyright (c) 2007-2008 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: Implements CAcpQueryView methods -* -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "acpcontroller.h" -#include "acpqueryview.h" -#include "acpdialog.h" -#include "acpquerycontainer.h" -#include "acpproviderlistview.h" -#include "accountcreationpluginlogger.h" - - -// --------------------------------------------------------------------------- -// CAcpQueryView::CAcpQueryView -// --------------------------------------------------------------------------- -// -CAcpQueryView::CAcpQueryView( CAcpController& aController ) - : iController( aController ) - { - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::ConstructL -// --------------------------------------------------------------------------- -// -void CAcpQueryView::ConstructL() - { - ACPLOG( "CAcpQueryView::ConstructL begin" ); - - iEikEnv = CEikonEnv::Static(); - iUi = static_cast ( static_cast - ( iEikEnv->EikAppUi() ) ); - - BaseConstructL( R_ACP_QUERY_VIEW ); - - iDialog = CAcpDialog::NewL( *this ); - - ACPLOG( "CAcpQueryView::ConstructL end" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::NewL -// --------------------------------------------------------------------------- -// -CAcpQueryView* CAcpQueryView::NewL( CAcpController& aController ) - { - CAcpQueryView* self = CAcpQueryView::NewLC( aController ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::NewLC -// --------------------------------------------------------------------------- -// -CAcpQueryView* CAcpQueryView::NewLC( CAcpController& aController ) - { - CAcpQueryView* self = new ( ELeave ) CAcpQueryView( aController ); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::~CAcpQueryView -// --------------------------------------------------------------------------- -// -CAcpQueryView::~CAcpQueryView() - { - ACPLOG( "CAcpQueryView::~CAcpQueryView begin" ); - - // Delete container when view is deactivated. - if ( iContainer && iUi ) - { - iUi->RemoveFromViewStack( *this, iContainer ); - delete iContainer; - } - - delete iDialog; - - iEikEnv = NULL; - - ACPLOG( "CAcpQueryView::~CAcpQueryView end" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::SetTitlePaneTextL -// For changing text to the title pane. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::SetTitlePaneTextL( const TDesC& aText ) const - { - // Get handle to title pane. - CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane(); - if ( statusPane ) - { - CAknTitlePane* titlePane = - static_cast ( statusPane->ControlL( - TUid::Uid( EEikStatusPaneUidTitle ) ) ); - if ( titlePane ) - { - titlePane->SetTextL( aText ); // Set text. - } - } - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::Id -// From CAknView. -// --------------------------------------------------------------------------- -// -TUid CAcpQueryView::Id() const - { - return KQueryViewId; - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::HandleCommandL -// From CEikAppUi. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::HandleCommandL( TInt aCommand ) - { - ACPLOG2( "CAcpQueryView::HandleCommandL: cmd=%d", aCommand ); - - switch ( aCommand ) - { - case EAknSoftkeyOk: - { - TInt index; // Indicates which provider to be activated - - TBuf username; // SIP username. - TBuf password; // SIP password. - // URL for activating current provider. - TBuf8 activationUrl; - - // Get current provider. - index = iController.ActiveIndex(); - - // Get username and password. - iContainer->GetContainerDataL( username, password ); - - // Get activation URL. - activationUrl.Copy( - iController.ProviderActivationUrlFromIndexL( index ) ); - - // Set username. - activationUrl.Append( KAmperSand ); - activationUrl.Append( KUsername ); - activationUrl.Append( KPlacing ); - activationUrl.Append( username ); - - // Set password. - activationUrl.Append( KAmperSand ); - activationUrl.Append( KPassword ); - activationUrl.Append( KPlacing ); - activationUrl.Append( password ); - - ACPLOG( "Launching browser"); - - // Instantiate the repository for disabling - // all security warnings and data saving form of the browser. - // Remember to restore the settings later on!! - CRepository* brRepository = CRepository::NewLC( KCRUidBrowser ); - - // Get original security warning setting. - brRepository->Get( KBrowserNGShowSecurityWarnings, iWarning ); - - // Get original data saving form setting. - brRepository->Get( KBrowserFormDataSaving, iDataSaving ); - - // Set security warning off. - brRepository->Set( KBrowserNGShowSecurityWarnings, 0 ); - - // Set data saving form off. - brRepository->Set( KBrowserFormDataSaving, 0 ); - - // Creates the application architecture server instance for - // getting new browser session. - // Remember to close the session before going out of scope. - RApaLsSession apaLsSession; - CleanupClosePushL( apaLsSession ); - - // Get current application list. - TApaTaskList taskList( iEikEnv->WsSession() ); - - // Get the browser session. - TApaTask browserTask = taskList.FindApp( KCRUidBrowser ); - - // Checks whether browser session exist or not. - if ( browserTask.Exists() ) - { - // Brings the session to the foreground. - browserTask.BringToForeground(); - // Get new buffer for sending the - // activation request to server. - HBufC8* param8 = HBufC8::NewLC( activationUrl.Length() ); - // Copy the activation URL. - param8->Des().Append( activationUrl ); - // Try to activate provider earlier selected - // by using the browser session. - // UID not used. - browserTask.SendMessage( TUid::Uid(0), *param8 ); - // Destroy the activation buffer. - CleanupStack::PopAndDestroy( param8 ); - } - else - { - // Browser instance does not exist but instance is needed - // for activating provider via OTA. - // Next connecting to the application architecture server - // and try to start a new browser instance with the - // activation address. - - TBuf activationUrl16; // The activation URL. - activationUrl16.Copy( activationUrl ); - - TThreadId threadId; // Browser instance's thread. - - // Check whether a handle number exist for the server. - if ( !apaLsSession.Handle() ) - { - // Connect to the server - User::LeaveIfError( apaLsSession.Connect() ); - } - - // Launch browser and send the activation request to the server. - User::LeaveIfError( - apaLsSession.StartDocument( activationUrl16, - KCRUidBrowser, threadId )); - } - - CleanupStack::PopAndDestroy( &apaLsSession ); - - // Activate provider list view. - iUi->ActivateLocalViewL( KProviderListViewId ); - } - break; - case EAknSoftkeySelect: - { - // Provisioning started. - HandleListBoxSelectionL(); - } - break; - case EAknSoftkeyCancel: - // Going back to the provider list view. - iUi->ActivateLocalViewL( KProviderListViewId ); - break; - case EEikCmdExit: - case EAknSoftkeyExit: - { - // Creates a repository to restore the settings earlier - // configured for browser. - CRepository* repository = CRepository::NewLC( KCRUidBrowser ); - // Restore the security warnings. - repository->Set( KBrowserNGShowSecurityWarnings, iWarning ); - // Restore the data saving form. - repository->Set( KBrowserFormDataSaving, iDataSaving ); - // Destroys the repository. - CleanupStack::PopAndDestroy( repository ); - // Exit the application. - iUi->HandleCommandL( aCommand ); - } - break; - default: - break; - } - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::HandleListBoxEventL -// From MEikListBoxObserver. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::HandleListBoxEventL( CEikListBox* /*aListBox*/, - TListBoxEvent aEventType ) - { - switch ( aEventType ) - { - case EEventEnterKeyPressed: - case EEventItemDoubleClicked: - HandleListBoxSelectionL(); - break; - default: - break; - } - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::HandleListBoxSelectionL -// From MEikListBoxObserver. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::HandleListBoxSelectionL() - { - ACPLOG2( "CAcpQueryView::HandleListBoxSelectionL: %d", - iContainer->CurrentItemIndex() ); - - switch ( iContainer->CurrentItemIndex() ) - { - // Setting page item: Server username - case EAcpGenericUsername: - iContainer->ShowUsernameSettingPageL(); - break; - // Setting page item: Server password - case EAcpGenericPassword: - iContainer->ShowPwordSettingPageL(); - break; - default: - break; - } - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificView::DynInitMenuPaneL -// From MEikListBoxObserver. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::DynInitMenuPaneL( - TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/ ) - { - ACPLOG( "CAcpQueryView::DynInitMenuPaneL begin" ); - ACPLOG( "CAcpQueryView::DynInitMenuPaneL end" ); - } - -// --------------------------------------------------------------------------- -// CAcpProviderListView::DialogDismissed -// From MAcpDialogObserver. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::DialogDismissed( TInt /*aError*/ ) - { - iDialog->DestroyWaitNote(); - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::DoActivateL -// From CAknView. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::DoActivateL( - const TVwsViewId& /*aPrevViewId*/, - TUid /*aCustomMessageId*/, - const TDesC8& /*aCustomMessage*/ ) - { - ACPLOG( "CAcpQueryView::DoActivateL begin" ); - - // Create container when view is activated. - if ( !iContainer ) - { - iContainer = CAcpQueryContainer::NewL( ClientRect() ); - iContainer->SetMopParent( this ); - iUi->AddToStackL( *this, iContainer ); - iContainer->ListBox()->SetListBoxObserver( this ); - } - - // Set provider specific name to title pane. - TInt index = iController.ActiveIndex(); - TBuf name = - iController.ProviderNameFromIndexL( index ); - - HBufC* caption = StringLoader::LoadLC( R_ACP_QUERY_TITLE_PANE_TEXT ); - name.Append( caption->Des() ); - - SetTitlePaneTextL( name ); - - ACPLOG( "set title pane" ); - - CleanupStack::PopAndDestroy( caption ); - - ACPLOG( "CAcpQueryView::DoActivateL end" ); - } - -// --------------------------------------------------------------------------- -// CAcpQueryView::DoDeactivate() -// From CAknView. -// --------------------------------------------------------------------------- -// -void CAcpQueryView::DoDeactivate() - { - ACPLOG( "CAcpQueryView::DoDeactivate begin" ); - - // Delete container when view is deactivated. - if ( iContainer ) - { - iUi->RemoveFromViewStack( *this, iContainer ); - delete iContainer; - iContainer = NULL; - } - - ACPLOG( "CAcpQueryView::DoDeactivate end" ); - } - -// End of file.