16 */ |
16 */ |
17 |
17 |
18 #include <xqserviceutil.h> |
18 #include <xqserviceutil.h> |
19 #include <e32base.h> |
19 #include <e32base.h> |
20 #include <qregexp.h> |
20 #include <qregexp.h> |
|
21 #include <featmgr.h> |
|
22 #include <settingsinternalcrkeys.h> |
|
23 #include <xqsettingsmanager.h> |
21 #include "dialservicedepricated.h" |
24 #include "dialservicedepricated.h" |
22 #include "qtphonelog.h" |
25 #include "qtphonelog.h" |
23 |
26 |
|
27 // CONSTANTS |
|
28 const XQSettingsKey dialPrefixMode(XQSettingsKey::TargetCentralRepository, KCRUidTelephonySettings.iUid, KSettingsDialPrefixChangeMode); |
|
29 const XQSettingsKey dialPrefixString(XQSettingsKey::TargetCentralRepository, KCRUidTelephonySettings.iUid, KSettingsDialPrefixText); |
24 |
30 |
25 DialServiceDepricated::DialServiceDepricated(MPECallControlIF &call, MPECallSettersIF ¶meters, QObject* parent) : |
31 DialServiceDepricated::DialServiceDepricated(MPECallControlIF &call, MPECallSettersIF ¶meters, QObject* parent) : |
26 XQServiceProvider(QLatin1String("com.nokia.services.telephony"), parent), m_call (call), m_parameters (parameters) |
32 XQServiceProvider(QLatin1String("com.nokia.symbian.ICallDial"), parent), m_call (call), m_parameters (parameters) |
27 { |
33 { |
28 publishAll(); |
34 publishAll(); |
|
35 m_settingsManager = new XQSettingsManager(this); |
|
36 Q_ASSERT(m_settingsManager != 0); |
29 } |
37 } |
30 |
38 |
31 DialServiceDepricated::~DialServiceDepricated() |
39 DialServiceDepricated::~DialServiceDepricated() |
32 { |
40 { |
33 } |
41 } |
34 |
42 |
35 int DialServiceDepricated::dial(const QString& number) |
43 int DialServiceDepricated::dial(const QString& number) |
36 { |
44 { |
37 PHONE_DEBUG2("DialServiceDepricated::dial number:", number); |
45 PHONE_DEBUG2("DialServiceDepricated::dial number:", number); |
38 QString simplifiedNumber = simplified(number); |
46 QString phoneNumber = modifyPhoneNumber(number); |
39 TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16())); |
47 TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(phoneNumber.utf16())); |
40 m_parameters.SetPhoneNumber (numberPtr); |
48 m_parameters.SetPhoneNumber (numberPtr); |
41 m_parameters.SetCallTypeCommand (EPECallTypeCSVoice); |
49 m_parameters.SetCallTypeCommand (EPECallTypeCSVoice); |
42 return m_call.HandleDialServiceCall (); |
50 return m_call.HandleDialServiceCall (); |
43 } |
51 } |
44 |
52 |
45 int DialServiceDepricated::dial(const QString& number, int contactId) |
53 int DialServiceDepricated::dial(const QString& number, int contactId) |
46 { |
54 { |
47 PHONE_DEBUG4("DialServiceDepricated::dial number:", number, "contactId:", contactId); |
55 PHONE_DEBUG4("DialServiceDepricated::dial number:", number, "contactId:", contactId); |
48 QString simplifiedNumber = simplified(number); |
56 QString phoneNumber = modifyPhoneNumber(number); |
49 TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16())); |
57 TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(phoneNumber.utf16())); |
50 m_parameters.SetPhoneNumber (numberPtr); |
58 m_parameters.SetPhoneNumber (numberPtr); |
51 m_parameters.SetCallTypeCommand (EPECallTypeCSVoice); |
59 m_parameters.SetCallTypeCommand (EPECallTypeCSVoice); |
52 m_parameters.SetContactId2 (contactId); |
60 m_parameters.SetContactId2 (contactId); |
53 return m_call.HandleDialServiceCall (); |
61 return m_call.HandleDialServiceCall (); |
54 } |
62 } |
55 |
63 |
56 void DialServiceDepricated::dialVideo(const QString& number) |
64 void DialServiceDepricated::dialVideo(const QString& number) |
57 { |
65 { |
58 PHONE_DEBUG2("DialServiceDepricated::dialVideo number:", number); |
66 PHONE_DEBUG2("DialServiceDepricated::dialVideo number:", number); |
59 QString simplifiedNumber = simplified(number); |
67 QString phoneNumber = modifyPhoneNumber(number); |
60 TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(simplifiedNumber.utf16())); |
68 TPtrC16 numberPtr(reinterpret_cast<const TUint16*>(phoneNumber.utf16())); |
61 m_parameters.SetPhoneNumber (numberPtr); |
69 m_parameters.SetPhoneNumber (numberPtr); |
62 m_parameters.SetCallTypeCommand (EPECallTypeVideo); |
70 m_parameters.SetCallTypeCommand (EPECallTypeVideo); |
63 m_call.HandleDialServiceCall (); |
71 m_call.HandleDialServiceCall (); |
64 } |
72 } |
65 |
73 |
66 void DialServiceDepricated::dialVideo(const QString& number, int contactId) |
74 void DialServiceDepricated::dialVideo(const QString& number, int contactId) |
67 { |
75 { |
68 PHONE_DEBUG4("DialServiceDepricated::dialVideo number:", number, "contactId:", contactId); |
76 PHONE_DEBUG4("DialServiceDepricated::dialVideo number:", number, "contactId:", contactId); |
69 QString simplifiedNumber = simplified(number); |
77 QString phoneNumber = modifyPhoneNumber(number); |
70 TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(simplifiedNumber.utf16())); |
78 TPtrC16 numberPtr (reinterpret_cast<const TUint16*>(phoneNumber.utf16())); |
71 m_parameters.SetPhoneNumber (numberPtr); |
79 m_parameters.SetPhoneNumber (numberPtr); |
72 m_parameters.SetCallTypeCommand (EPECallTypeVideo); |
80 m_parameters.SetCallTypeCommand (EPECallTypeVideo); |
73 m_parameters.SetContactId2 (contactId); |
81 m_parameters.SetContactId2 (contactId); |
74 m_call.HandleDialServiceCall (); |
82 m_call.HandleDialServiceCall (); |
75 } |
83 } |
115 m_parameters.SetServiceIdCommand(serviceId); |
123 m_parameters.SetServiceIdCommand(serviceId); |
116 m_parameters.SetContactId2(contactId); |
124 m_parameters.SetContactId2(contactId); |
117 m_call.HandleDialServiceCall(); |
125 m_call.HandleDialServiceCall(); |
118 } |
126 } |
119 |
127 |
|
128 QString DialServiceDepricated::modifyPhoneNumber(const QString &number) |
|
129 { |
|
130 PHONE_DEBUG2("DialService::modifyPhoneNumber number:", number); |
|
131 QString modifiedNumber = simplified(number); |
|
132 modifiedNumber = japanPrefixModifications(modifiedNumber); |
|
133 |
|
134 return modifiedNumber; |
|
135 } |
|
136 |
120 QString DialServiceDepricated::simplified(const QString &number) |
137 QString DialServiceDepricated::simplified(const QString &number) |
121 { |
138 { |
122 QString simplifiedNumber = number; |
139 QString simplifiedNumber = number; |
123 QRegExp rx(QString("[\\s,.\\[\\]\\(\\)\\-]")); |
140 QRegExp rx(QString("[\\s,.\\[\\]\\(\\)\\-]")); |
124 simplifiedNumber.remove(rx); |
141 simplifiedNumber.remove(rx); |
125 return simplifiedNumber; |
142 return simplifiedNumber; |
126 } |
143 } |
|
144 |
|
145 QString DialServiceDepricated::japanPrefixModifications(const QString &number) |
|
146 { |
|
147 PHONE_DEBUG2("DialService::japanPrefixModifications number:", number); |
|
148 bool checkPrefix = FeatureManager::FeatureSupported(KFeatureIdJapanPrefixChange); |
|
149 if(checkPrefix == false) { |
|
150 // prefix change setting is off so don't play with the number |
|
151 return number; |
|
152 } |
|
153 |
|
154 QString modifiedNumber = number; |
|
155 |
|
156 int prefixMode = m_settingsManager->readItemValue(dialPrefixMode, XQSettingsManager::TypeInt).toInt(); |
|
157 PHONE_DEBUG2("DialService::japanPrefixModifications prefixMode:", prefixMode); |
|
158 |
|
159 if((m_settingsManager->error() == XQSettingsManager::NoError) && (prefixMode > 0)) { |
|
160 // No error fetching value and setting is on |
|
161 QString prefixString = m_settingsManager->readItemValue(dialPrefixString, XQSettingsManager::TypeString).toString(); |
|
162 PHONE_DEBUG2("DialService::japanPrefixModifications prefixString:", prefixString); |
|
163 |
|
164 if(m_settingsManager->error() == XQSettingsManager::NoError) { |
|
165 if(modifiedNumber.startsWith("+")) { |
|
166 modifiedNumber = modifiedNumber.remove(0, 1); |
|
167 modifiedNumber = modifiedNumber.insert(0, prefixString); |
|
168 } |
|
169 } |
|
170 } |
|
171 |
|
172 PHONE_DEBUG2("DialService::japanPrefixModifications modifiedNumber:", modifiedNumber); |
|
173 return modifiedNumber; |
|
174 } |