author | hgs |
Fri, 15 Oct 2010 12:58:46 +0300 | |
changeset 78 | baacf668fe89 |
parent 76 | cfea66083b62 |
permissions | -rw-r--r-- |
37 | 1 |
/*! |
2 |
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
|
3 |
* All rights reserved. |
|
4 |
* This component and the accompanying materials are made available |
|
5 |
* under the terms of "Eclipse Public License v1.0" |
|
6 |
* which accompanies this distribution, and is available |
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 |
* |
|
9 |
* Initial Contributors: |
|
10 |
* Nokia Corporation - initial contribution. |
|
11 |
* |
|
12 |
* Contributors: |
|
13 |
* |
|
14 |
* Description: Handles phone ui commands. |
|
15 |
*/ |
|
16 |
||
17 |
#include "phoneuicommandcontroller.h" |
|
18 |
#include "phoneresourceadapter.h" |
|
19 |
#include "phoneuiqtbuttonscontroller.h" |
|
65 | 20 |
#include "phoneconstants.h" |
37 | 21 |
#include "qtphonelog.h" |
22 |
#include <hbaction.h> |
|
23 |
#include <spsettings.h> |
|
24 |
#include <spentry.h> |
|
25 |
#include <spproperty.h> |
|
26 |
#include <xqphoneappcommands.h> |
|
27 |
#include <phoneappcommands.hrh> |
|
28 |
#include <phoneappvoipcommands.hrh> |
|
29 |
#include <pevirtualengine.h> |
|
30 |
#include <xqteluicommandextension.h> |
|
31 |
||
32 |
||
33 |
PhoneUiCommandController::PhoneUiCommandController( |
|
34 |
PhoneUIQtViewIF &view, QObject *parent) |
|
35 |
: QObject (parent), m_view(view), m_lastCommandExtension(0) |
|
36 |
{ |
|
37 |
PHONE_DEBUG("PhoneMenuController::PhoneMenuController"); |
|
38 |
} |
|
39 |
||
40 |
PhoneUiCommandController::~PhoneUiCommandController() |
|
41 |
{ |
|
42 |
PHONE_DEBUG("PhoneMenuController::~PhoneMenuController"); |
|
43 |
for (int i=0;i<m_commandExtensions.count();++i) { |
|
44 |
m_commandExtensions.at(i)->release(); |
|
45 |
} |
|
46 |
} |
|
47 |
||
48 |
void PhoneUiCommandController::setCallMenuActions( |
|
49 |
QMap<int,int> callStates, QMap<int,int> serviceIds, |
|
50 |
int serviceId, int expandedCallId ) |
|
51 |
{ |
|
76 | 52 |
PHONE_TRACE |
37 | 53 |
releaseMenu(); |
54 |
||
55 |
PhoneCommandExtensionWrapper *extension = commandExtension(serviceId); |
|
56 |
QList<int> menuCmdList = menuCommands(callStates, serviceIds); |
|
57 |
||
58 |
if (extension) { |
|
59 |
QList<XQTelUiCommandExtension::CallInfo> callInfo; |
|
60 |
extension->getCallInfoList( |
|
61 |
callInfo,callStates,serviceIds,expandedCallId); |
|
62 |
||
63 |
//Modify command list by extension |
|
64 |
extension->modifyMenuCommandList(callInfo,menuCmdList); |
|
65 |
addMenuItems(menuCmdList); |
|
66 |
||
67 |
extension->addMenuActions(callInfo,m_customMenuActions); |
|
68 |
for (int i=0;i<m_customMenuActions.count();++i) { |
|
69 |
m_view.menuReference().addAction(m_customMenuActions.at(i)); |
|
70 |
} |
|
71 |
} else { |
|
72 |
addMenuItems(menuCmdList); |
|
73 |
} |
|
74 |
||
75 |
||
76 |
} |
|
77 |
||
78 |
void PhoneUiCommandController::setDialpadMenuActions() |
|
79 |
{ |
|
80 |
PHONE_DEBUG("PhoneMenuController::setDialpadMenuActions"); |
|
81 |
releaseMenu(); |
|
78 | 82 |
QList<HbAction *> values; |
37 | 83 |
m_view.setMenuActions(values); |
84 |
} |
|
85 |
||
78 | 86 |
QList<HbAction *> PhoneUiCommandController::pushButtonActionsForCall( |
37 | 87 |
int callState, |
88 |
bool emergencyCall, |
|
89 |
QMap<int,int> callStates, |
|
90 |
QMap<int,int> serviceIds, |
|
91 |
int serviceId, |
|
92 |
int callId) |
|
93 |
{ |
|
76 | 94 |
PHONE_TRACE |
78 | 95 |
QList<HbAction *> translatedActions; |
37 | 96 |
QList<int> commands = buttonCommandList( |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
97 |
callState, emergencyCall, callStates.values()); |
37 | 98 |
|
99 |
PhoneCommandExtensionWrapper *extension = commandExtension(serviceId); |
|
100 |
||
101 |
if (extension) { |
|
102 |
QList<XQTelUiCommandExtension::CallInfo> callInfo; |
|
103 |
extension->getCallInfoList( |
|
104 |
callInfo,callStates,serviceIds,callId); |
|
105 |
||
106 |
//Modify command list by extension |
|
107 |
extension->modifyPushButtonCommandList(callInfo,commands); |
|
108 |
} |
|
109 |
||
110 |
if (1 == commands.count()) { |
|
78 | 111 |
HbAction *action = createAction(commands.at(0)); |
37 | 112 |
if (action) { |
78 | 113 |
translatedActions.append(action); |
37 | 114 |
} |
115 |
} else if (1 < commands.count()){ |
|
78 | 116 |
HbAction *action = createAction(commands.at(0)); |
117 |
HbAction *action2 = createAction(commands.at(1)); |
|
37 | 118 |
if (action) { |
78 | 119 |
translatedActions.append(action); |
37 | 120 |
} |
121 |
if (action2) { |
|
78 | 122 |
translatedActions.append(action2); |
37 | 123 |
} |
124 |
} |
|
125 |
||
126 |
return translatedActions; |
|
127 |
} |
|
128 |
||
78 | 129 |
QList<HbAction *> PhoneUiCommandController::toolBarActions( |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
130 |
int resourceId, |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
131 |
QMap<int,int> callStates, |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
132 |
QMap<int,int> serviceIds, |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
133 |
int serviceId, |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
134 |
int callId) |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
135 |
{ |
76 | 136 |
PHONE_TRACE |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
137 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
138 |
//Set tool bar button flags |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
139 |
setJoinFlag(callStates, serviceIds); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
140 |
setConferenceFlag(callStates.values()); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
141 |
setHoldFlag(callStates.value(callId)); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
142 |
setMultiCallFlag(callStates.values()); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
143 |
setOutgoingFlag(callStates.values()); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
144 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
145 |
//Get tool bar item list by resource id. |
78 | 146 |
QList<XQTelUiCommandExtension::ToolBarCommand> toolBarCmdList = |
147 |
PhoneResourceAdapter::Instance()->convertToToolBarCommandList(resourceId); |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
148 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
149 |
if (serviceId != -1) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
150 |
PhoneCommandExtensionWrapper *extension = commandExtension(serviceId); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
151 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
152 |
if (extension) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
153 |
QList<XQTelUiCommandExtension::CallInfo> callInfo; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
154 |
extension->getCallInfoList( |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
155 |
callInfo,callStates,serviceIds,callId); |
78 | 156 |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
157 |
//Modify tool bar command list by extension |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
158 |
extension->modifyToolBarCommandList(callInfo,toolBarCmdList); |
78 | 159 |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
160 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
161 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
162 |
|
78 | 163 |
QList<HbAction *> actions; |
164 |
for ( int i=0; i < toolBarCmdList.count(); ++i) { |
|
165 |
HbAction *action = createAction( |
|
166 |
toolBarCmdList[i].mCommandId, |
|
167 |
toolBarCmdList[i].mIsEnabled); |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
168 |
if (action) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
169 |
actions.append(action); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
170 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
171 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
172 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
173 |
return actions; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
174 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
175 |
|
37 | 176 |
QList<int> PhoneUiCommandController::menuCommands( |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
177 |
QMap<int,int> callStates, QMap<int,int> serviceIds ) const |
37 | 178 |
{ |
76 | 179 |
PHONE_TRACE |
37 | 180 |
QList<int> commands; |
181 |
bool sameServices = areServicesSame(callStates,serviceIds); |
|
65 | 182 |
bool isEmergencyCall = emergencyCall(callStates); |
183 |
||
184 |
// No menu items if an emergency call ongoing. |
|
185 |
if (false == isEmergencyCall) { |
|
186 |
switch(callStates.values().count()) { |
|
74 | 187 |
case 1: { |
37 | 188 |
} |
65 | 189 |
break; |
190 |
case 2: { |
|
191 |
if (!callStates.values().contains(EPEStateRinging) && |
|
192 |
!callStates.values().contains(EPEStateDisconnecting) && |
|
193 |
!callStates.values().contains(EPEStateDialing)) { |
|
194 |
commands.append(PhoneInCallCmdEndAllCalls); |
|
195 |
} |
|
196 |
if ((callStates.values().contains(EPEStateConnected) && |
|
197 |
callStates.values().contains(EPEStateHeld)) || |
|
198 |
(callStates.values().contains(EPEStateConnecting) && |
|
199 |
callStates.values().contains(EPEStateHeld))) { |
|
200 |
if (sameServices) { |
|
201 |
commands.append(PhoneInCallCmdTransfer); |
|
202 |
} |
|
37 | 203 |
} |
204 |
} |
|
205 |
break; |
|
65 | 206 |
case 3: { |
74 | 207 |
commands.append(PhoneInCallCmdEndAllCalls); |
208 |
||
209 |
if (callStates.values().contains(EPEStateConnected) && |
|
210 |
callStates.values().contains(EPEStateHeld) && |
|
211 |
callStates.values().contains(EPEStateRinging)) { |
|
212 |
if (sameServices) { |
|
213 |
commands.append(PhoneInCallCmdTransfer); |
|
214 |
} |
|
215 |
} |
|
65 | 216 |
} |
217 |
break; |
|
218 |
default: |
|
219 |
break; |
|
220 |
} |
|
37 | 221 |
} |
222 |
||
223 |
return commands; |
|
224 |
} |
|
225 |
||
226 |
void PhoneUiCommandController::addMenuItems(QList<int> menuCmdList) |
|
227 |
{ |
|
78 | 228 |
QList<HbAction *> values; |
37 | 229 |
|
230 |
for (int i=0;i<menuCmdList.count();++i) { |
|
231 |
int command = mapCommand(menuCmdList.at(i)); |
|
232 |
if (-1 != command) { |
|
78 | 233 |
QScopedPointer<HbAction> action(new HbAction()); |
234 |
action->setProperty("command", command); |
|
235 |
action->setText( |
|
37 | 236 |
PhoneResourceAdapter::Instance()-> |
237 |
convertCommandToString(command)); |
|
238 |
||
78 | 239 |
values.append(action.take()); |
37 | 240 |
} |
241 |
} |
|
242 |
||
243 |
m_view.setMenuActions(values); |
|
244 |
} |
|
245 |
||
78 | 246 |
int PhoneUiCommandController::mapCommand(int extensionCommand) const |
37 | 247 |
{ |
248 |
int ret(-1); |
|
249 |
||
78 | 250 |
switch(extensionCommand) { |
37 | 251 |
case PhoneInCallCmdEndAllCalls: |
252 |
ret = EPhoneInCallCmdEndAllCalls; |
|
253 |
break; |
|
254 |
case PhoneInCallCmdTransfer: |
|
255 |
ret = EPhoneInCallCmdTransfer; |
|
74 | 256 |
break; |
37 | 257 |
case PhoneInCallCmdHandoverToWlan: |
258 |
ret = EPhoneCmdHandoverToWlan; |
|
259 |
break; |
|
260 |
case PhoneInCallCmdHandoverToGsm: |
|
261 |
ret = EPhoneCmdHandoverToGsm; |
|
262 |
break; |
|
263 |
default: |
|
264 |
break; |
|
265 |
} |
|
266 |
||
267 |
return ret; |
|
268 |
} |
|
269 |
||
270 |
PhoneCommandExtensionWrapper *PhoneUiCommandController::commandExtension( |
|
271 |
int serviceId) |
|
272 |
{ |
|
273 |
PhoneCommandExtensionWrapper *extension = 0; |
|
274 |
TRAP_IGNORE( extension = CommandExtensionL(serviceId) ); |
|
275 |
return extension; |
|
276 |
} |
|
277 |
||
278 |
TUid PhoneUiCommandController::ResolveImplementationUidL( |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
279 |
TUint32 aServiceId, TServicePropertyName aPropertyName ) const |
37 | 280 |
{ |
76 | 281 |
PHONE_TRACE |
37 | 282 |
TUid implUid = { 0 }; |
283 |
CSPEntry* entry = CSPEntry::NewLC(); |
|
284 |
||
285 |
CSPSettings* spSettings = CSPSettings::NewLC(); |
|
286 |
||
287 |
User::LeaveIfError( |
|
288 |
spSettings->FindEntryL( aServiceId, *entry ) ); |
|
289 |
||
290 |
CleanupStack::PopAndDestroy( spSettings ); |
|
291 |
||
292 |
const CSPProperty* property = NULL; |
|
293 |
User::LeaveIfError( entry->GetProperty( property, aPropertyName ) ); |
|
294 |
||
295 |
if ( property ) |
|
296 |
{ |
|
297 |
TInt temp(0); |
|
298 |
User::LeaveIfError( property->GetValue( temp ) ); |
|
299 |
implUid.iUid = temp; |
|
300 |
} |
|
301 |
||
302 |
CleanupStack::PopAndDestroy( entry ); |
|
303 |
return implUid; |
|
304 |
} |
|
305 |
||
306 |
PhoneCommandExtensionWrapper |
|
307 |
*PhoneUiCommandController::CommandExtensionL( TUint aServiceId ) |
|
308 |
{ |
|
76 | 309 |
PHONE_TRACE |
37 | 310 |
TUid pluginUid = ResolveImplementationUidL( aServiceId, |
311 |
EPropertyCallMenuHandlerPluginId ); |
|
312 |
||
313 |
int pluginInd(-1); |
|
314 |
PhoneCommandExtensionWrapper* wrapper = NULL; |
|
315 |
||
316 |
for (int i=0; i<m_commandExtensions.count();++i) { |
|
317 |
if (pluginUid.iUid==m_commandExtensions.at(i)->pluginUid()) { |
|
318 |
pluginInd = i; |
|
319 |
break; |
|
320 |
} |
|
321 |
} |
|
322 |
||
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
323 |
if ( -1 == pluginInd ) { |
37 | 324 |
wrapper = new PhoneCommandExtensionWrapper( pluginUid.iUid ); |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
325 |
if (wrapper) { |
37 | 326 |
m_commandExtensions.append( wrapper ); |
327 |
} |
|
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
328 |
} else { |
37 | 329 |
wrapper = m_commandExtensions[pluginInd]; |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
330 |
} |
37 | 331 |
|
332 |
m_lastCommandExtension = wrapper; |
|
333 |
return wrapper; |
|
334 |
} |
|
335 |
||
336 |
void PhoneUiCommandController::releaseMenu() |
|
337 |
{ |
|
76 | 338 |
PHONE_TRACE |
37 | 339 |
for (int i=0;i<m_customMenuActions.count();i++) { |
340 |
m_view.menuReference().removeAction(m_customMenuActions.at(i)); |
|
341 |
} |
|
342 |
m_customMenuActions.clear(); |
|
343 |
||
344 |
if (m_lastCommandExtension) { |
|
345 |
m_lastCommandExtension->releaseMenu(); |
|
346 |
m_lastCommandExtension = 0; |
|
347 |
} |
|
348 |
} |
|
349 |
||
350 |
bool PhoneUiCommandController::areServicesSame( |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
351 |
QMap<int,int> callStates, QMap<int,int> serviceIds) const |
37 | 352 |
{ |
353 |
bool ret(true); |
|
354 |
int serviceId(-1); |
|
355 |
for(int i=0;i<callStates.count()&&ret;++i) { |
|
356 |
if (-1==serviceId) { |
|
357 |
serviceId = serviceIds.value(callStates.keys().at(i)); |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
358 |
} else if (serviceId != serviceIds.value(callStates.keys().at(i))) { |
37 | 359 |
ret = false; |
360 |
} |
|
361 |
} |
|
362 |
||
363 |
return ret; |
|
364 |
} |
|
365 |
||
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
366 |
void PhoneUiCommandController::setJoinFlag( |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
367 |
QMap<int,int> callStates, QMap<int,int> serviceIds) const |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
368 |
{ |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
369 |
bool disable(PhoneResourceAdapter::Instance()->buttonsController()-> |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
370 |
getButtonFlags(PhoneUIQtButtonsController::FullConference)); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
371 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
372 |
if (!disable) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
373 |
disable = !areServicesSame(callStates, serviceIds); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
374 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
375 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
376 |
PhoneResourceAdapter::Instance()->buttonsController()-> |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
377 |
setButtonFlags(PhoneUIQtButtonsController::DisableJoin, disable); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
378 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
379 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
380 |
void PhoneUiCommandController::setHoldFlag(int callState) const |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
381 |
{ |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
382 |
bool hold = (callState == EPEStateHeldConference || |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
383 |
callState == EPEStateHeld ); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
384 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
385 |
PhoneResourceAdapter::Instance()->buttonsController()-> |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
386 |
setButtonFlags(PhoneUIQtButtonsController::Hold,hold); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
387 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
388 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
389 |
void PhoneUiCommandController::setOutgoingFlag( |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
390 |
QList<int> callStates) const |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
391 |
{ |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
392 |
bool outgoing(callStates.contains(EPEStateDialing) || |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
393 |
callStates.contains(EPEStateConnecting)); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
394 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
395 |
PhoneResourceAdapter::Instance()->buttonsController()-> |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
396 |
setButtonFlags(PhoneUIQtButtonsController::Outgoing, outgoing); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
397 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
398 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
399 |
void PhoneUiCommandController::setConferenceFlag( |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
400 |
QList<int> callStates) const |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
401 |
{ |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
402 |
bool conference(callStates.contains(EPEStateConnectedConference) || |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
403 |
callStates.contains(EPEStateHeldConference)); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
404 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
405 |
PhoneResourceAdapter::Instance()->buttonsController()-> |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
406 |
setButtonFlags(PhoneUIQtButtonsController::Conference, conference); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
407 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
408 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
409 |
void PhoneUiCommandController::setMultiCallFlag( |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
410 |
QList<int> callStates) const |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
411 |
{ |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
412 |
bool multicall(false); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
413 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
414 |
if (1<callStates.count()) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
415 |
if (callStates.count() == 2 && callStates.contains(EPEStateRinging)) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
416 |
multicall = false; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
417 |
} else { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
418 |
multicall = true; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
419 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
420 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
421 |
|
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
422 |
PhoneResourceAdapter::Instance()->buttonsController()-> |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
423 |
setButtonFlags(PhoneUIQtButtonsController::MultiCall, multicall); |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
424 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
425 |
|
37 | 426 |
QList<int> PhoneUiCommandController::buttonCommandList( |
427 |
int callState, |
|
428 |
bool emergencyCall, |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
429 |
QList<int> callStates) const |
37 | 430 |
{ |
76 | 431 |
PHONE_TRACE |
37 | 432 |
QList<int> ret; |
433 |
||
434 |
switch( callState ) { |
|
435 |
case EPEStateIdle: |
|
436 |
case EPEStateDisconnecting: |
|
437 |
case EPEStateConferenceIdle: |
|
438 |
break; |
|
439 |
||
440 |
case EPEStateDialing: |
|
441 |
case EPEStateConnecting: { |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
442 |
if (!emergencyCall) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
443 |
if (PhoneResourceAdapter::Instance()->buttonsController()-> |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
444 |
getButtonFlags( |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
445 |
PhoneUIQtButtonsController::IhfAsPushButton)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
446 |
if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags( |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
447 |
PhoneUIQtButtonsController::BluetoothAvailable)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
448 |
if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags( |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
449 |
PhoneUIQtButtonsController::Btaa)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
450 |
ret.append(PhoneInCallCmdHandset); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
451 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
452 |
ret.append(PhoneInCallCmdBtHandsfree); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
453 |
} |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
454 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
455 |
if (!PhoneResourceAdapter::Instance()->buttonsController()-> |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
456 |
getButtonFlags(PhoneUIQtButtonsController::Ihf)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
457 |
ret.append(PhoneInCallCmdActivateIhf); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
458 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
459 |
ret.append(PhoneInCallCmdDeactivateIhf); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
460 |
} |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
461 |
} |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
462 |
} else { |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
463 |
if (PhoneResourceAdapter::Instance()->buttonsController()-> |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
464 |
getButtonFlags(PhoneUIQtButtonsController::Mute)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
465 |
ret.append(PhoneInCallCmdUnmute); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
466 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
467 |
ret.append(PhoneInCallCmdMute); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
468 |
} |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
469 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
470 |
} |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
471 |
|
37 | 472 |
ret.append(PhoneInCallCmdEndOutgoingCall); |
473 |
} |
|
474 |
break; |
|
475 |
case EPEStateRinging: { |
|
476 |
if (callStates.size()<3){ |
|
477 |
ret.append(PhoneInCallCmdAnswer); |
|
478 |
ret.append(PhoneInCallCmdReject); |
|
479 |
} else { |
|
480 |
ret.append(PhoneInCallCmdReplace); |
|
481 |
} |
|
482 |
} |
|
483 |
break; |
|
484 |
||
485 |
case EPEStateConnected: |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
486 |
case EPEStateConnectedConference: |
37 | 487 |
case EPEStateHeld: |
488 |
case EPEStateHeldConference: { |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
489 |
if (!emergencyCall) { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
490 |
if (PhoneResourceAdapter::Instance()->buttonsController()-> |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
491 |
getButtonFlags( |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
492 |
PhoneUIQtButtonsController::IhfAsPushButton)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
493 |
if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags( |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
494 |
PhoneUIQtButtonsController::BluetoothAvailable)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
495 |
if (PhoneResourceAdapter::Instance()->buttonsController()->getButtonFlags( |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
496 |
PhoneUIQtButtonsController::Btaa)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
497 |
ret.append(PhoneInCallCmdHandset); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
498 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
499 |
ret.append(PhoneInCallCmdBtHandsfree); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
500 |
} |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
501 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
502 |
if (!PhoneResourceAdapter::Instance()->buttonsController()-> |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
503 |
getButtonFlags(PhoneUIQtButtonsController::Ihf)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
504 |
ret.append(PhoneInCallCmdActivateIhf); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
505 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
506 |
ret.append(PhoneInCallCmdDeactivateIhf); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
507 |
} |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
508 |
} |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
509 |
} else { |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
510 |
if (PhoneResourceAdapter::Instance()->buttonsController()-> |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
511 |
getButtonFlags(PhoneUIQtButtonsController::Mute)) { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
512 |
ret.append(PhoneInCallCmdUnmute); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
513 |
} else { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
514 |
ret.append(PhoneInCallCmdMute); |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
515 |
} |
37 | 516 |
} |
517 |
} |
|
518 |
||
519 |
ret.append(PhoneInCallCmdEndActive); |
|
520 |
} |
|
521 |
break; |
|
522 |
||
523 |
case EPEStateUnknown: |
|
524 |
break; |
|
525 |
||
526 |
default: |
|
527 |
break; |
|
528 |
} |
|
529 |
||
530 |
return ret; |
|
531 |
} |
|
532 |
||
78 | 533 |
|
534 |
||
535 |
HbAction *PhoneUiCommandController::createAction( |
|
536 |
int extensionCommand, bool enabled) const |
|
37 | 537 |
{ |
78 | 538 |
QScopedPointer<HbAction> action(new HbAction); |
539 |
action->setEnabled(enabled); |
|
37 | 540 |
|
78 | 541 |
switch (extensionCommand) { |
37 | 542 |
case PhoneInCallCmdJoinToConference: { |
543 |
action->setIcon(HbIcon("qtg_mono_join_call")); |
|
78 | 544 |
action->setProperty("command", EPhoneInCallCmdJoin); |
37 | 545 |
} |
546 |
break; |
|
547 |
||
548 |
case PhoneInCallCmdCreateConference: { |
|
549 |
action->setIcon(HbIcon("qtg_mono_join_call")); |
|
78 | 550 |
action->setProperty("command", EPhoneInCallCmdCreateConference); |
37 | 551 |
} |
552 |
break; |
|
553 |
||
554 |
case PhoneInCallCmdAnswer: { |
|
555 |
action->setIcon(HbIcon("qtg_mono_call")); |
|
78 | 556 |
action->setProperty("command", EPhoneCallComingCmdAnswer); |
557 |
action->setSoftKeyRole(QAction::PositiveSoftKey); |
|
37 | 558 |
} |
559 |
break; |
|
560 |
||
561 |
case PhoneInCallCmdReject: { |
|
562 |
action->setIcon(HbIcon("qtg_mono_reject_call")); |
|
78 | 563 |
action->setProperty("command", EPhoneCallComingCmdReject); |
564 |
action->setSoftKeyRole(QAction::NegativeSoftKey); |
|
37 | 565 |
} |
566 |
break; |
|
567 |
||
568 |
case PhoneInCallCmdHold: { |
|
569 |
action->setIcon(HbIcon("qtg_mono_hold_call")); |
|
78 | 570 |
action->setProperty("command", EPhoneInCallCmdHold); |
37 | 571 |
} |
572 |
break; |
|
573 |
||
574 |
case PhoneInCallCmdUnhold: { |
|
575 |
action->setIcon(HbIcon("qtg_mono_call")); |
|
78 | 576 |
action->setProperty("command", EPhoneInCallCmdUnhold); |
37 | 577 |
} |
578 |
break; |
|
579 |
||
580 |
case PhoneInCallCmdEndActive: { |
|
581 |
action->setIcon(HbIcon("qtg_mono_end_call")); |
|
78 | 582 |
action->setProperty("command", EPhoneInCallCmdEndThisActiveCall); |
583 |
action->setSoftKeyRole(QAction::NegativeSoftKey); |
|
37 | 584 |
} |
585 |
break; |
|
586 |
||
587 |
case PhoneInCallCmdEndOutgoingCall: { |
|
588 |
action->setIcon(HbIcon("qtg_mono_end_call")); |
|
78 | 589 |
action->setProperty("command", EPhoneInCallCmdEndThisOutgoingCall); |
590 |
action->setSoftKeyRole(QAction::NegativeSoftKey); |
|
37 | 591 |
} |
592 |
break; |
|
593 |
||
594 |
case PhoneInCallCmdReplace: { |
|
595 |
action->setIcon(HbIcon("qtg_mono_replace_call")); |
|
78 | 596 |
action->setProperty("command", EPhoneInCallCmdReplace); |
597 |
action->setSoftKeyRole(QAction::PositiveSoftKey); |
|
37 | 598 |
} |
599 |
break; |
|
600 |
||
601 |
case PhoneInCallCmdSwap: { |
|
50 | 602 |
action->setIcon(HbIcon("qtg_mono_swap_call")); |
78 | 603 |
action->setProperty("command", EPhoneInCallCmdSwap); |
37 | 604 |
} |
605 |
break; |
|
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
606 |
case PhoneCallComingCmdSoftReject: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
607 |
action->setIcon(HbIcon("qtg_mono_send")); |
78 | 608 |
action->setProperty("command", EPhoneCallComingCmdSoftReject); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
609 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
610 |
break; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
611 |
case PhoneCallComingCmdSilent: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
612 |
action->setIcon(HbIcon("qtg_mono_speaker_off")); |
78 | 613 |
action->setProperty("command", EPhoneCallComingCmdSilent); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
614 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
615 |
break; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
616 |
case PhoneInCallCmdOpenDialer: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
617 |
action->setIcon(HbIcon("qtg_mono_dialer")); |
78 | 618 |
action->setProperty("command", EPhoneInCallCmdDialer); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
619 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
620 |
break; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
621 |
case PhoneInCallCmdMute: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
622 |
action->setIcon(HbIcon("qtg_mono_mic_mute")); |
78 | 623 |
action->setProperty("command", EPhoneInCallCmdMute); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
624 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
625 |
break; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
626 |
case PhoneInCallCmdUnmute: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
627 |
action->setIcon(HbIcon("qtg_mono_mic_unmute")); |
78 | 628 |
action->setProperty("command", EPhoneInCallCmdUnmute); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
629 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
630 |
break; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
631 |
case PhoneInCallCmdActivateIhf: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
632 |
action->setIcon(HbIcon("qtg_mono_speaker")); |
78 | 633 |
action->setProperty("command", EPhoneInCallCmdActivateIhf); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
634 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
635 |
break; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
636 |
case PhoneInCallCmdDeactivateIhf: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
637 |
action->setIcon(HbIcon("qtg_mono_mobile")); |
78 | 638 |
action->setProperty("command", EPhoneInCallCmdDeactivateIhf); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
639 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
640 |
break; |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
641 |
case PhoneInCallCmdOpenContacts: { |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
642 |
action->setIcon(HbIcon("qtg_mono_contacts")); |
78 | 643 |
action->setProperty("command", EPhoneInCallCmdContacts); |
45
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
644 |
} |
6b911d05207e
Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
37
diff
changeset
|
645 |
break; |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
646 |
case PhoneInCallCmdBtHandsfree: { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
647 |
action->setIcon(HbIcon("qtg_mono_bluetooth_headset")); |
78 | 648 |
action->setProperty("command", EPhoneInCallCmdBtHandsfree); |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
649 |
} |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
650 |
break; |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
651 |
case PhoneInCallCmdHandset: { |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
652 |
action->setIcon(HbIcon("qtg_mono_mobile")); |
78 | 653 |
action->setProperty("command", EPhoneInCallCmdHandset); |
46
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
654 |
} |
bc5a64e5bc3c
Revision: 201025
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
45
diff
changeset
|
655 |
break; |
78 | 656 |
default: { |
657 |
delete action.take(); |
|
658 |
} |
|
37 | 659 |
break; |
660 |
} |
|
661 |
||
78 | 662 |
return action.take(); |
37 | 663 |
} |
65 | 664 |
|
665 |
bool PhoneUiCommandController::emergencyCall(QMap<int,int> callStates) const |
|
666 |
{ |
|
667 |
return callStates.keys().contains(KEmergencyCallId); |
|
668 |
} |
|
669 |