phonebookui/pbkcommonui/src/cntimportsview.cpp
changeset 46 efe85016a067
parent 40 b46a585f6909
child 47 7cbcb2896f0e
--- a/phonebookui/pbkcommonui/src/cntimportsview.cpp	Fri Jun 11 13:29:23 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntimportsview.cpp	Wed Jun 23 18:02:44 2010 +0300
@@ -33,6 +33,10 @@
 #include <QGraphicsLinearLayout>
 #include <hbframebackground.h>
 #include <hbabstractviewitem.h>
+#include <hbextendedlocale.h>
+#include <hbparameterlengthlimiter.h>
+#include <hblistviewitem.h>
+#include <hbstringutil.h>
 
 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml";
 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM   
@@ -124,6 +128,7 @@
     //ADN store
     int error = -1;
     mAdnSimUtility = new CntSimUtility(CntSimUtility::AdnStore, error);
+    
     if (error != 0) 
     {
         delete mAdnSimUtility; 
@@ -209,7 +214,7 @@
     frame.setFrameGraphicsName("qtg_fr_list_normal");
     frame.setFrameType(HbFrameDrawer::NinePieces);
     mListView->itemPrototypes().first()->setDefaultFrame(frame);
-    
+    mListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape);
     mListView->setUniformItemSizes(true);
     
     connect(mListView, SIGNAL(activated (const QModelIndex&)),
@@ -256,7 +261,17 @@
     {   
         // SIM card is present
         //ADN entries or SDN entries are there
-        simList << simImport ;        
+        simList << simImport;
+        int error = 0;
+        QDateTime date = mAdnSimUtility->getLastImportTime(error);
+        if (error == 0) {
+            HbExtendedLocale locale = HbExtendedLocale::system();
+            QString dateStr = locale.format(date.date(), r_qtn_date_usual);
+            QString dateStrLocaleDigits = HbStringUtil::convertDigits(dateStr); 
+            QString dateStrFull = 
+                HbParameterLengthLimiter(hbTrId("txt_phob_dblist_import_from_1_val_updated_1")).arg(dateStrLocaleDigits);
+            simList << dateStrFull;
+        }
     }
     importSimItem->setData(simList, Qt::DisplayRole);
     importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole);   
@@ -310,9 +325,14 @@
     bool started = false;
 
     delete mFetchRequestADN;
-    mFetchRequestADN = 0;
+    mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN);
+    mFetchRequestADN = new QContactFetchRequest;
+    mFetchRequestADN->setManager(mContactSimManagerADN);   
+    
     delete mFetchRequestSDN;
-    mFetchRequestSDN = 0;
+    mContactSimManagerSDN = mViewManager->contactManager(SIM_BACKEND_SDN);
+    mFetchRequestSDN = new QContactFetchRequest;
+    mFetchRequestSDN->setManager(mContactSimManagerSDN);        
         
     if (mWaitingForAdnCache)
     {
@@ -323,18 +343,11 @@
     {
         if(mAdnStorePresent)
         {
-            mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN);
-            mFetchRequestADN = new QContactFetchRequest;
-            mFetchRequestADN->setManager(mContactSimManagerADN);
             connect(mFetchRequestADN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedADN()));
         }
       
         if(mSdnStorePresent)
         {
-            mContactSimManagerSDN = mViewManager->contactManager(SIM_BACKEND_SDN);
-            // SDN store fetch request
-            mFetchRequestSDN = new QContactFetchRequest;
-            mFetchRequestSDN->setManager(mContactSimManagerSDN);
             connect(mFetchRequestSDN, SIGNAL(resultsAvailable()), this, SLOT(importFetchResultReceivedSDN()));
         }
         
@@ -376,10 +389,47 @@
         mFetchRequestSDN->cancel();
     }
     
+    // save import time
+    int error = 0;
+    mAdnSimUtility->setLastImportTime(error);
+    
+    //update sim import row with last import time
+    if (error == 0) {
+        QList<QStandardItem*> importSimItems = mModel->takeRow(0);
+        QStandardItem* importSimItem = 0;
+        if (importSimItems.count() > 0) {
+            importSimItem = importSimItems.at(0);
+        }
+        
+        if (importSimItem != 0) {
+            QDateTime date = mAdnSimUtility->getLastImportTime(error);
+            if (error == 0) {
+                QStringList simList;
+                QString simImport(hbTrId("txt_phob_dblist_import_from_sim"));
+                simList << simImport;
+                
+                HbExtendedLocale locale = HbExtendedLocale::system();
+                QString dateStr = locale.format(date.date(), r_qtn_date_usual);
+                QString dateStrLocaleDigits = HbStringUtil::convertDigits(dateStr);
+                QString dateStrFull = 
+                    HbParameterLengthLimiter(hbTrId("txt_phob_dblist_import_from_1_val_updated_1")).arg(dateStrLocaleDigits);
+                simList << dateStrFull;
+                
+                importSimItem->setData(simList, Qt::DisplayRole);
+                importSimItem->setData(HbIcon("qtg_large_sim"), Qt::DecorationRole);
+            }
+            mModel->insertRow(0, importSimItem);
+            mListView->reset();
+        }
+    }
 }
 
 void CntImportsView::importFetchResultReceivedADN()
 {
+    //save import time
+    int error = 0;
+    mAdnSimUtility->setLastImportTime(error);
+
     QList<QContact> simContactsList = mFetchRequestADN->contacts();
     if (simContactsList.isEmpty())
     {
@@ -446,7 +496,6 @@
             mFetchIsDone = true;
             mSaveCount = 0;    
         }
-    
     }
 }
 
@@ -541,6 +590,10 @@
 
 void CntImportsView::importFetchResultReceivedSDN()
 {
+    //save import time
+    int error = 0;
+    mAdnSimUtility->setLastImportTime(error);
+
     QList<QContact> simContactsListSDN = mFetchRequestSDN->contacts();
     if (simContactsListSDN.isEmpty())
     {