198 |
198 |
199 DPRINT << ": OUT"; |
199 DPRINT << ": OUT"; |
200 } |
200 } |
201 |
201 |
202 /*! |
202 /*! |
203 PSetCallDivertingWrapper::getVoiceMailBoxNumber |
203 * PSetCallDivertingWrapper::getVoiceMailBoxNumber |
204 */ |
204 * @param aNumber empty if not set |
205 void PSetCallDivertingWrapper::getVoiceMailBoxNumber(QString &aVmbxNumber) |
205 * @return -1 if not supported |
|
206 */ |
|
207 int PSetCallDivertingWrapper::getVoiceMailBoxNumber( |
|
208 QString &aNumber, PsService aService) |
206 { |
209 { |
207 DPRINT << ": IN"; |
210 DPRINT << ": IN"; |
208 |
211 |
209 CVoiceMailboxEntry* psetVoiceMailboxEntry = NULL; |
212 CVoiceMailboxEntry* psetVoiceMailboxEntry = NULL; |
210 CVoiceMailbox* psetVoiceMailBoxScoped = NULL; |
213 CVoiceMailbox* psetVoiceMailBoxScoped = NULL; |
211 QT_TRAP_THROWING(psetVoiceMailBoxScoped = CVoiceMailbox::NewL()); |
214 QT_TRAP_THROWING(psetVoiceMailBoxScoped = CVoiceMailbox::NewL()); |
212 QScopedPointer<CVoiceMailbox> psetVoiceMailBox(psetVoiceMailBoxScoped); |
215 QScopedPointer<CVoiceMailbox> psetVoiceMailBox(psetVoiceMailBoxScoped); |
213 |
216 |
214 TVoiceMailboxParams psetVoiceMailboxParams; |
217 TVoiceMailboxParams psetVoiceMailboxParams; |
215 // Selected mailbox type is voice |
218 // Selected mailbox type is voice |
216 psetVoiceMailboxParams.iType = EVmbxVoice; |
219 psetVoiceMailboxParams.iType = m_Priv->convert(aService); |
217 psetVoiceMailboxEntry = 0; |
220 psetVoiceMailboxEntry = 0; |
218 TInt error = psetVoiceMailBox->GetStoredEntry( psetVoiceMailboxParams, psetVoiceMailboxEntry ); |
221 int ret = 0; |
219 if ( KErrNone == error ) { |
222 TInt error = psetVoiceMailBox->GetStoredEntry( |
|
223 psetVoiceMailboxParams, psetVoiceMailboxEntry); |
|
224 DPRINT << "error: " << error; |
|
225 if (KErrNotSupported == error) { |
|
226 ret = -1; |
|
227 } else if (KErrNone == error) { |
220 // Entry ok, check the number |
228 // Entry ok, check the number |
221 TPtrC ptrNumber( KNullDesC ); |
229 TPtrC ptrNumber(KNullDesC); |
222 if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) { |
230 if (KErrNone == psetVoiceMailboxEntry->GetVmbxNumber(ptrNumber)) { |
223 // number ok |
231 // number ok |
224 aVmbxNumber = QString::fromUtf16(ptrNumber.Ptr(), |
232 aNumber = QString::fromUtf16(ptrNumber.Ptr(), |
225 ptrNumber.Length()); |
233 ptrNumber.Length()); |
226 } |
234 } |
227 } |
235 |
228 else if ( KErrNotFound == error ) { |
236 } else { |
|
237 // illegal argument |
|
238 } |
|
239 |
|
240 delete psetVoiceMailboxEntry; // Entry ownership was transferred |
|
241 psetVoiceMailboxEntry = NULL; |
|
242 |
|
243 DPRINT << "aVmbxNumber: " << aNumber; |
|
244 DPRINT << ": OUT"; |
|
245 return ret; |
|
246 } |
|
247 |
|
248 /*! |
|
249 * PSetCallDivertingWrapper::queryVoiceMailBoxNumber |
|
250 * @param aNumber empty if not set |
|
251 * @return -1 if not supported |
|
252 */ |
|
253 int PSetCallDivertingWrapper::queryVoiceMailBoxNumber( |
|
254 QString &aNumber, PsService aService) |
|
255 { |
|
256 DPRINT << ": IN"; |
|
257 |
|
258 CVoiceMailboxEntry* psetVoiceMailboxEntry = NULL; |
|
259 CVoiceMailbox* psetVoiceMailBoxScoped = NULL; |
|
260 QT_TRAP_THROWING(psetVoiceMailBoxScoped = CVoiceMailbox::NewL()); |
|
261 QScopedPointer<CVoiceMailbox> psetVoiceMailBox(psetVoiceMailBoxScoped); |
|
262 |
|
263 TVoiceMailboxParams psetVoiceMailboxParams; |
|
264 // Selected mailbox type is voice |
|
265 psetVoiceMailboxParams.iType = m_Priv->convert(aService); |
|
266 psetVoiceMailboxEntry = 0; |
|
267 int ret = 0; |
|
268 TInt error = psetVoiceMailBox->GetStoredEntry( |
|
269 psetVoiceMailboxParams, psetVoiceMailboxEntry); |
|
270 |
|
271 if (KErrNotSupported == error) { |
|
272 ret = -1; |
|
273 } else if (KErrNone == error || KErrNotFound == error) { |
229 // No number defined, query new entry from user |
274 // No number defined, query new entry from user |
230 error = psetVoiceMailBox->QueryNewEntry( psetVoiceMailboxParams, psetVoiceMailboxEntry ); |
275 error = psetVoiceMailBox->QueryNewEntry( |
231 |
276 psetVoiceMailboxParams, psetVoiceMailboxEntry); |
232 if ( KErrNone == error ) { |
277 |
|
278 if (KErrNone == error) { |
233 // Save new entry and get the number. |
279 // Save new entry and get the number. |
234 error = psetVoiceMailBox->SaveEntry( *psetVoiceMailboxEntry ); |
280 error = psetVoiceMailBox->SaveEntry( *psetVoiceMailboxEntry ); |
235 TPtrC ptrNumber( KNullDesC ); |
281 TPtrC ptrNumber( KNullDesC ); |
236 if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) { |
282 if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) { |
237 // New number ok. |
283 // New number ok. |
238 aVmbxNumber = QString::fromUtf16(ptrNumber.Ptr(), |
284 aNumber = QString::fromUtf16(ptrNumber.Ptr(), |
239 ptrNumber.Length()); |
285 ptrNumber.Length()); |
240 } |
|
241 } else { |
|
242 // New number not given. |
|
243 DPRINT << "New number error: " << error; |
|
244 } |
286 } |
245 } |
287 |
246 else { |
288 } else { |
|
289 // New number not given. |
|
290 DPRINT << "New number error: " << error; |
|
291 } |
|
292 } else { |
247 // illegal argument |
293 // illegal argument |
248 DPRINT << "error: " << error; |
294 DPRINT << "error: " << error; |
249 } |
295 } |
250 |
296 |
251 delete psetVoiceMailboxEntry; // Entry ownership was transferred |
297 delete psetVoiceMailboxEntry; // Entry ownership was transferred |
252 psetVoiceMailboxEntry = NULL; |
298 psetVoiceMailboxEntry = NULL; |
253 |
299 |
254 DPRINT << "aVmbxNumber: " << aVmbxNumber; |
300 DPRINT << "aVmbxNumber: " << aNumber; |
255 DPRINT << ": OUT"; |
301 DPRINT << ": OUT"; |
|
302 return ret; |
256 } |
303 } |
257 |
304 |
258 /*! |
305 /*! |
259 PSetCallDivertingWrapper::validateDivertNumber |
306 PSetCallDivertingWrapper::validateDivertNumber |
260 */ |
307 */ |