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;