~aleteoryx/muditaos

f6676c5278a46368a7ab71bc45192531f1d62ff2 — Mateusz Grzegorzek 4 years ago fc4558a
[BH-832] Update Home Screen on Alarm deactivation

Update Home Screen GUI on Deep press down
M image/assets/lang/English.json => image/assets/lang/English.json +2 -1
@@ 565,5 565,6 @@
  "app_bell_settings_advanced_time_units": "Time & units",
  "app_bell_settings_advanced_temp_scale": "Temperature scale",
  "app_bellmain_home_screen_bottom_desc": "Next alarm will ring in",
  "app_bellmain_home_screen_bottom_desc_dp": "Deep press to activate"
  "app_bellmain_home_screen_bottom_desc_dp": "Deep press to activate",
  "app_bell_alarm_deactivated": "Alarm deactivated"
}

M module-apps/apps-common/widgets/AlarmSetSpinner.cpp => module-apps/apps-common/widgets/AlarmSetSpinner.cpp +6 -0
@@ 117,6 117,12 @@ namespace gui
        resizeItems();
    }

    auto AlarmSetSpinner::setAlarmTimeVisible(bool value) noexcept -> void
    {
        timeSpinner->setVisible(value);
        timeSpinner->setFocusItem(nullptr);
    }

    auto AlarmSetSpinner::setTimeFormat(utils::time::Locale::TimeFormat fmt) noexcept -> void
    {
        timeSpinner->setTimeFormat(fmt);

M module-apps/apps-common/widgets/AlarmSetSpinner.hpp => module-apps/apps-common/widgets/AlarmSetSpinner.hpp +1 -0
@@ 46,6 46,7 @@ namespace gui
        auto setEditMode(EditMode mode) noexcept -> void;
        auto setTimeFormat(utils::time::Locale::TimeFormat fmt) noexcept -> void;
        auto setAlarmStatus(Status status) noexcept -> void;
        auto setAlarmTimeVisible(bool value) noexcept -> void;
        auto setMinute(std::uint8_t minute) noexcept -> void;
        auto getAlarmStatus() const noexcept -> Status;
        auto getTime() const noexcept -> std::time_t;

M products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.hpp => products/BellHybrid/apps/application-bell-main/presenters/HomeScreenPresenter.hpp +1 -0
@@ 40,6 40,7 @@ namespace app::home_screen
        virtual void setAlarmActive(bool)                                    = 0;
        virtual void setAlarmEdit(bool)                                      = 0;
        virtual void setAlarmVisible(bool)                                   = 0;
        virtual void setAlarmTimeVisible(bool)                               = 0;
        virtual std::time_t getAlarmTime() const                             = 0;
        virtual void setAlarmTime(std::time_t time)                          = 0;
        virtual void setAlarmTimeFormat(utils::time::Locale::TimeFormat fmt) = 0;

M products/BellHybrid/apps/application-bell-main/presenters/StateController.cpp => products/BellHybrid/apps/application-bell-main/presenters/StateController.cpp +28 -1
@@ 23,6 23,8 @@ namespace app::home_screen
            auto switchToMenu         = [](AbstractView &view) { view.switchToMenu(); };
            auto makeAlarmEditable    = [](AbstractView &view) { view.setAlarmEdit(true); };
            auto makeAlarmNonEditable = [](AbstractView &view) { view.setAlarmEdit(false); };
            auto hideAlarmTime        = [](AbstractView &view) { view.setAlarmTimeVisible(false); };
            auto showAlarmTime        = [](AbstractView &view) { view.setAlarmTimeVisible(true); };
            auto updateTemperature    = [](AbstractView &view, AbstractTemperatureModel &temperatureModel) {
                view.setTemperature(temperatureModel.getTemperature());
            };


@@ 52,6 54,8 @@ namespace app::home_screen
            {};
            struct DeepUpPress
            {};
            struct DeepDownPress
            {};
            struct AlarmInput
            {};
            struct Timer


@@ 70,6 74,19 @@ namespace app::home_screen
            };
        } // namespace Deactivated

        namespace DeactivatedWait
        {
            auto entry = [](AbstractView &view,
                            AbstractPresenter &presenter,
                            AbstractAlarmModel &alarmModel,
                            AbstractTimeModel &timeModel) {
                presenter.spawnTimer();
                view.setBottomDescription(utils::translate("app_bell_alarm_deactivated"));
                view.setAlarmActive(false);
            };
            auto exit = [](AbstractPresenter &presenter) { presenter.detachTimer(); };
        } // namespace DeactivatedWait

        namespace AlarmEdit
        {
            auto entry = [](AbstractView &view, AbstractPresenter &presenter) {


@@ 137,9 154,14 @@ namespace app::home_screen
                return make_transition_table(*"Deactivated"_s + event<Events::LightPress>/ Helpers::switchToMenu = "Deactivated"_s,
                                             "Deactivated"_s + sml::on_entry<_> / Deactivated::entry,
                                             "Deactivated"_s + event<Events::RotateRightPress> / Helpers::makeAlarmEditable = "DeactivatedEdit"_s,
                                             "Deactivated"_s + event<Events::DeepUpPress> = "ActivatedWait"_s,
                                             "Deactivated"_s + event<Events::DeepUpPress> / Helpers::showAlarmTime = "ActivatedWait"_s,
                                             "Deactivated"_s + event<Events::TimeUpdate> / Helpers::updateTemperature,

                                             "DeactivatedWait"_s + sml::on_entry<_> / DeactivatedWait::entry,
                                             "DeactivatedWait"_s + sml::on_exit<_> / DeactivatedWait::exit,
                                             "DeactivatedWait"_s + event<Events::Timer> = "Deactivated"_s,
                                             "DeactivatedWait"_s + event<Events::LightPress>/ Helpers::switchToMenu = "Deactivated"_s,

                                             "DeactivatedEdit"_s + sml::on_entry<_> / AlarmEdit::entry,
                                             "DeactivatedEdit"_s + sml::on_exit<_> / AlarmEdit::exit,
                                             "DeactivatedEdit"_s + event<Events::TimeUpdate> / Helpers::updateTemperature,


@@ 157,11 179,13 @@ namespace app::home_screen
                                             "ActivatedWait"_s + sml::on_entry<_> / ActivatedWait::entry,
                                             "ActivatedWait"_s + sml::on_exit<_> / ActivatedWait::exit,
                                             "ActivatedWait"_s + event<Events::Timer> / Helpers::makeAlarmNonEditable = "Activated"_s,
                                             "ActivatedWait"_s + event<Events::LightPress>/ Helpers::switchToMenu = "Activated"_s,

                                             "Activated"_s + sml::on_entry<_> / Activated::entry,
                                             "Activated"_s + event<Events::LightPress>/ Helpers::switchToMenu = "Activated"_s,
                                             "Activated"_s + event<Events::RotateRightPress> / Helpers::makeAlarmEditable = "ActivatedEdit"_s,
                                             "Activated"_s + event<Events::TimeUpdate> / Helpers::updateTemperature,
                                             "Activated"_s + event<Events::DeepDownPress> / Helpers::hideAlarmTime  = "DeactivatedWait"_s,

                                             "ActivatedEdit"_s + sml::on_entry<_> / AlarmEdit::entry,
                                             "ActivatedEdit"_s + sml::on_exit<_> / AlarmEdit::exit,


@@ 219,6 243,9 @@ namespace app::home_screen
        case KeyMap::DeepPressUp:
            pimpl->sm.process_event(Events::DeepUpPress{});
            break;
        case KeyMap::DeepPressDown:
            pimpl->sm.process_event(Events::DeepDownPress{});
            break;
        default:
            break;
        }

M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp => products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.cpp +5 -0
@@ 134,6 134,11 @@ namespace gui
        alarm->setVisible(val);
    }

    void BellHomeScreenWindow::setAlarmTimeVisible(bool val)
    {
        alarm->setAlarmTimeVisible(val);
    }

    void BellHomeScreenWindow::setTemperature(utils::temperature::Temperature newTemp)
    {
        bottomText->setText(utils::temperature::tempToStrDec(newTemp));

M products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp => products/BellHybrid/apps/application-bell-main/windows/BellHomeScreenWindow.hpp +1 -0
@@ 31,6 31,7 @@ namespace gui
        void setAlarmActive(bool val) override;
        void setAlarmEdit(bool val) override;
        void setAlarmVisible(bool val) override;
        void setAlarmTimeVisible(bool val) override;
        std::time_t getAlarmTime() const override;
        void setAlarmTime(std::time_t newTime) override;
        void incAlarmMinute() override;