~aleteoryx/muditaos

8026d329d309930711cb265cd2b5607d92b0eb59 — Paweł Joński 4 years ago 194e10e
[BH-1343] Fix frontlight idle exit

Fix frontlight idle exit
The frontlight value will be reverted
M module-services/service-evtmgr/screen-light-control/ControlFunctions.cpp => module-services/service-evtmgr/screen-light-control/ControlFunctions.cpp +1 -0
@@ 50,6 50,7 @@ namespace screen_light_control::functions
            if (rampState < rampTarget) {
                rampState += rampStep;
                if (rampState >= rampTarget) {
                    rampState         = rampTarget;
                    rampTargetReached = true;
                }
            }

M products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.cpp => products/BellHybrid/apps/application-bell-powernap/presenter/PowerNapProgressPresenter.cpp +1 -1
@@ 76,7 76,7 @@ namespace app::powernap
    void PowerNapProgressPresenter::onNapFinished()
    {
        if (alarmLightOnOffModel->getValue()) {
            frontLightModel.restorePreviousState();
            frontLightModel.revertUnsavedChanges();
            frontLightModel.setStatus(true);
        }


M products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.cpp => products/BellHybrid/apps/application-bell-settings/models/FrontlightModel.cpp +10 -1
@@ 70,6 70,7 @@ namespace app::bell_settings
    }
    void FrontlightModel::setBrightness(Brightness value)
    {
        hasUnsavedChanges = true;
        screen_light_control::ConstLinearProgressModeParameters parameters{fixedValToPercentage(value)};
        app->bus.sendUnicast(std::make_shared<sevm::ScreenLightSetConstLinearModeParams>(parameters),
                             service::name::evt_manager);


@@ 83,11 84,19 @@ namespace app::bell_settings
        return *modeAdapter;
    }

    void FrontlightModel::restorePreviousState()
    void FrontlightModel::revertUnsavedChanges()
    {
        setStatus(false);
        if (!hasUnsavedChanges) {
            return;
        }
        setMode(modeAdapter->getValue() == autoStr ? screen_light_control::ScreenLightMode::Automatic
                                                   : screen_light_control::ScreenLightMode::Manual);
        setBrightness(brightnessAdapter->getValue());
    }

    void FrontlightModel::setChangesSaved()
    {
        hasUnsavedChanges = false;
    }
} // namespace app::bell_settings

M products/BellHybrid/apps/application-bell-settings/presenter/FrontlightPresenter.cpp => products/BellHybrid/apps/application-bell-settings/presenter/FrontlightPresenter.cpp +13 -2
@@ 16,6 16,11 @@ namespace app::bell_settings
        };
    }

    FrontlightPresenter::~FrontlightPresenter()
    {
        revertUnsavedChanges();
    }

    auto FrontlightPresenter::getPagesProvider() const -> std::shared_ptr<gui::ListItemProvider>
    {
        return provider;


@@ 25,8 30,14 @@ namespace app::bell_settings
    {
        provider->clearData();
    }
    void FrontlightPresenter::exitWithoutSave()

    void FrontlightPresenter::saveChanges()
    {
        frontlightModel->setChangesSaved();
    }

    void FrontlightPresenter::revertUnsavedChanges()
    {
        frontlightModel->restorePreviousState();
        frontlightModel->revertUnsavedChanges();
    }
} // namespace app::bell_settings

M products/BellHybrid/apps/application-bell-settings/presenter/FrontlightPresenter.hpp => products/BellHybrid/apps/application-bell-settings/presenter/FrontlightPresenter.hpp +5 -2
@@ 32,7 32,8 @@ namespace app::bell_settings
        virtual ~AbstractFrontlightPresenter()                                          = default;
        virtual auto getPagesProvider() const -> std::shared_ptr<gui::ListItemProvider> = 0;
        virtual void eraseProviderData()                                                = 0;
        virtual void exitWithoutSave()                                                  = 0;
        virtual void saveChanges()                                                      = 0;
        virtual void revertUnsavedChanges()                                             = 0;
    };

    class FrontlightPresenter : public AbstractFrontlightPresenter


@@ 40,10 41,12 @@ namespace app::bell_settings
      public:
        FrontlightPresenter(std::shared_ptr<FrontlightListItemProvider> &&provider,
                            std::unique_ptr<AbstractFrontlightModel> &&frontlightModel);
        ~FrontlightPresenter();

        auto getPagesProvider() const -> std::shared_ptr<gui::ListItemProvider> override;
        void eraseProviderData() override;
        void exitWithoutSave() override;
        void saveChanges() override;
        void revertUnsavedChanges() override;

      private:
        std::shared_ptr<FrontlightListItemProvider> provider;

M products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlightWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/BellSettingsFrontlightWindow.cpp +2 -1
@@ 53,13 53,14 @@ namespace gui
        }

        if (inputEvent.isShortRelease(KeyCode::KEY_RF)) {
            presenter->exitWithoutSave();
            presenter->revertUnsavedChanges();
        }

        return AppWindow::onInput(inputEvent);
    }
    void BellSettingsFrontlightWindow::exit()
    {
        presenter->saveChanges();
        application->switchWindow(
            window::bell_finished::defaultName,
            BellFinishedWindowData::Factory::create("circle_success_big", window::name::bellSettings));

M products/BellHybrid/apps/common/include/common/models/FrontlightModel.hpp => products/BellHybrid/apps/common/include/common/models/FrontlightModel.hpp +5 -2
@@ 23,7 23,8 @@ namespace app::bell_settings
        virtual void setBrightness(Brightness value)                     = 0;
        virtual void setMode(screen_light_control::ScreenLightMode mode) = 0;
        virtual void setStatus(bool onOff)                               = 0;
        virtual void restorePreviousState()                              = 0;
        virtual void revertUnsavedChanges()                              = 0;
        virtual void setChangesSaved()                                   = 0;

        virtual gui::AbstractSettingsModel<std::uint8_t> &getBrightnessModel() = 0;
        virtual gui::AbstractSettingsModel<UTF8> &getModeModel()               = 0;


@@ 42,7 43,8 @@ namespace app::bell_settings
        void setBrightness(Brightness value) override;
        void setMode(screen_light_control::ScreenLightMode mode) override;
        void setStatus(bool onOff) override;
        void restorePreviousState() override;
        void revertUnsavedChanges() override;
        void setChangesSaved() override;

      private:
        template <typename ValueT> class Adapter : public gui::AbstractSettingsModel<ValueT>


@@ 68,6 70,7 @@ namespace app::bell_settings
        std::unique_ptr<BrightnessAdapter> brightnessAdapter;
        std::unique_ptr<ModeAdapter> modeAdapter;
        ApplicationCommon *app{};
        bool hasUnsavedChanges{false};
        const std::string autoStr;
        const std::string onDemandStr;
    };