phoneapp/phoneuiqtviewadapter/src/phoneuicommandcontroller.cpp
changeset 65 2a5d4ab426d3
parent 50 377c906a8701
child 74 d1c62c765e48
equal deleted inserted replaced
60:1eef62f5c541 65:2a5d4ab426d3
    15 */
    15 */
    16 
    16 
    17 #include "phoneuicommandcontroller.h"
    17 #include "phoneuicommandcontroller.h"
    18 #include "phoneresourceadapter.h"
    18 #include "phoneresourceadapter.h"
    19 #include "phoneuiqtbuttonscontroller.h"
    19 #include "phoneuiqtbuttonscontroller.h"
       
    20 #include "phoneconstants.h"
    20 #include "qtphonelog.h"
    21 #include "qtphonelog.h"
    21 #include <hbaction.h>
    22 #include <hbaction.h>
    22 #include <spsettings.h>
    23 #include <spsettings.h>
    23 #include <spentry.h>
    24 #include <spentry.h>
    24 #include <spproperty.h>
    25 #include <spproperty.h>
   179         QMap<int,int> callStates, QMap<int,int> serviceIds ) const
   180         QMap<int,int> callStates, QMap<int,int> serviceIds ) const
   180 {
   181 {
   181     PHONE_DEBUG("PhoneMenuController::menuCommands");
   182     PHONE_DEBUG("PhoneMenuController::menuCommands");
   182     QList<int> commands;
   183     QList<int> commands;
   183     bool sameServices = areServicesSame(callStates,serviceIds);
   184     bool sameServices = areServicesSame(callStates,serviceIds);
   184 
   185     bool isEmergencyCall = emergencyCall(callStates);
   185     switch(callStates.values().count()) {
   186     
   186     case 1: {
   187     // No menu items if an emergency call ongoing.
   187         // No logical string for switch to video option	
   188     if (false == isEmergencyCall) {
   188         /*if (callStates.values().contains(EPEStateConnected)) {
   189         switch(callStates.values().count()) {
   189             commands.append(PhoneInCallCmdSwitchToVideo);
   190         case 1: {
   190         }*/
   191             // No logical string for switch to video option	
   191     }
   192             /*if (callStates.values().contains(EPEStateConnected)) {
   192     break;
   193                 commands.append(PhoneInCallCmdSwitchToVideo);
   193     case 2: {
   194             }*/
   194         if (!callStates.values().contains(EPEStateRinging) &&
   195         }
   195             !callStates.values().contains(EPEStateDisconnecting) &&
   196         break;
   196             !callStates.values().contains(EPEStateDialing)) {
   197         case 2: {
   197             commands.append(PhoneInCallCmdEndAllCalls);
   198             if (!callStates.values().contains(EPEStateRinging) &&
   198         }
   199                 !callStates.values().contains(EPEStateDisconnecting) &&
   199         if (callStates.values().contains(EPEStateConnected) &&
   200                 !callStates.values().contains(EPEStateDialing)) {
   200             callStates.values().contains(EPEStateHeld)) {
   201                 commands.append(PhoneInCallCmdEndAllCalls);
   201             if (sameServices) {
       
   202                 commands.append(PhoneInCallCmdTransfer);
       
   203             }
   202             }
   204         }
   203             if ((callStates.values().contains(EPEStateConnected) &&
   205     }
   204                  callStates.values().contains(EPEStateHeld)) ||
   206     break;
   205                 (callStates.values().contains(EPEStateConnecting) &&
   207     case 3: {
   206                  callStates.values().contains(EPEStateHeld))) {
   208         commands.append(PhoneInCallCmdEndAllCalls);    
   207                 if (sameServices) {
   209     }
   208                     commands.append(PhoneInCallCmdTransfer);
   210     break;
   209                 }
   211     default:
   210             }
       
   211         }
   212         break;
   212         break;
       
   213         case 3: {
       
   214             commands.append(PhoneInCallCmdEndAllCalls);    
       
   215         }
       
   216         break;
       
   217         default:
       
   218             break;
       
   219         }
   213     }
   220     }
   214     
   221     
   215     return commands;
   222     return commands;
   216 }
   223 }
   217 
   224 
   715     break;
   722     break;
   716     }
   723     }
   717             
   724             
   718     return action;
   725     return action;
   719 }
   726 }
       
   727 
       
   728 bool PhoneUiCommandController::emergencyCall(QMap<int,int> callStates) const
       
   729 {   
       
   730     return callStates.keys().contains(KEmergencyCallId);
       
   731 }
       
   732