diff -r 35b64624a9e7 -r 36f374c67aa8 messagingapp/msgsettings/settingsview/src/mmssettingsprivate.cpp --- a/messagingapp/msgsettings/settingsview/src/mmssettingsprivate.cpp Wed Jun 23 18:09:17 2010 +0300 +++ b/messagingapp/msgsettings/settingsview/src/mmssettingsprivate.cpp Tue Jul 06 14:12:40 2010 +0300 @@ -149,26 +149,42 @@ mMmsClient->RestoreSettingsL(); mMmsSetting->CopyL( mMmsClient->MmsSettings() ); - //do your operation - TMmsReceivingMode receveMode = EMmsReceivingAutomatic; - - if (aRetrieval == MsgSettingEngine::Maual) - receveMode = EMmsReceivingManual; - else if (aRetrieval == MsgSettingEngine::Off) - receveMode = EMmsReceivingPostpone; - else if (aRetrieval == MsgSettingEngine::No) - receveMode = EMmsReceivingReject; - - if (aRetrieval == MsgSettingEngine::AlwaysAutomatic) - { - mMmsSetting->SetReceivingModeForeign(receveMode); - } - else - { - mMmsSetting->SetReceivingModeForeign(EMmsReceivingManual); - } - - mMmsSetting->SetReceivingModeHome(receveMode); + switch ( aRetrieval ) + { + case MsgSettingEngine::AutomInHomeNetwork: + { + mMmsSetting->SetReceivingModeHome( EMmsReceivingAutomatic ); + mMmsSetting->SetReceivingModeForeign( EMmsReceivingManual ); + break; + } + case MsgSettingEngine::AlwaysAutomatic: + { + mMmsSetting->SetReceivingModeHome( EMmsReceivingAutomatic ); + mMmsSetting->SetReceivingModeForeign( EMmsReceivingAutomatic ); + break; + } + case MsgSettingEngine::Manual: + { + mMmsSetting->SetReceivingModeHome( EMmsReceivingManual ); + mMmsSetting->SetReceivingModeForeign( EMmsReceivingManual ); + break; + } + case MsgSettingEngine::Off: + { + mMmsSetting->SetReceivingModeHome( EMmsReceivingPostpone ); + mMmsSetting->SetReceivingModeForeign( EMmsReceivingPostpone ); + break; + } + case MsgSettingEngine::No: + { + mMmsSetting->SetReceivingModeHome( EMmsReceivingReject ); + mMmsSetting->SetReceivingModeForeign( EMmsReceivingReject ); + break; + } + default: + break; + } + //save the settings mMmsClient->SetSettingsL( *mMmsSetting ); @@ -229,21 +245,36 @@ mMmsAccount->LoadSettingsL(*mMmsSetting); - TMmsReceivingMode receveMode = mMmsSetting->ReceivingModeHome(); + TMmsReceivingMode receveModeHome = mMmsSetting->ReceivingModeHome(); + TMmsReceivingMode receveModeForeign = mMmsSetting->ReceivingModeForeign(); + - if (receveMode == EMmsReceivingManual) - aRetrieval = MsgSettingEngine::Maual; - else if (receveMode == EMmsReceivingPostpone) - aRetrieval = MsgSettingEngine::Off; - else if (receveMode == EMmsReceivingReject) - aRetrieval = MsgSettingEngine::No; - - receveMode = mMmsSetting->ReceivingModeForeign(); - if (receveMode == EMmsReceivingAutomatic) - { - aRetrieval = MsgSettingEngine::AlwaysAutomatic; - } - + // if default value is not acceptable, choose next by keeping costs low + if ( receveModeHome == EMmsReceivingAutomatic && + receveModeForeign == EMmsReceivingAutomatic ) + { + aRetrieval = MsgSettingEngine::AlwaysAutomatic; + } + else if ( receveModeHome == EMmsReceivingManual && + receveModeForeign == EMmsReceivingManual ) + { + aRetrieval = MsgSettingEngine::Manual; + } + else if ( receveModeHome == EMmsReceivingReject && + receveModeForeign == EMmsReceivingReject ) + { + aRetrieval = MsgSettingEngine::No; + } + else if ( receveModeHome == EMmsReceivingPostpone && + receveModeForeign == EMmsReceivingPostpone ) + { + aRetrieval = MsgSettingEngine::Off; + } + // Should always be automatic@home & manaul@roam + else + { + aRetrieval = MsgSettingEngine::AutomInHomeNetwork; + } aAnonymousStatus = mMmsSetting->AcceptAnonymousMessages(); aMmsAdvertsStatus = mMmsSetting->AcceptAdvertisementMessages();