diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-04-10 11:00:50 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-04-10 11:19:45 (GMT) |
| commit | 4f46da35b4a1b0a708594cb91343b921928d6a01 (patch) | |
| tree | 91d20252a8ff11648f9449cebaa29702ce0a6438 /src/displayapp/screens/settings | |
| parent | 9f68f5b227ad3c83130d7cc521c80b6caf974466 (diff) | |
Bluetooth Passkey Toggle setting
Diffstat (limited to 'src/displayapp/screens/settings')
| -rw-r--r-- | src/displayapp/screens/settings/SettingBluetooth.cpp | 36 | ||||
| -rw-r--r-- | src/displayapp/screens/settings/SettingBluetooth.h | 4 |
2 files changed, 30 insertions, 10 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); } } diff --git a/src/displayapp/screens/settings/SettingBluetooth.h b/src/displayapp/screens/settings/SettingBluetooth.h index 12bb459..63cdd39 100644 --- a/src/displayapp/screens/settings/SettingBluetooth.h +++ b/src/displayapp/screens/settings/SettingBluetooth.h @@ -19,11 +19,13 @@ namespace Pinetime { void OnBluetoothEnabled(lv_obj_t* object, lv_event_t event); void OnBluetoothDisabled(lv_obj_t* object, lv_event_t event); + void OnBluetoothPasskeyEnableToggle(lv_obj_t* object, lv_event_t event); private: Controllers::Settings& settingsController; - lv_obj_t* cbEnabled; lv_obj_t* cbDisabled; + lv_obj_t* cbEnabled; + lv_obj_t* cbPasskey; bool priorMode; }; } |
