~aleteoryx/muditaos

8aa0396122df682d49fa12d0ae2ea46f4421b0ff — Maciej Janicki 4 years ago 65d67e2
[BH-1157] Fix deactivate state stuck

Fix deactivated stuck
M products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp => products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.cpp +10 -0
@@ 107,6 107,7 @@ namespace app::home_screen
    }
    void HomeScreenPresenter::handleAlarmModelReady()
    {
        setStartupAlarmState();
        getView()->setAlarmTime(alarmModel->getAlarmTime());
        stateController->handleAlarmModelReady();
    }


@@ 145,4 146,13 @@ namespace app::home_screen
    {
        return latchPressed;
    }

    void HomeScreenPresenter::setStartupAlarmState()
    {
        static auto isStartup = true;
        if (isStartup) {
            alarmModel->activate(!latchPressed);
            isStartup = false;
        }
    }
} // namespace app::home_screen

M products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.hpp => products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.hpp +2 -0
@@ 149,6 149,8 @@ namespace app::home_screen
        std::unique_ptr<ProgressTimerWithSnoozeTimer> snoozeTimer;
        bool latchPressed = false;

        void setStartupAlarmState();

        static constexpr auto timerName = "HS_timer";
        static constexpr auto snoozeTick = std::chrono::seconds(1);
    };

M products/BellHybrid/apps/application-bell-main/presenters/StateController.cpp => products/BellHybrid/apps/application-bell-main/presenters/StateController.cpp +0 -2
@@ 83,7 83,6 @@ namespace app::home_screen
                alarmModel.setDefaultAlarmTime();
                view.setAlarmTime(alarmModel.getAlarmTime());
            };
            auto isDeepPress = [](AbstractPresenter &presenter) -> bool { return presenter.isStartupDeepPress(); };
        } // namespace Helpers

        namespace Events


@@ 289,7 288,6 @@ namespace app::home_screen

                                             "Deactivated"_s + sml::on_entry<_> / Deactivated::entry,
                                             "Deactivated"_s + event<Events::Reset> = "Init"_s,
                                             "Deactivated"_s [Helpers::isDeepPress] = "DeactivatedWait"_s,
                                             "Deactivated"_s + event<Events::LightPress>/ Helpers::switchToMenu,
                                             "Deactivated"_s + event<Events::RotateLeftPress> / Helpers::makeAlarmEditable = "DeactivatedEdit"_s,
                                             "Deactivated"_s + event<Events::RotateRightPress> / Helpers::makeAlarmEditable = "DeactivatedEdit"_s,