M module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp => module-apps/application-alarm-clock/models/NewEditAlarmModel.cpp +5 -4
@@ 61,12 61,13 @@ namespace app::alarmClock
internalData.push_back(new gui::AlarmSnoozeOptionsItem(utils::translate("app_alarm_clock_snooze")));
- internalData.push_back(new gui::AlarmRRuleOptionsItem(
+ repeatOption = new gui::AlarmRRuleOptionsItem(
application,
utils::translate("app_alarm_clock_repeat"),
rRulePresenter,
[app](const UTF8 &text) { app->getCurrentWindow()->navBarTemporaryMode(text, false); },
- [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); }));
+ [app]() { app->getCurrentWindow()->navBarRestoreFromTemporaryMode(); });
+ internalData.push_back(repeatOption);
for (auto &item : internalData) {
item->deleteByList = false;
@@ 90,10 91,10 @@ namespace app::alarmClock
list->rebuildList();
}
- void NewEditAlarmModel::loadRepeat(std::shared_ptr<AlarmEventRecord> record)
+ void NewEditAlarmModel::loadCustomRepeat()
{
if (repeatOption->onLoadCallback) {
- repeatOption->onLoadCallback(std::move(record));
+ repeatOption->onLoadCallback(rRulePresenter->getAlarm());
}
}
M module-apps/application-alarm-clock/models/NewEditAlarmModel.hpp => module-apps/application-alarm-clock/models/NewEditAlarmModel.hpp +2 -2
@@ 24,7 24,7 @@ namespace app::alarmClock
virtual void loadData(std::shared_ptr<AlarmEventRecord> record) = 0;
virtual void saveData(std::shared_ptr<AlarmEventRecord> record, AlarmAction action) = 0;
- virtual void loadRepeat(std::shared_ptr<AlarmEventRecord> record) = 0;
+ virtual void loadCustomRepeat() = 0;
};
class NewEditAlarmModel : public AlarmsInternalListItemProvider
@@ 43,7 43,7 @@ namespace app::alarmClock
void loadData(std::shared_ptr<AlarmEventRecord> record) override;
void saveData(std::shared_ptr<AlarmEventRecord> alarm, AlarmAction action) override;
- void loadRepeat(std::shared_ptr<AlarmEventRecord> record) override;
+ void loadCustomRepeat() override;
void createData();
[[nodiscard]] unsigned int getMinimalItemSpaceRequired() const override;
M module-apps/application-alarm-clock/presenter/AlarmClockEditWindowPresenter.cpp => module-apps/application-alarm-clock/presenter/AlarmClockEditWindowPresenter.cpp +5 -0
@@ 25,4 25,9 @@ namespace app::alarmClock
alarmFieldsProvider->saveData(std::move(record), action);
}
+ void AlarmClockEditWindowPresenter::loadCustomRepeat()
+ {
+ alarmFieldsProvider->loadCustomRepeat();
+ }
+
} // namespace app::alarmClock
M module-apps/application-alarm-clock/presenter/AlarmClockEditWindowPresenter.hpp => module-apps/application-alarm-clock/presenter/AlarmClockEditWindowPresenter.hpp +4 -2
@@ 23,8 23,9 @@ namespace app::alarmClock
virtual ~Presenter() noexcept = default;
[[nodiscard]] virtual std::shared_ptr<gui::ListItemProvider> getAlarmsItemProvider() const = 0;
- virtual void loadData(std::shared_ptr<AlarmEventRecord> record) = 0;
- virtual void saveData(std::shared_ptr<AlarmEventRecord> record, AlarmAction action) = 0;
+ virtual void loadData(std::shared_ptr<AlarmEventRecord> record) = 0;
+ virtual void saveData(std::shared_ptr<AlarmEventRecord> record, AlarmAction action) = 0;
+ virtual void loadCustomRepeat() = 0;
};
};
@@ 36,6 37,7 @@ namespace app::alarmClock
[[nodiscard]] std::shared_ptr<gui::ListItemProvider> getAlarmsItemProvider() const override;
void loadData(std::shared_ptr<AlarmEventRecord> record) override;
void saveData(std::shared_ptr<AlarmEventRecord> record, AlarmAction action) override;
+ void loadCustomRepeat() override;
private:
std::shared_ptr<AlarmsInternalListItemProvider> alarmFieldsProvider;
M module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp => module-apps/application-alarm-clock/windows/CustomRepeatWindow.cpp +1 -1
@@ 59,7 59,7 @@ namespace app::alarmClock
if (inputEvent.isShortRelease(gui::KeyCode::KEY_ENTER)) {
presenter->saveData();
- application->switchWindow(style::alarmClock::window::name::newEditAlarm);
+ application->switchWindow(style::alarmClock::window::name::newEditAlarm, gui::ShowMode::GUI_SHOW_RETURN);
return true;
}
return false;
M module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp => module-apps/application-alarm-clock/windows/NewEditAlarmWindow.cpp +3 -0
@@ 51,6 51,9 @@ namespace app::alarmClock
}
presenter->loadData(alarmRecord);
}
+ else {
+ presenter->loadCustomRepeat();
+ }
}
bool NewEditAlarmWindow::onInput(const gui::InputEvent &inputEvent)