--- 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.
--- 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
--- 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 <CallUI.rsg>
#include <featmgr.h> // FeatureManager.
+#include <eikon.hrh> //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 )
--- 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
--- 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<ecom\ecom.h>
-#include<etelmm.h>
-#include<ussdinterfaceconstants.hrh>
+#include <ecom/ecom.h>
+#include <etelmm.h>
+#include <ussdinterfaceconstants.hrh>
// FORWARD DECLARATIONS
// CONSTANTS
--- 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 <e32def.h>
-#include <ecom\ecom.h>
+#include <ecom/ecom.h>
// ---------------------------------------------------------------------------
// CUssdExtensionInterface::NewL
--- 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;
}