~aleteoryx/muditaos

5ba3176b4056314ed56d764c263db52dbd547df0 — Przemyslaw Brudny 4 years ago 68e0d50
[EGD-7957] Fixed data removal on alarm when setting custom repeat

Fixed data removal on alarm when setting custom repeat.
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)