bool CntAbstractSimRequest::waitAndRetry() { if (m_retryCount < KMaxRetryCount) { singleShotTimer(KRequestDelay, this, SLOT(run())); m_retryCount++; return true; } return false; }
void CntSimContactRemoveRequest::removeComplete(QContactManager::Error error) { if (!req()->isActive()) return; if (error) m_errorMap.insert(m_index, error); m_index++; singleShotTimer(KRequestDelay, this, SLOT(removeNext())); }
bool CntAbstractSimRequest::start() { if (m_request->isActive()) return false; m_retryCount = 0; singleShotTimer(KRequestDelay, this, SLOT(run())); QContactManagerEngine::updateRequestState(m_request, QContactAbstractRequest::ActiveState); return true; }
void CntSimContactSaveRequest::writeComplete(QContact contact, QContactManager::Error error) { if (!req()->isActive()) return; if (error) m_errorMap.insert(m_index, error); engine()->updateDisplayLabel(contact); m_contacts[m_index] = contact; m_index++; singleShotTimer(KRequestDelay, this, SLOT(writeNext())); }
void CntSimContactRemoveRequest::getReservedSlotsComplete(QList<int> reservedSlots, QContactManager::Error error) { QContactRemoveRequest *r = req<QContactRemoveRequest>(); if (!r->isActive()) return; if (error != QContactManager::NoError && error != QContactManager::DoesNotExistError) { QContactManagerEngine::updateContactRemoveRequest(r, error, m_errorMap, QContactAbstractRequest::FinishedState); return; } m_reservedSlots = reservedSlots; singleShotTimer(KRequestDelay, this, SLOT(removeNext())); }
void CntSimContactRemoveRequest::removeNext() { QContactRemoveRequest *r = req<QContactRemoveRequest>(); if (!r->isActive()) return; if (r->contactIds().count() == 0) { QContactManagerEngine::updateContactRemoveRequest(r, QContactManager::BadArgumentError, m_errorMap, QContactAbstractRequest::FinishedState); return; } // All contacts removed? if (m_index >= m_contactIds.count()) { // Take first error from errormap (if any) QContactManager::Error error = QContactManager::NoError; if (m_errorMap.count()) error = m_errorMap.begin().value(); QContactManagerEngine::updateContactRemoveRequest(r, error, m_errorMap, QContactAbstractRequest::FinishedState); return; } // Remove next contact QContactLocalId contactId = m_contactIds.at(m_index); QContactManager::Error error = QContactManager::NoError; #ifdef SYMBIANSIM_BACKEND_CHECK_BEFORE_REMOVE if (m_reservedSlots.contains(contactId)) simStore()->remove(contactId, &error); else error = QContactManager::DoesNotExistError; #else simStore()->remove(contactId, &error); #endif if (error) { m_errorMap.insert(m_index, error); m_index++; singleShotTimer(KRequestDelay, this, SLOT(removeNext())); } }
void CntSimContactSaveRequest::writeNext() { QContactSaveRequest *r = req<QContactSaveRequest>(); if (!r->isActive()) return; if (r->contacts().count() == 0) { QContactManagerEngine::updateContactSaveRequest(r, QList<QContact>(), QContactManager::BadArgumentError, m_errorMap, QContactAbstractRequest::FinishedState); return; } // All contacts written? if (m_index >= m_contacts.count()) { // Take first error from errormap (if any) QContactManager::Error error = QContactManager::NoError; if (m_errorMap.count()) error = m_errorMap.begin().value(); QContactManagerEngine::updateContactSaveRequest(r, m_contacts, error, m_errorMap, QContactAbstractRequest::FinishedState); return; } // Get next contact QContact contact = m_contacts.at(m_index); // Validate & write contact QContactManager::Error error = QContactManager::NoError; if (engine()->validateContact(contact, &error)) simStore()->write(contact, &error); if (error) { m_errorMap.insert(m_index, error); m_index++; singleShotTimer(KRequestDelay, this, SLOT(writeNext())); } }