diff options
Diffstat (limited to 'src/displayapp/screens/settings/SettingBluetooth.cpp')
| -rw-r--r-- | src/displayapp/screens/settings/SettingBluetooth.cpp | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/src/displayapp/screens/settings/SettingBluetooth.cpp b/src/displayapp/screens/settings/SettingBluetooth.cpp index ab1af22..ed7fbee 100644 --- a/src/displayapp/screens/settings/SettingBluetooth.cpp +++ b/src/displayapp/screens/settings/SettingBluetooth.cpp @@ -18,6 +18,11 @@ namespace { auto* screen = static_cast<SettingBluetooth*>(obj->user_data); screen->OnBluetoothEnabled(obj, event); } + + static void OnBluetoothPasskeyEnableToggleEvent(lv_obj_t* obj, lv_event_t event) { + auto* screen = static_cast<SettingBluetooth*>(obj->user_data); + screen->OnBluetoothPasskeyEnableToggle(obj, event); + } } SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) @@ -46,17 +51,23 @@ SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pine lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER); lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0); + cbDisabled = lv_checkbox_create(container1, nullptr); + lv_checkbox_set_text(cbDisabled, " Disabled"); + cbDisabled->user_data = this; + lv_obj_set_event_cb(cbDisabled, OnBluetoothDisabledEvent); + SetRadioButtonStyle(cbDisabled); + cbEnabled = lv_checkbox_create(container1, nullptr); lv_checkbox_set_text(cbEnabled, " Enabled"); cbEnabled->user_data = this; lv_obj_set_event_cb(cbEnabled, OnBluetoothEnabledEvent); SetRadioButtonStyle(cbEnabled); - cbDisabled = lv_checkbox_create(container1, nullptr); - lv_checkbox_set_text(cbDisabled, " Disabled"); - cbDisabled->user_data = this; - lv_obj_set_event_cb(cbDisabled, OnBluetoothDisabledEvent); - SetRadioButtonStyle(cbDisabled); + cbPasskey = lv_checkbox_create(container1, nullptr); + lv_checkbox_set_text(cbPasskey, " Passkey"); + cbPasskey->user_data = this; + lv_obj_set_event_cb(cbPasskey, OnBluetoothPasskeyEnableToggleEvent); + lv_checkbox_set_checked(cbPasskey, settingsController.GetBluetoothPasskeyEnabled()); if (settingsController.GetBleRadioEnabled()) { lv_checkbox_set_checked(cbEnabled, true); @@ -69,10 +80,6 @@ SettingBluetooth::SettingBluetooth(Pinetime::Applications::DisplayApp* app, Pine SettingBluetooth::~SettingBluetooth() { lv_obj_clean(lv_scr_act()); - // Do not call SaveSettings - see src/components/settings/Settings.h - if (priorMode != settingsController.GetBleRadioEnabled()) { - app->PushMessage(Pinetime::Applications::Display::Messages::BleRadioEnableToggle); - } } void SettingBluetooth::OnBluetoothDisabled(lv_obj_t* object, lv_event_t event) { @@ -80,6 +87,7 @@ void SettingBluetooth::OnBluetoothDisabled(lv_obj_t* object, lv_event_t event) { lv_checkbox_set_checked(cbEnabled, false); lv_checkbox_set_checked(cbDisabled, true); settingsController.SetBleRadioEnabled(false); + app->PushMessage(Pinetime::Applications::Display::Messages::BleRadioEnableToggle); } } @@ -88,6 +96,16 @@ void SettingBluetooth::OnBluetoothEnabled(lv_obj_t* object, lv_event_t event) { lv_checkbox_set_checked(cbEnabled, true); lv_checkbox_set_checked(cbDisabled, false); settingsController.SetBleRadioEnabled(true); + app->PushMessage(Pinetime::Applications::Display::Messages::BleRadioEnableToggle); + } +} + +void SettingBluetooth::OnBluetoothPasskeyEnableToggle(lv_obj_t* object, lv_event_t event) { + if (event == LV_EVENT_VALUE_CHANGED) { + bool enabled = !settingsController.GetBluetoothPasskeyEnabled(); + settingsController.SetBluetoothPasskeyEnabled(enabled); + app->PushMessage(Pinetime::Applications::Display::Messages::BluetoothPasskeyEnableToggle); + lv_checkbox_set_checked(cbPasskey, enabled); } } |
