Give activities names and log when entering and exiting them (#92)

## Summary

* Give activities name and log when entering and exiting them
* Clearer logs when attempting to debug, knowing where users are coming
from/going to helps
This commit is contained in:
Dave Allie
2025-12-21 21:17:00 +11:00
committed by GitHub
parent 246afae6ef
commit 77c655fcf5
27 changed files with 123 additions and 104 deletions

View File

@@ -21,6 +21,8 @@ void SettingsActivity::taskTrampoline(void* param) {
}
void SettingsActivity::onEnter() {
Activity::onEnter();
renderingMutex = xSemaphoreCreateMutex();
// Reset selection to first item
@@ -38,6 +40,8 @@ void SettingsActivity::onEnter() {
}
void SettingsActivity::onExit() {
Activity::onExit();
// Wait until not rendering to delete task to avoid killing mid-instruction to EPD
xSemaphoreTake(renderingMutex, portMAX_DELAY);
if (displayTaskHandle) {
@@ -76,7 +80,7 @@ void SettingsActivity::loop() {
}
}
void SettingsActivity::toggleCurrentSetting() {
void SettingsActivity::toggleCurrentSetting() const {
// Validate index
if (selectedSettingIndex < 0 || selectedSettingIndex >= settingsCount) {
return;

View File

@@ -32,11 +32,11 @@ class SettingsActivity final : public Activity {
static void taskTrampoline(void* param);
[[noreturn]] void displayTaskLoop();
void render() const;
void toggleCurrentSetting();
void toggleCurrentSetting() const;
public:
explicit SettingsActivity(GfxRenderer& renderer, InputManager& inputManager, const std::function<void()>& onGoHome)
: Activity(renderer, inputManager), onGoHome(onGoHome) {}
: Activity("Settings", renderer, inputManager), onGoHome(onGoHome) {}
void onEnter() override;
void onExit() override;
void loop() override;