#pragma once #include #include #include #include #include "activities/ActivityWithSubactivity.h" class ClearCacheActivity final : public ActivityWithSubactivity { public: explicit ClearCacheActivity(GfxRenderer& renderer, MappedInputManager& mappedInput, const std::function& goBack) : ActivityWithSubactivity("ClearCache", renderer, mappedInput), goBack(goBack) {} void onEnter() override; void onExit() override; void loop() override; private: enum State { WARNING, CLEARING, SUCCESS, FAILED }; State state = WARNING; TaskHandle_t displayTaskHandle = nullptr; SemaphoreHandle_t renderingMutex = nullptr; bool updateRequired = false; const std::function goBack; int clearedCount = 0; int failedCount = 0; static void taskTrampoline(void* param); [[noreturn]] void displayTaskLoop(); void render(); void clearCache(); };