// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "CallLogMainWindow.hpp" #include "data/CallLogInternals.hpp" #include "ApplicationCallLog.hpp" #include "widgets/CalllogItem.hpp" #include #include #include #include #include #include #include #include #include #include using namespace style; using namespace callLogStyle; namespace gui { CallLogMainWindow::CallLogMainWindow(app::Application *app) : AppWindow(app, calllog::settings::MainWindowStr), calllogModel{std::make_shared(app)} { buildInterface(); } void CallLogMainWindow::rebuild() { if (list == nullptr) { return; } list->rebuildList(gui::listview::RebuildType::InPlace); } void CallLogMainWindow::buildInterface() { AppWindow::buildInterface(); setTitle(utils::translate("app_calllog_title_main")); bottomBar->setText(BottomBar::Side::LEFT, utils::translate(style::strings::common::call)); bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::open)); bottomBar->setText(BottomBar::Side::RIGHT, utils::translate(style::strings::common::back)); list = new gui::ListView(this, mainWindow::x, mainWindow::y, mainWindow::w, mainWindow::h, calllogModel, gui::listview::ScrollBarType::Fixed); setFocusItem(list); } void CallLogMainWindow::destroyInterface() { erase(); } void CallLogMainWindow::onBeforeShow(ShowMode mode, SwitchData *data) { if (mode == ShowMode::GUI_SHOW_INIT) { list->rebuildList(); } auto app = dynamic_cast(application); assert(app != nullptr); app->setAllEntriesRead(); } bool CallLogMainWindow::onDatabaseMessage(sys::Message *msg) { auto notification = dynamic_cast(msg); if (notification != nullptr) { if (notification->interface == db::Interface::Name::Calllog && notification->dataModified()) { rebuild(); return true; } } return false; } } /* namespace gui */