# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268649595 -7200 # Node ID bddb6d4447db2756c5e9253ecb449d3aabd1e59d # Parent 7117cbf1600ac8a904b5fbaf46535b0f190c5716 Revision: 201009 Kit: 201010 diff -r 7117cbf1600a -r bddb6d4447db callcontinuity/vcc/src/cvcctransferprovider.cpp --- a/callcontinuity/vcc/src/cvcctransferprovider.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/callcontinuity/vcc/src/cvcctransferprovider.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -92,6 +92,10 @@ target = targetCall->PrimaryCall(); } } + else + { + return KErrNotReady; + } return iCallTransferProvider->AttendedTransfer( *target ); } diff -r 7117cbf1600a -r bddb6d4447db callcontinuity/vcc/src/tvccstatecalling.cpp --- a/callcontinuity/vcc/src/tvccstatecalling.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/callcontinuity/vcc/src/tvccstatecalling.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -118,9 +118,17 @@ RUBY_DEBUG0( "TVccStateCalling::CallStateChanged - swap the calls" ); aContext.SetCall(aContext.SecondaryCall()); - TRAP_IGNORE( aContext.Notifier().NotifySubscriberL( EVccCsToPsHoInprogress, - KErrNone ) ); + if ( aContext.Parameters().CallType() == CCPCall::ECallTypePS ) + { + TRAP_IGNORE( aContext.Notifier().NotifySubscriberL( EVccCsToPsHoInprogress, + KErrNone ) ); + } + else + { + TRAP_IGNORE( aContext.Notifier().NotifySubscriberL( EVccPsToCsHoInprogress, + KErrNone ) ); + } //-> Set Next State - if the call is idle just destroy call object and //go to init-state __ASSERT_DEBUG( aContext.SecondaryCall() != NULL, diff -r 7117cbf1600a -r bddb6d4447db callcontinuity/vcc/src/vccengpsproperty.cpp --- a/callcontinuity/vcc/src/vccengpsproperty.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/callcontinuity/vcc/src/vccengpsproperty.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -87,6 +87,7 @@ case EVccCsToPsHoStarted: case EVccPsToCsHoStarted: case EVccCsToPsHoInprogress: + case EVccPsToCsHoInprogress: case EVccCsToPsHoSuccessful: case EVccCsToPsHoFailure: case EVccHoUnavailable: diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscapplicationui/inc/cscappui.h --- a/commsconfig/cscapplicationui/inc/cscappui.h Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscapplicationui/inc/cscappui.h Mon Mar 15 12:39:55 2010 +0200 @@ -183,8 +183,14 @@ */ void NotifyConnectionEvent( CCSCEngConnectionHandler::TConnectionEvent aConnectionEvent ); - - + + /** + * From MCoeMessageObserver. + */ + MCoeMessageObserver::TMessageResponse HandleMessageL( + TUint32 aClientHandleOfTargetWindowGroup, TUid aMessageUid, + const TDesC8& aMessageParameters); + private: /* diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscapplicationui/inc/cscconstants.h --- a/commsconfig/cscapplicationui/inc/cscconstants.h Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscapplicationui/inc/cscconstants.h Mon Mar 15 12:39:55 2010 +0200 @@ -30,6 +30,9 @@ // Advanced settings plugin UID const TUid KAdvancedSettingsPluginUID = { 0x1028331D }; +// Help context UID +const TUid KCscHelpUid = { 0x1020E566 }; + // Filename and path for bitmaps and icons. _LIT( KDriveZ, "z:" ); _LIT( KCSCAifFile, "csc_aif.mif"); diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscapplicationui/src/cscappui.cpp --- a/commsconfig/cscapplicationui/src/cscappui.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscapplicationui/src/cscappui.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -31,7 +31,6 @@ #include #include #include -#include #include "cscappui.h" #include "csclogger.h" @@ -502,7 +501,7 @@ embeddeeuid = windowName1->AppUid(); // Check if CSC is the child of GS - if ( KUidCscHelp == embeddeeuid ) + if ( KUidCSCApp == embeddeeuid ) { ret = ETrue; gstask.EndTask(); @@ -515,3 +514,33 @@ return ret; } + +// --------------------------------------------------------------------------- +// Handle view change messages (e.g. from MeCo) +// --------------------------------------------------------------------------- +// +MCoeMessageObserver::TMessageResponse CCSCAppUi::HandleMessageL( + TUint32 /*aClientHandleOfTargetWindowGroup*/, TUid aMessageUid, + const TDesC8& aMessageParameters ) + { + CSCDEBUG( "CCSCAppUi::HandleMessageL - begin" ); + + MCoeMessageObserver::TMessageResponse ret = EMessageNotHandled; + + if ( TUid::Uid( KUidApaMessageSwitchOpenFileValue ) == aMessageUid && + aMessageParameters.Length() && + aMessageParameters.Length() <= KMaxParamLength ) + { + TBuf params; + params.Copy( aMessageParameters ); + iStartupHandler->SetStartupParametersL( params ); + + iServiceView->InitializeWithStartupParametersL(); + iServiceView->ExecuteStartupActionsL( EFalse, EFalse ); + + ret = EMessageHandled; + } + + CSCDEBUG( "CCSCAppUi::HandleMessageL - end" ); + return ret; + } diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscapplicationui/src/cscservicecontainer.cpp --- a/commsconfig/cscapplicationui/src/cscservicecontainer.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscapplicationui/src/cscservicecontainer.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -28,15 +28,16 @@ #include #include #include -#include #include #include #include #include #include #include +#include + +#include #include -#include #include "mcscservicecontainerobserver.h" #include "csclogger.h" @@ -789,7 +790,7 @@ void CCSCServiceContainer::GetHelpContext( TCoeHelpContext& aContext ) const { - aContext.iMajor = KUidCscHelp; + aContext.iMajor = KCscHelpUid; aContext.iContext = KVOIP_HLP_CSC; } diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscsettingsui/inc/cscsettingsuimainview.h --- a/commsconfig/cscsettingsui/inc/cscsettingsuimainview.h Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscsettingsui/inc/cscsettingsuimainview.h Mon Mar 15 12:39:55 2010 +0200 @@ -68,6 +68,13 @@ * @since S60 v3.2 */ void UpdateSoftkeysL( ); + + /** + * Resets service settings when switching services. + * + * @since S60 v5.2 + */ + void ResetViewL(); // from base class CAknView diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscsettingsui/src/cscsettingsuiimpl.cpp --- a/commsconfig/cscsettingsui/src/cscsettingsuiimpl.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscsettingsui/src/cscsettingsuiimpl.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -119,6 +119,12 @@ iMainView = CCSCSettingsUiMainView::NewL( *iModel ); AppUi()->AddViewL( iMainView ); // ownership is transferred } + else + { + // Already initialised. Reset view since we're probably switching + // between different service settings. + iMainView->ResetViewL(); + } // Set initialization information data. The function leaves if given // service does not exist. diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscsettingsui/src/cscsettingsuimaincontainer.cpp --- a/commsconfig/cscsettingsui/src/cscsettingsuimaincontainer.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscsettingsui/src/cscsettingsuimaincontainer.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -19,14 +19,15 @@ #include #include #include -#include #include #include #include #include #include #include +#include +#include "cscconstants.h" #include "cscsettingsui.hrh" #include "cscsettingsuimodel.h" #include "cscsettingsuilogger.h" @@ -290,7 +291,7 @@ void CCSCSettingsUiMainContainer::GetHelpContext( TCoeHelpContext& aContext ) const { - aContext.iMajor = KUidCscSettingsUiHelp; + aContext.iMajor = KCscHelpUid; aContext.iContext = KSERVTAB_HLP_SETTINGS; } diff -r 7117cbf1600a -r bddb6d4447db commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp --- a/commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -915,4 +915,30 @@ CSCSETUIDEBUG( "CCSCSettingsUiMainView::HandleSettingsUiExitL - OUT" ); } - + +// --------------------------------------------------------------------------- +// CCSCSettingsUiMainView::ResetViewL +// Resets service settings when switching services +// --------------------------------------------------------------------------- +// +void CCSCSettingsUiMainView::ResetViewL() + { + CSCSETUIDEBUG( "CCSCSettingsUiMainView::ResetViewL - IN" ); + + // Create container when view is activated. + if ( !iContainer ) + { + iContainer = new (ELeave) CCSCSettingsUiMainContainer( iModel ); + iContainer->SetMopParent( this ); + iContainer->ConstructL( ClientRect() ); + AppUi()->AddToStackL( *this, iContainer ); + iContainer->ListBox()->SetListBoxObserver( this ); + } + + SetTitleTextL(); + UpdateSoftkeysL(); + iContainer->UpdateContainerL(); + + CSCSETUIDEBUG( "CCSCSettingsUiMainView::ResetViewL - OUT" ); + } + diff -r 7117cbf1600a -r bddb6d4447db commsconfig/group/bld.inf --- a/commsconfig/group/bld.inf Fri Mar 12 15:42:09 2010 +0200 +++ b/commsconfig/group/bld.inf Mon Mar 15 12:39:55 2010 +0200 @@ -21,16 +21,9 @@ #include PRJ_EXPORTS -#ifdef __SERIES60_HELP -../cscapplicationui/inc/csc.hlp.hrh MW_LAYER_PLATFORM_EXPORT_PATH( csc.hlp.hrh ) -#endif - ../rom/csc.iby CORE_APP_LAYER_IBY_EXPORT_PATH( csc.iby ) -// Temporarily move resource iby to core due missing localization -//../rom/cscresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH( cscresources.iby ) -../rom/cscresources.iby CORE_APP_LAYER_IBY_EXPORT_PATH( cscresources.iby ) - +../rom/cscresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH( cscresources.iby ) //ROM SIS stub ../sis/commsconfig_stub.sis /epoc32/data/z/system/install/commsconfig_stub.sis @@ -45,6 +38,10 @@ OPTION SOURCEFILE iconlist.txt END + +// Help exports +#include "../help/group/bld.inf" + //subcomponent includes #include "../cscgsplugin/group/bld.inf" #include "../cscsipvoipcleanupplugin/group/bld.inf" diff -r 7117cbf1600a -r bddb6d4447db commsconfig/help/data/xhtml.zip Binary file commsconfig/help/data/xhtml.zip has changed diff -r 7117cbf1600a -r bddb6d4447db commsconfig/help/group/bld.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsconfig/help/group/bld.inf Mon Mar 15 12:39:55 2010 +0200 @@ -0,0 +1,26 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Export help related files. +* +*/ + +#include +PRJ_EXPORTS +:zip ../data/xhtml.zip /epoc32/data/z/resource/ overwrite +:zip ../data/xhtml.zip /epoc32/winscw/c/resource/ overwrite + +../inc/voip.hlp.hrh MW_LAYER_PLATFORM_EXPORT_PATH(csxhelp/voip.hlp.hrh) +../rom/cscapplicationuihelps_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(cscapplicationuihelps_variant.iby) \ No newline at end of file diff -r 7117cbf1600a -r bddb6d4447db commsconfig/help/inc/voip.hlp.hrh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsconfig/help/inc/voip.hlp.hrh Mon Mar 15 12:39:55 2010 +0200 @@ -0,0 +1,30 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +// +// voip.hlp.hrh generated by CSXHelp Utilities. +// + +#ifndef __VOIP_HLP_HRH__ +#define __VOIP_HLP_HRH__ + +_LIT(KSMSVO_HLP_CS_VIDEO_AND_XSP_VOIP, "SMSVO_HLP_CS_VIDEO_AND_XSP_VOIP"); // +_LIT(KVOIP_HLP_CSC, "VOIP_HLP_CSC"); // +_LIT(KVOIP_HLP_SERVCATALOG, "VOIP_HLP_SERVCATALOG"); // +_LIT(KSERVTAB_HLP_SETTINGS, "SERVTAB_HLP_SETTINGS"); // + +#endif \ No newline at end of file diff -r 7117cbf1600a -r bddb6d4447db commsconfig/help/rom/cscapplicationuihelps_variant.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsconfig/help/rom/cscapplicationuihelps_variant.iby Mon Mar 15 12:39:55 2010 +0200 @@ -0,0 +1,11 @@ +#ifndef __CSCHELPS_VARIANT_IBY__ +#define __CSCHELPS_VARIANT_IBY__ + +#if defined(FF_S60_HELPS_IN_USE) + data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x1020E566\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x1020E566\contents.zip) + data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x1020E566\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x1020E566\index.xml) + data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x1020E566\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x1020E566\keywords.xml) + data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x1020E566\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x1020E566\meta.xml) +#endif + +#endif \ No newline at end of file diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/cchuinotif/group/cchuinotif.mmp --- a/convergedconnectionhandler/cchclientapi/cchuinotif/group/cchuinotif.mmp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchclientapi/cchuinotif/group/cchuinotif.mmp Mon Mar 15 12:39:55 2010 +0200 @@ -40,6 +40,7 @@ HEADER TARGETPATH APP_RESOURCE_DIR // LANG SC +LANGUAGE_IDS END // RESOURCE USERINCLUDE ../inc diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/group/cch.mmp --- a/convergedconnectionhandler/cchclientapi/group/cch.mmp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchclientapi/group/cch.mmp Mon Mar 15 12:39:55 2010 +0200 @@ -41,6 +41,7 @@ SOURCE cchuiglobalqueryhandler.cpp SOURCE cchuiclientobserver.cpp SOURCE cchuitimer.cpp +SOURCE cchserviceimplasynchroniser.cpp USERINCLUDE ../inc USERINCLUDE ../../inc // CCH's internal headers diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/inc/cchserviceimpl.h --- a/convergedconnectionhandler/cchclientapi/inc/cchserviceimpl.h Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchclientapi/inc/cchserviceimpl.h Mon Mar 15 12:39:55 2010 +0200 @@ -30,7 +30,7 @@ class CCchClientObserver; class CCchImpl; - +class CCchServiceImplAsynchroniser; #ifdef CCHAPI_USE_CCHUI class CCchUiPrivateApi; #else @@ -269,6 +269,11 @@ * CCH connectivity UI handling private API */ CCchUiPrivateApi& iCchUi; + + /** + * CCH server request handler + */ + CCchServiceImplAsynchroniser* iAsynchroniser; #ifdef CCHUNITTEST friend class UT_CCchService; diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/inc/cchserviceimplasynchroniser.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/convergedconnectionhandler/cchclientapi/inc/cchserviceimplasynchroniser.h Mon Mar 15 12:39:55 2010 +0200 @@ -0,0 +1,87 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef CCHSERVICEIMPLASYNCHRONISER_H +#define CCHSERVICEIMPLASYNCHRONISER_H + +#include // For CActive, link against: euser.lib +#include // For RTimer, link against: euser.lib +//from cchclient +#include +#include "cchimpl.h" +#include "cch.h" + +class CCchImpl; + +#ifdef CCHAPI_USE_CCHUI +class CCchUiPrivateApi; +#else +#define CCchUiPrivateApi TInt +#endif + + + +NONSHARABLE_CLASS ( CCchServiceImplAsynchroniser) : public CActive + { +public: + + enum TCchServiceImplState + { + EIdle = 0, + EEnabling = 1, + EDisabling = 2 + }; + // Cancel and destroy + ~CCchServiceImplAsynchroniser(); + + // Two-phased constructor. + static CCchServiceImplAsynchroniser* NewL(CCchImpl& aCch, TInt iServiceId, CCchUiPrivateApi& aCchUi); + + // Two-phased constructor. + static CCchServiceImplAsynchroniser* NewLC(CCchImpl& aCch, TInt iServiceId, CCchUiPrivateApi& aCchUi); + + void Enable( TCCHSubserviceType aType ); + + void Disable( TCCHSubserviceType aType ); + +private: + // C++ constructor + CCchServiceImplAsynchroniser(CCchImpl& aCch, TInt iServiceId, CCchUiPrivateApi& aCchUi); + + // Second-phase constructor + void ConstructL(); + +private: + // From CActive + // Handle completion + void RunL(); + + // How to cancel me + void DoCancel(); + + // Override to handle leaves from RunL(). Default implementation causes + // the active scheduler to panic. + TInt RunError(TInt aError); + +private: + CCchImpl& iCch; + TInt iServiceId; + CCchUiPrivateApi& iCchUi; + TCchServiceImplState iState; + }; + +#endif // CCHSERVICEIMPLASYNCHRONISER_H diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/inc/cchuiconnectionhandler.h --- a/convergedconnectionhandler/cchclientapi/inc/cchuiconnectionhandler.h Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchclientapi/inc/cchuiconnectionhandler.h Mon Mar 15 12:39:55 2010 +0200 @@ -120,6 +120,14 @@ * @param aIapId access point id to be removed */ void RemoveConnectionL( const TDesC& aServiceName, TInt aIapId ); + + /** + * Returns ETrue if wlan search (query) is ongoing. + * + * @since S60 5.0 + * @return ETrue if wlan search ongoing. + */ + TBool SearchWlanOngoing(); private: @@ -234,6 +242,11 @@ */ RConnectionMonitor iConnMon; + /** + * Flag for determining if search wlan search (query) is ongoing + */ + TBool iSearchWlanOngoing; + CCHUI_UNIT_TEST( UT_CchUi ) }; diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/src/cchserviceimpl.cpp --- a/convergedconnectionhandler/cchclientapi/src/cchserviceimpl.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchclientapi/src/cchserviceimpl.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -24,6 +24,7 @@ #include "cchimpl.h" #include "cchclientobserver.h" #include "cchclientserverinternal.h" +#include "cchserviceimplasynchroniser.h" #ifdef CCHAPI_USE_CCHUI #include "cchuiprivateapi.h" @@ -79,6 +80,7 @@ RemoveObserver(); } delete iObserver; + delete iAsynchroniser; } // --------------------------------------------------------------------------- @@ -90,6 +92,7 @@ { CCHLOGSTRING( "CCchServiceImpl::ConstructL: IN" ); iObserver = CCchClientObserver::NewL( *this ); + iAsynchroniser = CCchServiceImplAsynchroniser::NewL(iCch, iServiceId, iCchUi ); CCHLOGSTRING( "CCchServiceImpl::ConstructL: OUT" ); } // --------------------------------------------------------------------------- @@ -134,26 +137,9 @@ { CCHLOGSTRING( "CCchServiceImpl::Enable: IN" ); - TRequestStatus status = KErrNone; - TServiceSelection selection( iServiceId, aType ); - iCch.CchClient().EnableService( selection, status, EFalse ); - //even the cchclient api seems to be asynchronous, - //this method is completed immediately - User::WaitForRequest( status ); - CCHLOGSTRING( "CCchServiceImpl::Enable: OUT" ); - - if ( iCch.ConnectivityDialogsAllowed() ) - { - TRAPD( err, iCchUi.ManualEnableResultL( - iServiceId, status.Int() ) ); - - if( err != KErrNone ) - { - return KErrNotReady; - } - } - - return status.Int(); + iAsynchroniser->Enable(aType); + CCHLOGSTRING( "CCchServiceImpl::Enable: OUT" ); + return KErrNone; } // --------------------------------------------------------------------------- @@ -163,15 +149,10 @@ TInt CCchServiceImpl::Disable( TCCHSubserviceType aType ) { CCHLOGSTRING( "CCchServiceImpl::Disable: IN" ); - - TRequestStatus status = KErrNone; - TServiceSelection selection( iServiceId, aType ); - iCch.CchClient().DisableService( selection, status ); - //even the cchclient api seems to be asynchronous, - //this method is completed immediately - User::WaitForRequest( status ); + + iAsynchroniser->Disable(aType); CCHLOGSTRING( "CCchServiceImpl::Disable: OUT" ); - return status.Int(); + return KErrNone; } // --------------------------------------------------------------------------- diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/src/cchserviceimplasynchroniser.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/convergedconnectionhandler/cchclientapi/src/cchserviceimplasynchroniser.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2006-2007 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: cch client api implementation +* +*/ + + +#include "cchserviceimplasynchroniser.h" +#include "cchlogger.h" + +CCchServiceImplAsynchroniser::CCchServiceImplAsynchroniser(CCchImpl& aCch, TInt aServiceId, CCchUiPrivateApi& aCchUi) : + CActive(EPriorityStandard),// Standard priority + iCch( aCch ), + iServiceId( aServiceId ), + iCchUi( aCchUi ), + iState ( EIdle ) + + { + } + +CCchServiceImplAsynchroniser* CCchServiceImplAsynchroniser::NewLC(CCchImpl& aCch, TInt aServiceId, CCchUiPrivateApi& aCchUi) + { + CCchServiceImplAsynchroniser* self = + new (ELeave) CCchServiceImplAsynchroniser(aCch, aServiceId, aCchUi ); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +CCchServiceImplAsynchroniser* CCchServiceImplAsynchroniser::NewL(CCchImpl& aCch, TInt aServiceId, CCchUiPrivateApi& aCchUi) + { + CCchServiceImplAsynchroniser* self = + CCchServiceImplAsynchroniser::NewLC(aCch, aServiceId, aCchUi ); + CleanupStack::Pop(); // self; + return self; + } + +void CCchServiceImplAsynchroniser::Enable( TCCHSubserviceType aType ) + { + CCHLOGSTRING( "CCchServiceImplAsynchroniser::Enable IN" ); + if (iState == EIdle) + { + iState = EEnabling; + TServiceSelection selection( iServiceId, aType ); + SetActive(); + iCch.CchClient().EnableService( selection, iStatus, EFalse ); + } + else + { + CCHLOGSTRING( "CCchServiceImplAsynchroniser already active" ); + } + CCHLOGSTRING( "CCchServiceImplAsynchroniser::Enable OUT" ); + } + +void CCchServiceImplAsynchroniser::Disable( TCCHSubserviceType aType ) + { + CCHLOGSTRING( "CCchServiceImplAsynchroniser::Disable IN" ); + if (iState == EIdle) + { + iState = EDisabling; + TRequestStatus status = KErrNone; + TServiceSelection selection( iServiceId, aType ); + SetActive(); + iCch.CchClient().DisableService( selection, iStatus ); + } + else + { + CCHLOGSTRING( "CCchServiceImplAsynchroniser already active" ); + } + CCHLOGSTRING( "CCchServiceImplAsynchroniser::Disable OUT" ); + } + + +void CCchServiceImplAsynchroniser::ConstructL() + { + CActiveScheduler::Add(this); // Add to scheduler + } + +CCchServiceImplAsynchroniser::~CCchServiceImplAsynchroniser() + { + Cancel(); // Cancel any request, if outstanding + // Delete instance variables if any + } + +void CCchServiceImplAsynchroniser::DoCancel() + { + + } + +void CCchServiceImplAsynchroniser::RunL() + { + CCHLOGSTRING( "CCchServiceImplAsynchroniser::RunL IN" ); + if (iStatus.Int() != KErrCancel) + { + switch (iState) + { + case EEnabling: + { + if ( iCch.ConnectivityDialogsAllowed() ) + { + iCchUi.ManualEnableResultL( iServiceId, iStatus.Int() ); + } + CCHLOGSTRING( "CCchServiceImplAsynchroniser::RunL EEnabling done" ); + iState = EIdle; + break; + } + case EDisabling: + { + CCHLOGSTRING( "CCchServiceImplAsynchroniser::RunL EDisabling done" ); + iState = EIdle; + break; + } + default: + { + break; + } + + } + } + iState = EIdle; + CCHLOGSTRING( "CCchServiceImplAsynchroniser::RunL OUT" ); + } + +TInt CCchServiceImplAsynchroniser::RunError(TInt aError) + { + return aError; + } diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/src/cchuiapiimpl.cpp --- a/convergedconnectionhandler/cchclientapi/src/cchuiapiimpl.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchclientapi/src/cchuiapiimpl.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -1142,9 +1142,10 @@ } // Check that dialog showing is allowed. - __ASSERT_ALWAYS( StateIsAllowed( state ) || - KCCHErrorInvalidSettings == aServiceStatus.Error(), - User::Leave( KErrNotSupported ) ); + __ASSERT_ALWAYS( ( StateIsAllowed( state ) || + KCCHErrorInvalidSettings == aServiceStatus.Error() ) && + !iConnectionHandler->SearchWlanOngoing(), + User::Leave( KErrNotSupported ) ); switch ( aServiceStatus.Error() ) { diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchclientapi/src/cchuiconnectionhandler.cpp --- a/convergedconnectionhandler/cchclientapi/src/cchuiconnectionhandler.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchclientapi/src/cchuiconnectionhandler.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -42,7 +42,8 @@ CCchUiCchHandler& aCchHandler, CCchUiSpsHandler& aSpsHandler ): iCCHHandler( aCchHandler ), - iSpsHandler( aSpsHandler ) + iSpsHandler( aSpsHandler ), + iSearchWlanOngoing( EFalse ) { } @@ -108,9 +109,14 @@ CCHUIDEBUG( "CCchUiConnectionHandler::SearchAccessPointsL - begin search wlan" ); + // Set flag which indicates that search wlan query is open + iSearchWlanOngoing = ETrue; + TBool ret = iConnUiUtils->SearchWLANNetwork( ssid, connectionMode, securityMode ); + iSearchWlanOngoing = EFalse; + if ( !ret ) { //ret is ETrue if user pressed OK softkey. Otherwise leave @@ -717,6 +723,19 @@ } // --------------------------------------------------------------------------- +// Returns ETrue if wlan search (query) is ongoing. +// --------------------------------------------------------------------------- +// +TBool CCchUiConnectionHandler::SearchWlanOngoing() + { + CCHUIDEBUG2( "CCchUiConnectionHandler::SearchWlanOngoing ongoing=%d", + iSearchWlanOngoing ); + + return iSearchWlanOngoing; + } + + +// --------------------------------------------------------------------------- // Creates service snap // --------------------------------------------------------------------------- // diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchserver/group/cchserver.mmp --- a/convergedconnectionhandler/cchserver/group/cchserver.mmp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchserver/group/cchserver.mmp Mon Mar 15 12:39:55 2010 +0200 @@ -31,7 +31,7 @@ VENDORID VID_DEFAULT SOURCEPATH ../src SOURCE cchconnmonhandler.cpp -SOURCE cchcommdbwatcher.cpp +SOURCE cchcommdbwatcher.cpp SOURCE cchrequeststorage.cpp SOURCE cchspshandler.cpp SOURCE cchserverbase.cpp @@ -50,7 +50,6 @@ SOURCE cchwakeupeventnotifier.cpp SOURCE cchstartupcounter.cpp SOURCE cchactivescheduler.cpp -SOURCE cchphonestartupmonitor.cpp START RESOURCE ../data/cch.rss HEADER @@ -67,7 +66,7 @@ LIBRARY euser.lib LIBRARY flogger.lib // for logging purposes LIBRARY connmon.lib -LIBRARY cmmanager.lib +LIBRARY cmmanager.lib LIBRARY ecom.lib // for plug-ins LIBRARY serviceprovidersettings.lib LIBRARY aknnotify.lib diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchserver/inc/cchservicehandler.h --- a/convergedconnectionhandler/cchserver/inc/cchservicehandler.h Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchserver/inc/cchservicehandler.h Mon Mar 15 12:39:55 2010 +0200 @@ -29,7 +29,6 @@ #include "cchservicenotifier.h" #include "cchclientserver.h" #include "cchcommdbwatcherobserver.h" -#include "cchphonestartupmonitor.h" // CONSTANTS // None @@ -48,7 +47,6 @@ class CCchUIHandler; class CCchWlanExtension; class CCCHCommDbWatcher; -class CCCHPhoneStartupMonitor; // DATA TYPES typedef RPointerArray RServiceArray; @@ -392,16 +390,38 @@ void CancelPluginUnloadTimer(); /** + * Starts handle notify delay timer + * @param aFunction The function to call after the time out + */ + void StartHandleNotifyDelayTimer(); + + /** + * Cancels the handler notify delay timer + */ + void CancelHandleNotifyDelayTimer(); + + /** * Plugin unload callback * @param aSelf this object */ static TInt PluginUnloadEvent( TAny* aSelf ); /** + * Handle notify event callback + * @param aSelf this object + */ + static TInt HandleNotifyEvent( TAny* aSelf ); + + /** * Handles plugin unload event */ void HandlePluginUnload(); - + + /** + * Handles delayed notify event + */ + void HandleDelayedNotifyEvent(); + /** * From MCCHCommDbWatcherObserver, handles commsdb events */ @@ -455,11 +475,6 @@ CCchUIHandler* iCchUIHandler; /** - * Phone startup monitor. Owned. - */ - CCchPhoneStartupMonitor * iPhoneStartupMonitor; - - /** * Connection recovery timer. Owned. */ CPeriodic* iConnectionRecoveryTimer; @@ -470,6 +485,11 @@ CPeriodic* iPluginUnloadTimer; /** + * Handle notify delay timer. Owned. + */ + CPeriodic* iHandleNotifyDelayTimer; + + /** * Recovery trial counter */ TInt iConnectionRecoveryTry; @@ -498,6 +518,11 @@ * Disable SPSettings notifications */ TBool iCancelNotify; + + /** + * Service id of delayed handle notify event + */ + TServiceId iDelayedHandleNotifyServiceId; }; #endif // C_CCHSERVICEHANDLER_H diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchserver/inc/cchuihandler.h --- a/convergedconnectionhandler/cchserver/inc/cchuihandler.h Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchserver/inc/cchuihandler.h Mon Mar 15 12:39:55 2010 +0200 @@ -192,11 +192,6 @@ * Note handler */ CCchNoteHandler* iNoteHandler; - - /** - * Are we out of cs network? - */ - TBool iVoIPEmergencyNoteState; /** * ETel observer diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchserver/src/cchservicehandler.cpp --- a/convergedconnectionhandler/cchserver/src/cchservicehandler.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchserver/src/cchservicehandler.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -48,6 +48,9 @@ const TInt KCCHFifthRecovery = 60000000; const TInt KCCHPluginUnloadTimeout = 5000000; + +const TInt KCCHHandleNotifyDelay = 1000000; + // MACROS // None @@ -89,10 +92,10 @@ { iNotifier = CSPNotifyChange::NewL( *this ); iCchUIHandler = CCchUIHandler::NewL( iServer, *this ); - iPhoneStartupMonitor = CCchPhoneStartupMonitor::NewL( *iCchUIHandler ); iConnectionRecoveryTimer = CPeriodic::NewL( CPeriodic::EPriorityStandard ); iCommDbWatcher = CCCHCommDbWatcher::NewL( *this ); iPluginUnloadTimer = CPeriodic::NewL( CPeriodic::EPriorityStandard ); + iHandleNotifyDelayTimer = CPeriodic::NewL( CPeriodic::EPriorityStandard ); iRecoveryInterval.Append( KCCHFirstRecovery ); iRecoveryInterval.Append( KCCHSecondRecovery ); iRecoveryInterval.Append( KCCHThirdRecovery ); @@ -134,10 +137,10 @@ iCchUIHandler->Destroy(); } - delete iPhoneStartupMonitor; delete iWlanExtension; delete iConnectionRecoveryTimer; delete iPluginUnloadTimer; + delete iHandleNotifyDelayTimer; delete iCommDbWatcher; if( iNotifier ) @@ -523,6 +526,44 @@ } // ----------------------------------------------------------------------------- +// CCCHServiceHandler::StartHandleNotifyDelayTimer +// ----------------------------------------------------------------------------- +// +void CCCHServiceHandler::StartHandleNotifyDelayTimer( ) + { + CCHLOGSTRING2( "CCCHServiceHandler[0x%x]::StartHandleNotifyDelayTimer; IN", this ); + + CancelHandleNotifyDelayTimer(); + if( !iHandleNotifyDelayTimer->IsActive() ) + { + iHandleNotifyDelayTimer->Start( + KCCHHandleNotifyDelay , + 0, + TCallBack( CCCHServiceHandler::HandleNotifyEvent, this ) ); + + CCHLOGSTRING( "CCCHServiceHandler::StartHandleNotifyDelayTimer; timer started"); + } + + CCHLOGSTRING( "CCCHServiceHandler::StartHandleNotifyDelayTimer; OUT" ); + } + +// ----------------------------------------------------------------------------- +// CCCHServiceHandler::CancelHandleNotifyDelayTimer +// ----------------------------------------------------------------------------- +// +void CCCHServiceHandler::CancelHandleNotifyDelayTimer() + { + CCHLOGSTRING2( "CCCHServiceHandler[0x%x]::CancelHandleNotifyDelayTimer; IN", this ); + + if( iHandleNotifyDelayTimer->IsActive() ) + { + iHandleNotifyDelayTimer->Cancel(); + } + + CCHLOGSTRING( "CCCHServiceHandler::CancelHandleNotifyDelayTimer; OUT" ); + } + +// ----------------------------------------------------------------------------- // CCCHServiceHandler::PluginUnloadEvent // ----------------------------------------------------------------------------- // @@ -536,6 +577,21 @@ } // ----------------------------------------------------------------------------- +// CCCHServiceHandler::HandleNotifyEvent +// ----------------------------------------------------------------------------- +// +TInt CCCHServiceHandler::HandleNotifyEvent( TAny* aSelf ) + { + CCHLOGSTRING( "CCCHServiceHandler::HandleNotifyEvent; IN" ); + + CCHLOGSTRING( "CCCHServiceHandler::PluginUnloadEvent; IN" ); + CCCHServiceHandler* self = static_cast( aSelf ); + self->HandleDelayedNotifyEvent(); + CCHLOGSTRING( "CCCHServiceHandler::HandleNotifyEvent; OUT" ); + return 0; + } + +// ----------------------------------------------------------------------------- // CCCHServiceHandler::HandlePluginUnload // ----------------------------------------------------------------------------- // @@ -549,6 +605,63 @@ CCHLOGSTRING( "CCCHServiceHandler::HandlePluginUnload OUT" ); } +// ----------------------------------------------------------------------------- +// CCCHServiceHandler::HandleDelayedNotifyEvent +// ----------------------------------------------------------------------------- +// +void CCCHServiceHandler::HandleDelayedNotifyEvent() + { + CCHLOGSTRING2( "CCCHServiceHandler[0x%x]::HandleDelayedNotifyEvent IN", + this ); + + iDelayedHandleNotifyServiceId = 0; + CancelHandleNotifyDelayTimer(); + + TServiceSelection selection; + selection.iServiceId = iDelayedHandleNotifyServiceId; + TInt index( ServiceExist( selection ) ); + + TRAPD( err, + { + if ( KErrNotFound != index ) + { + iServices[ index ]->UpdateL( ETrue ); + } + else + { + TCCHService service; + iServer.SPSHandler().GetServiceInfoL( + iDelayedHandleNotifyServiceId, service ); + AddServiceL( service ); + } + } ); + + //Check if service is already marked as enabled, and enable it + if ( KErrNone == err ) + { + index = ServiceExist( selection ); + if ( KErrNotFound != index ) + { + if( iServices[ index ]->StartupFlagSet() && + ECCHEnabled != iServices[ index ]->GetState() ) + { + iCancelNotify = EFalse; + EnableService( selection, EFalse ); + iCancelNotify = ETrue; + } + } + } + + // If service has removed, err must be other than none + // and we have to update all services + if ( KErrNone != err ) + { + TRAP_IGNORE( UpdateL( ETrue ) ); + } + + CCHLOGSTRING( "CCCHServiceHandler::HandleDelayedNotifyEvent OUT" ); + } + // --------------------------------------------------------------------------- // CCCHServiceHandler::Exists // (other items were commented in a header). @@ -1522,49 +1635,11 @@ // void CCCHServiceHandler::HandleNotifyChange( TServiceId aServiceId ) { - CCHLOGSTRING( "CCCHServiceHandler::HandleNotifyChange: IN" ); - TServiceSelection selection; - selection.iServiceId = aServiceId; - TInt index( ServiceExist( selection ) ); - TRAPD( err, - { - if ( KErrNotFound != index ) - { - iServices[ index ]->UpdateL( ETrue ); - } - else - { - TCCHService service; - iServer.SPSHandler().GetServiceInfoL( aServiceId, service ); - AddServiceL( service ); - } - } ); + CCHLOGSTRING( "CCCHServiceHandler::HandleNotifyChange IN" ); - //Check if service is already marked as enabled, and enable it - if ( KErrNone == err ) - { - index = ServiceExist( selection ); - if ( KErrNotFound != index ) - { - CCHLOGSTRING( "CCCHServiceHandler::HandleNotifyChange: service found" ); - if( iServices[ index ]->StartupFlagSet() && - ECCHEnabled != iServices[ index ]->GetState() ) - { - CCHLOGSTRING( "CCCHServiceHandler::HandleNotifyChange: enabling..." ); - iCancelNotify = EFalse; - EnableService( selection, EFalse ); - iCancelNotify = ETrue; - } - } - } - - // If service has removed, err must be other than none - // and we have to update all services - if ( KErrNone != err ) - { - TRAP_IGNORE( UpdateL( ETrue ) ); - } - CCHLOGSTRING( "CCCHServiceHandler::HandleNotifyChange: OUT" ); + CancelHandleNotifyDelayTimer(); + StartHandleNotifyDelayTimer(); + iDelayedHandleNotifyServiceId = aServiceId; } // --------------------------------------------------------------------------- diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchserver/src/cchsubserviceinfo.cpp --- a/convergedconnectionhandler/cchserver/src/cchsubserviceinfo.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchserver/src/cchsubserviceinfo.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -149,10 +149,9 @@ // --------------------------------------------------------------------------- // TCCHSubserviceType CCCHSubserviceInfo::Type() - { - GetServiceNetworkInfo(); - return iType; - } + { + return iType; + } // --------------------------------------------------------------------------- // CCCHSubserviceInfo::SetState diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/cchserver/src/cchuihandler.cpp --- a/convergedconnectionhandler/cchserver/src/cchuihandler.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/cchserver/src/cchuihandler.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -172,7 +172,6 @@ void CCchUIHandler::MobileNetworkNoService( ) { CCHLOGSTRING( "CCchUIHandler::MobileNetworkNoService" ); - TRAP_IGNORE( ShowEmergencyWarningNoteL( EFalse ) ); } // --------------------------------------------------------------------------- @@ -205,19 +204,10 @@ KCCHVoIPEmergencyWarningShown, emergencyWarningShown ); if( err == KErrNone ) { - if ( !iVoIPEmergencyNoteState ) - { - iVoIPEmergencyNoteState = - iCchEtelNetworkStatusNotifier->IsNetworkStatusNoService(); - } if( !emergencyWarningShown ) { ShowEmergencyWarningNoteL( ETrue ); } - else if( iVoIPEmergencyNoteState ) - { - ShowEmergencyWarningNoteL( EFalse ); - } } } else if ( !aStatus && iVoIPSmallIndicatorShown ) @@ -302,20 +292,7 @@ SecondaryDisplay::ECmdShowVoipEmergencyCallReadinessQuery ); iServer.SetVoIPEmergencyNoteShown( ETrue ); } - else - { - TInt voIPEmergencyNoteDoNotShow( 0 ); - iCchRepository->Get( - KCCHVoIPShowEmergencyWarningOnOff, voIPEmergencyNoteDoNotShow ); - if ( voIPEmergencyNoteDoNotShow && !iServer.VoIPEmergencyNoteShown() ) - { - iServer.SetVoIPEmergencyNoteShown( ETrue ); - iNoteHandler->LaunchGlobalNoteL( - R_QTN_VOIP_EM_CALL_ERROR_NOTE_NO_CS, - R_AVKON_SOFTKEYS_OK_EMPTY, - SecondaryDisplay::ECmdShowVoipEmergencyCallErrorNoteNoCsQuery ); - } - } + } } diff -r 7117cbf1600a -r bddb6d4447db convergedconnectionhandler/group/bld.inf --- a/convergedconnectionhandler/group/bld.inf Fri Mar 12 15:42:09 2010 +0200 +++ b/convergedconnectionhandler/group/bld.inf Mon Mar 15 12:39:55 2010 +0200 @@ -22,9 +22,7 @@ PRJ_EXPORTS ../rom/cch.iby CORE_APP_LAYER_IBY_EXPORT_PATH( cch.iby ) -// Temporarily move resource iby to core due missing localization -//../rom/cchresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH( cchresources.iby ) -../rom/cchresources.iby CORE_APP_LAYER_IBY_EXPORT_PATH( cchresources.iby ) +../rom/cchresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH( cchresources.iby ) #include "../cchserver/group/bld.inf" #include "../cchclient/group/bld.inf" diff -r 7117cbf1600a -r bddb6d4447db sipvoipprovider/src/svpsessionbase.cpp --- a/sipvoipprovider/src/svpsessionbase.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/sipvoipprovider/src/svpsessionbase.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -284,7 +284,13 @@ } ExecCbCallStateChanged( MCCPCallObserver::ECCPStateDisconnecting ); - ExecCbCallStateChanged( MCCPCallObserver::ECCPStateIdle ); + + TRAPD( errTimer, StartTimerL( KSVPTerminatingTime, KSVPRemoteEndDiedExpired )); + if ( errTimer ) + { + SVPDEBUG2("CSVPSessionBase::No Answer timer leave with error code %d", + errTimer ) + } } if ( KSVPTerminationTimerExpired == aTimerId ) diff -r 7117cbf1600a -r bddb6d4447db voipplugins/accountcreationplugin/data/accountcreationplugin.rss --- a/voipplugins/accountcreationplugin/data/accountcreationplugin.rss Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/accountcreationplugin/data/accountcreationplugin.rss Mon Mar 15 12:39:55 2010 +0200 @@ -109,11 +109,13 @@ { command = EAknSoftkeySelect; txt = qtn_voip_option_service_details; + flags = EEikMenuItemSpecific; }, MENU_ITEM { command = EAcpDownload; txt = qtn_voip_option_service_download_service; + flags = EEikMenuItemSpecific; }, MENU_ITEM { diff -r 7117cbf1600a -r bddb6d4447db voipplugins/accountcreationplugin/engine/src/acphttphandler.cpp --- a/voipplugins/accountcreationplugin/engine/src/acphttphandler.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/accountcreationplugin/engine/src/acphttphandler.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -273,7 +273,7 @@ TCommDbConnPref pref; pref.SetDirection( ECommDbConnectionDirectionOutgoing ); pref.SetBearerSet( KCommDbBearerLAN | KCommDbBearerCSD | - KCommDbBearerWcdma ); + KCommDbBearerWcdma | KCommDbBearerWLAN ); // Show connection prompt only once. if ( !iPromptShown ) diff -r 7117cbf1600a -r bddb6d4447db voipplugins/accountcreationplugin/src/acpproviderlistview.cpp --- a/voipplugins/accountcreationplugin/src/acpproviderlistview.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/accountcreationplugin/src/acpproviderlistview.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -467,7 +467,7 @@ switch ( aEventType ) { case EEventEnterKeyPressed: - case EEventItemDoubleClicked: + case EEventItemSingleClicked: HandleCommandL( EAknSoftkeySelect ); break; default: diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/inc/scppresencehandler.h --- a/voipplugins/sipconnectionprovider/inc/scppresencehandler.h Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/inc/scppresencehandler.h Mon Mar 15 12:39:55 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 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" @@ -104,6 +104,14 @@ void HandleSipConnectionEvent( const TUint32 aProfileId, TScpConnectionEvent aSipEvent ); + /** + * Query is starting to ALR allowed. + * Client can start ALR later if needed to do something first + * + * @return ETrue if allowed. + */ + TBool IsSipProfileAllowedToStartAlr(); + public: // From MScpSubServiceObserver /** * Handle SubService state change. diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/inc/scpprofilehandler.h --- a/voipplugins/sipconnectionprovider/inc/scpprofilehandler.h Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/inc/scpprofilehandler.h Mon Mar 15 12:39:55 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 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" @@ -206,6 +206,13 @@ const TDesC8& aPassword, TBool aSetPassword ); + /** + * Informs SIP to allow ALR migration + * + * @param aProfileId SIP profile ID + */ + void StartAlrMigration( TUint32 aProfileId ); + #ifdef _DEBUG void GetDebugInfo( TDes& aInfo ) const; #endif @@ -286,6 +293,14 @@ */ void HandleSipConnectionEvent( TUint32 aProfileId, TScpConnectionEvent aSipEvent ); + + /** + * Query is starting to ALR allowed. + * Client can start ALR later if needed to do something first + * + * @return ETrue if allowed. + */ + TBool IsSipProfileAllowedToStartAlr(); private: @@ -350,6 +365,16 @@ */ CIpVmbxInterface* iVmbxInterface; + /** + * New IapId received in ALR event + */ + TUint iNewAlrIapId; + + /** + * Is ALR Migration Allowed To Start Immediately + */ + TBool iAlrAllowedToStartImmediately; + // This need to be cleaned to separate macro/header #ifdef _DEBUG friend class T_CScpServiceManager; diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/inc/scpservicehandlerbase.h --- a/voipplugins/sipconnectionprovider/inc/scpservicehandlerbase.h Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/inc/scpservicehandlerbase.h Mon Mar 15 12:39:55 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 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" @@ -105,7 +105,16 @@ */ virtual void HandleSipConnectionEvent( const TUint32 aProfileId, TScpConnectionEvent aSipEvent ) = 0; - + + /** + * From base class MScpSipConnectionObserver + * Query is starting to ALR allowed. + * Client can start ALR later if needed to do something first + * + * @return ETrue if allowed. + */ + virtual TBool IsSipProfileAllowedToStartAlr(); + /** * Forced sip profile disable call back * @param aSelf this object diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/inc/scpsipconnectionobserver.h --- a/voipplugins/sipconnectionprovider/inc/scpsipconnectionobserver.h Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/inc/scpsipconnectionobserver.h Mon Mar 15 12:39:55 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 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" @@ -39,7 +39,15 @@ */ virtual void HandleSipConnectionEvent( TUint32 aProfileId, TScpConnectionEvent aEvent ) = 0; - + + /** + * Query is starting to ALR allowed. + * Client can start ALR later if needed to do something first + * + * @return ETrue if allowed. + */ + virtual TBool IsSipProfileAllowedToStartAlr() = 0; + }; /** diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/src/scppresencehandler.cpp --- a/voipplugins/sipconnectionprovider/src/scppresencehandler.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/src/scppresencehandler.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 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" @@ -39,7 +39,7 @@ #include #include #include //presence settings -#include +#include #include #include "scppresencehandler.h" @@ -322,6 +322,14 @@ SCPLOGSTRING( "CScpPresenceHandler::HandleSipConnectionEvent OUT" ); } +// ----------------------------------------------------------------------------- +// CScpPresenceHandler::HandleSipConnectionEvent +// ----------------------------------------------------------------------------- +// +TBool CScpPresenceHandler::IsSipProfileAllowedToStartAlr() + { + return EFalse; + } // ======================= From MXIMPContextObserver =========================== @@ -695,7 +703,6 @@ MPresenceInfoFieldValueEnum* enumField2 = iFeature->PresenceObjectFactory().NewEnumInfoFieldLC(); - TInt availabilityEnum(0); RBuf customMessage; CleanupClosePushL( customMessage ); @@ -910,8 +917,19 @@ // Unbind request complete else if ( reqType == EUnBindReq && EUnBinding == iPresenceState ) { - SCPLOGSTRING( "CScpPresenceHandler::HandleRequestCompleteEvent status offline" ); - DeregisterNow(); + SCPLOGSTRING( "CScpPresenceHandler::HandleRequestCompleteEvent status offline" ); + + // Do not send info to our client if roaming is ongoing + if ( !iSubService.IsRoaming() ) + { + DeregisterNow(); + } + // Inform SIP to start ALR migration + else + { + iSubService.ProfileHandler().StartAlrMigration( iSubService.SipProfileId() ); + } + SCPLOGSTRING( "CScpPresenceHandler::HandleRequestCompleteEvent status offline end" ); } diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/src/scpprofilehandler.cpp --- a/voipplugins/sipconnectionprovider/src/scpprofilehandler.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/src/scpprofilehandler.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2007-2010 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" @@ -459,6 +459,26 @@ } // ----------------------------------------------------------------------------- +// CScpProfileHandler::StartAlrMigration +// ----------------------------------------------------------------------------- +// +void CScpProfileHandler::StartAlrMigration( TUint32 aProfileId ) + { + SCPLOGSTRING2( "CScpProfileHandler::StartMigrtion profile: %i", aProfileId ); + SCPLOGSTRING2( "CScpProfileHandler::StartMigrtion iNewAlrIapId: %i", iNewAlrIapId ); + + TRAP_IGNORE( + iAlrController->AllowMigrationL( aProfileId, iNewAlrIapId ) ); + + CScpSipConnection* sipConnection( NULL ); + + sipConnection = GetSipConnection( aProfileId ); + sipConnection->SetProfileCurrentlyRoaming(); + + SCPLOGSTRING( "CScpProfileHandler::StartMigrtion -exit" ); + } + +// ----------------------------------------------------------------------------- // CScpProfileHandler::AlrEvent // ----------------------------------------------------------------------------- // @@ -502,13 +522,29 @@ } else { - sipConnection->SetProfileCurrentlyRoaming(); + iAlrAllowedToStartImmediately = ETrue; - TRAP_IGNORE( - iAlrController->AllowMigrationL( aProfileId, aIapId ) ); + for ( TInt i = 0; i < iObservers.Count(); i++ ) + { + if ( !iObservers[ i ]->IsSipProfileAllowedToStartAlr() ) + { + iAlrAllowedToStartImmediately = EFalse; + break; + } + } + if ( iAlrAllowedToStartImmediately ) + { + TRAP_IGNORE( + iAlrController->AllowMigrationL( aProfileId, aIapId ) ); + sipConnection->SetProfileCurrentlyRoaming(); + } + else + { + iNewAlrIapId = aIapId; + sipConnection->HandleMigrationStarted(); + } } } - break; } @@ -519,11 +555,10 @@ { sipConnection = GetSipConnection( aProfileId ); - if( sipConnection ) + if( sipConnection && iAlrAllowedToStartImmediately ) { sipConnection->HandleMigrationStarted(); } - break; } @@ -597,6 +632,15 @@ } // ----------------------------------------------------------------------------- +// CScpProfileHandler::IsSipProfileAllowedToStartAlr +// ----------------------------------------------------------------------------- +// +TBool CScpProfileHandler::IsSipProfileAllowedToStartAlr() + { + return ETrue; + } + +// ----------------------------------------------------------------------------- // CScpProfileHandler::VmbxInterfaceL // ----------------------------------------------------------------------------- // diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/src/scpservicehandlerbase.cpp --- a/voipplugins/sipconnectionprovider/src/scpservicehandlerbase.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/src/scpservicehandlerbase.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2007 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 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" @@ -66,6 +66,16 @@ } // ----------------------------------------------------------------------------- +// From base class MScpSipConnectionObserver +// CScpServiceHandlerBase::IsSipProfileAllowedToStartAlr +// ----------------------------------------------------------------------------- +// +TBool CScpServiceHandlerBase::IsSipProfileAllowedToStartAlr() + { + return ETrue; + } + +// ----------------------------------------------------------------------------- // CScpServiceHandlerBase::RegisterProfileL // ----------------------------------------------------------------------------- // diff -r 7117cbf1600a -r bddb6d4447db voipplugins/sipconnectionprovider/src/scpservicemanager.cpp --- a/voipplugins/sipconnectionprovider/src/scpservicemanager.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/sipconnectionprovider/src/scpservicemanager.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -984,7 +984,7 @@ } } - if ( aSetUsername ) + if ( service && aSetUsername ) { iSettingHandler->UpdateXdmUsernameL( *service, @@ -992,7 +992,7 @@ aUsername ); } - if ( aSetPassword ) + if ( service && aSetPassword ) { iSettingHandler->UpdateXdmPasswordL( *service, diff -r 7117cbf1600a -r bddb6d4447db voipplugins/svtmatching/inc/svturiparser.h --- a/voipplugins/svtmatching/inc/svturiparser.h Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/svtmatching/inc/svturiparser.h Mon Mar 15 12:39:55 2010 +0200 @@ -63,6 +63,16 @@ TInt DisplayNameFromUri( const TDesC& aData, RBuf& aDisplayname ) const; /** + * Parses displayname part from uri. + * @leave Leaves with system wide error. + * @param aData - Original uri. + * @param aDisplayname - Uris displayname part if found from + * original uri. + * @param aResult - Result of operation, KErrNone if success. + */ + void DisplayNameFromUriL( const TDesC& aData, RBuf& aDisplayname, TInt& aResult ) const; + + /** * Checks sip uri for spaces in begin and end of string. * @leave Leaves on failure. * @param aOriginal - Original sip uri. diff -r 7117cbf1600a -r bddb6d4447db voipplugins/svtmatching/src/svturiparser.cpp --- a/voipplugins/svtmatching/src/svturiparser.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/svtmatching/src/svturiparser.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -95,81 +95,114 @@ const TDesC& aData, RBuf& aDisplayname ) const { - TInt ret( KErrNotFound ); + TInt result = KErrNotFound; + + TRAPD( err, DisplayNameFromUriL( aData, aDisplayname, result ) ); + if ( err ) + { + result = err; + } + return result; + } + +// --------------------------------------------------------------------------- +// The inner logic for resolving display name from sip uri +// --------------------------------------------------------------------------- +// +void CSvtUriParser::DisplayNameFromUriL( + const TDesC& aData, + RBuf& aDisplayname, + TInt& aResult ) const + { + aResult = KErrNotFound; - TPtrC resultStr( aData ); + TPtrC preResultStr( aData ); aDisplayname.Close(); - // resolves potential SIP Display info and removes it from uri - // also possible "<" and ">" character are removed around the SIP uri - TInt uriStartIndex = resultStr.LocateReverse( KStartBracket ); - TInt uriEndIndex = resultStr.LocateReverse( KEndBracket ); + HBufC* tempBuffer = preResultStr.AllocLC(); // CS:1 + tempBuffer->Des().TrimAll(); - if ( uriStartIndex > uriEndIndex ) + if ( tempBuffer->Length() ) { - // Start and end separators in wrong order: "xxxx>xxxxDes() ); + + // resolves potential SIP Display info and removes it from uri + // also possible "<" and ">" character are removed around the SIP uri + TInt uriStartIndex = resultStr.LocateReverse( KStartBracket ); + TInt uriEndIndex = resultStr.LocateReverse( KEndBracket ); - // check if there is anything before "<" if there is use - // it as displayname if match op fails. - if ( uriStartIndex > 1 ) - { - TPtrC tempStr( resultStr.Left( uriStartIndex ) ); - // remove possible quotation marks from displayname - TInt index = tempStr.Locate( KQuotationMark ); - if ( KErrNotFound != index ) + if ( KErrNotFound != uriStartIndex && KErrNotFound != uriEndIndex ) + { + if ( uriStartIndex < uriEndIndex ) { - // marks have to be removed - tempStr.Set( tempStr.Mid( ++index ) ); - if ( tempStr[tempStr.Length() - 1] == KQuotationMark ) - { - tempStr.Set( tempStr.Left( tempStr.Length() - 1 ) ); - } + // brackets found so modify descriptor and save the display info + + // check if there is anything before "<" if there is use + // it as displayname if match op fails. + if ( uriStartIndex > 1 ) + { + TPtrC tempStr( resultStr.Left( uriStartIndex ) ); + // remove possible quotation marks from displayname + TInt index = tempStr.Locate( KQuotationMark ); + if ( KErrNotFound != index ) + { + // marks have to be removed + tempStr.Set( tempStr.Mid( ++index ) ); + if ( tempStr[tempStr.Length() - 1] == KQuotationMark ) + { + tempStr.Set( tempStr.Left( tempStr.Length() - 1 ) ); + } + } + aResult = aDisplayname.Create( tempStr ); + } + } + else + { + // Start and end separators in wrong order: "xxxx>xxxx userAgentHeader; iDatas[itemIndex]->GetUserAgentHeaderL( userAgentHeader ); - // SIPProfileId must be bigger than 1 because otherwise - // cSIPManagedProfileRegistry->ProfileL will leave. - if ( setOk && storageId > 1 ) + if ( setOk && storageId > 0 ) { TUint32 itemId = iDatas[itemIndex]->ItemId(); if ( TUint( KNotSaved ) != itemId ) @@ -1021,7 +1018,6 @@ rcseReg->UpdateL( itemId, *rcseProf ); CleanupStack::PopAndDestroy( 2, rcseReg ); } - // Then set SIP user-agent header DBG_PRINT( @@ -1051,7 +1047,7 @@ User::LeaveIfError( cSIPManagedProfile->SetParameter( KSIPHeaders, *uahArray ) ); } - + cSIPManagedProfileRegistry->SaveL( *cSIPManagedProfile ); uahArray->Reset(); CleanupStack::PopAndDestroy( uahArray ); // CS:5 @@ -1067,7 +1063,6 @@ } // if ( matches ... ) } // for } - else if ( KErrNone == KSCCPAppID8().CompareF( tmpAppId->Des() ) ) { for ( TInt itemIndex = 0; itemIndex < iDatas.Count(); itemIndex++ ) @@ -1076,7 +1071,6 @@ aAppRef ); } } - else if ( KErrNone == KNATFWAppID8().CompareF( tmpAppId->Des() ) ) { for ( TInt itemIndex = 0; itemIndex < iDatas.Count(); itemIndex++ ) @@ -1085,7 +1079,6 @@ aAppRef ); } } - else if ( KErrNone == KPresenceAppId8().CompareF( tmpAppId->Des() ) ) { for ( TInt itemIndex = 0; itemIndex < iDatas.Count(); itemIndex++ ) @@ -1094,7 +1087,6 @@ storageId, aAppRef ); } } - else if ( KErrNone == KSNAPAppID8().CompareF( tmpAppId->Des() ) ) { for ( TInt itemIndex = 0; itemIndex < iDatas.Count(); itemIndex++ ) diff -r 7117cbf1600a -r bddb6d4447db voipplugins/voipadapters/dmvoipadapter/src/nsmldmvoipadapter.cpp --- a/voipplugins/voipadapters/dmvoipadapter/src/nsmldmvoipadapter.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/voipadapters/dmvoipadapter/src/nsmldmvoipadapter.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -1585,8 +1585,7 @@ else if ( KNSmlDMVoIPUsedSIPProfileId() == uriSeg ) { TUint32 profileId = SetSipRefL( aObject ); - // SIP profile ID's start from 2. - if ( profileId > 1 ) + if ( profileId > 0 ) { if ( KErrNotFound == spSettingsId ) { diff -r 7117cbf1600a -r bddb6d4447db voipplugins/voipadapters/voipxmlprovisioning/group/bld.inf --- a/voipplugins/voipadapters/voipxmlprovisioning/group/bld.inf Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/voipadapters/voipxmlprovisioning/group/bld.inf Mon Mar 15 12:39:55 2010 +0200 @@ -22,6 +22,8 @@ DEFAULT PRJ_EXPORTS +../rom/voipxmlprovisioning.iby CORE_APP_LAYER_IBY_EXPORT_PATH( voipxmlprovisioning.iby ) +../rom/voipxmlprovisioningresources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH( voipxmlprovisioningresources.iby ) PRJ_MMPFILES #include "../voipxmlprocessor/group/bld.inf" diff -r 7117cbf1600a -r bddb6d4447db voipplugins/voipadapters/voipxmlprovisioning/rom/voipxmlprovisioning.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/voipplugins/voipadapters/voipxmlprovisioning/rom/voipxmlprovisioning.iby Mon Mar 15 12:39:55 2010 +0200 @@ -0,0 +1,32 @@ +/* +* Copyright (c) 2010 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: +* IBY file for voipxmlprovisioning +* +* +*/ + +#ifndef VOIPXMLPROVISIONING_IBY +#define VOIPXMLPROVISIONING_IBY + +#include + + file=ABI_DIR\BUILD_DIR\voipxmlprocessor.dll SHARED_LIB_DIR\voipxmlprocessor.dll + + ECOM_PLUGIN( voipprovrec.dll,20026FE1.rsc ) + + S60_APP_EXE(voipprovisioningapp) + S60_UPGRADABLE_APP_REG_RSC(voipprovisioningapp) + +#endif // VOIPXMLPROVISIONING_IBY diff -r 7117cbf1600a -r bddb6d4447db voipplugins/voipadapters/voipxmlprovisioning/rom/voipxmlprovisioningresources.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/voipplugins/voipadapters/voipxmlprovisioning/rom/voipxmlprovisioningresources.iby Mon Mar 15 12:39:55 2010 +0200 @@ -0,0 +1,29 @@ +/* +* Copyright (c) 2010 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: +* IBY file for voipxmlprovisioning +* +* +*/ + +#ifndef VOIPXMLPROVISIONINGRESOURCES_IBY +#define VOIPXMLPROVISIONINGRESOURCES_IBY + +#include + + DATA=DATAZ_\RESOURCE_FILES_DIR\VoIPProvRec.rsc RESOURCE_FILES_DIR\VoIPProvRec.rsc + S60_APP_RESOURCE(VoIPProvisioningApp) +// S60_APP_CAPTION(VoIPProvisioningApp) + +#endif // VOIPXMLPROVISIONINGRESOURCES_IBY diff -r 7117cbf1600a -r bddb6d4447db voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmliaphandler.cpp --- a/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmliaphandler.cpp Fri Mar 12 15:42:09 2010 +0200 +++ b/voipplugins/voipadapters/voipxmlprovisioning/voipxmlprocessor/src/voipxmliaphandler.cpp Mon Mar 15 12:39:55 2010 +0200 @@ -640,13 +640,19 @@ DBG_PRINT( " EapType none" ); User::LeaveIfError( wpaSecSettings->SetWPAPreSharedKey( aTempIap.iPreSharedKey->Des() )); + wpaSecSettings->SaveL( wlanId, *db, ESavingBrandNewAP, 0 ); } else if ( EAPSettings::EEapLeap == aTempIap.iEapType ) { DBG_PRINT( " eapType Leap" ); + TBuf8 eapId; eapId.Copy( KEapLeapId, KEapChars ); - CEapType* eapType = CEapType::NewL( eapId, ELan, iapServiceId ); + User::LeaveIfError( + wpaSecSettings->SetWPAEnabledEAPPlugin( eapId ) ); + wpaSecSettings->SaveL( wlanId, *db, ESavingBrandNewAP, 0 ); + + CEapType* eapType = CEapType::NewL( eapId, ELan, wlanId ); CleanupStack::PushL( eapType ); // CS:3 EAPSettings* eapSettings = new (ELeave) EAPSettings(); CleanupStack::PushL( eapSettings ); // CS:4 @@ -656,10 +662,8 @@ eapSettings->iPassword.Copy( aTempIap.iEapPassword->Des() ); eapSettings->iPasswordPresent = ETrue; eapType->SetConfigurationL( *eapSettings ); - CleanupStack::PopAndDestroy( 2, eapType ); - wpaSecSettings->SetWPAEnabledEAPPlugin( eapId ); + CleanupStack::PopAndDestroy( 2, eapType ); // CS:2 } - wpaSecSettings->SaveL( wlanId, *db, ESavingBrandNewAP, 0 ); // wpaSecSettings, db CleanupStack::PopAndDestroy( 2, db ); // CS:0 }