--- a/bearermanagement/S60MCPR/inc/s60mcpr.h Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/S60MCPR/inc/s60mcpr.h Mon Jan 18 20:33:49 2010 +0200
@@ -62,6 +62,7 @@
EMPMPreferredCarrierAvailableMsg,
EMPMStartIAPNotificationMsg,
EMPMErrorNotificationMsg,
+ EMPMStartupErrorIgnoredMsg,
};
public:
typedef Messages::TMessageSigVoid<EMPMReselectBestIAPCompletedMsg, TCFS60MCPRMessage::ERealmId> TMPMReselectBestIAPCompletedMsg;
@@ -70,6 +71,7 @@
typedef Messages::TMessageSigAny<EMPMPreferredCarrierAvailableMsg, TCFS60MCPRMessage::ERealmId> TMPMPreferredCarrierAvailableMsg;
typedef Messages::TMessageSigNumber<EMPMStartIAPNotificationMsg, TCFS60MCPRMessage::ERealmId> TMPMStartIAPNotificationMsg;
typedef Messages::TMessageSigNumber<EMPMErrorNotificationMsg, TCFS60MCPRMessage::ERealmId> TMPMErrorNotificationMsg;
+ typedef Messages::TMessageSigVoid<EMPMStartupErrorIgnoredMsg, TCFS60MCPRMessage::ERealmId> TMPMStartupErrorIgnoredMsg;
};
/**
--- a/bearermanagement/S60MCPR/inc/s60mcpractivities.h Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/S60MCPR/inc/s60mcpractivities.h Mon Jan 18 20:33:49 2010 +0200
@@ -286,8 +286,6 @@
/**
* CS60ConnectionRecoveryActivity is the S60 version of the ErrorRecovery -activity
* that is responsible to process connection errors whenever it happens.
- *
- * -jl- TODO Either finalize or remove S60CConnectionRecoveryActivity after EC158(?)
*/
class CS60ConnectionRecoveryActivity : public S60MCprStates::CS60ErrorRecoveryActivity
{
@@ -526,17 +524,29 @@
DECLARE_SMELEMENT_FOOTER( TAwaitingMigrationRequestedOrRejectedOrCancel )
/**
- * STATE: Watis for application response.
- * @return ETrue if Migration Accepted or Rejected.
+ * STATE: Waits for application response.
+ * @return ETrue if Migration Accepted or Rejected or Start-up Error Ignored.
*/
- DECLARE_SMELEMENT_HEADER( TAwaitingMigrationAcceptedOrRejectedOrCancel,
+ DECLARE_SMELEMENT_HEADER( TAwaitingMigrationAcceptedOrRejectedOrStartupErrorIgnoredOrCancel,
MeshMachine::TState<TContext>,
NetStateMachine::MState,
TContext )
virtual TBool Accept();
- DECLARE_SMELEMENT_FOOTER( TAwaitingMigrationAcceptedOrRejectedOrCancel )
+ DECLARE_SMELEMENT_FOOTER( TAwaitingMigrationAcceptedOrRejectedOrStartupErrorIgnoredOrCancel )
/**
+ * STATE: Waits for IPCPR rejected response that ends the mobility handshake.
+ * @return ETrue if Rejected.
+ */
+ DECLARE_SMELEMENT_HEADER( TAwaitingMigrationRejected,
+ MeshMachine::TState<TContext>,
+ NetStateMachine::MState,
+ TContext )
+ virtual TBool Accept();
+ DECLARE_SMELEMENT_FOOTER( TAwaitingMigrationRejected )
+
+
+ /**
* FORK/DECISION: Returns the KStartMobilityHandshake backwards or error
* @return KStartMobilityHandshake backwards or error
*/
@@ -563,14 +573,15 @@
* 1. Application accepted, continue to send accept to policy server.
* 2. Error
* 3. Application rejected, continue to send reject to policy server.
+ * 4. Error process occured, consume the next rejected msg/accept msg.
* @return TransitionTag of the selected transition.
*/
- DECLARE_SMELEMENT_HEADER( TNoTagOrErrorTagOrApplicationRejected,
+ DECLARE_SMELEMENT_HEADER( TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected,
MeshMachine::TStateFork<TContext>,
NetStateMachine::MStateFork,
TContext )
virtual TInt TransitionTag();
- DECLARE_SMELEMENT_FOOTER( TNoTagOrErrorTagOrApplicationRejected )
+ DECLARE_SMELEMENT_FOOTER( TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected )
/**
* FORK/DECISION: Decides whether to wait MPM actions or report an error.
--- a/bearermanagement/S60MCPR/inc/s60mcprstates.h Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/S60MCPR/inc/s60mcprstates.h Mon Jan 18 20:33:49 2010 +0200
@@ -55,6 +55,7 @@
const TInt KWaitPolicyServerResponse = 11051;
const TInt KInformMigrationAvailable = 11052;
const TInt KSendInitialApplicationReject = 11053;
+ const TInt KConsumeRejectedMsg = 11054;
/**
* Execution context
*/
--- a/bearermanagement/S60MCPR/src/s60mcpractivities.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/S60MCPR/src/s60mcpractivities.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -315,8 +315,8 @@
// If the migration was acepted we loop again waiting for a new, preferred one
NODEACTIVITY_ENTRY( KNoTag,
CS60MobilityActivity::TInformMigrationCompleted,
- S60MCprMobilityActivity::TAwaitingMigrationAcceptedOrRejectedOrCancel,
- S60MCprMobilityActivity::TNoTagOrErrorTagOrApplicationRejected ) //-jl- TODO cancel here?
+ S60MCprMobilityActivity::TAwaitingMigrationAcceptedOrRejectedOrStartupErrorIgnoredOrCancel,
+ S60MCprMobilityActivity::TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected )
// Informs policy server that application has accepted the carrier
THROUGH_NODEACTIVITY_ENTRY( KNoTag,
CS60MobilityActivity::TSendApplicationAccept,
@@ -325,6 +325,12 @@
THROUGH_NODEACTIVITY_ENTRY( S60MCprStates::KApplicationRejectedMigration,
CS60MobilityActivity::TSendApplicationReject,
TTag<S60MCprStates::KWaitPolicyServerResponse|NetStateMachine::EBackward> )
+ // Waits for Migration Rejected the carrier -msg and consumes it, because MPM doesn't need it.
+ // MPM already received the ProcessError which is enough.
+ NODEACTIVITY_ENTRY( S60MCprStates::KConsumeRejectedMsg,
+ CS60MobilityActivity::TClearHandshakingFlag,
+ S60MCprMobilityActivity::TAwaitingMigrationRejected,
+ TTag<S60MCprStates::KWaitPolicyServerResponse|NetStateMachine::EBackward> )
// On error, we do not terminate the activity.
// We need to inform the client and propose a new handshake should the client wish to continue
// Shut down the layer, to release the rejected bearer
--- a/bearermanagement/S60MCPR/src/s60mcprmobilityactivity.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/S60MCPR/src/s60mcprmobilityactivity.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -140,23 +140,38 @@
// -----------------------------------------------------------------------------
- // S60MCprMobilityActivity::TAwaitingMigrationAcceptedOrRejectedOrCancel::Accept
+ // S60MCprMobilityActivity::TAwaitingMigrationAcceptedOrRejectedOrStartupErrorIgnoredOrCancel::Accept
// -----------------------------------------------------------------------------
//
- DEFINE_SMELEMENT( TAwaitingMigrationAcceptedOrRejectedOrCancel, NetStateMachine::MState, TContext )
- TBool TAwaitingMigrationAcceptedOrRejectedOrCancel::Accept()
+ DEFINE_SMELEMENT( TAwaitingMigrationAcceptedOrRejectedOrStartupErrorIgnoredOrCancel, NetStateMachine::MState, TContext )
+ TBool TAwaitingMigrationAcceptedOrRejectedOrStartupErrorIgnoredOrCancel::Accept()
{
if ( (iContext.iMessage.IsMessage<TCFMobilityProvider::TMigrationAccepted>()) ||
(iContext.iMessage.IsMessage<TCFMobilityProvider::TMigrationRejected>()) ||
+ (iContext.iMessage.IsMessage<TCFS60MCPRMessage::TMPMStartupErrorIgnoredMsg>()) ||
(iContext.iMessage.IsMessage<TEBase::TCancel>()) )
{
- S60MCPRLOGSTRING1("S60MCPR<%x>::TAwaitingMigrationAcceptedOrRejectedOrCancel::Accept()",(TInt*)&iContext.Node())
+ S60MCPRLOGSTRING1("S60MCPR<%x>::TAwaitingMigrationAcceptedOrRejectedOrStartupErrorIgnoredOrCancel::Accept()",(TInt*)&iContext.Node())
return ETrue;
}
return EFalse;
}
-
-
+
+ // -----------------------------------------------------------------------------
+ // S60MCprMobilityActivity::TAwaitingMigrationRejected::Accept
+ // -----------------------------------------------------------------------------
+ //
+ DEFINE_SMELEMENT( TAwaitingMigrationRejected, NetStateMachine::MState, TContext )
+ TBool TAwaitingMigrationRejected::Accept()
+ {
+ if ( iContext.iMessage.IsMessage<TCFMobilityProvider::TMigrationRejected>() )
+ {
+ S60MCPRLOGSTRING1("S60MCPR<%x>::TAwaitingMigrationRejected::Accept()",(TInt*)&iContext.Node())
+ return ETrue;
+ }
+ return EFalse;
+ }
+
// -----------------------------------------------------------------------------
// S60MCprMobilityActivity::TNoTagOrInformMigrationAvailableBackwardsOrErrorOrCancel::TransitionTag
// -----------------------------------------------------------------------------
@@ -229,30 +244,35 @@
// -----------------------------------------------------------------------------
- // S60MCprMobilityActivity::TNoTagOrErrorTagOrApplicationRejected::TransitionTag
+ // S60MCprMobilityActivity::TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected::TransitionTag
// -----------------------------------------------------------------------------
//
- DEFINE_SMELEMENT( TNoTagOrErrorTagOrApplicationRejected, NetStateMachine::MStateFork, TContext )
- TBool TNoTagOrErrorTagOrApplicationRejected::TransitionTag()
+ DEFINE_SMELEMENT( TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected, NetStateMachine::MStateFork, TContext )
+ TBool TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected::TransitionTag()
{
if ( iContext.iNodeActivity->Error() )
{
- S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejected::TransitionTag() KErrorTag",(TInt*)&iContext.Node())
+ S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected::TransitionTag() KErrorTag",(TInt*)&iContext.Node())
return MeshMachine::KErrorTag | NetStateMachine::EForward;
}
if ( message_cast<TCFMobilityProvider::TMigrationAccepted>(&iContext.iMessage) )
{
- S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejected::TransitionTag() KNoTag",(TInt*)&iContext.Node())
+ S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected::TransitionTag() KNoTag",(TInt*)&iContext.Node())
return MeshMachine::KNoTag | NetStateMachine::EForward;
}
else if ( message_cast<TCFMobilityProvider::TMigrationRejected>(&iContext.iMessage) )
{
- S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejected::TransitionTag() KApplicationRejectedMigration",(TInt*)&iContext.Node())
+ S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected::TransitionTag() KApplicationRejectedMigration",(TInt*)&iContext.Node())
return S60MCprStates::KApplicationRejectedMigration | NetStateMachine::EForward;
}
+ else if ( message_cast<TCFS60MCPRMessage::TMPMStartupErrorIgnoredMsg>(&iContext.iMessage) )
+ {
+ S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected::TransitionTag() KSwallowRejectedMsg",(TInt*)&iContext.Node())
+ return S60MCprStates::KConsumeRejectedMsg | NetStateMachine::EForward;
+ }
else
{
- S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejected::TransitionTag() KCancelTag",(TInt*)&iContext.Node())
+ S60MCPRLOGSTRING1("S60MCPR<%x>::TNoTagOrErrorTagOrApplicationRejectedOrConsumeRejected::TransitionTag() KCancelTag",(TInt*)&iContext.Node())
return MeshMachine::KCancelTag | NetStateMachine::EForward;
}
}
--- a/bearermanagement/S60MCPR/src/s60mcprstates.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/S60MCPR/src/s60mcprstates.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -465,6 +465,15 @@
( aCompletedRequest.iNeededAction == EIgnoreError ||
aCompletedRequest.iNeededAction == EDoReselection ))
{
+ // Send error recovery propagated msg to self. This way a potential mobility
+ // handshake knows that there were a problem with migrated IAP.
+ // In case there isn't mobility active available this just results as stray msg
+ if ( aCompletedRequest.iNeededAction == EIgnoreError )
+ {
+ iNode.SelfInterface().PostMessage( iNode.Id(),
+ TCFS60MCPRMessage::TMPMStartupErrorIgnoredMsg().CRef() );
+ }
+
TCFS60MCPRMessage::TMPMProcessErrorCompletedMsg msg( (TInt)aCompletedRequest.iNeededAction );
iLastRequestOriginator.ReplyTo( iNode.Id(), msg );
iLastRequestOriginator.Close();
@@ -480,6 +489,8 @@
ASSERT( aCompletedRequest.iError != KErrNone );
err = aCompletedRequest.iError != KErrNone ? aCompletedRequest.iError : KErrGeneral;
}
+
+ // Send error msg indicatating the processerror has been completed.
TEBase::TError msg( TCFS60MCPRMessage::TMPMProcessErrorCompletedMsg::Id(), err );
iLastRequestOriginator.ReplyTo( iNode.Id(), msg );
iLastRequestOriginator.Close();
--- a/bearermanagement/mpm/src/mpmconfirmdlgstarting.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/mpm/src/mpmconfirmdlgstarting.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -262,7 +262,7 @@
//If reading of database failed we do not write back to the database to prevent random values
if (errorCode == KErrNone)
{
- genConnSettings.iSeamlessnessHome = ECmSeamlessnessShowprogress;
+ genConnSettings.iCellularDataUsageHome = ECmCellularDataUsageAutomatic;
TRAP_IGNORE(iServer.CommsDatAccess()->WriteGenConnSettingsL( genConnSettings ));
}
}
--- a/bearermanagement/mpm/src/mpmiapselection.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/mpm/src/mpmiapselection.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -505,9 +505,16 @@
ChooseBestIAPL( iChooseIapPref, availableIAPList, iNextBestExists );
TUint32 validateIapId = iChooseIapPref.IapId();
// Check if any suitable IAP's were found, if not then complete selection with error code
- if (validateIapId == 0 )
+ if ( validateIapId == 0 )
{
- ChooseIapComplete( KErrNotFound, NULL );
+ if ( iChooseIapPref.ConnType() == TMpmConnPref::EConnTypeDefault )
+ {
+ ImplicitConnectionL();
+ }
+ else
+ {
+ ChooseIapComplete( KErrNotFound, NULL );
+ }
CleanupStack::PopAndDestroy( &availableIAPList );
return;
}
--- a/bearermanagement/mpm/src/mpmserversession.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/mpm/src/mpmserversession.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -838,31 +838,26 @@
return EFalse;
}
- // Read global OCC seamlessness values from CommsDat's DefConn table
+ // Read global cellular data usage values from CommsDat's DefConn table
genConnSettings = iMyServer.CommsDatAccess()->ReadGenConnSettingsL();
- TUint32 currentSeamlessness( genConnSettings.iSeamlessnessHome );
+ TUint32 currentDataUsage( genConnSettings.iCellularDataUsageHome );
if ( iMyServer.IsVisitorNetwork() )
{
- currentSeamlessness = genConnSettings.iSeamlessnessVisitor;
+ currentDataUsage = genConnSettings.iCellularDataUsageVisitor;
}
- if ( currentSeamlessness == ECmSeamlessnessShowprogress ||
- currentSeamlessness == ECmSeamlessnessFullySeamless )
+ if ( currentDataUsage == ECmCellularDataUsageConfirm )
{
- MPMLOGSTRING( "CMPMServerSession::IsConfirmFirstL - False" )
- isConfirmFirst = EFalse;
+ MPMLOGSTRING( "CMPMServerSession::IsConfirmFirstL - True" )
+ isConfirmFirst = ETrue;
}
else
{
- // The currentSeamlessness value ECmSeamlessnessConfirmFirst
- // matches with need to display confirmation dialog.
- //
- MPMLOGSTRING(
- "CMPMServerSession::IsConfirmFirstL - True" )
- isConfirmFirst = ETrue;
+ MPMLOGSTRING( "CMPMServerSession::IsConfirmFirstL - False" )
}
+
return isConfirmFirst;
}
@@ -1106,7 +1101,7 @@
//If reading of database failed we do not write back to the database to prevent random values
if (errorCode == KErrNone)
{
- genConnSettings.iSeamlessnessHome = ECmSeamlessnessShowprogress;
+ genConnSettings.iCellularDataUsageHome = ECmCellularDataUsageAutomatic;
TRAP_IGNORE(MyServer().CommsDatAccess()->WriteGenConnSettingsL( genConnSettings ));
}
}
@@ -3544,7 +3539,7 @@
MPMLOGSTRING( "CMPMServerSession::IsWlanOnlyL")
- // Read global OCC seamlessness values from CommsDat's DefConn table
+ // Read global cellular data usage values from CommsDat's DefConn table
genConnSettings = iMyServer.CommsDatAccess()->ReadGenConnSettingsL();
// Find out if new wlans can be prompted
@@ -3560,14 +3555,14 @@
}
// Find out is only WLAN connection is allowed in current network
- TUint32 currentSeamlessness( genConnSettings.iSeamlessnessHome );
+ TUint32 currentCellularDataUsage( genConnSettings.iCellularDataUsageHome );
if ( iMyServer.IsVisitorNetwork() )
{
- currentSeamlessness = genConnSettings.iSeamlessnessVisitor;
+ currentCellularDataUsage = genConnSettings.iCellularDataUsageVisitor;
}
- if ( currentSeamlessness == ECmSeamlessnessDisabled )
+ if ( currentCellularDataUsage == ECmCellularDataUsageDisabled )
{
MPMLOGSTRING( "CMPMServerSession::IsWlanOnlyL: True" )
return ETrue;
--- a/bearermanagement/mpm/src/mpmwlanquerydialog.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/bearermanagement/mpm/src/mpmwlanquerydialog.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -332,14 +332,39 @@
}
else // WiFiProt::EWiFiNoAuto
{
- MPMLOGSTRING( "CMPMWlanQueryDialog::RunL No Auto, starting WPA key query" )
- iWlanQueryState = EWpaSettings;
- iNotifier.StartNotifierAndGetResponse( iStatus,
- KUidEasyWpaDlg,
- iNotifWpaKey,
- iNotifWpaKey );
- SetActive();
- return;
+ if( iNetworkPrefs().iSecMode == EWlanConnectionSecurityWep )
+ {
+ MPMLOGSTRING( "CMPMWlanQueryDialog::RunL: No WPS, starting WEP key query" );
+ iWlanQueryState = EWepSettings;
+ iNotifier.StartNotifierAndGetResponse( iStatus,
+ KUidEasyWepDlg,
+ iNotifWep,
+ iNotifWep );
+ SetActive();
+ return;
+ }
+ else if ( iNetworkPrefs().iSecMode == EWlanConnectionSecurityWpaPsk )
+ {
+ MPMLOGSTRING( "CMPMWlanQueryDialog::RunL: No WPS, starting WPA key query" );
+ iWlanQueryState = EWpaSettings;
+ iNotifier.StartNotifierAndGetResponse( iStatus,
+ KUidEasyWpaDlg,
+ iNotifWpaKey,
+ iNotifWpaKey );
+ SetActive();
+ return;
+ }
+ else if ( iNetworkPrefs().iSecMode == EWlanConnectionSecurityOpen )
+ {
+ MPMLOGSTRING( "CMPMWlanQueryDialog::RunL: No WPS, sec mode open" );
+ iStatus = KErrNone;
+ }
+ else
+ {
+ MPMLOGSTRING2( "CMPMWlanQueryDialog::RunL: No WPS, unsupported sec mode %d",
+ iNetworkPrefs().iSecMode );
+ iStatus = KErrNotSupported;
+ }
}
}
}
--- a/cmmanager/cmmgr/Framework/Group/bld.inf Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/cmmgr/Framework/Group/bld.inf Mon Jan 18 20:33:49 2010 +0200
@@ -23,7 +23,9 @@
PRJ_EXPORTS
// export localised loc file
-../loc/cmmanager.loc MW_LAYER_LOC_EXPORT_PATH(cmmanager.loc)
+../loc/cmmanager.loc MW_LAYER_LOC_EXPORT_PATH(cmmanager.loc)
+../conf/cmmanager.confml MW_LAYER_CONFML(cmmanager.confml)
+../conf/cmmanager_10207376.crml MW_LAYER_CRML(cmmanager_10207376.crml)
PRJ_MMPFILES
cmmanager.mmp
--- a/cmmanager/cmmgr/Framework/Src/cmconnsettingsuiimpl.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/cmmgr/Framework/Src/cmconnsettingsuiimpl.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -319,6 +319,13 @@
}
}
+ if ( aTitleStringResource == R_CMMANAGERUI_DEFAULT_CONNECTION_TITLE )
+ {
+ // It is not allowed to choose Connection Methods
+ // in Default connection -dialog.
+ //
+ iOpenDestination = EFalse;
+ }
if ( UserSelectionDlgL( listIndex, items, aSelection,
aTitleStringResource,
--- a/cmmanager/cmmgr/Framework/Src/cmmanagerimpl.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/cmmgr/Framework/Src/cmmanagerimpl.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -2331,11 +2331,11 @@
TInt value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdUsageOfWlan );
genConnSettings.iUsageOfWlan = TCmUsageOfWlan( value );
- value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdSeamlessnessHome );
- genConnSettings.iSeamlessnessHome = TCmSeamlessnessValue( value );
+ value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdCellularDataUsageHome );
+ genConnSettings.iCellularDataUsageHome = TCmCellularDataUsage( value );
- value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdSeamlessnessVisitor );
- genConnSettings.iSeamlessnessVisitor = TCmSeamlessnessValue( value );
+ value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdCellularDataUsageVisitor );
+ genConnSettings.iCellularDataUsageVisitor = TCmCellularDataUsage( value );
}
TInt typeVal = aDCSetting.iType;
@@ -2355,8 +2355,8 @@
dcRcd->SetRecordId( KCDNewRecordRequest );
SET_INT_FIELD(dcRcd, KCDTIdUsageOfWlan, genConnSettings.iUsageOfWlan );
- SET_INT_FIELD(dcRcd, KCDTIdSeamlessnessHome, genConnSettings.iSeamlessnessHome );
- SET_INT_FIELD(dcRcd, KCDTIdSeamlessnessVisitor, genConnSettings.iSeamlessnessVisitor );
+ SET_INT_FIELD(dcRcd, KCDTIdCellularDataUsageHome, genConnSettings.iCellularDataUsageHome );
+ SET_INT_FIELD(dcRcd, KCDTIdCellularDataUsageVisitor, genConnSettings.iCellularDataUsageVisitor );
CLOG_WRITE_FORMAT( "Set default connection type: [%d]", typeVal );
SET_INT_FIELD( dcRcd,
@@ -2427,11 +2427,11 @@
TInt value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdUsageOfWlan );
aGenConnSettings.iUsageOfWlan = TCmUsageOfWlan( value );
- value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdSeamlessnessHome );
- aGenConnSettings.iSeamlessnessHome = TCmSeamlessnessValue( value );
+ value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdCellularDataUsageHome );
+ aGenConnSettings.iCellularDataUsageHome = TCmCellularDataUsage( value );
- value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdSeamlessnessVisitor );
- aGenConnSettings.iSeamlessnessVisitor = TCmSeamlessnessValue( value );
+ value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0], KCDTIdCellularDataUsageVisitor );
+ aGenConnSettings.iCellularDataUsageVisitor = TCmCellularDataUsage( value );
CleanupStack::PopAndDestroy( defConnRecordSet );
RollbackTransaction();
@@ -2467,8 +2467,8 @@
}
TInt usageOfNewWlan = aGenConnSettings.iUsageOfWlan;
- TInt seamlessnessHome = aGenConnSettings.iSeamlessnessHome;
- TInt seamlessnessVisitor = aGenConnSettings.iSeamlessnessVisitor;
+ TInt cellularDataUsageHome = aGenConnSettings.iCellularDataUsageHome;
+ TInt cellularDataUsageVisitor = aGenConnSettings.iCellularDataUsageVisitor;
// Delete the old record
for ( TInt i = 0; i < defConnRecordSet->iRecords.Count(); ++i )
@@ -2489,11 +2489,11 @@
CLOG_WRITE_1( "Set wlan usage: [%d]", usageOfNewWlan );
SET_INT_FIELD(dcRcd, KCDTIdUsageOfWlan, usageOfNewWlan );
- CLOG_WRITE_1( "Set seamlessnessHome: [%d]", seamlessnessHome );
- SET_INT_FIELD(dcRcd, KCDTIdSeamlessnessHome, seamlessnessHome );
+ CLOG_WRITE_1( "Set cellularDataUsageHome: [%d]", cellularDataUsageHome );
+ SET_INT_FIELD(dcRcd, KCDTIdCellularDataUsageHome, cellularDataUsageHome );
- CLOG_WRITE_1( "Set seamlessnessVisitor: [%d]", seamlessnessVisitor );
- SET_INT_FIELD(dcRcd, KCDTIdSeamlessnessVisitor, seamlessnessVisitor );
+ CLOG_WRITE_1( "Set cellularDataUsageVisitor: [%d]", cellularDataUsageVisitor );
+ SET_INT_FIELD(dcRcd, KCDTIdCellularDataUsageVisitor, cellularDataUsageVisitor );
dcRcd->StoreL( Session() );
CleanupStack::PopAndDestroy( dcRcd );
@@ -2873,8 +2873,8 @@
LOGGER_ENTERFN( "CCmManagerImpl::SetGenConnSettingsToDefault" );
aGenConnSettings.iUsageOfWlan = ECmUsageOfWlanKnown;
- aGenConnSettings.iSeamlessnessHome = ECmSeamlessnessConfirmFirst;
- aGenConnSettings.iSeamlessnessVisitor = ECmSeamlessnessConfirmFirst;
+ aGenConnSettings.iCellularDataUsageHome = ECmCellularDataUsageAutomatic;
+ aGenConnSettings.iCellularDataUsageVisitor = ECmCellularDataUsageConfirm;
}
Binary file cmmanager/cmmgr/Framework/conf/cmmanager.confml has changed
Binary file cmmanager/cmmgr/Framework/conf/cmmanager_10207376.crml has changed
--- a/cmmanager/cmmgr/Plugins/cmpluginwlan/src/cmpluginwlan.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/cmmgr/Plugins/cmpluginwlan/src/cmpluginwlan.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -68,7 +68,11 @@
const TInt KWlanLastSocketClosedTimeout = -1;
const TUint32 KEndOfArray = KMaxTUint;
-/// Modem bearer names for WLAN connection methods
+// Daemon manager name for Easy WLAN IAP
+_LIT( KHotspotDaemonManagerName, "NetCfgExtnHotSpot" );
+_LIT( KEasyWlanName, "Easy WLAN" );
+
+// Modem bearer names for WLAN connection methods
_LIT( KModemBearerWLAN, "WLANBearer" );
_LIT( KWlanFileIcons, "z:cmpluginwlan.mbm" );
@@ -2741,6 +2745,24 @@
}
delete daemonName;
}
+
+ // check if Easy WLAN IAP since it has different config daemon
+ // manager name
+ HBufC* iapName = GetStringAttributeL( ECmName );
+ if ( iapName )
+ {
+ CleanupStack::PushL( iapName );
+ if ( iapName->Compare( KEasyWlanName ) == 0 )
+ {
+ SetStringAttributeL( ECmConfigDaemonManagerName,
+ KHotspotDaemonManagerName );
+ SetStringAttributeL( ECmConfigDaemonName,
+ KConfigDaemonName );
+ CleanupStack::PopAndDestroy( iapName );
+ return;
+ }
+ CleanupStack::PopAndDestroy( iapName );
+ }
// use DHCP if we can
TBool ipfromSrv = GetBoolAttributeL( ECmIPAddFromServer );
--- a/cmmanager/cmmgr/database/inc/datamobilitycommsdattypes.h Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/cmmgr/database/inc/datamobilitycommsdattypes.h Mon Jan 18 20:33:49 2010 +0200
@@ -456,8 +456,8 @@
#define DEFCONN_TYPE _S("DefConnType")
#define DEFCONN_UID _S("DefConnUId")
#define USAGEOFWLAN _S("UsageOfWlan")
-#define SEAMLESSNESS_HOME _S("SeamlessnessHome")
-#define SEAMLESSNESS_VISITOR _S("SeamlessnessVisitor")
+#define CELLULAR_DATA_USAGE_HOME _S("CellularDataUsageHome")
+#define CELLULAR_DATA_USAGE_VISITOR _S("CellularDataUsageVisitor")
NONSHARABLE_CLASS( CCDDefConnRecord ) : public CommsDat::CCDRecordBase
{
@@ -476,8 +476,8 @@
CommsDat::CMDBField<TUint> iDefConnType;
CommsDat::CMDBField<TUint> iDefConnUid;
CommsDat::CMDBField<TUint> iUsageOfWlan;
- CommsDat::CMDBField<TUint> iSeamlessnessHome;
- CommsDat::CMDBField<TUint> iSeamlessnessVisitor;
+ CommsDat::CMDBField<TUint> iCellularDataUsageHome;
+ CommsDat::CMDBField<TUint> iCellularDataUsageVisitor;
private:
--- a/cmmanager/cmmgr/database/src/cmmanagertableformats.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/cmmgr/database/src/cmmanagertableformats.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -97,8 +97,8 @@
X_REGISTER_ATTRIBUTE( CCDDefConnRecord, iDefConnType, TMDBNum )
X_REGISTER_ATTRIBUTE( CCDDefConnRecord, iDefConnUid, TMDBNum )
X_REGISTER_ATTRIBUTE( CCDDefConnRecord, iUsageOfWlan, TMDBNum )
- X_REGISTER_ATTRIBUTE( CCDDefConnRecord, iSeamlessnessHome, TMDBNum )
- X_REGISTER_ATTRIBUTE( CCDDefConnRecord, iSeamlessnessVisitor, TMDBNum )
+ X_REGISTER_ATTRIBUTE( CCDDefConnRecord, iCellularDataUsageHome, TMDBNum )
+ X_REGISTER_ATTRIBUTE( CCDDefConnRecord, iCellularDataUsageVisitor, TMDBNum )
X_REGISTER_ATTRIBUTE( CCDRecordBase, iRecordTag, TMDBNum )
X_REGISTER_ATTRIBUTE( CCDRecordBase, iRecordName, TMDBText )
END_ATTRIBUTE_TABLE()
@@ -110,8 +110,8 @@
{ KCDTIdDefConnType, EUint32, ENoAttrs, DEFCONN_TYPE },
{ KCDTIdDefConnUid, EUint32, ENoAttrs, DEFCONN_UID },
{ KCDTIdUsageOfWlan, EUint32, ENoAttrs, USAGEOFWLAN },
- { KCDTIdSeamlessnessHome, EUint32, ENoAttrs, SEAMLESSNESS_HOME },
- { KCDTIdSeamlessnessVisitor, EUint32, ENoAttrs, SEAMLESSNESS_VISITOR },
+ { KCDTIdCellularDataUsageHome, EUint32, ENoAttrs, CELLULAR_DATA_USAGE_HOME },
+ { KCDTIdCellularDataUsageVisitor, EUint32, ENoAttrs, CELLULAR_DATA_USAGE_VISITOR },
{ 0, 0, ENoAttrs, KCDNull }
};
@@ -129,10 +129,10 @@
| KCDTIdDefConnUid ),
iUsageOfWlan( ( aElementId & KCDMaskShowRecordType )
| KCDTIdUsageOfWlan ),
- iSeamlessnessHome( ( aElementId & KCDMaskShowRecordType )
- | KCDTIdSeamlessnessHome ),
- iSeamlessnessVisitor( ( aElementId & KCDMaskShowRecordType )
- | KCDTIdSeamlessnessVisitor )
+ iCellularDataUsageHome( ( aElementId & KCDMaskShowRecordType )
+ | KCDTIdCellularDataUsageHome ),
+ iCellularDataUsageVisitor( ( aElementId & KCDMaskShowRecordType )
+ | KCDTIdCellularDataUsageVisitor )
{};
EXPORT_C TMDBElementId
@@ -157,10 +157,10 @@
ENoAttrs, DEFCONN_UID ),
SGenericRecordTypeInfo( KCDTIdUsageOfWlan, EUint32,
ENoAttrs, USAGEOFWLAN ),
- SGenericRecordTypeInfo( KCDTIdSeamlessnessHome, EUint32,
- ENoAttrs, SEAMLESSNESS_HOME ),
- SGenericRecordTypeInfo( KCDTIdSeamlessnessVisitor, EUint32,
- ENoAttrs, SEAMLESSNESS_VISITOR ),
+ SGenericRecordTypeInfo( KCDTIdCellularDataUsageHome, EUint32,
+ ENoAttrs, CELLULAR_DATA_USAGE_HOME ),
+ SGenericRecordTypeInfo( KCDTIdCellularDataUsageVisitor, EUint32,
+ ENoAttrs, CELLULAR_DATA_USAGE_VISITOR ),
SGenericRecordTypeInfo( 0, 0, ENoAttrs, KCDNull )
};
--- a/cmmanager/gsconnsettingsplugin/src/gsconnsettingspluginmodel.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/gsconnsettingsplugin/src/gsconnsettingspluginmodel.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -116,8 +116,8 @@
//Print out loaded settings
OstTrace1( TRACE_NORMAL, CSP_LOADSETTINGSL_USAGE_OF_NEW_WLAN_PARAM_TRACE, "iSettings.iUsageOfWlan=%d", iSettings.iUsageOfWlan );
- OstTrace1( TRACE_NORMAL, CSP_LOADSETTINGSL_SEAMLESSNESS_VISITOR_PARAM_TRACE, "iSeamlessnessVisitor=%d", iSettings.iSeamlessnessVisitor );
- OstTrace1( TRACE_NORMAL, CSP_LOADSETTINGSL_SEAMLESSNESS_HOME_PARAM_TRACE, "iSettings.iSeamlessnessHome=%d", iSettings.iSeamlessnessHome );
+ OstTrace1( TRACE_NORMAL, CSP_LOADSETTINGSL_CELLULAR_DATA_USAGE_VISITOR_PARAM_TRACE, "iSettings.iCellularDataUsageVisitor=%d", iSettings.iCellularDataUsageVisitor );
+ OstTrace1( TRACE_NORMAL, CSP_LOADSETTINGSL_CELLULAR_DATA_USAGE_HOME_PARAM_TRACE, "iSettings.iCellularDataUsageHome=%d", iSettings.iCellularDataUsageHome );
}
// ----------------------------------------------------------------------------
@@ -136,8 +136,8 @@
//Print out saved settings
OstTrace1( TRACE_NORMAL, CSP_SAVESETTINGSL_USAGE_OF_NEW_WLAN_PARAM_TRACE, "iSettings.iUsageOfWlan=%d", iSettings.iUsageOfWlan );
- OstTrace1( TRACE_NORMAL, CSP_SAVESETTINGSL_SEAMLESSNESS_VISITOR_PARAM_TRACE, "iSeamlessnessVisitor=%d", iSettings.iSeamlessnessVisitor );
- OstTrace1( TRACE_NORMAL, CSP_SAVESETTINGSL_SEAMLESSNESS_HOME_PARAM_TRACE, "iSettings.iSeamlessnessHome=%d", iSettings.iSeamlessnessHome );
+ OstTrace1( TRACE_NORMAL, CSP_SAVESETTINGSL_CELLULAR_DATA_USAGE_VISITOR_PARAM_TRACE, "iSettings.iCellularDataUsageVisitor=%d", iSettings.iCellularDataUsageVisitor );
+ OstTrace1( TRACE_NORMAL, CSP_SAVESETTINGSL_CELLULAR_DATA_USAGE_HOME_PARAM_TRACE, "iSettings.iCellularDataUsageHome=%d", iSettings.iCellularDataUsageHome );
}
// ----------------------------------------------------------------------------
@@ -178,19 +178,18 @@
TInt mappedValue = 0;
//Map to correct index
- switch ( iSettings.iSeamlessnessVisitor )
+ switch ( iSettings.iCellularDataUsageVisitor )
{
- case ECmSeamlessnessShowprogress:
- case ECmSeamlessnessFullySeamless:
- mappedValue = EDataUsageAbroadAutomatic; //Automatic
+ case ECmCellularDataUsageAutomatic:
+ mappedValue = EDataUsageAbroadAutomatic; // Automatic
break;
- case ECmSeamlessnessConfirmFirst:
- mappedValue = EDataUsageAbroadConfirm; //Confirm
+ case ECmCellularDataUsageConfirm:
+ mappedValue = EDataUsageAbroadConfirm; // Confirm
break;
- case ECmSeamlessnessDisabled:
- mappedValue = EDataUsageAbroadWlanOnly; //Wlan only
+ case ECmCellularDataUsageDisabled:
+ mappedValue = EDataUsageAbroadWlanOnly; // Wlan only
break;
default:
@@ -210,19 +209,18 @@
TInt mappedValue = 0;
//Map to correct index
- switch ( iSettings.iSeamlessnessHome )
+ switch ( iSettings.iCellularDataUsageHome )
{
- case ECmSeamlessnessShowprogress:
- case ECmSeamlessnessFullySeamless:
- mappedValue = EDataUsageHomeNwAutomatic; //Automatic
+ case ECmCellularDataUsageAutomatic:
+ mappedValue = EDataUsageHomeNwAutomatic; // Automatic
break;
- case ECmSeamlessnessConfirmFirst:
- mappedValue = EDataUsageHomeNwConfirm; //Confirm
+ case ECmCellularDataUsageConfirm:
+ mappedValue = EDataUsageHomeNwConfirm; // Confirm
break;
- case ECmSeamlessnessDisabled:
- mappedValue = EDataUsageHomeNwWlanOnly; //Wlan only
+ case ECmCellularDataUsageDisabled:
+ mappedValue = EDataUsageHomeNwWlanOnly; // Wlan only
break;
default:
@@ -266,14 +264,14 @@
switch ( aValue )
{
case EDataUsageAbroadAutomatic: //Automatic
- iSettings.iSeamlessnessVisitor = ECmSeamlessnessShowprogress;
+ iSettings.iCellularDataUsageVisitor = ECmCellularDataUsageAutomatic;
break;
case EDataUsageAbroadConfirm: //Confirm
- iSettings.iSeamlessnessVisitor = ECmSeamlessnessConfirmFirst;
+ iSettings.iCellularDataUsageVisitor = ECmCellularDataUsageConfirm;
break;
case EDataUsageAbroadWlanOnly: //Wlan only
- iSettings.iSeamlessnessVisitor = ECmSeamlessnessDisabled;
+ iSettings.iCellularDataUsageVisitor = ECmCellularDataUsageDisabled;
break;
default:
@@ -292,15 +290,15 @@
switch ( aValue )
{
case EDataUsageHomeNwAutomatic: //Automatic
- iSettings.iSeamlessnessHome = ECmSeamlessnessShowprogress;
+ iSettings.iCellularDataUsageHome = ECmCellularDataUsageAutomatic;
break;
case EDataUsageHomeNwConfirm: //Confirm
- iSettings.iSeamlessnessHome = ECmSeamlessnessConfirmFirst;
+ iSettings.iCellularDataUsageHome = ECmCellularDataUsageConfirm;
break;
case EDataUsageHomeNwWlanOnly: //Wlan only
- iSettings.iSeamlessnessHome = ECmSeamlessnessDisabled;
+ iSettings.iCellularDataUsageHome = ECmCellularDataUsageDisabled;
break;
default:
--- a/cmmanager/gsconnsettingsplugin/traces/OstTraceDefinitions.h Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/gsconnsettingsplugin/traces/OstTraceDefinitions.h Mon Jan 18 20:33:49 2010 +0200
@@ -1,20 +1,3 @@
-/*
-* 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:
-*
-*/
-
#ifndef __OSTTRACEDEFINITIONS_H__
#define __OSTTRACEDEFINITIONS_H__
#include <opensystemtrace.h>
--- a/cmmanager/gsconnsettingsplugin/traces/gsconnsettingspluginmodelTraces.h Thu Jan 07 12:56:54 2010 +0200
+++ b/cmmanager/gsconnsettingsplugin/traces/gsconnsettingspluginmodelTraces.h Mon Jan 18 20:33:49 2010 +0200
@@ -1,4 +1,4 @@
-// Created by TraceCompiler1.1.6
+// Created by TraceCompiler 1.3.1
// DO NOT EDIT, CHANGES WILL BE LOST
#ifndef __GSCONNSETTINGSPLUGINMODELTRACES_H__
@@ -6,14 +6,12 @@
#define KOstTraceComponentID 0x200255b8
-#define CSP_LOADSETTINGSL_USAGE_OF_NEW_WLAN_PARAM_TRACE 0x30002
-#define CSP_LOADSETTINGSL_FORCED_ROAMING_PARAM_TRACE 0x30003
-#define CSP_LOADSETTINGSL_SEAMLESSNESS_VISITOR_PARAM_TRACE 0x30004
-#define CSP_LOADSETTINGSL_SEAMLESSNESS_HOME_PARAM_TRACE 0x30005
-#define CSP_SAVESETTINGSL_USAGE_OF_NEW_WLAN_PARAM_TRACE 0x30007
-#define CSP_SAVESETTINGSL_FORCED_ROAMING_PARAM_TRACE 0x30008
-#define CSP_SAVESETTINGSL_SEAMLESSNESS_VISITOR_PARAM_TRACE 0x30009
-#define CSP_SAVESETTINGSL_SEAMLESSNESS_HOME_PARAM_TRACE 0x3000a
+#define CSP_LOADSETTINGSL_USAGE_OF_NEW_WLAN_PARAM_TRACE 0x30001
+#define CSP_SAVESETTINGSL_USAGE_OF_NEW_WLAN_PARAM_TRACE 0x30004
+#define CSP_LOADSETTINGSL_CELLULAR_DATA_USAGE_VISITOR_PARAM_TRACE 0x30007
+#define CSP_LOADSETTINGSL_CELLULAR_DATA_USAGE_HOME_PARAM_TRACE 0x30008
+#define CSP_SAVESETTINGSL_CELLULAR_DATA_USAGE_VISITOR_PARAM_TRACE 0x30009
+#define CSP_SAVESETTINGSL_CELLULAR_DATA_USAGE_HOME_PARAM_TRACE 0x3000a
#endif
--- a/connectionmonitoring/connectionmonitorui/help/inc/cmon.hlp.hrh Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connectionmonitorui/help/inc/cmon.hlp.hrh Mon Jan 18 20:33:49 2010 +0200
@@ -2,9 +2,9 @@
* 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 "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
--- a/connectionmonitoring/connectionmonitorui/inc/ConnectionInfoBase.h Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connectionmonitorui/inc/ConnectionInfoBase.h Mon Jan 18 20:33:49 2010 +0200
@@ -193,6 +193,13 @@
TConnectionStatus GetStatus() const;
/**
+ * Refresh status of connection
+ * @param aConnectionStatus new status of connection
+ */
+ void RefreshConnectionStatus(
+ const TInt aConnectionStatus );
+
+ /**
* Gives back the name of connection
* @return the name of connection
*/
@@ -261,13 +268,6 @@
void RefreshConnectionStatus();
/**
- * Refresh status of connection
- * @param aConnectionStatus new status of connection
- */
- void RefreshConnectionStatus(
- const TConnectionStatus aConnectionStatus );
-
- /**
* Refresh amount of sent and received data of connection
*/
void RefreshSentReceivedDataL();
--- a/connectionmonitoring/connectionmonitorui/inc/ConnectionMonitorUiDetailsView.h Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connectionmonitorui/inc/ConnectionMonitorUiDetailsView.h Mon Jan 18 20:33:49 2010 +0200
@@ -50,7 +50,7 @@
* @param aConnectionArray array containing connection list
*/
CConnectionMonitorUiDetailsView(
- const CConnectionArray* const aConnectionArray );
+ CConnectionArray* const aConnectionArray );
/**
* EPOC second phase constructor.
@@ -136,7 +136,7 @@
/**
* Array contains connections
*/
- const CConnectionArray* const iConnectionArray; // Not Owned.
+ CConnectionArray* const iConnectionArray; // Not Owned.
/**
* The index of selected connection
--- a/connectionmonitoring/connectionmonitorui/src/ConnectionInfoBase.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connectionmonitorui/src/ConnectionInfoBase.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -216,13 +216,7 @@
//
CDesCArrayFlat* CConnectionInfoBase::GetDetailsArray() const
{
- CDesCArrayFlat* array = NULL;
- if ( ( iConnectionStatus == EConnectionSuspended ) ||
- ( iConnectionStatus == EConnectionCreated ) )
- {
- array = iDetailsArray;
- }
- return array;
+ return iDetailsArray;
}
// ---------------------------------------------------------
@@ -301,7 +295,7 @@
// ---------------------------------------------------------
//
void CConnectionInfoBase::RefreshConnectionStatus(
- const TConnectionStatus aConnectionStatus )
+ const TInt aConnectionStatus )
{
CMUILOGGER_ENTERFN( "RefreshConnectionStatus" );
CMUILOGGER_WRITE_F( "RefreshConnectionStatus aConnectionStatus %d",
@@ -317,9 +311,8 @@
CMUILOGGER_WRITE("1");
iConnectionStatus = EConnectionCreated;
}
- else if ( ( iConnectionStatus == EConnectionClosing ) &&
- ( ( aConnectionStatus == KConnectionClosed ) ||
- ( aConnectionStatus == KLinkLayerClosed ) ) )
+ else if ( ( aConnectionStatus == KConnectionClosed ) ||
+ ( aConnectionStatus == KLinkLayerClosed ) )
{
CMUILOGGER_WRITE("2");
iConnectionStatus = EConnectionClosed;
--- a/connectionmonitoring/connectionmonitorui/src/ConnectionMonitorUiAppUi.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connectionmonitorui/src/ConnectionMonitorUiAppUi.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -22,6 +22,7 @@
#include <aknnotedialog.h>
#include <AknUtils.h>
#include <cmmanagerext.h>
+#include <NIFVAR.H>
#include <ConnectionMonitorUi.rsg>
#include "ConnectionMonitorUi.hrh"
#include "ConnectionMonitorUiAppUi.h"
@@ -317,13 +318,11 @@
connectionInfo = ( *iConnectionArray )[index];
if ( iView->Id() == KDetailsViewId )
- {
- CConnectionMonitorUiDetailsView* view = (CConnectionMonitorUiDetailsView*) iView;
- if ( view->GetSelectedConnection() == ((TUint) index) )
- {
- view->CloseViewL();
- activateMainView = ETrue;
- }
+ {
+ // Mark the connection as closed and refresh details view.
+ // It will change the status there.
+ connectionInfo->RefreshConnectionStatus( KConnectionClosed );
+ connectionInfo->RefreshDetailsArrayL();
}
else // MainView
{
@@ -332,8 +331,10 @@
{
ShowConnectionSummaryInformationNoteL( connectionInfo );
}
- }
- iConnectionArray->Delete( connectionId );
+ // Mark the connection as closed. When the timer ticks the next
+ // time the marked connection is deleted and removed from the main view.
+ connectionInfo->RefreshConnectionStatus( KConnectionClosed );
+ }
CMUILOGGER_WRITE_F( "Deleted: %d", connectionId );
}
break;
@@ -601,6 +602,28 @@
//
void CConnectionMonitorUiAppUi::OnTimerExpiredL()
{
+ CMUILOGGER_WRITE_F( "MdcaCount: %d", iConnectionArray->MdcaCount());
+ // First check if there are connections that need to be deleted.
+ // The conditions for deletion are:
+ // 1. Connection status must be closed
+ // 2. Main view must be active (details view should be shown also for closed connections)
+ // 3. There must not be active request ongoing (otherwise deletion might cause crash)
+ for(TUint i = 0; i < iConnectionArray->MdcaCount(); i++)
+ {
+ CMUILOGGER_WRITE_F( "i: %d", i );
+ CMUILOGGER_WRITE_F( "Status: %d", (*iConnectionArray)[i]->GetStatus() );
+ CMUILOGGER_WRITE_F( "active: %d", iActiveWrapper->IsActive() );
+ if( (*iConnectionArray)[i]->GetStatus() == EConnectionClosed
+ && !iActiveWrapper->IsActive()
+ && iView->Id() != KDetailsViewId)
+ {
+ CMUILOGGER_WRITE_F( "Delete conn id: %d", (*iConnectionArray)[i]->GetConnectionId() );
+ iConnectionArray->Delete( (*iConnectionArray)[i]->GetConnectionId() );
+ i--;
+ }
+ }
+
+
TInt count = iNewConnectionIdArray.Count();
if ( count > 0 )
{
--- a/connectionmonitoring/connectionmonitorui/src/ConnectionMonitorUiDetailsContainer.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connectionmonitorui/src/ConnectionMonitorUiDetailsContainer.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -317,40 +317,9 @@
{
case EConnMonDeleteConnection:
{
- if ( aIndex == iConnectionIndex )
- {
- TUint count = iConnectionArray->MdcaCount();
- switch ( count )
- {
- case 0:
- {
- iListBox->Model()->SetItemTextArray(
- new (ELeave) CDesCArrayFlat( 1 ) );
- iListBox->Model()->SetOwnershipType(
- ELbmOwnsItemArray );
- iConnectionIndex = 0;
- iConnectionInfo = NULL;
- break;
- }
- case 1:
- {
- SetSelectedConnectionL( 0 );
- break;
- }
- default :
- {
- TInt index = iConnectionIndex < count ?
- iConnectionIndex :
- iConnectionIndex - 1;
- SetSelectedConnectionL( index );
- break;
- }
- }
- iListBox->DrawNow();
- iListBox->UpdateScrollBarsL();
- }
- break;
+ // Do nothing
}
+ break;
case EConnMonCreateConnection:
{
CMUILOGGER_WRITE_F( "iConnectionInfo : %d", iConnectionInfo );
@@ -388,14 +357,13 @@
if ( iConnectionArray->MdcaCount() )
{
iListBox->DrawNow();
- iListBox->UpdateScrollBarsL();
+
CMUILOGGER_WRITE_F( "CMUIDW GetStatus() before: %d",
iConnectionInfo->GetStatus() );
if ( iConnectionInfo->GetStatus() == EConnectionClosing )
{
CConnectionMonitorUiAppUi* tempApUi =
CConnectionMonitorUiAppUi::Static();
- tempApUi->StopTimer();
iConnectionInfo->StatusChangedL();
}
CMUILOGGER_WRITE_F( "CMUIDW GetStatus() after: %d",
@@ -447,7 +415,8 @@
//
void CConnectionMonitorUiDetailsContainer::PushAndRefreshNaviPaneL()
{
- TUint countOfConnection = iConnectionArray->NumberOfActiveConnections();
+ TUint countOfConnection = iConnectionArray->MdcaCount();
+
CMUILOGGER_WRITE_F( "countOfConnection : %d", countOfConnection );
if ( ( iConnectionIndex > countOfConnection ) && // spec. index update
--- a/connectionmonitoring/connectionmonitorui/src/ConnectionMonitorUiDetailsView.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connectionmonitorui/src/ConnectionMonitorUiDetailsView.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -31,7 +31,7 @@
// ---------------------------------------------------------
//
CConnectionMonitorUiDetailsView::CConnectionMonitorUiDetailsView(
- const CConnectionArray* const aConnectionArray )
+ CConnectionArray* const aConnectionArray )
: CAknView(),
iConnectionArray( aConnectionArray ),
iViewRefreshState( EFalse )
@@ -93,6 +93,8 @@
//
void CConnectionMonitorUiDetailsView::CloseViewL()
{
+ CMUILOGGER_ENTERFN( "CConnectionMonitorUiDetailsView::CloseViewL" );
+
if ( GetViewRefreshState() )
{
// Now delete this view
@@ -101,6 +103,7 @@
appUi->StartTimerL();
SetViewRefreshState( EFalse );
}
+ CMUILOGGER_LEAVEFN( "CConnectionMonitorUiDetailsView::CloseViewL" );
}
// ---------------------------------------------------------
--- a/connectionmonitoring/connmon/connectionmonitor/group/ConnMon.mmp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connmon/connectionmonitor/group/ConnMon.mmp Mon Jan 18 20:33:49 2010 +0200
@@ -56,6 +56,7 @@
SOURCE connmondtmnoti.cpp
SOURCE ConnMonBearerNotifier.cpp ConnMonEGprsNotifier.cpp ConnMonHsdpaNotifier.cpp
+SOURCE cellulardatausagekeyupdater.cpp
USERINCLUDE ../inc
--- a/connectionmonitoring/connmon/connectionmonitor/inc/ConnMonIAP.h Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connmon/connectionmonitor/inc/ConnMonIAP.h Mon Jan 18 20:33:49 2010 +0200
@@ -642,6 +642,15 @@
* (weak signal, no WLAN connection, WLAN not supported... ).
*/
TBool WlanRssGoodEnough();
+
+ /**
+ * Gets the network roaming status.
+ * @since
+ * @param aNetworkStatus On return, contains the current network registration status.
+ * @return KErrNone if successfull, otherwise a system wide error code.
+ */
+ TInt GetNetworkRegistration_v2( TInt& aRegistration ) const;
+
private: // New methods
/**
@@ -742,14 +751,6 @@
TInt GetNetworkRegistration( TInt& aRegistration ) const;
/**
- * Gets the network roaming status.
- * @since
- * @param aNetworkStatus On return, contains the current network registration status.
- * @return KErrNone if successfull, otherwise a system wide error code.
- */
- TInt GetNetworkRegistration_v2( TInt& aRegistration ) const;
-
- /**
* Gets the GSM signal strength.
* @since
* @param aSignalStrength On return, contains the GSM signal strength in dBs.
--- a/connectionmonitoring/connmon/connectionmonitor/inc/ConnMonServ.h Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connmon/connectionmonitor/inc/ConnMonServ.h Mon Jan 18 20:33:49 2010 +0200
@@ -133,6 +133,7 @@
class TConnMonIapInfo;
class TConnMonSNAPInfo;
class TConnMonId;
+class CCellularDataUsageKeyUpdater;
/**
* CConnMonServer
@@ -326,6 +327,13 @@
{
return iBearerGroupManager;
}
+
+ /**
+ * Gets a pointer to the iap module.
+ * @return A pointer to the iap module.
+ */
+ inline CCellularDataUsageKeyUpdater* CellularDataUsageKeyUpdater()
+ { return iCellularDataUsageKeyUpdater; }
public:
/**
@@ -367,7 +375,8 @@
CConnMonCommsDatNotifier* iSnapTableNotifier;
CConnMonCommsDatNotifier* iVirtualTableNotifier;
- CConnMonBearerGroupManager* iBearerGroupManager;
+ CConnMonBearerGroupManager* iBearerGroupManager;
+ CCellularDataUsageKeyUpdater* iCellularDataUsageKeyUpdater;
};
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/connectionmonitoring/connmon/connectionmonitor/inc/cellulardatausagekeyupdater.h Mon Jan 18 20:33:49 2010 +0200
@@ -0,0 +1,67 @@
+/*
+* 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: Listens for changes in one CommsDat table through CenRep.
+*
+*/
+
+#ifndef CELLULARDATAUSAGEKEYUPDATER_H
+#define CELLULARDATAUSAGEKEYUPDATER_H
+
+class CConnMonServer;
+class CRepository;
+class TCmGenConnSettings;
+
+// Stop requesting new notifications after this many consecutive errors
+const TInt KCenRepErrorRetryCount = 80;
+
+NONSHARABLE_CLASS( CCellularDataUsageKeyUpdater ) : public CActive
+ {
+public:
+ static CCellularDataUsageKeyUpdater* NewL(
+ CConnMonServer* aServer );
+
+ static CCellularDataUsageKeyUpdater* NewLC(
+ CConnMonServer* aServer );
+
+ virtual ~CCellularDataUsageKeyUpdater();
+
+ void UpdateKeyL( const TInt aRegistration ) const;
+
+private:
+ CCellularDataUsageKeyUpdater(
+ CConnMonServer* aServer );
+
+ void ConstructL();
+ TInt RequestNotifications();
+
+ TCmGenConnSettings ReadGenConnSettingsL() const;
+ TInt GetNetworkRegistration( TInt& aRegistration ) const;
+ void UpdateKeyL() const;
+
+private: // Methods from base class
+ void DoCancel();
+ void RunL();
+
+private:
+ CConnMonServer* iServer;
+ TUint32 iTableId;
+ CRepository* iRepository;
+ TInt iErrorCounter;
+ // used for complete runl. Not owned.
+ TRequestStatus* iInitStatus;
+ };
+
+#endif // CELLULARDATAUSAGEKEYUPDATER_H
+
+// End-of-file
--- a/connectionmonitoring/connmon/connectionmonitor/src/ConnMonNoti.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connmon/connectionmonitor/src/ConnMonNoti.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -28,6 +28,7 @@
#include "ConnMonIAP.h"
#include "ConnMonNoti.h"
#include "ConnMonAvailabilityManager.h"
+#include "cellulardatausagekeyupdater.h"
#include "log.h"
// ============================ MEMBER FUNCTIONS ===============================
@@ -974,6 +975,11 @@
// Store to compare next event correctly
iEventInfo.iData = value;
+
+ // Update KCurrentCellularDataUsage -key in Repository KCRUidCmManage.
+ // Key tells applications whether it is allowed to use packet data or not.
+ TRAP_IGNORE( iServer->CellularDataUsageKeyUpdater()->UpdateKeyL(
+ iServer->Iap()->CalculateNetworkRegistration_v2( iRegistration ) ); )
}
LOGIT("CNetwRegistrationNotifier::RunL triggered HandleAvailabilityChange()")
iServer->AvailabilityManager()->HandleAvailabilityChange();
--- a/connectionmonitoring/connmon/connectionmonitor/src/ConnMonServ.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connmon/connectionmonitor/src/ConnMonServ.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -33,6 +33,7 @@
#include "ConnMonBearerWLAN.h"
#include "ConnMonBearerGroupManager.h"
#include "connmoncommsdatnotifier.h"
+#include "cellulardatausagekeyupdater.h"
// ============================ LOCAL FUNCTIONS ===============================
@@ -318,7 +319,10 @@
// Bearer group manager
iBearerGroupManager = CConnMonBearerGroupManager::NewL();
LOGIT("ConstructL: Bearer group manager constructed")
-
+
+ iCellularDataUsageKeyUpdater = CCellularDataUsageKeyUpdater::NewL( this );
+ LOGIT("ConstructL: CCellularDataUsageKeyUpdater constructed")
+
// Identify ourselves and open for service
StartL( KConnectionMonitorServerName );
@@ -368,6 +372,8 @@
// Bearer Group Manager
delete iBearerGroupManager;
+
+ delete iCellularDataUsageKeyUpdater;
FeatureManager::UnInitializeLib();
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/connectionmonitoring/connmon/connectionmonitor/src/cellulardatausagekeyupdater.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -0,0 +1,298 @@
+/*
+* 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: Keeps KCurrentCellularDataUsage -key
+* in Repository KCRUidCmManager up-to-date based
+* on current network registration status and
+* iCellularDataUsageHome and iCellularDataUsageVisitor keys.
+*/
+
+#include <commsdat.h>
+#include <centralrepository.h>
+#include <cmmanager.h>
+#include <cmmanagerkeys.h>
+#include <cmgenconnsettings.h>
+#include <rconnmon.h>
+#include <datamobilitycommsdattypes.h>
+#include <cmpluginbaseeng.h>
+
+#include "cellulardatausagekeyupdater.h"
+#include "ConnMonServ.h"
+#include "ConnMonIap.h"
+#include "ConnMonDef.h"
+#include "log.h"
+
+// Repository for CommsDat
+const TUid KCDCommsRepositoryId = { 0xCCCCCC00 };
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::NewL
+// -----------------------------------------------------------------------------
+//
+CCellularDataUsageKeyUpdater* CCellularDataUsageKeyUpdater::NewL(
+ CConnMonServer* aServer )
+ {
+ CCellularDataUsageKeyUpdater* self =
+ CCellularDataUsageKeyUpdater::NewLC( aServer );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::NewLC
+// -----------------------------------------------------------------------------
+//
+CCellularDataUsageKeyUpdater* CCellularDataUsageKeyUpdater::NewLC(
+ CConnMonServer* aServer )
+ {
+ CCellularDataUsageKeyUpdater* self =
+ new( ELeave ) CCellularDataUsageKeyUpdater( aServer );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::~CCellularDataUsageKeyUpdater
+// -----------------------------------------------------------------------------
+//
+CCellularDataUsageKeyUpdater::~CCellularDataUsageKeyUpdater()
+ {
+ // Cancel outstanding request, if exists
+ Cancel();
+ delete iRepository;
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::UpdateKeyL
+// -----------------------------------------------------------------------------
+//
+void CCellularDataUsageKeyUpdater::UpdateKeyL( const TInt aRegistration ) const
+ {
+ LOGENTRFN("CCellularDataUsageKeyUpdater::UpdateKeyL()")
+ LOGIT1("CCellularDataUsageKeyUpdater::UpdateKeyL: aRegistration <%d>",
+ aRegistration)
+
+ TCmGenConnSettings occSettings = ReadGenConnSettingsL();
+
+ TInt value( occSettings.iCellularDataUsageHome );
+
+ if ( aRegistration == ENetworkRegistrationExtRoamingInternational )
+ {
+ value = occSettings.iCellularDataUsageVisitor;
+ }
+
+ CRepository* cmRepository = NULL;
+
+ TRAPD( err, cmRepository = CRepository::NewL( KCRUidCmManager ) )
+
+ if ( err == KErrNone )
+ {
+ TInt previous( 0 );
+ TInt err = cmRepository->Get( KCurrentCellularDataUsage, previous );
+
+ if ( err == KErrNone && ( value != previous ) )
+ {
+ cmRepository->Set( KCurrentCellularDataUsage, value );
+ LOGIT1("KCurrentCellularDataUsage set to <%d>", value)
+ }
+ delete cmRepository;
+ }
+ else
+ {
+ LOGIT1("CCRepository::NewL( KCRUidCmManager ) FAILED <%d>", err)
+ }
+
+ LOGEXITFN("CCellularDataUsageKeyUpdater::UpdateKeyL()")
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::CCellularDataUsageKeyUpdater
+// -----------------------------------------------------------------------------
+//
+CCellularDataUsageKeyUpdater::CCellularDataUsageKeyUpdater( CConnMonServer* aServer )
+ :
+ CActive( EConnMonPriorityNormal ),
+ iServer( aServer )
+ {
+ iRepository = NULL;
+ iErrorCounter = 0;
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CCellularDataUsageKeyUpdater::ConstructL()
+ {
+ iRepository = CRepository::NewL( KCDCommsRepositoryId );
+
+ // Find out Default connection table id.
+ // It contains iCellularDataUsageHome and iCellularDataUsageVisitor keys.
+ CMDBSession* db = CMDBSession::NewLC( CMDBSession::LatestVersion() );
+ TRAPD( err, iTableId = CCDDefConnRecord::TableIdL( *db ) )
+
+ if ( err )
+ {
+ LOGIT1("ERROR, CCDDefConnRecord::TableIdL() <%d>", err)
+ // Default connection table did not exist.
+ // Try once more because CMManager might have created it.
+ iTableId = CCDDefConnRecord::TableIdL( *db );
+ }
+ CleanupStack::PopAndDestroy( db );
+
+ CActiveScheduler::Add( this );
+
+ // Initialize later asynchronously and let ConnMonServ continue now
+ SetActive();
+ iInitStatus = &iStatus;
+ User::RequestComplete( iInitStatus, KErrNone );
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::RequestNotifications
+// -----------------------------------------------------------------------------
+//
+TInt CCellularDataUsageKeyUpdater::RequestNotifications()
+ {
+ LOGIT1("Calling iRepository->NotifyRequest() for table 0x%08X", iTableId)
+ TInt err = iRepository->NotifyRequest( iTableId, KCDMaskShowRecordType, iStatus );
+
+ if ( err == KErrNone )
+ {
+ SetActive();
+ }
+ else
+ {
+ LOGIT1("ERROR, iRepository->NotifyRequest() <%d>", err)
+ }
+
+ return err;
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::DoCancel
+// -----------------------------------------------------------------------------
+//
+void CCellularDataUsageKeyUpdater::DoCancel()
+ {
+ iRepository->NotifyCancel( iTableId, KCDMaskShowRecordType );
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::RunL
+// -----------------------------------------------------------------------------
+//
+void CCellularDataUsageKeyUpdater::RunL()
+ {
+ LOGIT(".")
+ LOGIT2("RunL: CCellularDataUsageKeyUpdater 0x%08X, 0x%08X",
+ iTableId, iStatus.Int())
+
+ if ( iStatus.Int() < KErrNone )
+ {
+ LOGIT1("CCellularDataUsageKeyUpdater::RunL: error <%d>", iStatus.Int())
+ iErrorCounter++;
+ if ( iErrorCounter > KCenRepErrorRetryCount )
+ {
+ LOGIT1("Over %d consecutive errors, stopping notifications permanently",
+ KCenRepErrorRetryCount)
+ return;
+ }
+ }
+ else
+ {
+ iErrorCounter = 0;
+
+ TRAPD( leaveCode, UpdateKeyL() )
+
+ if ( leaveCode )
+ {
+ LOGIT1("CCellularDataUsageKeyUpdater::RunL: LEAVE <%d>", leaveCode)
+ }
+ }
+
+ RequestNotifications();
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::ReadGenConnSettings
+// -----------------------------------------------------------------------------
+//
+TCmGenConnSettings CCellularDataUsageKeyUpdater::ReadGenConnSettingsL() const
+ {
+ TCmGenConnSettings cmGenConnSettings;
+
+ CMDBSession* db = CMDBSession::NewLC( CMDBSession::LatestVersion() );
+
+ CMDBRecordSet<CCDDefConnRecord>* defConnRecordSet =
+ new ( ELeave ) CMDBRecordSet<CCDDefConnRecord>( iTableId );
+ CleanupStack::PushL( defConnRecordSet );
+
+ defConnRecordSet->LoadL( *db );
+
+ TInt value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0],
+ KCDTIdUsageOfWlan );
+ cmGenConnSettings.iUsageOfWlan = TCmUsageOfWlan( value );
+
+ value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0],
+ KCDTIdCellularDataUsageHome );
+ cmGenConnSettings.iCellularDataUsageHome = TCmCellularDataUsage( value );
+ LOGIT1("cmGenConnSettings.iCellularDataUsageHome <%d>",
+ cmGenConnSettings.iCellularDataUsageHome)
+
+ value = QUERY_INT_FIELD( defConnRecordSet->iRecords[0],
+ KCDTIdCellularDataUsageVisitor );
+ cmGenConnSettings.iCellularDataUsageVisitor = TCmCellularDataUsage( value );
+ LOGIT1("cmGenConnSettings.iCellularDataUsageVisitor <%d>",
+ cmGenConnSettings.iCellularDataUsageVisitor)
+
+ CleanupStack::PopAndDestroy( defConnRecordSet );
+ CleanupStack::PopAndDestroy( db );
+
+ return cmGenConnSettings;
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::GetNetworkRegistration
+// -----------------------------------------------------------------------------
+//
+TInt CCellularDataUsageKeyUpdater::GetNetworkRegistration( TInt& aRegistration ) const
+ {
+ return iServer->Iap()->GetNetworkRegistration_v2( aRegistration );
+ }
+
+// -----------------------------------------------------------------------------
+// CCellularDataUsageKeyUpdater::UpdateKeyL
+// -----------------------------------------------------------------------------
+//
+void CCellularDataUsageKeyUpdater::UpdateKeyL() const
+ {
+ TInt registration( ENetworkRegistrationExtHomeNetwork );
+ TInt err( KErrNone );
+
+#ifndef __WINSCW__ // emulator does not support cellular network
+ err = GetNetworkRegistration( registration );
+#endif
+
+ if ( err == KErrNone )
+ {
+ UpdateKeyL( registration );
+ }
+ else
+ {
+ LOGIT1("GetNetworkRegistration failed: <%d>", err );
+ }
+ }
+
+// End-of-file
--- a/connectionmonitoring/connmon/dataconnectionlogger/src/saeobserver.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/connectionmonitoring/connmon/dataconnectionlogger/src/saeobserver.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -261,23 +261,33 @@
User::WaitForRequest( status );
LOG( Log::Printf( _L("+ DCL: Async call status==(%d)."), status.Int() ));
- if ( (ntwStatus == EConnMonStatusNotAvailable) || (ntwStatus == EConnMonStatusUnattached) )
- {
- LOG( Log::Printf( _L("DCL: GPRS ntwk is UnAttached." )));
- iNetworkIsUnAttached = ETrue;
- NotifyPubSub( KPSUidGprsStatus, EPSGprsUnattached );
- }
- else if ( ntwStatus == ENtwkStatusNotKnown )
+ switch ( ntwStatus )
{
- LOG( Log::Printf( _L("DCL: Async request for GPRS ntwk status failed %d!"),
- status.Int() ));
+ case ENtwkStatusNotKnown:
+ LOG( Log::Printf( _L("DCL: Async request for GPRS ntwk status failed %d!"),
+ status.Int() ));
+ break;
+
+ case EConnMonStatusNotAvailable:
+ case EConnMonStatusUnattached:
+ LOG( Log::Printf( _L("DCL: GPRS ntwk is UnAttached." )));
+ iNetworkIsUnAttached = ETrue;
+ NotifyPubSub( KPSUidGprsStatus, EPSGprsUnattached );
+ break;
+
+ case EConnMonStatusActive:
+ LOG( Log::Printf( _L("DCL: GPRS ntwk is Active." )));
+ iNetworkIsUnAttached = EFalse;
+ NotifyPubSub( KPSUidGprsStatus, EPSGprsContextActive );
+ break;
+
+ case EConnMonStatusAttached:
+ default:
+ LOG( Log::Printf( _L("DCL: GPRS ntwk is Attached." )));
+ iNetworkIsUnAttached = EFalse;
+ NotifyPubSub( KPSUidGprsStatus, EPSGprsAttach );
}
- else
- {
- LOG( Log::Printf( _L("DCL: GPRS ntwk is Attached." )));
- iNetworkIsUnAttached = EFalse;
- NotifyPubSub( KPSUidGprsStatus, EPSGprsAttach );
- }
+
}
else if ( connType == ESAEWCDMAConnectionType )
{
@@ -285,23 +295,33 @@
User::WaitForRequest( status );
LOG( Log::Printf( _L("+ DCL: Async call status==(%d)."), status.Int() ));
- if ( (ntwStatus == EConnMonStatusNotAvailable) || (ntwStatus == EConnMonStatusUnattached) )
- {
- LOG( Log::Printf( _L("DCL: WCDMA ntwk is UnAttached." )));
- iNetworkIsUnAttached = ETrue;
- NotifyPubSub( KPSUidWcdmaStatus, EPSWcdmaUnattached );
- }
- else if ( ntwStatus == ENtwkStatusNotKnown )
+ switch ( ntwStatus )
{
- LOG( Log::Printf( _L("DCL: Async request for WCDMA ntwk status failed %d!"),
- status.Int() ));
+ case ENtwkStatusNotKnown:
+ LOG( Log::Printf( _L("DCL: Async request for WCDMA ntwk status failed %d!"),
+ status.Int() ));
+ break;
+
+ case EConnMonStatusNotAvailable:
+ case EConnMonStatusUnattached:
+ LOG( Log::Printf( _L("DCL: WCDMA ntwk is UnAttached." )));
+ iNetworkIsUnAttached = ETrue;
+ NotifyPubSub( KPSUidWcdmaStatus, EPSWcdmaUnattached);
+ break;
+
+ case EConnMonStatusActive:
+ LOG( Log::Printf( _L("DCL: WCDMA ntwk is Active." )));
+ iNetworkIsUnAttached = EFalse;
+ NotifyPubSub( KPSUidWcdmaStatus, EPSWcdmaContextActive );
+ break;
+
+ case EConnMonStatusAttached:
+ default:
+ LOG( Log::Printf( _L("DCL: WCDMA ntwk is Attached." )));
+ iNetworkIsUnAttached = EFalse;
+ NotifyPubSub( KPSUidWcdmaStatus, EPSWcdmaAttach );
}
- else
- {
- LOG( Log::Printf( _L("DCL: WCDMA ntwk is Attached." )));
- iNetworkIsUnAttached = EFalse;
- NotifyPubSub( KPSUidWcdmaStatus, EPSWcdmaAttach );
- }
+
}
else
{
--- a/dbcreator/commsdatcreator/Inc/cdcprocessorglobal.h Thu Jan 07 12:56:54 2010 +0200
+++ b/dbcreator/commsdatcreator/Inc/cdcprocessorglobal.h Mon Jan 18 20:33:49 2010 +0200
@@ -142,18 +142,18 @@
void SetGenConnSettingWlanUsage( HBufC16* aPtrTag );
/**
- * Sets the "Seamlessness (cellular data usage) in home networks"
+ * Sets the "cellular data usage in home networks"
* parameter in general connection settings.
* @param aPtrTag string containing the parameter's value.
*/
- void SetGenConnSettingSeamlessnessHome( HBufC16* aPtrTag );
+ void SetGenConnSettingCellularDataUsageHome( HBufC16* aPtrTag );
/**
- * Sets the "Seamlessness (cellular data usage) in visitor networks"
+ * Sets the "cellular data usage in visitor networks"
* parameter in general connection settings.
* @param aPtrTag string containing the parameter's value.
*/
- void SetGenConnSettingSeamlessnessVisitor( HBufC16* aPtrTag );
+ void SetGenConnSettingCellularDataUsageVisitor( HBufC16* aPtrTag );
// Stores the general connection settings, using CMM
void SetGenConnSettingsL();
--- a/dbcreator/commsdatcreator/Src/cdcprocessorglobal.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/dbcreator/commsdatcreator/Src/cdcprocessorglobal.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -156,8 +156,8 @@
// Create General connection settings struct and set the default values
iGenConnSettings = new (ELeave) TCmGenConnSettings;
iGenConnSettings->iUsageOfWlan = ECmUsageOfWlanKnown;
- iGenConnSettings->iSeamlessnessHome = ECmSeamlessnessConfirmFirst;
- iGenConnSettings->iSeamlessnessVisitor = ECmSeamlessnessConfirmFirst;
+ iGenConnSettings->iCellularDataUsageHome = ECmCellularDataUsageAutomatic;
+ iGenConnSettings->iCellularDataUsageVisitor = ECmCellularDataUsageConfirm;
CLOG_WRITE( "Initialising FeatureManager\n" )
//checks if Wlan feature is supported
@@ -462,15 +462,15 @@
break;
}
- case ESeamlessnessHome:
+ case ECellularDataUsageHome:
{
- SetGenConnSettingSeamlessnessHome( ptrTag );
+ SetGenConnSettingCellularDataUsageHome( ptrTag );
break;
}
- case ESeamlessnessVisitor:
+ case ECellularDataUsageVisitor:
{
- SetGenConnSettingSeamlessnessVisitor( ptrTag );
+ SetGenConnSettingCellularDataUsageVisitor( ptrTag );
break;
}
@@ -707,37 +707,37 @@
}
// ---------------------------------------------------------
-// CProcessorGlobal::SetGenConnSettingSeamlessnessHome
+// CProcessorGlobal::SetGenConnSettingCellularDataUsageHome
// ---------------------------------------------------------
//
-void CProcessorGlobal::SetGenConnSettingSeamlessnessHome( HBufC16* aPtrTag )
+void CProcessorGlobal::SetGenConnSettingCellularDataUsageHome( HBufC16* aPtrTag )
{
if ( aPtrTag->CompareF( KStrAutomatic ) == 0 )
{
- iGenConnSettings->iSeamlessnessHome = ECmSeamlessnessShowprogress;
+ iGenConnSettings->iCellularDataUsageHome = ECmCellularDataUsageAutomatic;
}
else if ( iIsWlanS && aPtrTag->CompareF( KStrWlanOnly ) == 0 )
{
// This value can't be set if WLAN isn't supported
- iGenConnSettings->iSeamlessnessHome = ECmSeamlessnessDisabled;
+ iGenConnSettings->iCellularDataUsageHome = ECmCellularDataUsageDisabled;
}
// else: Default value for the string is: "Confirm", set in ConstructL()
}
// ---------------------------------------------------------
-// CProcessorGlobal::SetGenConnSettingSeamlessnessVisitor
+// CProcessorGlobal::SetGenConnSettingCellularDataUsageVisitor
// ---------------------------------------------------------
//
-void CProcessorGlobal::SetGenConnSettingSeamlessnessVisitor( HBufC16* aPtrTag )
+void CProcessorGlobal::SetGenConnSettingCellularDataUsageVisitor( HBufC16* aPtrTag )
{
if ( aPtrTag->CompareF( KStrAutomatic ) == 0 )
{
- iGenConnSettings->iSeamlessnessVisitor = ECmSeamlessnessShowprogress;
+ iGenConnSettings->iCellularDataUsageVisitor = ECmCellularDataUsageAutomatic;
}
else if ( iIsWlanS && aPtrTag->CompareF( KStrWlanOnly ) == 0 )
{
// This value can't be set if WLAN isn't supported
- iGenConnSettings->iSeamlessnessVisitor = ECmSeamlessnessDisabled;
+ iGenConnSettings->iCellularDataUsageVisitor = ECmCellularDataUsageDisabled;
}
// else: Default value for the string is: "Confirm", set in ConstructL()
}
--- a/dbcreator/commsdatcreator/Src/cdcreaderxml.cpp Thu Jan 07 12:56:54 2010 +0200
+++ b/dbcreator/commsdatcreator/Src/cdcreaderxml.cpp Mon Jan 18 20:33:49 2010 +0200
@@ -476,8 +476,8 @@
_LIT16( KDefaultConnectionType, "DefaultConnectionType" );
_LIT16( KDefaultConnectionName, "DefaultConnectionName" );
_LIT16( KUsageOfWlan, "UsageOfWlan" );
-_LIT16( KSeamlessnessHome, "SeamlessnessHome" );
-_LIT16( KSeamlessnessVisitor, "SeamlessnessVisitor" );
+_LIT16( KCellularDataUsageHome, "CellularDataUsageHome" );
+_LIT16( KCellularDataUsageVisitor, "CellularDataUsageVisitor" );
_LIT16( KGprsLastSocketActivityTimeout, "GprsLastSocketActivityTimeout" );
_LIT16( KGprsLastSessionClosedTimeout, "GprsLastSessionClosedTimeout" );
_LIT16( KGprsLastSocketClosedTimeout, "GprsLastSocketClosedTimeout" );
@@ -1780,8 +1780,8 @@
iGlobalParams.Append( EInputParams( EDefaultConnectionType, KDefaultConnectionType ) );
iGlobalParams.Append( EInputParams( EDefaultConnectionName, KDefaultConnectionName ) );
iGlobalParams.Append( EInputParams( EUsageOfWlan, KUsageOfWlan ) );
- iGlobalParams.Append( EInputParams( ESeamlessnessHome, KSeamlessnessHome ) );
- iGlobalParams.Append( EInputParams( ESeamlessnessVisitor, KSeamlessnessVisitor ) );
+ iGlobalParams.Append( EInputParams( ECellularDataUsageHome, KCellularDataUsageHome ) );
+ iGlobalParams.Append( EInputParams( ECellularDataUsageVisitor, KCellularDataUsageVisitor ) );
iGlobalParams.Append( EInputParams( EGprsLastSocketActivityTimeout, KGprsLastSocketActivityTimeout ) );
iGlobalParams.Append( EInputParams( EGprsLastSessionClosedTimeout, KGprsLastSessionClosedTimeout ) );
iGlobalParams.Append( EInputParams( EGprsLastSocketClosedTimeout, KGprsLastSocketClosedTimeout ) );
Binary file dbcreator/conf/commsdatcreator.confml has changed
--- a/dbcreator/inc/cdccommon.h Thu Jan 07 12:56:54 2010 +0200
+++ b/dbcreator/inc/cdccommon.h Mon Jan 18 20:33:49 2010 +0200
@@ -87,19 +87,19 @@
EWlanLastSocketActivityTimeout = 0x0000001f,
EWlanLastSessionClosedTimeout = 0x00000020,
EWlanLastSocketClosedTimeout = 0x00000021,
- EWlanBGScanInterval = 0x00000022,
- EWlanUseDefSettings = 0x00000023,
- EWlanLongRetry = 0x00000024,
- EWlanShortRetry = 0x00000025,
- EWlanRTS = 0x00000026,
- EWlanTxPowerLevel = 0x00000027,
- EWlanRadioMeasurements = 0x00000028,
- EWlanPowerMode = 0x00000029,
- EDefaultAP = 0x0000002a,
- EUsageOfWlan = 0x0000002b,
- ESeamlessnessHome = 0x0000002c,
- ESeamlessnessVisitor = 0x0000002d,
- EUnused = 0x00010000
+ EWlanBGScanInterval = 0x00000022,
+ EWlanUseDefSettings = 0x00000023,
+ EWlanLongRetry = 0x00000024,
+ EWlanShortRetry = 0x00000025,
+ EWlanRTS = 0x00000026,
+ EWlanTxPowerLevel = 0x00000027,
+ EWlanRadioMeasurements = 0x00000028,
+ EWlanPowerMode = 0x00000029,
+ EDefaultAP = 0x0000002a,
+ EUsageOfWlan = 0x0000002b,
+ ECellularDataUsageHome = 0x0000002c,
+ ECellularDataUsageVisitor = 0x0000002d,
+ EUnused = 0x00010000
};
--- a/ipcm_plat/commsdat_wlan_api/inc/cmmanagertablefields.h Thu Jan 07 12:56:54 2010 +0200
+++ b/ipcm_plat/commsdat_wlan_api/inc/cmmanagertablefields.h Mon Jan 18 20:33:49 2010 +0200
@@ -96,8 +96,8 @@
const CommsDat::TMDBElementId KCDTIdDefConnType = 0x00120000;
const CommsDat::TMDBElementId KCDTIdDefConnUid = 0x00130000;
const CommsDat::TMDBElementId KCDTIdUsageOfWlan = 0x00150000;
-const CommsDat::TMDBElementId KCDTIdSeamlessnessHome = 0x00170000;
-const CommsDat::TMDBElementId KCDTIdSeamlessnessVisitor = 0x00180000;
+const CommsDat::TMDBElementId KCDTIdCellularDataUsageHome = 0x00170000;
+const CommsDat::TMDBElementId KCDTIdCellularDataUsageVisitor = 0x00180000;
#endif // TABLE_FIELDS_H
--- a/ipcm_plat/extended_connection_settings_api/group/bld.inf Thu Jan 07 12:56:54 2010 +0200
+++ b/ipcm_plat/extended_connection_settings_api/group/bld.inf Mon Jan 18 20:33:49 2010 +0200
@@ -30,3 +30,4 @@
../inc/cmsettingsui.h MW_LAYER_PLATFORM_EXPORT_PATH(cmsettingsui.h)
../inc/cmcommonui.h MW_LAYER_PLATFORM_EXPORT_PATH(cmcommonui.h)
../inc/cmmanagerext.h MW_LAYER_PLATFORM_EXPORT_PATH(cmmanagerext.h)
+../inc/cmmanagerkeys.h MW_LAYER_PLATFORM_EXPORT_PATH(cmmanagerkeys.h)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ipcm_plat/extended_connection_settings_api/inc/cmmanagerkeys.h Mon Jan 18 20:33:49 2010 +0200
@@ -0,0 +1,40 @@
+/*
+* 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: CmManager central repository keys.
+*
+*/
+
+#ifndef CMMANAGERKEYS_H
+#define CMMANAGERKEYS_H
+
+/**
+ * UID of CmManager repository
+ *
+ * @since S60 5.1
+ */
+const TUid KCRUidCmManager = {0x10207376};
+
+/**
+ * Cellular data usage setting in current network.
+ *
+ * This means that the client does not need to take into account
+ * whether the device is in the home country or in a foreign country
+ * but the value is provided for the country the device is at the moment.
+ * See TCmCellularDataUsage in cmgenconnsettings.h for more info.
+ *
+ * @since S60 5.1
+ */
+const TUint32 KCurrentCellularDataUsage = 0x00000001;
+
+#endif // CMMANAGERKEYS_H
--- a/ipcm_pub/connection_settings_api/inc/cmgenconnsettings.h Thu Jan 07 12:56:54 2010 +0200
+++ b/ipcm_pub/connection_settings_api/inc/cmgenconnsettings.h Mon Jan 18 20:33:49 2010 +0200
@@ -18,29 +18,61 @@
#define CMGENCONNSETTINGS_H
-// Usage types for new WLAN
+// Usage types for WLAN
enum TCmUsageOfWlan
{
+ // Known WLANs will be used, and they will be switched to
+ // if they become available during existing connections.
ECmUsageOfWlanKnown,
- ECmUsageOfWlanKnownAndNew, // default
+ // Known and new WLANs will be used.
+ ECmUsageOfWlanKnownAndNew,
+ // WLANs will be used but they will not be switched to
+ // from existing connections.
ECmUsageOfWlanManual
};
-// Seamlessness values
+// Cellular data usage values
+enum TCmCellularDataUsage
+ {
+ // Cellular data connection is not used automatically but a confirmation
+ // is requested from the user.
+ ECmCellularDataUsageConfirm,
+ // Cellular data connection is automatically used without querying
+ // permission from the user.
+ ECmCellularDataUsageAutomatic,
+ // Cellular data usage is disabled. Only WLAN will be used.
+ ECmCellularDataUsageDisabled
+ };
+
+// DEPRECATED enumeration which will be removed within few weeks.
+// DO NOT USE THESE VALUES.
+// Functionality related to these values is broken although it compiles.
enum TCmSeamlessnessValue
{
- ECmSeamlessnessNotRoamedTo, // IAP can be used in start, but not roamed to unless already active
- ECmSeamlessnessConfirmFirst, // Confirm first
- ECmSeamlessnessShowprogress, // Show progress
- ECmSeamlessnessFullySeamless, // Same as previous
- ECmSeamlessnessDisabled // IAP blacklisted and not used at all
+ ECmSeamlessnessNotRoamedTo, // DO NOT USE
+ ECmSeamlessnessConfirmFirst, // DO NOT USE
+ ECmSeamlessnessShowprogress, // DO NOT USE
+ ECmSeamlessnessFullySeamless, // DO NOT USE
+ ECmSeamlessnessDisabled // DO NOT USE
};
// Table for connection settings other than default connection
struct TCmGenConnSettings
{
+ // WLAN usage.
TCmUsageOfWlan iUsageOfWlan;
+ // Cellular data usage in home country.
+ TCmCellularDataUsage iCellularDataUsageHome;
+ // Cellular data usage abroad.
+ TCmCellularDataUsage iCellularDataUsageVisitor;
+
+ // DEPRECATED variable that will be removed within few weeks.
+ // DO NOT USE THESE VARIABLES.
+ // Functionality related to this variable is broken although it compiles.
TCmSeamlessnessValue iSeamlessnessHome;
+ // DEPRECATED variable that will be removed within few weeks.
+ // DO NOT USE THESE VARIABLES.
+ // Functionality related to this variable is broken although it compiles.
TCmSeamlessnessValue iSeamlessnessVisitor;
};