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 |