aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/settings/Settings.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/settings/Settings.h')
-rw-r--r--src/components/settings/Settings.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/components/settings/Settings.h b/src/components/settings/Settings.h
index c9615126..093a3ac6 100644
--- a/src/components/settings/Settings.h
+++ b/src/components/settings/Settings.h
@@ -4,6 +4,7 @@
#include "components/brightness/BrightnessController.h"
#include "components/fs/FS.h"
#include "displayapp/apps/Apps.h"
+#include <nrf_log.h>
namespace Pinetime {
namespace Controllers {
@@ -37,6 +38,7 @@ namespace Pinetime {
enum class PTSGaugeStyle : uint8_t { Full, Half, Numeric };
enum class PTSWeather : uint8_t { On, Off };
enum class PrideFlag : uint8_t { Gay, Trans, Bi, Lesbian };
+ enum class DfuAndFsMode : uint8_t { Disabled, Enabled, EnabledTillReboot };
struct PineTimeStyle {
Colors ColorTime = Colors::Teal;
@@ -309,6 +311,29 @@ namespace Pinetime {
return bleRadioEnabled;
};
+ void SetDfuAndFsMode(DfuAndFsMode mode) {
+ if (mode == GetDfuAndFsMode()) {
+ return;
+ }
+ if (mode == DfuAndFsMode::Enabled || GetDfuAndFsMode() == DfuAndFsMode::Enabled) {
+ settingsChanged = true;
+ }
+ settings.dfuAndFsEnabledOnBoot = (mode == DfuAndFsMode::Enabled);
+ dfuAndFsEnabledTillReboot = (mode == DfuAndFsMode::EnabledTillReboot);
+ };
+
+ DfuAndFsMode GetDfuAndFsMode() {
+ if (dfuAndFsEnabledTillReboot) {
+ if (settings.dfuAndFsEnabledOnBoot) { // ensure both variables are in consistent state
+ settingsChanged = true;
+ settings.dfuAndFsEnabledOnBoot = false;
+ NRF_LOG_ERROR("Settings: DfuAndFsMode data corrupted");
+ }
+ return DfuAndFsMode::EnabledTillReboot;
+ }
+ return (settings.dfuAndFsEnabledOnBoot ? DfuAndFsMode::Enabled : DfuAndFsMode::Disabled);
+ };
+
private:
Pinetime::Controllers::FS& fs;
@@ -338,6 +363,8 @@ namespace Pinetime {
uint16_t shakeWakeThreshold = 150;
Controllers::BrightnessController::Levels brightLevel = Controllers::BrightnessController::Levels::Medium;
+
+ bool dfuAndFsEnabledOnBoot = false;
};
SettingsData settings;
@@ -350,6 +377,7 @@ namespace Pinetime {
* to off (false) on every boot because we always want ble to be enabled on startup
*/
bool bleRadioEnabled = true;
+ bool dfuAndFsEnabledTillReboot = false;
void LoadSettingsFromFile();
void SaveSettingsToFile();