--- a/phoneapp/phoneuiqtviewadapter/src/phoneuicommandcontroller.cpp Mon Aug 23 15:42:12 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/src/phoneuicommandcontroller.cpp Fri Sep 03 13:33:36 2010 +0300
@@ -17,6 +17,7 @@
#include "phoneuicommandcontroller.h"
#include "phoneresourceadapter.h"
#include "phoneuiqtbuttonscontroller.h"
+#include "phoneconstants.h"
#include "qtphonelog.h"
#include <hbaction.h>
#include <spsettings.h>
@@ -181,35 +182,41 @@
PHONE_DEBUG("PhoneMenuController::menuCommands");
QList<int> commands;
bool sameServices = areServicesSame(callStates,serviceIds);
-
- switch(callStates.values().count()) {
- case 1: {
- // No logical string for switch to video option
- /*if (callStates.values().contains(EPEStateConnected)) {
- commands.append(PhoneInCallCmdSwitchToVideo);
- }*/
- }
- break;
- case 2: {
- if (!callStates.values().contains(EPEStateRinging) &&
- !callStates.values().contains(EPEStateDisconnecting) &&
- !callStates.values().contains(EPEStateDialing)) {
- commands.append(PhoneInCallCmdEndAllCalls);
+ bool isEmergencyCall = emergencyCall(callStates);
+
+ // No menu items if an emergency call ongoing.
+ if (false == isEmergencyCall) {
+ switch(callStates.values().count()) {
+ case 1: {
+ // No logical string for switch to video option
+ /*if (callStates.values().contains(EPEStateConnected)) {
+ commands.append(PhoneInCallCmdSwitchToVideo);
+ }*/
}
- if (callStates.values().contains(EPEStateConnected) &&
- callStates.values().contains(EPEStateHeld)) {
- if (sameServices) {
- commands.append(PhoneInCallCmdTransfer);
+ break;
+ case 2: {
+ if (!callStates.values().contains(EPEStateRinging) &&
+ !callStates.values().contains(EPEStateDisconnecting) &&
+ !callStates.values().contains(EPEStateDialing)) {
+ commands.append(PhoneInCallCmdEndAllCalls);
+ }
+ if ((callStates.values().contains(EPEStateConnected) &&
+ callStates.values().contains(EPEStateHeld)) ||
+ (callStates.values().contains(EPEStateConnecting) &&
+ callStates.values().contains(EPEStateHeld))) {
+ if (sameServices) {
+ commands.append(PhoneInCallCmdTransfer);
+ }
}
}
- }
- break;
- case 3: {
- commands.append(PhoneInCallCmdEndAllCalls);
- }
- break;
- default:
break;
+ case 3: {
+ commands.append(PhoneInCallCmdEndAllCalls);
+ }
+ break;
+ default:
+ break;
+ }
}
return commands;
@@ -717,3 +724,9 @@
return action;
}
+
+bool PhoneUiCommandController::emergencyCall(QMap<int,int> callStates) const
+{
+ return callStates.keys().contains(KEmergencyCallId);
+}
+