@@ -199,14 +199,14 @@ WatchFaceMaze::WatchFaceMaze(Pinetime::Components::LittleVgl& lvgl,
199
199
Controllers::MotorController& motor,
200
200
const Controllers::Battery& batteryController,
201
201
const Controllers::Ble& bleController)
202
- : dateTimeController{dateTimeController},
203
- settingsController{settingsController},
204
- motor{motor},
205
- batteryController{batteryController},
206
- bleController{bleController},
207
- lvgl{lvgl},
208
- maze{Maze ()},
209
- prng{MazeRNG ()} {
202
+ : dateTimeController {dateTimeController},
203
+ settingsController {settingsController},
204
+ motor {motor},
205
+ batteryController {batteryController},
206
+ bleController {bleController},
207
+ lvgl {lvgl},
208
+ maze {Maze ()},
209
+ prng {MazeRNG ()} {
210
210
211
211
// set it to be in the past so it always takes two clicks to go to the secret, even if you're fast
212
212
lastLongClickTime = xTaskGetTickCount () - doubleDoubleClickDelay;
@@ -238,6 +238,8 @@ void WatchFaceMaze::HandleMazeRefresh() {
238
238
239
239
// Refresh if it's needed by some other component, a minute has passed on the watchface, or if generation has paused.
240
240
if (screenRefreshRequired || (currentState == MazeScreen::WatchFace && currentDateTime.IsUpdated ()) || pausedGeneration) {
241
+ // make sure isUpdated flags are reset
242
+ currentDateTime.IsUpdated ();
241
243
242
244
// if generation wasn't paused (i.e. doing a ground up maze gen), set everything up
243
245
if (!pausedGeneration) {
@@ -305,6 +307,10 @@ void WatchFaceMaze::UpdateBatteryDisplay(const bool forceRedraw) {
305
307
// need to redraw battery stuff
306
308
SwapActiveBuffer ();
307
309
310
+ // make sure isUpdated flags are reset
311
+ batteryPercent.IsUpdated ();
312
+ charging.IsUpdated ();
313
+
308
314
// number of pixels between top of indicator and fill line. rounds up, so 0% is 24px but 1% is 23px
309
315
const uint8_t fillLevel = 24 - ((uint16_t ) (batteryPercent.Get ()) * 24 ) / 100 ;
310
316
constexpr lv_area_t area = {223 , 3 , 236 , 26 };
@@ -341,7 +347,7 @@ void WatchFaceMaze::UpdateBatteryDisplay(const bool forceRedraw) {
341
347
342
348
void WatchFaceMaze::UpdateBleDisplay (const bool forceRedraw) {
343
349
bleConnected = bleController.IsConnected ();
344
- if (forceRedraw || bleConnected.IsUpdated ()) {
350
+ if (bleConnected.IsUpdated () || forceRedraw ) {
345
351
// need to redraw BLE indicator
346
352
SwapActiveBuffer ();
347
353
@@ -581,7 +587,6 @@ void WatchFaceMaze::GenerateMaze() {
581
587
pausedGeneration = true ;
582
588
return ;
583
589
}
584
-
585
590
}
586
591
}
587
592
}
@@ -722,6 +727,7 @@ void WatchFaceMaze::ForceValidMaze() {
722
727
coord_t x : 16 ;
723
728
coord_t y : 16 ;
724
729
};
730
+
725
731
std::stack<coordXY> backtrackStack;
726
732
727
733
while (true ) {
0 commit comments