diff -r 5266b1f337bd -r 8baf28733c3d phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp --- a/phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp Wed Sep 01 12:30:10 2010 +0100 +++ b/phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp Tue Sep 14 21:18:17 2010 +0300 @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include "phoneui.pan" #include "phonerssbase.h" @@ -34,6 +36,7 @@ #include "tphonecmdparamglobalnote.h" #include "tphonecmdparamnote.h" #include "cphonemainresourceresolver.h" +#include "cphonecenrepproxy.h" // ================= MEMBER FUNCTIONS ======================= @@ -110,9 +113,32 @@ TPhoneCmdParamGlobalNote globalNoteParam; globalNoteParam.SetType( EAknGlobalInformationNote ); - globalNoteParam.SetTextResourceId( - CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( aResourceId ) ); + + if ( CPhoneCenRepProxy::Instance()-> + IsTelephonyFeatureSupported( KTelephonyLVFlagClearCodeCustomization ) ) + { + // Show varied note if clear code customization is enabled + TInt variedNote( KErrNotFound ); + //Get varied resource + variedNote = ResourceVariation(); + if ( variedNote != KErrNotFound ) + { + globalNoteParam.SetTextResourceId( variedNote ); + } + else + { + // If varied resource is not found, show original note. + globalNoteParam.SetTextResourceId( + CPhoneMainResourceResolver::Instance()-> + ResolveResourceID( aResourceId ) ); + } + } + else + { + globalNoteParam.SetTextResourceId( + CPhoneMainResourceResolver::Instance()-> + ResolveResourceID( aResourceId ) ); + } globalNoteParam.SetTone( EAvkonSIDInformationTone ); iViewCommandHandle->ExecuteCommandL( @@ -143,9 +169,32 @@ TPhoneCmdParamGlobalNote globalNoteParam; globalNoteParam.SetType( EAknGlobalErrorNote ); - globalNoteParam.SetTextResourceId( - CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( aResourceId ) ); + + if ( CPhoneCenRepProxy::Instance()-> + IsTelephonyFeatureSupported( KTelephonyLVFlagClearCodeCustomization ) ) + { + // Show varied note if clear code customization is enabled + TInt variedNote( KErrNotFound ); + //Get varied resource + variedNote = ResourceVariation(); + if ( variedNote != KErrNotFound ) + { + globalNoteParam.SetTextResourceId( variedNote ); + } + else + { + // If varied resource is not found, show original note. + globalNoteParam.SetTextResourceId( + CPhoneMainResourceResolver::Instance()-> + ResolveResourceID( aResourceId ) ); + } + } + else + { + globalNoteParam.SetTextResourceId( + CPhoneMainResourceResolver::Instance()-> + ResolveResourceID( aResourceId ) ); + } globalNoteParam.SetTone( CAknNoteDialog::EErrorTone ); iViewCommandHandle->ExecuteCommandL( @@ -176,9 +225,32 @@ TPhoneCmdParamGlobalNote globalNoteParam; globalNoteParam.SetType( EAknGlobalWarningNote ); - globalNoteParam.SetTextResourceId( - CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( aResourceId ) ); + + if ( CPhoneCenRepProxy::Instance()-> + IsTelephonyFeatureSupported( KTelephonyLVFlagClearCodeCustomization ) ) + { + // Show varied note if clear code customization is enabled + TInt variedNote( KErrNotFound ); + //Get varied resource + variedNote = ResourceVariation(); + if ( variedNote != KErrNotFound ) + { + globalNoteParam.SetTextResourceId( variedNote ); + } + else + { + // If varied resource is not found, show original note. + globalNoteParam.SetTextResourceId( + CPhoneMainResourceResolver::Instance()-> + ResolveResourceID( aResourceId ) ); + } + } + else + { + globalNoteParam.SetTextResourceId( + CPhoneMainResourceResolver::Instance()-> + ResolveResourceID( aResourceId ) ); + } globalNoteParam.SetTone( EAvkonSIDWarningTone ); iViewCommandHandle->ExecuteCommandL( @@ -209,6 +281,7 @@ __PHONELOG1( EBasic, EPhoneControl, "PhoneUIControl: CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL - aErrorInfo.iErrorCode =%d ", aErrorInfo.iErrorCode); + iCallId = aErrorInfo.iCallId; switch( aErrorInfo.iErrorCode ) { @@ -497,7 +570,7 @@ case ECCPErrorCCRecoveryOnTimerExpiry: if( IsVideoCall( aErrorInfo.iCallId ) ) { - SendGlobalInfoNoteL( EPhoneNoteCallInfoNotSupported ); + SendGlobalInfoNoteL( EPhoneNoteCallInfoCauseValue16 ); } break; @@ -567,6 +640,7 @@ aErrorInfo.iErrorCode); break; } + iCallId = KErrNotFound; } // ----------------------------------------------------------- @@ -607,4 +681,124 @@ ->CallType( aCallId )== EPECallTypeCSVoice ); } +// ----------------------------------------------------------------------------- +// CPhoneErrorMessagesHandler::ResourceVariation +// ----------------------------------------------------------------------------- +TInt CPhoneErrorMessagesHandler::ResourceVariation() const + { + TInt resource( KErrNotFound ); + + TInt callId = (KErrNotFound == iCallId) ? + iStateMachine->PhoneEngineInfo()->CallId() : + iCallId; + + //get exit code error from EngineInfo + TInt callError = iStateMachine->PhoneEngineInfo()->ProtocolError( callId ); + + switch( callError ) + { + case KErrGsmCCUnassignedNumber: + resource = R_NOTE_VAR_CAUSE_1; + break; + + case KErrGsmCCNoRouteToDestination: + resource = R_NOTE_VAR_CAUSE_3; + break; + + case KErrGsmCCOperatorDeterminedBarring: + resource = R_NOTE_VAR_CAUSE_8; + break; + + case KErrGsmCCUserBusy: + resource = R_NOTE_VAR_CAUSE_17; + break; + + case KErrGsmCCUserNotResponding: + resource = R_NOTE_VAR_CAUSE_18; + break; + + case KErrGsmCCCallRejected: + resource = R_NOTE_VAR_CAUSE_21; + break; + + case KErrGsmCCNumberChanged: + resource = R_NOTE_VAR_CAUSE_22; + break; + + case KErrGsmCCDestinationOutOfOrder: + resource = R_NOTE_VAR_CAUSE_27; + break; + + case KErrGsmCCFacilityRejected: + resource = R_NOTE_VAR_CAUSE_29; + break; + + case KErrGsmCCNetworkOutOfOrder: + resource = R_NOTE_VAR_CAUSE_38; + break; + + case KErrGsmCCTemporaryFailure: + resource = R_NOTE_VAR_CAUSE_41; + break; + + case KErrGsmCCSwitchingEquipmentCongestion: + resource = R_NOTE_VAR_CAUSE_42; + break; + + case KErrGsmCCAccessInformationDiscarded: + resource = R_NOTE_VAR_CAUSE_43; + break; + + case KErrGsmCCRequestedChannelNotAvailable: + resource = R_NOTE_VAR_CAUSE_44; + break; + + case KErrGsmCCResourceNotAvailable: + resource = R_NOTE_VAR_CAUSE_47; + break; + + case KErrGsmCCIncomingCallsBarredInCug: + resource = R_NOTE_VAR_CAUSE_55; + break; + + case KErrGsmCCBearerCapabilityNotAuthorised: + resource = R_NOTE_VAR_CAUSE_57; + break; + + case KErrGsmCCServiceNotAvailable: + resource = R_NOTE_VAR_CAUSE_63; + break; + + case KErrGsmCCBearerServiceNotImplemented: + resource = R_NOTE_VAR_CAUSE_65; + break; + + case KErrGsmCCRequestedFacilityNotImplemented: + resource = R_NOTE_VAR_CAUSE_69; + break; + + case KErrGsmCCUserNotInCug: + resource = R_NOTE_VAR_CAUSE_87; + break; + + case KErrGsmCCIncompatibleDestination: + resource = R_NOTE_VAR_CAUSE_88; + break; + + case KErrGsmCCSemanticallyIncorrectMessage: + resource = R_NOTE_VAR_CAUSE_95; + break; + + case KErrGsmCCUnspecifiedProtocolError: + resource = R_NOTE_VAR_CAUSE_111; + break; + + case KErrGsmCCUnspecifiedInterworkingError: + resource = R_NOTE_VAR_CAUSE_127; + break; + default: + break; + } + return resource; + } // End of File