~aleteoryx/muditaos

fd3272632e2c00f84d32b685470e2a52bdb8e863 — Pawel Olejniczak 4 years ago 8818b30
[EGD-6183] Fix HF on search results window

HF was occurring when user trying to
navigate left on search results window.
M module-apps/application-phonebook/ApplicationPhonebook.cpp => module-apps/application-phonebook/ApplicationPhonebook.cpp +5 -4
@@ 16,6 16,7 @@
#include <service-appmgr/Controller.hpp>
#include <service-db/QueryMessage.hpp>
#include <service-db/DBNotificationMessage.hpp>
#include <utility>

namespace app
{


@@ 23,7 24,7 @@ namespace app
                                               std::string parent,
                                               sys::phone_modes::PhoneMode mode,
                                               StartInBackground startInBackground)
        : Application(name, parent, mode, startInBackground, phonebook_stack_size)
        : Application(std::move(name), std::move(parent), mode, startInBackground, phonebook_stack_size)
    {
        bus.channels.push_back(sys::BusChannel::ServiceDBNotifications);
        addActionReceiver(manager::actions::ShowContacts, [this](auto &&data) {


@@ 191,9 192,9 @@ namespace app
    bool ApplicationPhonebook::searchEmpty(const std::string &query)
    {
        gui::DialogMetadata meta;
        meta.icon  = "search_big";
        meta.text  = utils::localize.get("app_phonebook_search_no_results");
        meta.title = utils::localize.get("common_results_prefix") + "\"" + query + "\"";
        meta.icon                        = "search_big";
        meta.text                        = utils::localize.get("app_phonebook_search_no_results");
        meta.title                       = utils::localize.get("common_results_prefix") + "\"" + query + "\"";
        auto data                        = std::make_unique<gui::DialogMetadataMessage>(meta);
        data->ignoreCurrentWindowOnStack = true;
        LOG_DEBUG("Switching to app_phonebook_search_no_results window.");

M module-apps/application-phonebook/ApplicationPhonebook.hpp => module-apps/application-phonebook/ApplicationPhonebook.hpp +4 -4
@@ 30,10 30,10 @@ namespace app
    class ApplicationPhonebook : public app::Application
    {
      public:
        ApplicationPhonebook(std::string name                    = name_phonebook,
                             std::string parent                  = {},
                             sys::phone_modes::PhoneMode mode    = sys::phone_modes::PhoneMode::Connected,
                             StartInBackground startInBackground = {false});
        explicit ApplicationPhonebook(std::string name                    = name_phonebook,
                                      std::string parent                  = {},
                                      sys::phone_modes::PhoneMode mode    = sys::phone_modes::PhoneMode::Connected,
                                      StartInBackground startInBackground = {false});
        ~ApplicationPhonebook() override = default;

        auto DataReceivedHandler(sys::DataMessage *msgl, sys::ResponseMessage *resp) -> sys::MessagePointer override;

M module-apps/application-phonebook/windows/PhonebookSearchResults.cpp => module-apps/application-phonebook/windows/PhonebookSearchResults.cpp +1 -29
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "PhonebookSearchResults.hpp"


@@ 60,34 60,6 @@ namespace gui
        }
    }

    auto PhonebookSearchResults::onInput(const InputEvent &inputEvent) -> bool
    {
        if (AppWindow::onInput(inputEvent)) {
            return true;
        }

        // process only if key is released
        if (inputEvent.state != InputEvent::State::keyReleasedShort) {
            return false;
        }
        if (inputEvent.state == InputEvent::State::keyReleasedShort) {
            switch (inputEvent.keyCode) {
            case KeyCode::KEY_LEFT:
                LOG_INFO("Adding new contact");
                application->switchWindow(gui::window::name::new_contact);
                return true;
            case KeyCode::KEY_RIGHT:
                LOG_INFO("Searching contact");
                application->switchWindow("Search");
                return true;
            default:
                break;
            }
        }

        return false;
    }

    auto PhonebookSearchResults::handleSwitchData(SwitchData *data) -> bool
    {
        if (data == nullptr) {

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

#pragma once


@@ 12,20 12,19 @@ namespace gui
{
    class PhonebookSearchResults : public AppWindow
    {
      protected:
        std::shared_ptr<PhonebookModel> searchResultsModel;
        PhonebookListView *searchResultList = nullptr;

      public:
        PhonebookSearchResults(app::Application *app);
        explicit PhonebookSearchResults(app::Application *app);
        ~PhonebookSearchResults() override;

        auto onInput(const InputEvent &inputEvent) -> bool override;
      private:
        void buildInterface() override;
        void destroyInterface() override;
        void onBeforeShow(ShowMode mode, SwitchData *data) override;
        auto handleSwitchData(SwitchData *data) -> bool override;
        void rebuild() override;
        void buildInterface() override;
        void destroyInterface() override;

        std::shared_ptr<PhonebookModel> searchResultsModel;
        PhonebookListView *searchResultList = nullptr;
    };

} /* namespace gui */