# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1284492371 -10800 # Node ID 0a6dd2dc997081cffe9e2e5bd1eea8cd568c58de # Parent 987c9837762f83ad3a1905f253c66afc5a8cb665 Revision: 201033 Kit: 201035 diff -r 987c9837762f -r 0a6dd2dc9970 convergedcallengine/csplugin/src/cspcall.cpp --- a/convergedcallengine/csplugin/src/cspcall.cpp Wed Sep 01 12:15:03 2010 +0100 +++ b/convergedcallengine/csplugin/src/cspcall.cpp Tue Sep 14 22:26:11 2010 +0300 @@ -1730,7 +1730,8 @@ } else if ( iDontReportTerm && ( termErr == KErrGsmCCNormalUnspecified - || termErr == KErrGsmCCCallRejected ) ) + || termErr == KErrGsmCCCallRejected + || termErr == KErrGsmCCRecoveryOnTimerExpiry ) ) { // Not an error, since this happens on normal // call termination situation after connected call. diff -r 987c9837762f -r 0a6dd2dc9970 phoneclientserver/CallUI/Inc/CaUiPlugin/CaUiPlugin.h --- a/phoneclientserver/CallUI/Inc/CaUiPlugin/CaUiPlugin.h Wed Sep 01 12:15:03 2010 +0100 +++ b/phoneclientserver/CallUI/Inc/CaUiPlugin/CaUiPlugin.h Tue Sep 14 22:26:11 2010 +0300 @@ -125,12 +125,15 @@ * @param aType The type of item being added * @param aServiceId The service ID of VoIP call item, needed when * getting the service name + * @param aHideCallSubmenu ETrue if the call submenu items should be + * in main level of the menu, otherwise EFalse */ void AddAiwMenuItemL( CAiwMenuPane& aMenuPane, TInt aIndex, EMenuItemType aType, - TServiceId aServiceId = 0 ); + TServiceId aServiceId = 0, + TBool aHideCallSubmenu = EFalse ); private: // Data diff -r 987c9837762f -r 0a6dd2dc9970 phoneclientserver/CallUI/Src/CaUiPlugin/CaUiPlugin.cpp --- a/phoneclientserver/CallUI/Src/CaUiPlugin/CaUiPlugin.cpp Wed Sep 01 12:15:03 2010 +0100 +++ b/phoneclientserver/CallUI/Src/CaUiPlugin/CaUiPlugin.cpp Tue Sep 14 22:26:11 2010 +0300 @@ -31,6 +31,9 @@ #include #include // FeatureManager. +#include //EEikMenuItemSpecific + + // CONSTANTS // Empty filename for initialization. @@ -214,6 +217,8 @@ TBool csVideoMenuItemAvailable( ETrue ); TBool voipMenuItemAvailable( ETrue ); + TBool hideCallSubmenu( EFalse ); + // If there is PhoneNumber parameter given, then only voice call // resource is wanted. TInt count = aInParamList.Count(); @@ -246,7 +251,35 @@ csVideoMenuItemAvailable = EFalse; } } - } + + index = 0; + aInParamList.FindFirst( + index, + EGenericParamHideCallSubmenu, + EVariantTypeAny ); + + if ( index >= 0 ) + { + // The call items (voice, video and VoIP) are located in the main level + // of the menu + hideCallSubmenu = ETrue; + + TInt32 variantValue = aInParamList[ index ].Value().AsTInt32(); + + if ( variantValue == EGenericParamVoiceCall ) + { + csVoiceMenuItemAvailable = EFalse; + } + else if ( variantValue == EGenericParamVideoCall ) + { + csVideoMenuItemAvailable = EFalse; + } + else if ( variantValue == EGenericParamVoIPCall ) + { + voipMenuItemAvailable = EFalse; + } + } + } if ( csVideoMenuItemAvailable && !FeatureManager::FeatureSupported( KFeatureIdCsVideoTelephony ) ) @@ -260,13 +293,13 @@ if ( csVoiceMenuItemAvailable ) { - AddAiwMenuItemL( aMenuPane, menuIndex, ECSVoice ); + AddAiwMenuItemL( aMenuPane, menuIndex, ECSVoice, 0, hideCallSubmenu ); menuIndex++; } if ( csVideoMenuItemAvailable ) { - AddAiwMenuItemL( aMenuPane, menuIndex, ECSVideo ); + AddAiwMenuItemL( aMenuPane, menuIndex, ECSVideo, 0, hideCallSubmenu ); menuIndex++; } @@ -280,13 +313,13 @@ if ( 1 == numberOfVoipServices ) { // Single VoIP service, use service name in menu item - AddAiwMenuItemL( aMenuPane, menuIndex, EInternetWithName, voipServiceIds[0] ); + AddAiwMenuItemL( aMenuPane, menuIndex, EInternetWithName, voipServiceIds[0], hideCallSubmenu ); menuIndex++; } else if ( numberOfVoipServices > 1 ) { // Regular internet call menu - AddAiwMenuItemL( aMenuPane, menuIndex, EInternet ); + AddAiwMenuItemL( aMenuPane, menuIndex, EInternet, 0, hideCallSubmenu ); menuIndex++; } @@ -383,13 +416,23 @@ // // ----------------------------------------------------------------------------- // -void CCaUiPlugin::AddAiwMenuItemL( CAiwMenuPane& aMenuPane, TInt aIndex, EMenuItemType aType, TServiceId aServiceId ) +void CCaUiPlugin::AddAiwMenuItemL( + CAiwMenuPane& aMenuPane, + TInt aIndex, + EMenuItemType aType, + TServiceId aServiceId, + TBool aHideCallSubmenu ) { CEikMenuPaneItem::SData data; data.iCascadeId = 0; data.iFlags = 0; data.iExtraText = KNullDesC(); - + + if ( aHideCallSubmenu ) + { + data.iFlags = EEikMenuItemSpecific; + } + HBufC* menuItemText = NULL; switch ( aType ) diff -r 987c9837762f -r 0a6dd2dc9970 phoneclientserver/phoneserver/Group/bld.inf --- a/phoneclientserver/phoneserver/Group/bld.inf Wed Sep 01 12:15:03 2010 +0100 +++ b/phoneclientserver/phoneserver/Group/bld.inf Tue Sep 14 22:26:11 2010 +0300 @@ -21,9 +21,9 @@ DEFAULT PRJ_EXPORTS -..\inc\ussd\ussdinterfaceconstants.hrh MW_LAYER_PLATFORM_EXPORT_PATH(ussdinterfaceconstants.hrh) -..\inc\ussd\CUssdExtensionInterface.h MW_LAYER_PLATFORM_EXPORT_PATH(CUssdExtensionInterface.h) -..\inc\ussd\CUssdExtensionInterface.inl MW_LAYER_PLATFORM_EXPORT_PATH(CUssdExtensionInterface.inl) +../inc/Ussd/ussdinterfaceconstants.hrh MW_LAYER_PLATFORM_EXPORT_PATH(ussdinterfaceconstants.hrh) +../inc/Ussd/CUssdExtensionInterface.h MW_LAYER_PLATFORM_EXPORT_PATH(CUssdExtensionInterface.h) +../inc/Ussd/CUssdExtensionInterface.inl MW_LAYER_PLATFORM_EXPORT_PATH(CUssdExtensionInterface.inl) backup_registration.xml z:/private/10000850/backup_registration.xml diff -r 987c9837762f -r 0a6dd2dc9970 phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.h --- a/phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.h Wed Sep 01 12:15:03 2010 +0100 +++ b/phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.h Tue Sep 14 22:26:11 2010 +0300 @@ -19,9 +19,9 @@ // INCLUDES -#include -#include -#include +#include +#include +#include // FORWARD DECLARATIONS // CONSTANTS diff -r 987c9837762f -r 0a6dd2dc9970 phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.inl --- a/phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.inl Wed Sep 01 12:15:03 2010 +0100 +++ b/phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.inl Tue Sep 14 22:26:11 2010 +0300 @@ -16,7 +16,7 @@ */ #include -#include +#include // --------------------------------------------------------------------------- // CUssdExtensionInterface::NewL diff -r 987c9837762f -r 0a6dd2dc9970 phonecmdhandler/phonecmdhnlr/src/PhoneHandlerRedial.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerRedial.cpp Wed Sep 01 12:15:03 2010 +0100 +++ b/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerRedial.cpp Tue Sep 14 22:26:11 2010 +0300 @@ -161,10 +161,20 @@ NextState(); const TDesC& number = iLogViewRecentPtr->Event().Number(); - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::RequestCompleted() phone number is %S", &number ); - // make a call with last dialed phone number - iCommandHandler->Atd( GetStatus(), number ); + COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::RequestCompleted() phone number is %S", &number ); + + const TDesC& remoteParty = iLogViewRecentPtr->Event().RemoteParty(); + COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::RequestCompleted() remote party is %S", &remoteParty ); + // make a call with last dialed phone number + if ( KNullDesC() != number ) + { + iCommandHandler->Atd( GetStatus(), number ); + } + else + { + iCommandHandler->Atd( GetStatus(), remoteParty ); + } Activate(); break; }