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;