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...
This commit is contained in:
@@ -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();
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -37,8 +37,8 @@ namespace Pinetime {
|
||||
namespace System {
|
||||
class SystemTask {
|
||||
public:
|
||||
enum class Messages {GoToSleep, GoToRunning, OnNewTime, OnNewNotification, OnNewCall, BleConnected,
|
||||
BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent, OnDisplayTaskSleeping
|
||||
enum class Messages {GoToSleep, GoToRunning, OnNewTime, OnNewNotification, OnNewCall, BleConnected, UpdateTimeOut,
|
||||
BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent, OnDisplayTaskSleeping, EnableSleeping, DisableSleeping
|
||||
};
|
||||
|
||||
SystemTask(Drivers::SpiMaster &spi, Drivers::St7789 &lcd,
|
||||
@@ -104,7 +104,6 @@ namespace Pinetime {
|
||||
void ReloadIdleTimer() const;
|
||||
bool isBleDiscoveryTimerRunning = false;
|
||||
uint8_t bleDiscoveryTimer = 0;
|
||||
static constexpr uint32_t idleTime = 15000;
|
||||
TimerHandle_t idleTimer;
|
||||
bool doNotGoToSleep = false;
|
||||
|
||||
|
Reference in New Issue
Block a user