diff -r 75a71fdb4c92 -r db6d61d7814f omadm/omadmappui/src/NSmlDMDlgProfileView.cpp --- a/omadm/omadmappui/src/NSmlDMDlgProfileView.cpp Tue Feb 02 00:03:17 2010 +0200 +++ b/omadm/omadmappui/src/NSmlDMDlgProfileView.cpp Fri Feb 19 22:41:42 2010 +0200 @@ -21,13 +21,13 @@ #include #include #include -#include -#include #include #include #include #include - +#include +#include +#include #include "NSmlDMSyncApp.h" #include "NSmlDMSyncDocument.h" #include "NSmlDMSyncAppUi.h" @@ -935,12 +935,8 @@ { FLOG( "[OMADM] CNSmlDMDlgProfileView::EditSettingItemAccessPointL:" ); - TInt curSelection(ENsmlAlwaysAsk); - if( aItem.iNumberData == KErrNotFound ) //Always ask - { - curSelection = ENsmlAlwaysAsk; - } - else if(aItem.iNumberData == KErrGeneral) //default conenction + TInt curSelection(ENsmlDefaultConnection); + if(aItem.iNumberData == KErrGeneral || aItem.iNumberData == KErrNotFound ) //default conenction { curSelection = ENsmlDefaultConnection; } @@ -955,12 +951,9 @@ R_CMMANAGERUI_SETT_USER_DEFINED); HBufC* title = StringLoader::LoadLC( R_CMMANAGERUI_SETT_DESTINATION); - HBufC* alwaysask = StringLoader::LoadLC( - R_ALWAYS_ASK_ALWAYS_ASK); - CDesCArrayFlat* stringData = new (ELeave) CDesCArrayFlat( 3 ); + CDesCArrayFlat* stringData = new (ELeave) CDesCArrayFlat( 2 ); CleanupStack::PushL( stringData ); - stringData->AppendL(alwaysask->Des()); stringData->AppendL(destName->Des()); stringData->AppendL(userdef->Des()); @@ -977,79 +970,53 @@ TUint32 currentAccesspoint(0); if ( !ret ) { - CleanupStack::PopAndDestroy(5); + CleanupStack::PopAndDestroy(4); return EFalse; // user canceled "Always ask" dialog } - - if ( curSelection == ENsmlAlwaysAsk ) - { - aItem.SetValue( alwaysask->Des() ); - aItem.iNumberData = KErrNotFound; - CleanupStack::PopAndDestroy(5); - return ETrue; // user selected "Always ask" option - } - else if(curSelection == ENsmlDefaultConnection ) + if(curSelection == ENsmlDefaultConnection || curSelection == ENsmlAlwaysAsk ) { aItem.SetValue( destName->Des() ); aItem.iNumberData = KErrGeneral; - CleanupStack::PopAndDestroy(5); + CleanupStack::PopAndDestroy(4); return ETrue; // user selected "default connection" option } else - { - CCommsDatabase* commDb = CCommsDatabase::NewL( EDatabaseTypeIAP ); - CleanupStack::PushL( commDb ); - CApUtils* aputils = CApUtils::NewLC(*commDb); - currentAccesspoint = aItem.iNumberData ; - CleanupStack::PopAndDestroy( aputils ); - CleanupStack::PopAndDestroy( commDb ); - + { + currentAccesspoint = aItem.iNumberData ; FTRACE( RDebug::Print( _L("[OMADM] CNSmlDMDlgProfileView::EditSettingItemAccessPointL: current ap (%d)"), currentAccesspoint ) ); } - - - TInt apBearerFlags; - if ( FeatureManager::FeatureSupported( KFeatureIdAppCsdSupport ) ) - { - apBearerFlags = EApBearerTypeCSD | - EApBearerTypeGPRS | - EApBearerTypeHSCSD | - EApBearerTypeWLAN; - } - else - { - apBearerFlags = EApBearerTypeGPRS | EApBearerTypeWLAN; - } - - CApSettingsHandler* handler = CApSettingsHandler::NewLC( - ETrue, - EApSettingsSelListIsPopUp, - EApSettingsSelMenuSelectNormal, - KEApIspTypeAll, - apBearerFlags, - KEApSortNameAscending ); - - TInt retVal = KErrNone; - TUint32 selectedIap(0); - TRAP_IGNORE( retVal = handler->RunSettingsL( currentAccesspoint, - selectedIap ) ); - CleanupStack::PopAndDestroy(handler); - CleanupStack::PopAndDestroy(5); - - if ( retVal & KApUiEventSelected ) - { - SetAccessPointInfoL( selectedIap ); - } - else if ( retVal == KApUiEventExitRequested ) - { - DoExitFromMenuL(); - } - else - { - //Keep previous selection - } + TCmSettingSelection userSelection; + userSelection.iId = currentAccesspoint; + userSelection.iResult = CMManager::EConnectionMethod; + CCmApplicationSettingsUi* settings = CCmApplicationSettingsUi::NewL(); + CleanupStack::PushL(settings); + TUint listedItems = CMManager::EShowConnectionMethods; + TBearerFilterArray filter; + TBool selected = settings->RunApplicationSettingsL(userSelection, + listedItems, + filter); + CleanupStack::PopAndDestroy(settings); + if (selected) { + switch (userSelection.iResult) + { + case CMManager::EConnectionMethod: + { + + SetAccessPointInfoL( userSelection.iId ); + break; + } + default: + break; + } + } + else + { + // Check end key handling etc? + //Keep previous selection + } + CleanupStack::PopAndDestroy(4); return ETrue; } @@ -1060,59 +1027,25 @@ void CNSmlDMDlgProfileView::SetAccessPointInfoL( TUint aId ) { FLOG( "[OMADM] CNSmlDMDlgProfileView::SetAccessPointInfoL:"); - - CCommsDatabase* commDb = CCommsDatabase::NewL( EDatabaseTypeIAP ); - CleanupStack::PushL( commDb ); - - TInt apBearerFilter; - - if ( FeatureManager::FeatureSupported( KFeatureIdAppCsdSupport ) ) - { - apBearerFilter = EApBearerTypeCSD | - EApBearerTypeGPRS | - EApBearerTypeHSCSD | - EApBearerTypeWLAN; - } - else - { - apBearerFilter = EApBearerTypeGPRS | EApBearerTypeWLAN; - } - CApSelect* apSelect = CApSelect::NewLC( *commDb, - KEApIspTypeAll, - apBearerFilter, - KEApSortUidAscending ); - TBool retValue( EFalse ); - - if ( apSelect->MoveToFirst() ) + RCmManager cmManager; + cmManager.OpenLC(); + RCmConnectionMethod conn; + TRAPD(err, conn = cmManager.ConnectionMethodL( aId )); + if(err == KErrNone)//connection method exists + retValue = ETrue; + + if (retValue ) { - if ( aId == apSelect->Uid() ) - { - retValue = ETrue; - } - while ( ( ! retValue ) && ( apSelect->MoveNext() ) ) - { - if ( aId == apSelect->Uid() ) - { - retValue = ETrue; - } - } + CleanupClosePushL( conn ); + HBufC* name = conn.GetStringAttributeL( CMManager::ECmName ); + Item( ENSmlAccessPoint )->SetValue( *name ); + delete name; + CleanupStack::PopAndDestroy( 1 ); // conn + Item( ENSmlAccessPoint )->iNumberData = aId; + Item( ENSmlAccessPoint )->iWapAPInUse = EFalse; } - - if ( retValue ) - { - CApUtils* aputils = CApUtils::NewLC(*commDb); - TRAP_IGNORE( aId = aputils->IapIdFromWapIdL( aId ) ); - - FTRACE(RDebug::Print(_L("accesspoint after IapIdFromWapIdL (%d)"), aId)); - - Item( ENSmlAccessPoint )->SetValue( apSelect->Name() ); - Item( ENSmlAccessPoint )->iNumberData = aId; - Item( ENSmlAccessPoint )->iWapAPInUse = EFalse; - - CleanupStack::PopAndDestroy( aputils ); - } - else + else//connection method doesn't exist { HBufC* emptyText = iEikonEnv->AllocReadResourceLC(R_CMMANAGERUI_SETT_DEFAULT_CONNECTION); @@ -1121,9 +1054,7 @@ Item( ENSmlAccessPoint )->iWapAPInUse = EFalse; CleanupStack::PopAndDestroy(emptyText); } - - CleanupStack::PopAndDestroy( apSelect ); - CleanupStack::PopAndDestroy( commDb ); + CleanupStack::PopAndDestroy( 1 ); //cmManager } // ----------------------------------------------------------------------------- @@ -1131,110 +1062,53 @@ // ----------------------------------------------------------------------------- // void CNSmlDMDlgProfileView::GetAccessPointInfoL( TInt aId ) - { - FTRACE( RDebug::Print( - _L("[OMADM] CNSmlDMDlgProfileView::GetAccessPointInfoL: aId (%d)"), aId)); - - TInt err = KErrNone; - - CCommsDatabase* commDb = CCommsDatabase::NewL( EDatabaseTypeIAP ); - CleanupStack::PushL( commDb ); - CApUtils* aputils = CApUtils::NewLC( *commDb ); - - TBool apExists = EFalse; - TRAP( err, apExists = aputils->IAPExistsL( aId ) ); - if ( aId == KErrNotFound ) - { - HBufC* emptyText = - iEikonEnv->AllocReadResourceLC( R_ALWAYS_ASK_ALWAYS_ASK ); - Item( ENSmlAccessPoint )->SetValue( emptyText->Des() ); - Item( ENSmlAccessPoint )->iNumberData = KErrNotFound; - Item( ENSmlAccessPoint )->iWapAPInUse = EFalse; - CleanupStack::PopAndDestroy( emptyText ); - CleanupStack::PopAndDestroy( aputils ); - CleanupStack::PopAndDestroy( commDb ); - return; - } - else if(!apExists || aId == KErrGeneral) - { - HBufC* emptyText = - iEikonEnv->AllocReadResourceLC(R_CMMANAGERUI_SETT_DEFAULT_CONNECTION); - Item( ENSmlAccessPoint )->SetValue( emptyText->Des() ); - Item( ENSmlAccessPoint )->iNumberData = KErrGeneral; - Item( ENSmlAccessPoint )->iWapAPInUse = EFalse; - CleanupStack::PopAndDestroy( emptyText ); - CleanupStack::PopAndDestroy( aputils ); - CleanupStack::PopAndDestroy( commDb ); - return; - } - else - {} - // convert internet ap to Wap ap - TRAP( err, aId = aputils->WapIdFromIapIdL( aId ) ); - CleanupStack::PopAndDestroy( aputils ); - - if ( err != KErrNone ) - { - CleanupStack::PopAndDestroy( commDb ); - return; - } - - TInt apBearerFilter; + { + FTRACE( RDebug::Print( + _L("[OMADM] CNSmlDMDlgProfileView::GetAccessPointInfoL: aId (%d)"), aId)); - if ( FeatureManager::FeatureSupported( KFeatureIdAppCsdSupport ) ) - { - apBearerFilter = EApBearerTypeCSD | - EApBearerTypeGPRS | - EApBearerTypeHSCSD | - EApBearerTypeWLAN; - } - else - { - apBearerFilter = EApBearerTypeGPRS | EApBearerTypeWLAN; + TInt err = KErrNotFound; + TBool apExists = EFalse; + RCmManager cmManager; + cmManager.OpenLC(); + RCmConnectionMethod conn; + TRAP(err, conn = cmManager.ConnectionMethodL( aId )); + if(err == KErrNone)//connection method exists + { + CleanupClosePushL( conn ); + apExists = ETrue; + } + if(!apExists || aId == KErrGeneral || aId == KErrNotFound ) + { + HBufC* emptyText = + iEikonEnv->AllocReadResourceLC(R_CMMANAGERUI_SETT_DEFAULT_CONNECTION); + Item( ENSmlAccessPoint )->SetValue( emptyText->Des() ); + Item( ENSmlAccessPoint )->iNumberData = KErrGeneral; + Item( ENSmlAccessPoint )->iWapAPInUse = EFalse; + CleanupStack::PopAndDestroy( emptyText ); + if(err == KErrNone)//connection method exists + { + CleanupStack::PopAndDestroy( 2 );//conn, cmManager + } + else + CleanupStack::PopAndDestroy( 1 );//cmManager + return; + } + else + { + HBufC* name = conn.GetStringAttributeL( CMManager::ECmName ); + Item( ENSmlAccessPoint )->SetValue( *name ); + delete name; + Item( ENSmlAccessPoint )->iNumberData = aId; + Item( ENSmlAccessPoint )->iWapAPInUse = ETrue; } - CApSelect* selector = CApSelect::NewLC( - *commDb, - KEApIspTypeAll, - apBearerFilter, - KEApSortUidAscending); - - TBool found = EFalse; - - // find access point with id aId - if (selector->MoveToFirst()) - { - if (aId == (TInt)selector->Uid()) - { - found = ETrue; - } - while (!found && selector->MoveNext()) - { - if (aId == (TInt)selector->Uid()) - { - found = ETrue; - } - } - } + if(err == KErrNone)//connection method exists + { + CleanupStack::PopAndDestroy( 2 );//conn, cmManager + } + else + CleanupStack::PopAndDestroy( 1 ); - if (found) - { - Item( ENSmlAccessPoint )->SetValue( selector->Name() ); - Item( ENSmlAccessPoint )->iNumberData = aId; - Item( ENSmlAccessPoint )->iWapAPInUse = ETrue; - } - else - { - HBufC* emptyText = - iEikonEnv->AllocReadResourceLC(R_CMMANAGERUI_SETT_DEFAULT_CONNECTION); - Item( ENSmlAccessPoint )->SetValue( emptyText->Des() ); - Item( ENSmlAccessPoint )->iNumberData = KErrNotFound; - CleanupStack::PopAndDestroy(emptyText); - } - - CleanupStack::PopAndDestroy(selector); - CleanupStack::PopAndDestroy(commDb); - - } + } // ----------------------------------------------------------------------------- // CNSmlDMDlgProfileView::EditSettingItemListYesNoL