~aleteoryx/muditaos

3bfd6bc55fa501d7459eeb9c7cd508f36291b891 — Maciej Gibowicz 4 years ago 36b9b20
[EGD-7871] Fix refreshing calllog details after editing contact

After editing a contact from the calllog level,
the calllog details will be refreshed.
M module-apps/application-calllog/windows/CallLogDetailsWindow.cpp => module-apps/application-calllog/windows/CallLogDetailsWindow.cpp +22 -0
@@ 12,6 12,7 @@
#include "windows/CallLogOptionsWindow.hpp"
#include <widgets/TextWithIconsWidget.hpp>
#include <widgets/ActiveIconFactory.hpp>
#include <service-db/DBNotificationMessage.hpp>

#include <gsl/assert>
#include <i18n/i18n.hpp>


@@ 234,4 235,25 @@ namespace gui
        return AppWindow::onInput(inputEvent);
    }

    bool CallLogDetailsWindow::onDatabaseMessage(sys::Message *msgl)
    {
        auto msgNotification = dynamic_cast<db::NotificationMessage *>(msgl);
        if (msgNotification != nullptr) {
            if (msgNotification->interface == db::Interface::Name::Contact) {
                if (msgNotification->dataModified()) {
                    if (auto contact = DBServiceAPI::MatchContactByPhoneNumber(application, record.phoneNumber);
                        contact && !contact->isTemporary()) {
                        record.name = contact->getFormattedName();
                    }
                    else {
                        record.name = UTF8(record.phoneNumber.getFormatted());
                    }
                    setTitle(record.name);
                    return true;
                }
            }
        }
        return false;
    }

} /* namespace gui */

M module-apps/application-calllog/windows/CallLogDetailsWindow.hpp => module-apps/application-calllog/windows/CallLogDetailsWindow.hpp +1 -0
@@ 40,6 40,7 @@ namespace gui
        // virtual methods
        bool onInput(const InputEvent &inputEvent) override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        bool onDatabaseMessage(sys::Message *msgl) override;

        void rebuild() override;
        void buildInterface() override;