Emit the message BleRadioEnableToggle to DisplayApp only if the enable state of the radio has actually changed. (#2037)
This fixes an issue where the BLE connected logo would disappear when opening and closing the BLE setting (without changing it) while InfiniTime was already connected to a companion app. Co-authored-by: JustScott <development@justscott.me>
This commit is contained in:
parent
7dbb8f54c6
commit
4ca2112890
|
@ -36,17 +36,19 @@ namespace {
|
||||||
|
|
||||||
SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController)
|
SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController)
|
||||||
: app {app},
|
: app {app},
|
||||||
|
settings {settingsController},
|
||||||
checkboxList(
|
checkboxList(
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
"Bluetooth",
|
"Bluetooth",
|
||||||
Symbols::bluetooth,
|
Symbols::bluetooth,
|
||||||
settingsController.GetBleRadioEnabled() ? 0 : 1,
|
settingsController.GetBleRadioEnabled() ? 0 : 1,
|
||||||
[&settings = settingsController](uint32_t index) {
|
[this](uint32_t index) {
|
||||||
const bool priorMode = settings.GetBleRadioEnabled();
|
const bool priorMode = settings.GetBleRadioEnabled();
|
||||||
const bool newMode = options[index].radioEnabled;
|
const bool newMode = options[index].radioEnabled;
|
||||||
if (newMode != priorMode) {
|
if (newMode != priorMode) {
|
||||||
settings.SetBleRadioEnabled(newMode);
|
settings.SetBleRadioEnabled(newMode);
|
||||||
|
this->app->PushMessage(Pinetime::Applications::Display::Messages::BleRadioEnableToggle);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
CreateOptionArray()) {
|
CreateOptionArray()) {
|
||||||
|
@ -54,6 +56,4 @@ SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pine
|
||||||
|
|
||||||
SettingBluetooth::~SettingBluetooth() {
|
SettingBluetooth::~SettingBluetooth() {
|
||||||
lv_obj_clean(lv_scr_act());
|
lv_obj_clean(lv_scr_act());
|
||||||
// Pushing the message in the OnValueChanged function causes a freeze?
|
|
||||||
app->PushMessage(Pinetime::Applications::Display::Messages::BleRadioEnableToggle);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ namespace Pinetime {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DisplayApp* app;
|
DisplayApp* app;
|
||||||
|
Pinetime::Controllers::Settings& settings;
|
||||||
CheckboxList checkboxList;
|
CheckboxList checkboxList;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue