Fixed featureflagsmenu
This commit is contained in:
@ -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>>>();
|
||||
}
|
||||
|
Reference in New Issue
Block a user