Fixed featureflagsmenu

This commit is contained in:
CommanderRedYT
2022-01-18 10:52:39 +01:00
parent bebdf0046e
commit 55db6f4090

View File

@ -18,10 +18,21 @@ constexpr const char * const TAG = "FEATUREFLAGSMENU";
constexpr char TEXT_FEATUREFLAGS[] = "Feature Flags";
constexpr char TEXT_BACK[] = "Back";
class FeatureFlagMenuItem : public MenuItem, public BobbyCheckbox {
class FeatureFlagMenuItem : public MenuItem, public virtual BobbyErrorHandler {
public:
explicit FeatureFlagMenuItem(ConfigWrapper<bool> *config) : m_config{*config} {}
explicit FeatureFlagMenuItem(ConfigWrapper<bool> &config) : m_config{config} {}
std::string text() const override { return m_config.nvsName(); }
void triggered() override
{
if (auto result = m_config.write(configs.nvs_handle_user, !m_config.value); !result)
errorOccured(std::move(result).error());
}
const MenuItemIcon *icon() const override
{
return m_config.value ? &icons::checked : &icons::unchecked;
}
private:
ConfigWrapper<bool> &m_config;
};
@ -30,7 +41,7 @@ private:
FeatureFlagsMenu::FeatureFlagsMenu()
{
configs.callForEveryFeature([&](ConfigWrapper<bool> &feature){
constructMenuItem<FeatureFlagMenuItem>(&feature);
constructMenuItem<FeatureFlagMenuItem>(feature);
});
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<SettingsMenu>>>();
}