diff options
author | Avamander <avamander@gmail.com> | 2021-12-09 22:20:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-09 22:20:29 +0200 |
commit | e8c1302cd65dbd804d152227ae76aa786d6f0b60 (patch) | |
tree | 572ece371e587fb6e5c3b531473a528305ba1809 /src/displayapp | |
parent | 5f50f0e538e20ede353b388148b706319da161ce (diff) | |
parent | b946b8d156175309ab778038dab75ec7996c05bc (diff) |
Merge branch 'develop' into patch-weather
Diffstat (limited to 'src/displayapp')
-rw-r--r-- | src/displayapp/Apps.h | 1 | ||||
-rw-r--r-- | src/displayapp/DisplayApp.cpp | 9 | ||||
-rw-r--r-- | src/displayapp/Messages.h | 1 | ||||
-rw-r--r-- | src/displayapp/screens/PassKey.cpp | 24 | ||||
-rw-r--r-- | src/displayapp/screens/PassKey.h | 21 |
5 files changed, 56 insertions, 0 deletions
diff --git a/src/displayapp/Apps.h b/src/displayapp/Apps.h index 1cf7e2a8..b2f55ccd 100644 --- a/src/displayapp/Apps.h +++ b/src/displayapp/Apps.h @@ -26,6 +26,7 @@ namespace Pinetime { Motion, Steps, Weather, + PassKey, QuickSettings, Settings, SettingWatchFace, diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 80155187..0a675c8f 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -29,6 +29,7 @@ #include "displayapp/screens/FlashLight.h" #include "displayapp/screens/BatteryInfo.h" #include "displayapp/screens/Steps.h" +#include "displayapp/screens/PassKey.h" #include "displayapp/screens/Error.h" #include "drivers/Cst816s.h" @@ -214,6 +215,9 @@ void DisplayApp::Refresh() { } else { LoadApp(Apps::Alarm, DisplayApp::FullRefreshDirections::None); } + case Messages::ShowPairingKey: + LoadApp(Apps::PassKey, DisplayApp::FullRefreshDirections::Up); + break; case Messages::TouchEvent: { if (state != States::Running) { break; @@ -351,6 +355,11 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::None); break; + case Apps::PassKey: + currentScreen = std::make_unique<Screens::PassKey>(this, bleController.GetPairingKey()); + ReturnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::SwipeDown); + break; + case Apps::Notifications: currentScreen = std::make_unique<Screens::Notifications>( this, notificationManager, systemTask->nimble().alertService(), motorController, Screens::Notifications::Modes::Normal); diff --git a/src/displayapp/Messages.h b/src/displayapp/Messages.h index 29e09eb3..b22d6c3c 100644 --- a/src/displayapp/Messages.h +++ b/src/displayapp/Messages.h @@ -19,6 +19,7 @@ namespace Pinetime { UpdateTimeOut, DimScreen, RestoreBrightness, + ShowPairingKey, AlarmTriggered }; } diff --git a/src/displayapp/screens/PassKey.cpp b/src/displayapp/screens/PassKey.cpp new file mode 100644 index 00000000..9e43a541 --- /dev/null +++ b/src/displayapp/screens/PassKey.cpp @@ -0,0 +1,24 @@ +#include "PassKey.h" +#include "displayapp/DisplayApp.h" + +using namespace Pinetime::Applications::Screens; + +PassKey::PassKey(Pinetime::Applications::DisplayApp* app, uint32_t key) : Screen(app) { + passkeyLabel = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(passkeyLabel, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0xFFFF00)); + lv_obj_set_style_local_text_font(passkeyLabel, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_42); + lv_label_set_text_fmt(passkeyLabel, "%06u", key); + lv_obj_align(passkeyLabel, nullptr, LV_ALIGN_CENTER, 0, -20); + + backgroundLabel = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_click(backgroundLabel, true); + lv_label_set_long_mode(backgroundLabel, LV_LABEL_LONG_CROP); + lv_obj_set_size(backgroundLabel, 240, 240); + lv_obj_set_pos(backgroundLabel, 0, 0); + lv_label_set_text(backgroundLabel, ""); +} + +PassKey::~PassKey() { + lv_obj_clean(lv_scr_act()); +} + diff --git a/src/displayapp/screens/PassKey.h b/src/displayapp/screens/PassKey.h new file mode 100644 index 00000000..16e72a3c --- /dev/null +++ b/src/displayapp/screens/PassKey.h @@ -0,0 +1,21 @@ +#pragma once + +#include "Screen.h" +#include <lvgl/lvgl.h> + +namespace Pinetime { + namespace Applications { + namespace Screens { + + class PassKey : public Screen { + public: + PassKey(DisplayApp* app, uint32_t key); + ~PassKey() override; + + private: + lv_obj_t* passkeyLabel; + lv_obj_t* backgroundLabel; + }; + } + } +} |