mirror of
https://github.com/InfiniTimeOrg/InfiniTime.git
synced 2024-10-22 23:21:53 +02:00
Emit the message BleRadioEnableToggle to DisplayApp only if the enable state of the radio has actually changed.
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
004b2bf3a0
commit
d3e5410407
|
@ -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