phoneapp/phoneuiview/src/cphonedialercontroller.cpp
branchRCL_3
changeset 25 91c2fb4b78df
parent 17 38529f706030
child 31 ba54057fe027
--- a/phoneapp/phoneuiview/src/cphonedialercontroller.cpp	Wed Apr 14 15:56:42 2010 +0300
+++ b/phoneapp/phoneuiview/src/cphonedialercontroller.cpp	Tue Apr 27 16:37:10 2010 +0300
@@ -26,6 +26,7 @@
 #include <phoneui.rsg>
 #include <phoneui.mbg>
 #include <pevirtualengine.h>
+#include <featmgr.h>
 #include <data_caging_path_literals.hrh>
 
 #include "cphonedialercontroller.h"
@@ -49,54 +50,76 @@
     };
 static const CPhoneDialerController::TLocalButtonData KCallButtonDataTable[] =
     {
-        { EPhoneNumberAcqCmdSendCommand, 
-          EAknsMinorGenericQgnIndiButtonAnswerWhite,
-          EMbmPhoneuiQgn_indi_button_answer_white, 
-          EMbmPhoneuiQgn_indi_button_answer_white_mask,
-          R_PHONEUI_DIALER_TOOLTIP_CALL
+        { 
+        EPhoneNumberAcqCmdSendCommand, 
+        EAknsMinorGenericQgnIndiButtonAnswerWhite,
+        EMbmPhoneuiQgn_indi_button_answer_white, 
+        EMbmPhoneuiQgn_indi_button_answer_white_mask,
+        R_PHONEUI_DIALER_TOOLTIP_CALL
         },
-        { EPhoneDialerCmdLog,
-          EAknsMinorGenericQgnIndiButtonLogdialerWhite,
-          EMbmPhoneuiQgn_indi_button_logdialer_white,
-          EMbmPhoneuiQgn_indi_button_logdialer_white_mask,
-          R_PHONEUI_DIALER_TOOLTIP_RECENT_CALLS
+        { 
+        EPhoneDialerCmdLog,
+        EAknsMinorGenericQgnIndiButtonLogdialerWhite,
+        EMbmPhoneuiQgn_indi_button_logdialer_white,
+        EMbmPhoneuiQgn_indi_button_logdialer_white_mask,
+        R_PHONEUI_DIALER_TOOLTIP_RECENT_CALLS
         },
-        { EPhoneNumberAcqCmdSendCommand, 
-          EAknsMinorGenericQgnIndiButtonAnswerWhite,
-          EMbmPhoneuiQgn_indi_button_answer_white, 
-          EMbmPhoneuiQgn_indi_button_answer_white_mask,
-          R_PHONEUI_DIALER_TOOLTIP_SEND
+        { 
+        EPhoneNumberAcqCmdSendCommand, 
+        EAknsMinorGenericQgnIndiButtonAnswerWhite,
+        EMbmPhoneuiQgn_indi_button_answer_white, 
+        EMbmPhoneuiQgn_indi_button_answer_white_mask,
+        R_PHONEUI_DIALER_TOOLTIP_SEND
         }
     };
 static const TInt KCallButtonDataTableCount = 
     sizeof( KCallButtonDataTable ) / sizeof( CPhoneDialerController::TLocalButtonData );
 
-
 /** States for Phonebook button */
 enum TPhonebookButtonState
     {
     EPhonebookButtonContactsState = 0,
-    EPhonebookButtonAddContactState
+    EPhonebookButtonAddContactState,
+    // Video call button send state
+    EPhonebookButtonVideocallSendState,
+    // Video call button call state
+    EPhonebookButtonVideocallState
     };
 static const CPhoneDialerController::TLocalButtonData KPhonebookButtonDataTable[] =
     {
-        { EPhoneDialerCmdContacts,
-          EAknsMinorGenericQgnIndiDialerContacts,
-          EMbmPhoneuiQgn_indi_dialer_contacts,
-          EMbmPhoneuiQgn_indi_dialer_contacts_mask,
-          R_PHONEUI_DIALER_TOOLTIP_CONTACTS
+        { 
+        EPhoneDialerCmdContacts,
+        EAknsMinorGenericQgnIndiDialerContacts,
+        EMbmPhoneuiQgn_indi_dialer_contacts,
+        EMbmPhoneuiQgn_indi_dialer_contacts_mask,
+        R_PHONEUI_DIALER_TOOLTIP_CONTACTS
+        },
+        { 
+        EPhoneNumberAcqCmdAddToContacts,
+        EAknsMinorGenericQgnIndiDialerAddContacts,      
+        EMbmPhoneuiQgn_indi_dialer_add_contacts,
+        EMbmPhoneuiQgn_indi_dialer_add_contacts_mask,
+        R_PHONEUI_DIALER_TOOLTIP_ADD_TO_CONTACTS
         },
-        { EPhoneNumberAcqCmdAddToContacts,
-          EAknsMinorGenericQgnIndiDialerAddContacts,      
-          EMbmPhoneuiQgn_indi_dialer_add_contacts,
-          EMbmPhoneuiQgn_indi_dialer_add_contacts_mask,
-          R_PHONEUI_DIALER_TOOLTIP_ADD_TO_CONTACTS
+        // Video call button 
+        {
+        EPhoneNumberAcqCmdVideoCall,
+        EAknsMinorGenericQgnIndiDialerVideocallSend,
+        EMbmPhoneuiQgn_indi_dialer_videocall_send,
+        EMbmPhoneuiQgn_indi_dialer_videocall_send_mask,
+        R_PHONEUI_DIALER_TOOLTIP_SEND
+        },
+        {
+        EPhoneNumberAcqCmdVideoCall,
+        EAknsMinorGenericQgnIndiDialerVideocallSend,
+        EMbmPhoneuiQgn_indi_dialer_videocall_send,
+        EMbmPhoneuiQgn_indi_dialer_videocall_send_mask,
+        R_PHONEUI_DIALER_TOOLTIP_VIDEO_CALL
         }
     };
 static const TInt KPhonebookButtonDataTableCount = 
     sizeof( KPhonebookButtonDataTable ) / sizeof( CPhoneDialerController::TLocalButtonData );
 
-
 /** States for Clear button */
 enum TClearButtonState
     {
@@ -104,11 +127,12 @@
     };
 static const CPhoneDialerController::TLocalButtonData KClearButtonDataTable[] =
     {
-        { EPhoneDialerCmdClear,
-          EAknsMinorGenericQgnIndiDialerClear,
-          EMbmPhoneuiQgn_indi_dialer_clear,
-          EMbmPhoneuiQgn_indi_dialer_clear_mask,
-          R_PHONEUI_DIALER_TOOLTIP_CLEAR
+        { 
+        EPhoneDialerCmdClear,
+        EAknsMinorGenericQgnIndiDialerClear,
+        EMbmPhoneuiQgn_indi_dialer_clear,
+        EMbmPhoneuiQgn_indi_dialer_clear_mask,
+        R_PHONEUI_DIALER_TOOLTIP_CLEAR
         }
     };
 static const TInt KClearButtonDataTableCount = 
@@ -331,6 +355,17 @@
                 {
                 state = EPhonebookButtonContactsState;
                 }
+            else if ( FeatureManager::FeatureSupported( KFeatureIdFfTdScdmaVideocallKey ) )
+                {
+                if ( iServiceCodeFlag && !EasyDialingFocused() )
+                    {
+                    state = EPhonebookButtonVideocallSendState;
+                    }
+                else
+                    {
+                    state = EPhonebookButtonVideocallState;
+                    }
+                }
             else
                 {
                 state = EPhonebookButtonAddContactState;
@@ -379,10 +414,21 @@
         	break;
             
         case EPhonebookButton:
+            {
             dimmed = iRestrictedDialer;
+            // Check if video call button supported
+            TBool videoCallKeySupported = FeatureManager::FeatureSupported( KFeatureIdFfTdScdmaVideocallKey );
+            // Prevent video call but don't prevent opening Contacts during emergency call.
+            if ( !dimmed && videoCallKeySupported && iNumberAvailable )
+                {
+                dimmed = EmergencyCallActive();
+                }
+            }
             break;
         case EClearButton:
+            {
             dimmed = !iNumberAvailable;
+            }
             break;
         default:
             break;
@@ -411,7 +457,7 @@
         TPhoneCmdParamCallStateData callStateData;
         callStateData.SetCallState( EPEStateConnected );
         iBubbleWrapper->GetCallIdByState( &callStateData );
-        TInt connected = callStateData.CallId();    
+        TInt connected = callStateData.CallId();
         ret = ( connected == KEmergencyCallId );
         }
     return ret;