~aleteoryx/muditaos

224eea060669ad1f1f839f4c292c86a25201726a — Tigran Soghbatyan 4 years ago fed0508
[BH-986] Fix onboarding default settings

Set factory reset time and time format at onboarding.
M module-apps/apps-common/widgets/TimeSetFmtSpinner.cpp => module-apps/apps-common/widgets/TimeSetFmtSpinner.cpp +2 -2
@@ 66,10 66,10 @@ namespace gui
        switch (newFormat) {
        case utils::time::Locale::TimeFormat::FormatTime12H: {
            fmt->setVisible(true);
            auto hours = std::chrono::hours(timeSetSpinner->getHour());
            timeSetSpinner->setHourRange(time::Locale::min_hour_12H_mode, time::Locale::max_hour_12H_mode);

            if (timeFormat != newFormat) {
                auto hours = std::chrono::hours(timeSetSpinner->getHour());
                timeSetSpinner->setHour(date::make12(hours).count());
                if (date::is_pm(hours)) {
                    fmt->setCurrentValue(time::Locale::getPM());


@@ 82,10 82,10 @@ namespace gui
        } break;
        case utils::time::Locale::TimeFormat::FormatTime24H: {
            fmt->setVisible(false);
            auto hours = std::chrono::hours(timeSetSpinner->getHour());
            timeSetSpinner->setHourRange(time::Locale::min_hour_24H_mode, time::Locale::max_hour_24H_mode);

            if (newFormat != timeFormat) {
                auto hours = std::chrono::hours(timeSetSpinner->getHour());
                timeSetSpinner->setHour(date::make24(hours, isPM()).count());

                if (focusItem == fmt) {

M products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp => products/BellHybrid/apps/application-bell-onboarding/ApplicationBellOnBoarding.cpp +1 -1
@@ 72,7 72,7 @@ namespace app
        windowsFactory.attach(
            gui::window::name::onBoardingSettingsWindow, [](ApplicationCommon *app, const std::string &name) {
                auto temperatureUnitModel = std::make_unique<bell_settings::TemperatureUnitModel>(app);
                auto timeUnitsProvider    = std::make_shared<bell_settings::TimeUnitsModel>(app);
                auto timeUnitsProvider    = std::make_shared<bell_settings::TimeUnitsModelFactoryResetValues>(app);
                auto presenter            = std::make_unique<bell_settings::TimeUnitsWindowPresenter>(
                    timeUnitsProvider, std::move(temperatureUnitModel));
                return std::make_unique<gui::OnBoardingSettingsWindow>(app, std::move(presenter), name);

M products/BellHybrid/apps/application-bell-settings/include/application-bell-settings/models/TimeUnitsModel.hpp => products/BellHybrid/apps/application-bell-settings/include/application-bell-settings/models/TimeUnitsModel.hpp +13 -2
@@ 30,7 30,7 @@ namespace app::bell_settings

        auto saveData() -> void;

        auto loadData() -> void;
        virtual auto loadData() -> void;

        auto createData() -> void;



@@ 45,7 45,7 @@ namespace app::bell_settings
        [[nodiscard]] auto getTemperatureUnit() const -> utils::temperature::Temperature::Unit;
        auto setTemperatureUnit(utils::temperature::Temperature::Unit unit) -> void;

      private:
      protected:
        app::ApplicationCommon *application{};
        gui::TimeSetListItem *timeSetListItem{};
        gui::TimeFormatSetListItem *timeFmtSetListItem{};


@@ 55,4 55,15 @@ namespace app::bell_settings

        void sendTimeFmtUpdateMessage(utils::time::Locale::TimeFormat newFmt);
    };

    class TimeUnitsModelFactoryResetValues : public TimeUnitsModel
    {
      public:
        using TimeUnitsModel::TimeUnitsModel;
        auto loadData() -> void override;

      private:
        static constexpr int factoryResetTime    = 60 * 60 * 12; // noon
        static constexpr auto factoryRestTimeFmt = utils::time::Locale::TimeFormat::FormatTime12H;
    };
} // namespace app::bell_settings

M products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.cpp => products/BellHybrid/apps/application-bell-settings/models/TimeUnitsModel.cpp +8 -0
@@ 118,8 118,16 @@ namespace app::bell_settings
    {
        return *utils::temperature::strToUnit(temperatureUnitListItem->getUnitAsStr());
    }

    auto TimeUnitsModel::setTemperatureUnit(const utils::temperature::Temperature::Unit unit) -> void
    {
        temperatureUnitListItem->setUnit(unit);
    }

    void TimeUnitsModelFactoryResetValues::loadData()
    {
        timeSetListItem->timeSetFmtSpinner->setTimeFormat(factoryRestTimeFmt);
        timeSetListItem->timeSetFmtSpinner->setTime(factoryResetTime);
        timeFmtSetListItem->setTimeFmt(factoryRestTimeFmt);
    }
} // namespace app::bell_settings