From 049af7ca616b0e2b77b88833e0c7a904c7b256b8 Mon Sep 17 00:00:00 2001 From: Jan Grewe <jan@faked.org> Date: Wed, 7 Jun 2023 01:44:24 +0200 Subject: [PATCH] add factory reset --- data_src/index.html | 2 +- src/network.cpp | 11 ++++++++++- src/settings.cpp | 12 +++++++++++- src/settings.h | 1 + 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/data_src/index.html b/data_src/index.html index ad45621..c787ff2 100644 --- a/data_src/index.html +++ b/data_src/index.html @@ -184,7 +184,7 @@ </div> <div class="col-6 text-end"> <button type="button" class="btn btn-sm btn-danger btnConfirm" data-action="reset" - data-title="Factory Reset" data-text="erase all highscores and settings? (ToDo)" disabled>Factory + data-title="Factory Reset" data-text="erase all highscores and settings?" disabled>Factory Reset</button> </div> </div> diff --git a/src/network.cpp b/src/network.cpp index cc9e0ce..af216d8 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -174,11 +174,16 @@ void onTelnetInput(String str) telnet.println("> disconnecting..."); telnet.disconnectClient(); } - else if (str == "reboot" || str == "reset") + else if (str == "reboot") { telnet.println("> rebooting..."); ESP.restart(); } + else if (str == "factory-reset") + { + telnet.println("> clearing settings and rebooting..."); + ESP.restart(); + } } void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len) @@ -259,6 +264,10 @@ void handleJson(uint8_t *data) { ESP.restart(); } + else if (doc["action"] == "reset") + { + clearSettings(); + } } } diff --git a/src/settings.cpp b/src/settings.cpp index 27b0f6e..8faba91 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -27,7 +27,17 @@ void saveSettings() { preferences.putUInt("color_r", colorR); preferences.putUInt("color_g", colorG); preferences.putUInt("color_b", colorB); - preferences.end(); + preferences.end(); +} + +void clearSettings() { + preferences.begin("settings", false); + preferences.clear(); + preferences.end(); + preferences.begin("highscores", false); + preferences.clear(); + preferences.end(); + ESP.restart(); } bool updateHighscores(int games, int ticks, int cells) { diff --git a/src/settings.h b/src/settings.h index b70038f..2190a76 100644 --- a/src/settings.h +++ b/src/settings.h @@ -19,6 +19,7 @@ typedef struct { void loadSettings(); void saveSettings(); +void clearSettings(); bool updateHighscores(int games, int ticks, int cells); Highscores getHighscores(); -- GitLab