phonebookui/pbkcommonui/src/cntimportsview.cpp
changeset 59 a642906a277a
parent 47 7cbcb2896f0e
child 65 ae724a111993
equal deleted inserted replaced
47:7cbcb2896f0e 59:a642906a277a
    35 #include <hbabstractviewitem.h>
    35 #include <hbabstractviewitem.h>
    36 #include <hbextendedlocale.h>
    36 #include <hbextendedlocale.h>
    37 #include <hbparameterlengthlimiter.h>
    37 #include <hbparameterlengthlimiter.h>
    38 #include <hblistviewitem.h>
    38 #include <hblistviewitem.h>
    39 #include <hbstringutil.h>
    39 #include <hbstringutil.h>
       
    40 #include <QCoreApplication>
       
    41 #include <hbdevicenotificationdialog.h>
    40 
    42 
    41 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml";
    43 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml";
    42 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM   
    44 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM   
    43 
    45 
    44 CntImportsView::CntImportsView() : mContactSimManagerADN(0),
    46 CntImportsView::CntImportsView() : mContactSimManagerADN(0),
    57     mSdnStorePresent(0),
    59     mSdnStorePresent(0),
    58     mSimPresent(0),
    60     mSimPresent(0),
    59     mAdnStoreEntries(0),
    61     mAdnStoreEntries(0),
    60     mSdnStoreEntries(0),
    62     mSdnStoreEntries(0),
    61     mSimError(0),
    63     mSimError(0),
    62     mWaitingForAdnCache(0)
    64     mWaitingForAdnCache(0),
       
    65     mImportInProgress(false)
    63 {
    66 {
    64     bool ok = false;
    67     bool ok = false;
    65     mDocumentLoader.load(CNT_IMPORT_UI_XML, &ok);
    68     mDocumentLoader.load(CNT_IMPORT_UI_XML, &ok);
    66 
    69 
    67     if (ok)
    70     if (ok)
   109 void CntImportsView::activate(CntAbstractViewManager* aMgr, const CntViewParameters aArgs)
   112 void CntImportsView::activate(CntAbstractViewManager* aMgr, const CntViewParameters aArgs)
   110 {
   113 {
   111     Q_UNUSED(aArgs);
   114     Q_UNUSED(aArgs);
   112     //back button
   115     //back button
   113     HbMainWindow* window = mView->mainWindow();
   116     HbMainWindow* window = mView->mainWindow();
       
   117           
   114     if (mView->navigationAction() != mSoftkey)
   118     if (mView->navigationAction() != mSoftkey)
   115     {
   119     {
   116         mView->setNavigationAction(mSoftkey);
   120         mView->setNavigationAction(mSoftkey);
   117     }
   121     }
   118             
   122             
   166                     //ADN store is not accessible, e.g. because of active FDN
   170                     //ADN store is not accessible, e.g. because of active FDN
   167                     //Or ADN cache is not ready yet, so wait for this  
   171                     //Or ADN cache is not ready yet, so wait for this  
   168                     mAdnStorePresent = true;
   172                     mAdnStorePresent = true;
   169                     mAdnEntriesPresent = true;
   173                     mAdnEntriesPresent = true;
   170                     mWaitingForAdnCache = true;
   174                     mWaitingForAdnCache = true;
   171                     connect(mAdnSimUtility, SIGNAL(adnCacheStatusReady(SimUtility::CacheStatus&, int)), this, SLOT(adnCacheStatusReady(SimUtility::CacheStatus&, int)));
   175                     connect(mAdnSimUtility, SIGNAL(adnCacheStatusReady(CntSimUtility::CacheStatus&, int)), this, SLOT(adnCacheStatusReady(CntSimUtility::CacheStatus&, int)));
   172                     if (!mAdnSimUtility->notifyAdnCacheStatus()) {
   176                     if (!mAdnSimUtility->notifyAdnCacheStatus()) {
   173                         mAdnStorePresent = false;
   177                         mAdnStorePresent = false;
   174                         mAdnEntriesPresent = false;
   178                         mAdnEntriesPresent = false;
   175                         mWaitingForAdnCache = false;
   179                         mWaitingForAdnCache = false;
   176                     }
   180                     }
   288        
   292        
   289     mModel->insertRow(1,importDeviceItem);
   293     mModel->insertRow(1,importDeviceItem);
   290     
   294     
   291     mListView->setModel(mModel);
   295     mListView->setModel(mModel);
   292     mListView->setSelectionMode(HbAbstractItemView::NoSelection);
   296     mListView->setSelectionMode(HbAbstractItemView::NoSelection);
       
   297     connect(qApp, SIGNAL(aboutToQuit()), this, SLOT(endKeyPressed()));
   293 }
   298 }
   294 
   299 
   295 void CntImportsView::simInfoErrorMessage(int infoError)
   300 void CntImportsView::simInfoErrorMessage(int infoError)
   296 {
   301 {
   297     Q_UNUSED(infoError);
   302     Q_UNUSED(infoError);
   320 }
   325 }
   321 
   326 
   322 
   327 
   323 bool CntImportsView::startSimImport()
   328 bool CntImportsView::startSimImport()
   324 {
   329 {
       
   330 
   325     bool started = false;
   331     bool started = false;
       
   332     mImportInProgress = true;
   326 
   333 
   327     delete mFetchRequestADN;
   334     delete mFetchRequestADN;
   328     mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN);
   335     mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN);
   329     mFetchRequestADN = new QContactFetchRequest;
   336     mFetchRequestADN = new QContactFetchRequest;
   330     mFetchRequestADN->setManager(mContactSimManagerADN);   
   337     mFetchRequestADN->setManager(mContactSimManagerADN);   
   368 }  
   375 }  
   369 
   376 
   370 void CntImportsView::stopSimImport()
   377 void CntImportsView::stopSimImport()
   371 {
   378 {
   372     mImportSimPopup->close();
   379     mImportSimPopup->close();
       
   380     mImportInProgress = false;
   373     if (mFetchIsDone)
   381     if (mFetchIsDone)
   374     {
   382     {
   375         // indicates that timer has been started
   383         // indicates that timer has been started
   376         killTimer(mTimerId);
   384         killTimer(mTimerId);
   377     }
   385     }
   420             }
   428             }
   421             mModel->insertRow(0, importSimItem);
   429             mModel->insertRow(0, importSimItem);
   422             mListView->reset();
   430             mListView->reset();
   423         }
   431         }
   424     }
   432     }
       
   433    
   425 }
   434 }
   426 
   435 
   427 void CntImportsView::importFetchResultReceivedADN()
   436 void CntImportsView::importFetchResultReceivedADN()
   428 {
   437 {
   429     //save import time
   438     //save import time
   582     else
   591     else
   583     {
   592     {
   584         // no SDN contacts to fetch
   593         // no SDN contacts to fetch
   585         showSimImportResults();
   594         showSimImportResults();
   586         mImportSimPopup->close();
   595         mImportSimPopup->close();
       
   596         mImportInProgress = false;
   587         // Importing finished, go back to NamesView
   597         // Importing finished, go back to NamesView
   588         showPreviousView();
   598         showPreviousView();
   589     }
   599     }
   590 }
   600 }
   591 
   601 
   600     {
   610     {
   601         //No sdn contacts present
   611         //No sdn contacts present
   602         showSimImportResults();
   612         showSimImportResults();
   603         mSaveSimContactsListSDN.clear(); 
   613         mSaveSimContactsListSDN.clear(); 
   604         mImportSimPopup->close();
   614         mImportSimPopup->close();
       
   615         mImportInProgress = false;
   605         // Importing finished, go back to NamesView
   616         // Importing finished, go back to NamesView
   606         showPreviousView();
   617         showPreviousView();
   607     }
   618     }
   608     else
   619     else
   609     {
   620     {
   666         
   677         
   667         // no more SDN contacts to fetch
   678         // no more SDN contacts to fetch
   668         showSimImportResults();
   679         showSimImportResults();
   669         mSaveSimContactsListSDN.clear(); 
   680         mSaveSimContactsListSDN.clear(); 
   670         mImportSimPopup->close();
   681         mImportSimPopup->close();
       
   682         mImportInProgress = false;
   671         // Importing finished, go back to NamesView
   683         // Importing finished, go back to NamesView
   672         showPreviousView();
   684         showPreviousView();
   673     }   
   685     }   
   674 }
   686 }
   675 
   687 
   705     {
   717     {
   706         if (!startSimImport())
   718         if (!startSimImport())
   707         {
   719         {
   708             //dismiss wait note
   720             //dismiss wait note
   709             mImportSimPopup->close();
   721             mImportSimPopup->close();
       
   722             mImportInProgress = false;
   710             //and show error note
   723             //and show error note
   711             simInfoErrorMessage(KErrAccessDenied);
   724             simInfoErrorMessage(KErrAccessDenied);
   712         }
   725         }
   713     }
   726     }
   714 }
   727 }
   732     {      
   745     {      
   733         aContact->setPreferredDetail( "email", emailList.first() );
   746         aContact->setPreferredDetail( "email", emailList.first() );
   734     }
   747     }
   735 }
   748 }
   736 
   749 
       
   750 void CntImportsView::endKeyPressed()
       
   751 {   
       
   752     if(mImportInProgress && !mSimError)
       
   753     {
       
   754         QString results = hbTrId("txt_phob_dpophead_ln_contacts_imported").arg(mSaveCount).arg(mAdnStoreEntries + mSdnStoreEntries);
       
   755         HbDeviceNotificationDialog::notification(QString(),results);
       
   756     }    
       
   757 }
       
   758 
       
   759 
   737 // EOF
   760 // EOF