31 #include <hbmessagebox.h> |
31 #include <hbmessagebox.h> |
32 #include <hbprogressbar.h> |
32 #include <hbprogressbar.h> |
33 #include <QGraphicsLinearLayout> |
33 #include <QGraphicsLinearLayout> |
34 #include <hbframebackground.h> |
34 #include <hbframebackground.h> |
35 #include <hbabstractviewitem.h> |
35 #include <hbabstractviewitem.h> |
|
36 #include <hbextendedlocale.h> |
|
37 #include <hbparameterlengthlimiter.h> |
|
38 #include <hblistviewitem.h> |
|
39 #include <hbstringutil.h> |
36 |
40 |
37 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml"; |
41 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml"; |
38 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM |
42 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM |
39 |
43 |
40 CntImportsView::CntImportsView() : mContactSimManagerADN(0), |
44 CntImportsView::CntImportsView() : mContactSimManagerADN(0), |
207 |
212 |
208 HbFrameBackground frame; |
213 HbFrameBackground frame; |
209 frame.setFrameGraphicsName("qtg_fr_list_normal"); |
214 frame.setFrameGraphicsName("qtg_fr_list_normal"); |
210 frame.setFrameType(HbFrameDrawer::NinePieces); |
215 frame.setFrameType(HbFrameDrawer::NinePieces); |
211 mListView->itemPrototypes().first()->setDefaultFrame(frame); |
216 mListView->itemPrototypes().first()->setDefaultFrame(frame); |
212 |
217 mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape); |
213 mListView->setUniformItemSizes(true); |
218 mListView->setUniformItemSizes(true); |
214 |
219 |
215 connect(mListView, SIGNAL(activated (const QModelIndex&)), |
220 connect(mListView, SIGNAL(activated (const QModelIndex&)), |
216 this, SLOT(onListViewActivated(const QModelIndex&))); |
221 this, SLOT(onListViewActivated(const QModelIndex&))); |
217 |
222 |
254 } |
259 } |
255 else |
260 else |
256 { |
261 { |
257 // SIM card is present |
262 // SIM card is present |
258 //ADN entries or SDN entries are there |
263 //ADN entries or SDN entries are there |
259 simList << simImport ; |
264 simList << simImport; |
|
265 int error = 0; |
|
266 QDateTime date = mAdnSimUtility->getLastImportTime(error); |
|
267 if (error == 0) { |
|
268 HbExtendedLocale locale = HbExtendedLocale::system(); |
|
269 QString dateStr = locale.format(date.date(), r_qtn_date_usual); |
|
270 QString dateStrLocaleDigits = HbStringUtil::convertDigits(dateStr); |
|
271 QString dateStrFull = |
|
272 HbParameterLengthLimiter(hbTrId("txt_phob_dblist_import_from_1_val_updated_1")).arg(dateStrLocaleDigits); |
|
273 simList << dateStrFull; |
|
274 } |
260 } |
275 } |
261 importSimItem->setData(simList, Qt::DisplayRole); |
276 importSimItem->setData(simList, Qt::DisplayRole); |
262 importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole); |
277 importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole); |
263 |
278 |
264 mModel->insertRow(0,importSimItem); |
279 mModel->insertRow(0,importSimItem); |
308 bool CntImportsView::startSimImport() |
323 bool CntImportsView::startSimImport() |
309 { |
324 { |
310 bool started = false; |
325 bool started = false; |
311 |
326 |
312 delete mFetchRequestADN; |
327 delete mFetchRequestADN; |
313 mFetchRequestADN = 0; |
328 mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN); |
|
329 mFetchRequestADN = new QContactFetchRequest; |
|
330 mFetchRequestADN->setManager(mContactSimManagerADN); |
|
331 |
314 delete mFetchRequestSDN; |
332 delete mFetchRequestSDN; |
315 mFetchRequestSDN = 0; |
333 mContactSimManagerSDN = mViewManager->contactManager(SIM_BACKEND_SDN); |
|
334 mFetchRequestSDN = new QContactFetchRequest; |
|
335 mFetchRequestSDN->setManager(mContactSimManagerSDN); |
316 |
336 |
317 if (mWaitingForAdnCache) |
337 if (mWaitingForAdnCache) |
318 { |
338 { |
319 //show progress dialog and wait when ADN cache is ready |
339 //show progress dialog and wait when ADN cache is ready |
320 started = true; |
340 started = true; |
321 } |
341 } |
322 else |
342 else |
323 { |
343 { |
324 if(mAdnStorePresent) |
344 if(mAdnStorePresent) |
325 { |
345 { |
326 mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN); |
|
327 mFetchRequestADN = new QContactFetchRequest; |
|
328 mFetchRequestADN->setManager(mContactSimManagerADN); |
|
329 connect(mFetchRequestADN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedADN())); |
346 connect(mFetchRequestADN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedADN())); |
330 } |
347 } |
331 |
348 |
332 if(mSdnStorePresent) |
349 if(mSdnStorePresent) |
333 { |
350 { |
334 mContactSimManagerSDN = mViewManager->contactManager(SIM_BACKEND_SDN); |
|
335 // SDN store fetch request |
|
336 mFetchRequestSDN = new QContactFetchRequest; |
|
337 mFetchRequestSDN->setManager(mContactSimManagerSDN); |
|
338 connect(mFetchRequestSDN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedSDN())); |
351 connect(mFetchRequestSDN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedSDN())); |
339 } |
352 } |
340 |
353 |
341 if(mAdnEntriesPresent > 0 && mContactSimManagerADN->error() == QContactManager::NoError) |
354 if(mAdnEntriesPresent > 0 && mContactSimManagerADN->error() == QContactManager::NoError) |
342 { |
355 { |
374 if (mFetchRequestSDN != NULL) |
387 if (mFetchRequestSDN != NULL) |
375 { |
388 { |
376 mFetchRequestSDN->cancel(); |
389 mFetchRequestSDN->cancel(); |
377 } |
390 } |
378 |
391 |
|
392 // save import time |
|
393 int error = 0; |
|
394 mAdnSimUtility->setLastImportTime(error); |
|
395 |
|
396 //update sim import row with last import time |
|
397 if (error == 0) { |
|
398 QList<QStandardItem*> importSimItems = mModel->takeRow(0); |
|
399 QStandardItem* importSimItem = 0; |
|
400 if (importSimItems.count() > 0) { |
|
401 importSimItem = importSimItems.at(0); |
|
402 } |
|
403 |
|
404 if (importSimItem != 0) { |
|
405 QDateTime date = mAdnSimUtility->getLastImportTime(error); |
|
406 if (error == 0) { |
|
407 QStringList simList; |
|
408 QString simImport(hbTrId("txt_phob_dblist_import_from_sim")); |
|
409 simList << simImport; |
|
410 |
|
411 HbExtendedLocale locale = HbExtendedLocale::system(); |
|
412 QString dateStr = locale.format(date.date(), r_qtn_date_usual); |
|
413 QString dateStrLocaleDigits = HbStringUtil::convertDigits(dateStr); |
|
414 QString dateStrFull = |
|
415 HbParameterLengthLimiter(hbTrId("txt_phob_dblist_import_from_1_val_updated_1")).arg(dateStrLocaleDigits); |
|
416 simList << dateStrFull; |
|
417 |
|
418 importSimItem->setData(simList, Qt::DisplayRole); |
|
419 importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole); |
|
420 } |
|
421 mModel->insertRow(0, importSimItem); |
|
422 mListView->reset(); |
|
423 } |
|
424 } |
379 } |
425 } |
380 |
426 |
381 void CntImportsView::importFetchResultReceivedADN() |
427 void CntImportsView::importFetchResultReceivedADN() |
382 { |
428 { |
|
429 //save import time |
|
430 int error = 0; |
|
431 mAdnSimUtility->setLastImportTime(error); |
|
432 |
383 QList<QContact> simContactsList = mFetchRequestADN->contacts(); |
433 QList<QContact> simContactsList = mFetchRequestADN->contacts(); |
384 if (simContactsList.isEmpty()) |
434 if (simContactsList.isEmpty()) |
385 { |
435 { |
386 // No sim contacts, jump to fetching SDN contacts |
436 // No sim contacts, jump to fetching SDN contacts |
387 fetchSDNContacts(); |
437 fetchSDNContacts(); |
539 } |
588 } |
540 } |
589 } |
541 |
590 |
542 void CntImportsView::importFetchResultReceivedSDN() |
591 void CntImportsView::importFetchResultReceivedSDN() |
543 { |
592 { |
|
593 //save import time |
|
594 int error = 0; |
|
595 mAdnSimUtility->setLastImportTime(error); |
|
596 |
544 QList<QContact> simContactsListSDN = mFetchRequestSDN->contacts(); |
597 QList<QContact> simContactsListSDN = mFetchRequestSDN->contacts(); |
545 if (simContactsListSDN.isEmpty()) |
598 if (simContactsListSDN.isEmpty()) |
546 { |
599 { |
547 //No sdn contacts present |
600 //No sdn contacts present |
548 showSimImportResults(); |
601 showSimImportResults(); |