Revision: 201033 RCL_3 PDK_3.0.3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 14 Sep 2010 22:26:11 +0300
branchRCL_3
changeset 21 0a6dd2dc9970
parent 20 987c9837762f
Revision: 201033 Kit: 201035
convergedcallengine/csplugin/src/cspcall.cpp
phoneclientserver/CallUI/Inc/CaUiPlugin/CaUiPlugin.h
phoneclientserver/CallUI/Src/CaUiPlugin/CaUiPlugin.cpp
phoneclientserver/phoneserver/Group/bld.inf
phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.h
phoneclientserver/phoneserver/Inc/Ussd/CUssdExtensionInterface.inl
phonecmdhandler/phonecmdhnlr/src/PhoneHandlerRedial.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.
--- 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;
 			}