~aleteoryx/muditaos

a72bea8ad6d5c174cfb70d10ad24010ace1dfdd7 — Przemyslaw Brudny 3 years ago d3bba9d
[MOS-89] Fixed contact edit window erasing data

Fixed edit contact window erasing data on special character select.
M module-apps/application-phonebook/models/NewContactModel.cpp => module-apps/application-phonebook/models/NewContactModel.cpp +0 -7
@@ 116,13 116,6 @@ void NewContactModel::clearData()
    eraseInternalData();
}

void NewContactModel::recreateData()
{
    clearData();
    createData();
    list->rebuildList();
}

bool NewContactModel::verifyData()
{
    for (auto item : internalData) {

M module-apps/application-phonebook/models/NewContactModel.hpp => module-apps/application-phonebook/models/NewContactModel.hpp +1 -2
@@ 1,4 1,4 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once


@@ 23,7 23,6 @@ class NewContactModel : public app::InternalModel<gui::ContactListItem *>, publi
    explicit NewContactModel(app::ApplicationCommon *app);

    void clearData();
    void recreateData();
    void saveData(std::shared_ptr<ContactRecord> contactRecord);
    void loadData(std::shared_ptr<ContactRecord> contactRecord, gui::SwitchData *data);
    void createData();

M module-apps/application-phonebook/windows/PhonebookNewContact.cpp => module-apps/application-phonebook/windows/PhonebookNewContact.cpp +4 -6
@@ 42,6 42,8 @@ namespace gui
                                 newContactModel,
                                 listview::ScrollBarType::PreRendered);
        list->setBoundaries(Boundaries::Continuous);
        newContactModel->createData();

        setFocusItem(list);
    }



@@ 52,12 54,8 @@ namespace gui

    void PhonebookNewContact::onBeforeShow(ShowMode mode, SwitchData *data)
    {
        if (mode != ShowMode::GUI_SHOW_RETURN) {
            newContactModel->recreateData();
        if (mode == ShowMode::GUI_SHOW_INIT && data != nullptr) {
            newContactModel->loadData(contact, data);
        }

        if (mode == ShowMode::GUI_SHOW_INIT) {
            list->rebuildList();
        }



@@ 188,7 186,7 @@ namespace gui

        std::unique_ptr<gui::SwitchData> data =
            std::make_unique<PhonebookItemData>(contact, newContactModel->getRequestType());
        data->ignoreCurrentWindowOnStack      = true;
        data->ignoreCurrentWindowOnStack = true;
        application->switchWindow(gui::window::name::contact, std::move(data));
        return true;
    } // namespace gui