diff options
author | Joaquim <joaquim.org@gmail.com> | 2021-04-26 21:29:48 +0100 |
---|---|---|
committer | Joaquim <joaquim.org@gmail.com> | 2021-04-26 21:29:48 +0100 |
commit | cd0d85dff95bbc5f285d92eb78a642aab1ae4b8b (patch) | |
tree | fc568aa2516c8c64cc55eb0d08e9a929c11b454a /src/displayapp/DisplayApp.cpp | |
parent | 5fc07a8df7d18d1fa9c4971f2c7b69ea68db559b (diff) | |
parent | eedff2c06c292bda8dcb92fc04c67097fe72e22f (diff) |
Merge branch 'develop' of
https://github.com/JF002/InfiniTime into StepsApp
Diffstat (limited to 'src/displayapp/DisplayApp.cpp')
-rw-r--r-- | src/displayapp/DisplayApp.cpp | 143 |
1 files changed, 79 insertions, 64 deletions
diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index ffc5d3fc..3e25ec83 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -42,29 +42,33 @@ using namespace Pinetime::Applications; using namespace Pinetime::Applications::Display; -DisplayApp::DisplayApp(Drivers::St7789 &lcd, Components::LittleVgl &lvgl, Drivers::Cst816S &touchPanel, - Controllers::Battery &batteryController, Controllers::Ble &bleController, - Controllers::DateTime &dateTimeController, Drivers::WatchdogView &watchdog, - System::SystemTask &systemTask, +DisplayApp::DisplayApp(Drivers::St7789& lcd, + Components::LittleVgl& lvgl, + Drivers::Cst816S& touchPanel, + Controllers::Battery& batteryController, + Controllers::Ble& bleController, + Controllers::DateTime& dateTimeController, + Drivers::WatchdogView& watchdog, + System::SystemTask& systemTask, Pinetime::Controllers::NotificationManager& notificationManager, Pinetime::Controllers::HeartRateController& heartRateController, - Controllers::Settings &settingsController, - Pinetime::Controllers::MotionController& motionController) : - lcd{lcd}, - lvgl{lvgl}, - touchPanel{touchPanel}, - batteryController{batteryController}, - bleController{bleController}, - dateTimeController{dateTimeController}, - watchdog{watchdog}, - systemTask{systemTask}, - notificationManager{notificationManager}, - heartRateController{heartRateController}, - settingsController{settingsController}, - motionController{motionController} { + Controllers::Settings& settingsController, + Pinetime::Controllers::MotionController& motionController) + : lcd {lcd}, + lvgl {lvgl}, + touchPanel {touchPanel}, + batteryController {batteryController}, + bleController {bleController}, + dateTimeController {dateTimeController}, + watchdog {watchdog}, + systemTask {systemTask}, + notificationManager {notificationManager}, + heartRateController {heartRateController}, + settingsController {settingsController}, + motionController {motionController} { msgQueue = xQueueCreate(queueSize, itemSize); // Start clock when smartwatch boots - LoadApp( Apps::Clock, DisplayApp::FullRefreshDirections::None ); + LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::None); } void DisplayApp::Start() { @@ -72,8 +76,8 @@ void DisplayApp::Start() { APP_ERROR_HANDLER(NRF_ERROR_NO_MEM); } -void DisplayApp::Process(void *instance) { - auto *app = static_cast<DisplayApp *>(instance); +void DisplayApp::Process(void* instance) { + auto* app = static_cast<DisplayApp*>(instance); NRF_LOG_INFO("displayapp task started!"); app->InitHw(); @@ -114,7 +118,7 @@ void DisplayApp::Refresh() { switch (msg) { case Messages::GoToSleep: brightnessController.Backup(); - while(brightnessController.Level() != Controllers::BrightnessController::Levels::Off) { + while (brightnessController.Level() != Controllers::BrightnessController::Levels::Off) { brightnessController.Lower(); vTaskDelay(100); } @@ -129,30 +133,32 @@ void DisplayApp::Refresh() { break; case Messages::UpdateTimeOut: systemTask.PushMessage(System::SystemTask::Messages::UpdateTimeOut); - break; + break; case Messages::UpdateBleConnection: -// clockScreen.SetBleConnectionState(bleController.IsConnected() ? Screens::Clock::BleConnectionStates::Connected : Screens::Clock::BleConnectionStates::NotConnected); + // clockScreen.SetBleConnectionState(bleController.IsConnected() ? Screens::Clock::BleConnectionStates::Connected : + // Screens::Clock::BleConnectionStates::NotConnected); break; case Messages::UpdateBatteryLevel: batteryController.Update(); break; case Messages::NewNotification: - LoadApp( Apps::NotificationsPreview, DisplayApp::FullRefreshDirections::Down ); + LoadApp(Apps::NotificationsPreview, DisplayApp::FullRefreshDirections::Down); break; case Messages::TouchEvent: { - if (state != States::Running) break; + if (state != States::Running) + break; auto gesture = OnTouchEvent(); - if(!currentScreen->OnTouchEvent(gesture)) { - if ( currentApp == Apps::Clock ) { + if (!currentScreen->OnTouchEvent(gesture)) { + if (currentApp == Apps::Clock) { switch (gesture) { case TouchEvents::SwipeUp: - LoadApp( Apps::Launcher, DisplayApp::FullRefreshDirections::Up ); + LoadApp(Apps::Launcher, DisplayApp::FullRefreshDirections::Up); break; case TouchEvents::SwipeDown: - LoadApp( Apps::Notifications, DisplayApp::FullRefreshDirections::Down ); + LoadApp(Apps::Notifications, DisplayApp::FullRefreshDirections::Down); break; case TouchEvents::SwipeRight: - LoadApp( Apps::QuickSettings, DisplayApp::FullRefreshDirections::RightAnim ); + LoadApp(Apps::QuickSettings, DisplayApp::FullRefreshDirections::RightAnim); break; case TouchEvents::DoubleTap: systemTask.PushMessage(System::SystemTask::Messages::GoToSleep); @@ -160,36 +166,35 @@ void DisplayApp::Refresh() { default: break; } - } else if ( returnTouchEvent == gesture ) { - LoadApp( returnToApp, returnDirection ); + } else if (returnTouchEvent == gesture) { + LoadApp(returnToApp, returnDirection); } } - } - break; + } break; case Messages::ButtonPushed: - if( currentApp == Apps::Clock ) { + if (currentApp == Apps::Clock) { systemTask.PushMessage(System::SystemTask::Messages::GoToSleep); } else { - if ( !currentScreen->OnButtonPushed() ) { - LoadApp( returnToApp, returnDirection ); + if (!currentScreen->OnButtonPushed()) { + LoadApp(returnToApp, returnDirection); } } break; case Messages::BleFirmwareUpdateStarted: - LoadApp( Apps::FirmwareUpdate, DisplayApp::FullRefreshDirections::Down ); + LoadApp(Apps::FirmwareUpdate, DisplayApp::FullRefreshDirections::Down); + break; + case Messages::UpdateDateTime: + // Added to remove warning + // What should happen here? break; - case Messages::UpdateDateTime: - // Added to remove warning - // What should happen here? - break; } } - if(state != States::Idle && touchMode == TouchModes::Polling) { + if (state != States::Idle && touchMode == TouchModes::Polling) { auto info = touchPanel.GetTouchInfo(); - if(info.action == 2) {// 2 = contact - if(!currentScreen->OnTouchEvent(info.x, info.y)) { + if (info.action == 2) { // 2 = contact + if (!currentScreen->OnTouchEvent(info.x, info.y)) { lvgl.SetNewTapEvent(info.x, info.y); } } @@ -197,14 +202,14 @@ void DisplayApp::Refresh() { } void DisplayApp::RunningState() { - if(!currentScreen->Refresh()) { - LoadApp( returnToApp, returnDirection ); + if (!currentScreen->Refresh()) { + LoadApp(returnToApp, returnDirection); } lv_task_handler(); } void DisplayApp::StartApp(Apps app, DisplayApp::FullRefreshDirections direction) { - LoadApp( app, direction ); + LoadApp(app, direction); } void DisplayApp::returnApp(Apps app, DisplayApp::FullRefreshDirections direction, TouchEvents touchEvent) { @@ -215,19 +220,26 @@ void DisplayApp::returnApp(Apps app, DisplayApp::FullRefreshDirections direction void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) { currentScreen.reset(nullptr); - SetFullRefresh( direction ); + SetFullRefresh(direction); // default return to launcher returnApp(Apps::Launcher, FullRefreshDirections::Down, TouchEvents::SwipeDown); - switch(app) { + switch (app) { case Apps::Launcher: currentScreen = std::make_unique<Screens::ApplicationList>(this, settingsController, batteryController, dateTimeController); returnApp(Apps::Clock, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; case Apps::None: case Apps::Clock: - currentScreen = std::make_unique<Screens::Clock>(this, dateTimeController, batteryController, bleController, notificationManager, settingsController, heartRateController, motionController); + currentScreen = std::make_unique<Screens::Clock>(this, + dateTimeController, + batteryController, + bleController, + notificationManager, + settingsController, + heartRateController, + motionController); break; case Apps::FirmwareValidation: @@ -239,17 +251,20 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) break; case Apps::Notifications: - currentScreen = std::make_unique<Screens::Notifications>(this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Normal); + currentScreen = std::make_unique<Screens::Notifications>( + this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Normal); returnApp(Apps::Clock, FullRefreshDirections::Up, TouchEvents::SwipeUp); break; case Apps::NotificationsPreview: - currentScreen = std::make_unique<Screens::Notifications>(this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Preview); + currentScreen = std::make_unique<Screens::Notifications>( + this, notificationManager, systemTask.nimble().alertService(), Screens::Notifications::Modes::Preview); returnApp(Apps::Clock, FullRefreshDirections::Up, TouchEvents::SwipeUp); break; // Settings case Apps::QuickSettings: - currentScreen = std::make_unique<Screens::QuickSettings>(this, batteryController, dateTimeController, brightnessController, settingsController); + currentScreen = + std::make_unique<Screens::QuickSettings>(this, batteryController, dateTimeController, brightnessController, settingsController); returnApp(Apps::Clock, FullRefreshDirections::LeftAnim, TouchEvents::SwipeLeft); break; case Apps::Settings: @@ -281,10 +296,11 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; case Apps::SysInfo: - currentScreen = std::make_unique<Screens::SystemInfo>(this, dateTimeController, batteryController, brightnessController, bleController, watchdog); + currentScreen = + std::make_unique<Screens::SystemInfo>(this, dateTimeController, batteryController, brightnessController, bleController, watchdog); returnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown); break; - // + // case Apps::FlashLight: currentScreen = std::make_unique<Screens::FlashLight>(this, systemTask, brightnessController); @@ -322,7 +338,6 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction) } void DisplayApp::IdleState() { - } void DisplayApp::PushMessage(Messages msg) { @@ -337,10 +352,10 @@ void DisplayApp::PushMessage(Messages msg) { TouchEvents DisplayApp::OnTouchEvent() { auto info = touchPanel.GetTouchInfo(); - if(info.isTouch) { - switch(info.gesture) { + if (info.isTouch) { + switch (info.gesture) { case Pinetime::Drivers::Cst816S::Gestures::SingleTap: - if(touchMode == TouchModes::Gestures) + if (touchMode == TouchModes::Gestures) lvgl.SetNewTapEvent(info.x, info.y); return TouchEvents::Tap; case Pinetime::Drivers::Cst816S::Gestures::LongPress: @@ -364,7 +379,7 @@ TouchEvents DisplayApp::OnTouchEvent() { } void DisplayApp::SetFullRefresh(DisplayApp::FullRefreshDirections direction) { - switch(direction){ + switch (direction) { case DisplayApp::FullRefreshDirections::Down: lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::Down); break; @@ -383,11 +398,11 @@ void DisplayApp::SetFullRefresh(DisplayApp::FullRefreshDirections direction) { case DisplayApp::FullRefreshDirections::RightAnim: lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::RightAnim); break; - default: break; + default: + break; } } void DisplayApp::SetTouchMode(DisplayApp::TouchModes mode) { touchMode = mode; } - |