// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "SimContactsImportWindowPresenter.hpp" SimContactsImportWindowPresenter::SimContactsImportWindowPresenter( app::ApplicationCommon *application, std::shared_ptr simContactsProvider) : application(application), simContactsProvider{std::move(simContactsProvider)} { onSave = [&]() { this->simContactsProvider->clearData(); getView()->contactsImported(); this->application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP); requestCompleted = true; }; onDuplicatesCheck = [&](bool duplicatesFound) { if (duplicatesFound) { duplicatesChecked = true; this->simContactsProvider->clearData(); getView()->displayDuplicatesCount(this->simContactsProvider->getDuplicatesCount()); this->application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP); } else { this->simContactsProvider->saveData(onSave); } requestCompleted = true; }; onSimContactsReady = [&]() { this->simContactsProvider->createSimImported(); getView()->contactsReady(); this->application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP); }; } std::shared_ptr SimContactsImportWindowPresenter::getSimContactsProvider() const { return simContactsProvider; } void SimContactsImportWindowPresenter::eraseProviderData() const { simContactsProvider->eraseData(); } void SimContactsImportWindowPresenter::saveImportedContacts() { this->application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP); requestCompleted = false; if (!duplicatesChecked) { simContactsProvider->findDuplicates(onDuplicatesCheck); } else { simContactsProvider->saveData(onSave); } } bool SimContactsImportWindowPresenter::isRequestCompleted() { return requestCompleted; } void SimContactsImportWindowPresenter::requestSimContacts() { simContactsProvider->requestSimContacts(onSimContactsReady); } void SimContactsImportWindowPresenter::requestDuplicates() { this->simContactsProvider->createDuplicates(); getView()->displayDuplicates(); this->application->refreshWindow(gui::RefreshModes::GUI_REFRESH_DEEP); }