summaryrefslogtreecommitdiff
path: root/src/systemtask/SystemTask.cpp
diff options
context:
space:
mode:
authorJoaquim <joaquim.org@gmail.com>2021-04-04 03:08:51 +0100
committerJoaquim <joaquim.org@gmail.com>2021-04-04 03:08:51 +0100
commit1d3742e14f09316a1d795527713eb8f9742f0ffb (patch)
tree6bc6343538506b68256aa057121e063d22f8ed1a /src/systemtask/SystemTask.cpp
parent58a2d000c4d49d96121894d6dd6bb861d7564bea (diff)
Big UI and navigation Rewrite
new navigation add some color to the apps redesign menus new settings menu new quick settings code clean up size reduction by converting navigation images to font and more...
Diffstat (limited to 'src/systemtask/SystemTask.cpp')
-rw-r--r--src/systemtask/SystemTask.cpp47
1 files changed, 38 insertions, 9 deletions
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index 7b137f55..236c313a 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -125,7 +125,7 @@ void SystemTask::Work() {
nrfx_gpiote_in_init(pinTouchIrq, &pinConfig, nrfx_gpiote_evt_handler);
- idleTimer = xTimerCreate ("idleTimer", idleTime, pdFALSE, this, IdleTimerCallback);
+ idleTimer = xTimerCreate ("idleTimer", pdMS_TO_TICKS(settingsController.GetScreenTimeOut()), pdFALSE, this, IdleTimerCallback);
xTimerStart(idleTimer, 0);
// Suppress endless loop diagnostic
@@ -137,14 +137,23 @@ void SystemTask::Work() {
batteryController.Update();
Messages message = static_cast<Messages >(msg);
switch(message) {
+ case Messages::EnableSleeping:
+ doNotGoToSleep = false;
+ break;
+ case Messages::DisableSleeping:
+ doNotGoToSleep = true;
+ break;
+ case Messages::UpdateTimeOut:
+ xTimerChangePeriod(idleTimer, pdMS_TO_TICKS(settingsController.GetScreenTimeOut()), 0);
+ break;
case Messages::GoToRunning:
spi.Wakeup();
- twiMaster.Wakeup();
+ //twiMaster.Wakeup();
+ //touchPanel.Wakeup();
nimbleController.StartAdvertising();
xTimerStart(idleTimer, 0);
- spiNorFlash.Wakeup();
- touchPanel.Wakeup();
+ spiNorFlash.Wakeup();
lcd.Wakeup();
displayApp->PushMessage(Pinetime::Applications::Display::Messages::GoToRunning);
@@ -167,7 +176,7 @@ void SystemTask::Work() {
break;
case Messages::OnNewNotification:
if(isSleeping && !isWakingUp) GoToRunning();
- if(notificationManager.IsVibrationEnabled()) motorController.SetDuration(35);
+ motorController.SetDuration(35);
displayApp->PushMessage(Pinetime::Applications::Display::Messages::NewNotification);
break;
case Messages::BleConnected:
@@ -199,10 +208,18 @@ void SystemTask::Work() {
spiNorFlash.Sleep();
}
lcd.Sleep();
- touchPanel.Sleep();
-
spi.Sleep();
- twiMaster.Sleep();
+
+ // Double Tap needs the touch screen to be in normal mode
+ if ( settingsController.getWakeUpMode() != Pinetime::Controllers::Settings::WakeUpMode::DoubleTap ) {
+ //touchPanel.Sleep();
+ }
+
+ // No Wake uo mode, we can put the twi to sleep
+ if ( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::None ) {
+ //twiMaster.Sleep();
+ }
+
isSleeping = true;
isGoingToSleep = false;
break;
@@ -253,10 +270,22 @@ void SystemTask::GoToRunning() {
void SystemTask::OnTouchEvent() {
if(isGoingToSleep) return ;
- NRF_LOG_INFO("[systemtask] Touch event");
if(!isSleeping) {
PushMessage(Messages::OnTouchEvent);
displayApp->PushMessage(Pinetime::Applications::Display::Messages::TouchEvent);
+ } else if(!isWakingUp) {
+ if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::None or
+ settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist ) return;
+
+ if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::SingleTap ) {
+ GoToRunning();
+ } else if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::DoubleTap ) {
+ // error
+ /*auto info = touchPanel.GetTouchInfo();
+ if( info.isTouch and info.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap ) {
+ GoToRunning();
+ }*/
+ }
}
}