~aleteoryx/muditaos

ref: 2e8815bb383fd70f080ae004867de066987a0da0 muditaos/module-apps/application-settings/presenter/network/SimContactsImportWindowPresenter.cpp -rw-r--r-- 2.3 KiB
2e8815bb — Lefucjusz [MOS-657] Fix contacts list order 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// 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<SimContactsImportModel> 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<gui::ListItemProvider> 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);
}