M module-apps/application-phonebook/ApplicationPhonebook.cpp => module-apps/application-phonebook/ApplicationPhonebook.cpp +3 -2
@@ 175,9 175,10 @@ namespace app
void ApplicationPhonebook::onSearchRequest(const std::string &searchFilter)
{
- phonebookModel->setFilter(searchFilter);
+ auto model = std::make_shared<PhonebookModel>(*phonebookModel);
+ model->setFilter(searchFilter);
LOG_DEBUG("Switching to search results window.");
- auto data = std::make_unique<PhonebookSearchResultsData>(phonebookModel);
+ auto data = std::make_unique<PhonebookSearchResultsData>(model, searchRequestModel);
switchWindow(gui::window::name::search_results, gui::ShowMode::GUI_SHOW_INIT, std::move(data));
}
M module-apps/application-phonebook/data/PhonebookItemData.hpp => module-apps/application-phonebook/data/PhonebookItemData.hpp +6 -5
@@ 4,12 4,10 @@
#pragma once
#include <application-phonebook/models/PhonebookModel.hpp>
+#include <application-phonebook/models/SearchRequestModel.hpp>
#include <ContactRecord.hpp>
#include <SwitchData.hpp>
-#include <memory>
-#include <string>
-
class PhonebookItemData : public gui::SwitchData
{
public:
@@ 42,9 40,12 @@ class PhonebookSearchResultsData : public gui::SwitchData
{
public:
PhonebookSearchResultsData() = delete;
- PhonebookSearchResultsData(std::shared_ptr<PhonebookModel> model) : model(std::move(model)){};
+ PhonebookSearchResultsData(std::shared_ptr<PhonebookModel> phonebookModel,
+ std::shared_ptr<SearchRequestModel> searchRequestModel)
+ : phonebookModel(std::move(phonebookModel)), searchRequestModel(std::move(searchRequestModel)){};
- std::shared_ptr<PhonebookModel> model;
+ std::shared_ptr<PhonebookModel> phonebookModel;
+ std::shared_ptr<SearchRequestModel> searchRequestModel;
};
class PhonebookSearchRequest : public gui::SwitchData
M module-apps/application-phonebook/windows/PhonebookMainWindow.hpp => module-apps/application-phonebook/windows/PhonebookMainWindow.hpp +0 -1
@@ 28,7 28,6 @@ namespace gui
gui::Icon *emptyListIcon = nullptr;
bool enableNewContact = true;
- bool requestedSearch = false;
std::unique_ptr<InputMode> inputMode;
gui::KeyInputMappedTranslation translator;
M module-apps/application-phonebook/windows/PhonebookSearchResults.cpp => module-apps/application-phonebook/windows/PhonebookSearchResults.cpp +7 -6
@@ 33,7 33,7 @@ namespace gui
phonebookStyle::searchResultsWindow::searchResultList::y,
phonebookStyle::searchResultsWindow::searchResultList::w,
phonebookStyle::searchResultsWindow::searchResultList::h,
- searchResultsModel);
+ phonebookModel);
searchResultList->setBoundaries(Boundaries::Continuous);
setFocusItem(searchResultList);
@@ 86,21 86,22 @@ namespace gui
const auto searchResultsData = dynamic_cast<PhonebookSearchResultsData *>(data);
assert(searchResultsData != nullptr);
- searchResultsModel = searchResultsData->model;
- searchResultList->setProvider(searchResultsModel);
+ phonebookModel = searchResultsData->phonebookModel;
+ searchRequestModel = searchResultsData->searchRequestModel;
+ searchResultList->setProvider(phonebookModel);
handleContentUpdate();
return true;
}
void PhonebookSearchResults::handleContentUpdate()
{
- setTitle(utils::translate("common_results_prefix") + "\"" + searchResultsModel->getFilter() + "\"");
+ setTitle(utils::translate("common_results_prefix") + "\"" + phonebookModel->getFilter() + "\"");
- if (searchResultsModel->requestRecordsCount() > 0) {
+ if (phonebookModel->requestRecordsCount() > 0) {
navBar->setActive(nav_bar::Side::Left, true);
navBar->setText(nav_bar::Side::Left, utils::translate(style::strings::common::call));
navBar->setActive(nav_bar::Side::Center, true);
- if (searchResultsModel->customContactActivationCallback) {
+ if (searchRequestModel->requestedSearch()) {
navBar->setText(nav_bar::Side::Center, utils::translate(style::strings::common::select));
}
else {
M module-apps/application-phonebook/windows/PhonebookSearchResults.hpp => module-apps/application-phonebook/windows/PhonebookSearchResults.hpp +2 -1
@@ 26,7 26,8 @@ namespace gui
void rebuild() override;
void handleContentUpdate();
- std::shared_ptr<PhonebookModel> searchResultsModel;
+ std::shared_ptr<PhonebookModel> phonebookModel;
+ std::shared_ptr<SearchRequestModel> searchRequestModel;
PhonebookListView *searchResultList = nullptr;
Icon *icon = nullptr;
};