phoneapp/phoneuistates/src/cphoneerrormessageshandler.cpp
branchRCL_3
changeset 26 8baf28733c3d
parent 25 5266b1f337bd
--- 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 <telephonydomainpskeys.h>
 #include <UikonInternalPSKeys.h>
 #include <ccpdefs.h>
+#include <phoneui.rsg>
+#include <telephonyvariant.hrh>
 
 #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