~aleteoryx/muditaos

90bc8a7ebaa790e27204590e510b7176c3bd32c3 — tomaszkrosnowski 4 years ago d63580e
[EGD-7899] Keypad light settings fix

Fixed keypad light settings - removed always on option which had
serious impact on battery life time.
M image/assets/lang/English.json => image/assets/lang/English.json +0 -3
@@ 335,9 335,6 @@
  "app_settings_display_font_size": "Font size",
  "app_settings_display_locked_screen": "Locked screen",
  "app_settings_display_keypad_light": "Keypad light",
  "app_settings_display_keypad_light_on": "Always on",
  "app_settings_display_keypad_light_active": "On when active",
  "app_settings_display_keypad_light_off": "Off",
  "app_settings_display_input_language": "Input language",
  "app_settings_display_wallpaper": "Wallpaper",
  "app_settings_display_wallpaper_logo": "Mudita logo",

M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.cpp +17 -40
@@ 17,70 17,47 @@ namespace gui
        const auto keypadBacklightState = keypadLightSettings->getKeypadBacklightState();

        switch (keypadBacklightState) {
        case bsp::keypad_backlight::State::on:
            isAlwaysOnSwitchOn  = true;
            selectedOptionIndex = 0;
            break;
        case bsp::keypad_backlight::State::activeMode:
            isActiveSwitchOn    = true;
            selectedOptionIndex = 1;
            break;
        case bsp::keypad_backlight::State::off:
            isOffSwitchOn       = true;
            selectedOptionIndex = 2;
            isActiveSwitchOn = false;
            break;
        }

        setTitle(utils::translate("app_settings_display_keypad_light"));
    }

    void KeypadLightWindow::onBeforeShow(ShowMode mode, SwitchData *data)
    {
        refreshOptionsList(selectedOptionIndex);
    }

    void KeypadLightWindow::switchHandler(bool &toggleSwitch)
    {
        isActiveSwitchOn   = false;
        isOffSwitchOn      = false;
        isAlwaysOnSwitchOn = false;
        toggleSwitch       = !toggleSwitch;
        refreshOptionsList();
        if (isAlwaysOnSwitchOn) {
            keypadLightSettings->setKeypadBacklightState(bsp::keypad_backlight::State::on);
        }
        else if (isActiveSwitchOn) {
        if (isActiveSwitchOn) {
            keypadLightSettings->setKeypadBacklightState(bsp::keypad_backlight::State::activeMode);
        }
        else {
            keypadLightSettings->setKeypadBacklightState(bsp::keypad_backlight::State::off);
        }
        refreshOptionsList();
    }

    auto KeypadLightWindow::buildOptionsList() -> std::list<gui::Option>
    {
        std::list<gui::Option> optionsList;

        auto addCheckOption = [&](UTF8 text, bool &Switch) {
            optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
                text,
                [&](gui::Item &item) mutable {
                    switchHandler(Switch);
                    return true;
                },
                [=](gui::Item &item) {
                    if (item.focus) {
                        this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                    }
                    return true;
                },
                this,
                Switch ? gui::option::SettingRightItem::Checked : gui::option::SettingRightItem::Disabled));
        };

        addCheckOption(utils::translate("app_settings_display_keypad_light_on"), isAlwaysOnSwitchOn);
        addCheckOption(utils::translate("app_settings_display_keypad_light_active"), isActiveSwitchOn);
        addCheckOption(utils::translate("app_settings_display_keypad_light_off"), isOffSwitchOn);
        optionsList.emplace_back(std::make_unique<gui::option::OptionSettings>(
            utils::translate("app_settings_display_keypad_light"),
            [&](gui::Item &item) mutable {
                switchHandler(isActiveSwitchOn);
                return true;
            },
            [=](gui::Item &item) {
                if (item.focus) {
                    this->setNavBarText(utils::translate(style::strings::common::Switch), nav_bar::Side::Center);
                }
                return true;
            },
            this,
            isActiveSwitchOn ? gui::option::SettingRightItem::On : gui::option::SettingRightItem::Off));

        return optionsList;
    }

M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp +0 -5
@@ 14,15 14,10 @@ namespace gui
        KeypadLightWindow(app::ApplicationCommon *app, app::settingsInterface::KeypdBacklightSettings *settings);

      private:
        void onBeforeShow(ShowMode mode, SwitchData *data) override;

        app::settingsInterface::KeypdBacklightSettings *keypadLightSettings;
        void switchHandler(bool &onOffSwitch);
        std::list<Option> buildOptionsList() override;

        unsigned int selectedOptionIndex = 0;
        bool isAlwaysOnSwitchOn          = false;
        bool isActiveSwitchOn            = false;
        bool isOffSwitchOn               = false;
    };
} // namespace gui

M module-bsp/bsp/keypad_backlight/keypad_backlight.hpp => module-bsp/bsp/keypad_backlight/keypad_backlight.hpp +1 -3
@@ 10,7 10,6 @@ namespace bsp::keypad_backlight
    {
        turnOff,
        turnOnActiveMode,
        turnOn,
        turnOnCallMode,
        turnOffCallMode,
        checkState,


@@ 19,8 18,7 @@ namespace bsp::keypad_backlight
    enum class State
    {
        off,
        activeMode,
        on
        activeMode
    };

    using DiodeIntensity = float;

M products/PurePhone/services/appmgr/ApplicationManager.cpp => products/PurePhone/services/appmgr/ApplicationManager.cpp +0 -3
@@ 109,9 109,6 @@ namespace app::manager
    {
        auto action = bsp::keypad_backlight::Action::turnOff;
        switch (keypadLightState) {
        case bsp::keypad_backlight::State::on:
            action = bsp::keypad_backlight::Action::turnOn;
            break;
        case bsp::keypad_backlight::State::activeMode:
            action = bsp::keypad_backlight::Action::turnOnActiveMode;
            break;

M products/PurePhone/services/evtmgr/backlight-handler/BacklightHandler.cpp => products/PurePhone/services/evtmgr/backlight-handler/BacklightHandler.cpp +0 -8
@@ 106,11 106,6 @@ namespace backlight
    auto Handler::processKeypadRequest(bsp::keypad_backlight::Action action) -> bool
    {
        switch (action) {
        case bsp::keypad_backlight::Action::turnOn: {
            stopKeypadTimer();
            setKeypadLightState(bsp::keypad_backlight::State::on);
            return bsp::keypad_backlight::turnOnAll();
        }
        case bsp::keypad_backlight::Action::turnOff: {
            stopKeypadTimer();
            setKeypadLightState(bsp::keypad_backlight::State::off);


@@ 146,9 141,6 @@ namespace backlight
        case bsp::keypad_backlight::State::off:
            processKeypadRequest(bsp::keypad_backlight::Action::turnOff);
            break;
        case bsp::keypad_backlight::State::on:
            processKeypadRequest(bsp::keypad_backlight::Action::turnOn);
            break;
        case bsp::keypad_backlight::State::activeMode:
            processKeypadRequest(bsp::keypad_backlight::Action::turnOnActiveMode);
            break;