Option to disable poweroff while locked --nobuild

This commit is contained in:
Willy-JL
2023-12-01 23:02:23 +00:00
parent d16ac1f73d
commit e2df487c63
4 changed files with 28 additions and 1 deletions

View File

@@ -41,6 +41,14 @@ static void
app->save_settings = true; app->save_settings = true;
} }
static void xtreme_app_scene_interface_lockscreen_lockscreen_poweroff_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
bool value = variable_item_get_current_value_index(item);
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
xtreme_settings.lockscreen_poweroff = value;
app->save_settings = true;
}
static void xtreme_app_scene_interface_lockscreen_lockscreen_time_changed(VariableItem* item) { static void xtreme_app_scene_interface_lockscreen_lockscreen_time_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item); XtremeApp* app = variable_item_get_context(item);
bool value = variable_item_get_current_value_index(item); bool value = variable_item_get_current_value_index(item);
@@ -124,6 +132,15 @@ void xtreme_app_scene_interface_lockscreen_on_enter(void* context) {
variable_item_set_current_value_text( variable_item_set_current_value_text(
item, xtreme_settings.allow_locked_rpc_commands ? "ON" : "OFF"); item, xtreme_settings.allow_locked_rpc_commands ? "ON" : "OFF");
item = variable_item_list_add(
var_item_list,
"Allow Poweroff",
2,
xtreme_app_scene_interface_lockscreen_lockscreen_poweroff_changed,
app);
variable_item_set_current_value_index(item, xtreme_settings.lockscreen_poweroff);
variable_item_set_current_value_text(item, xtreme_settings.lockscreen_poweroff ? "ON" : "OFF");
item = variable_item_list_add( item = variable_item_list_add(
var_item_list, var_item_list,
"Show Time", "Show Time",

View File

@@ -13,6 +13,7 @@
#include "../views/desktop_view_locked.h" #include "../views/desktop_view_locked.h"
#include "desktop_scene.h" #include "desktop_scene.h"
#include "desktop_scene_i.h" #include "desktop_scene_i.h"
#include <xtreme.h>
#define TAG "DesktopSrv" #define TAG "DesktopSrv"
@@ -84,7 +85,9 @@ bool desktop_scene_locked_on_event(void* context, SceneManagerEvent event) {
if(event.type == SceneManagerEventTypeCustom) { if(event.type == SceneManagerEventTypeCustom) {
switch(event.event) { switch(event.event) {
case DesktopLockedEventOpenPowerOff: { case DesktopLockedEventOpenPowerOff: {
loader_start(desktop->loader, "Power", "off", NULL); if(xtreme_settings.lockscreen_poweroff) {
loader_start(desktop->loader, "Power", "off", NULL);
}
consumed = true; consumed = true;
break; break;
} }

View File

@@ -15,6 +15,7 @@ XtremeSettings xtreme_settings = {
.lock_on_boot = false, // OFF .lock_on_boot = false, // OFF
.bad_pins_format = false, // OFF .bad_pins_format = false, // OFF
.allow_locked_rpc_commands = false, // OFF .allow_locked_rpc_commands = false, // OFF
.lockscreen_poweroff = true, // ON
.lockscreen_time = true, // ON .lockscreen_time = true, // ON
.lockscreen_seconds = false, // OFF .lockscreen_seconds = false, // OFF
.lockscreen_date = true, // ON .lockscreen_date = true, // ON
@@ -89,6 +90,10 @@ void XTREME_SETTINGS_LOAD() {
x->lock_on_boot = b; x->lock_on_boot = b;
} }
flipper_format_rewind(file); flipper_format_rewind(file);
if(flipper_format_read_bool(file, "lockscreen_poweroff", &b, 1)) {
x->lockscreen_poweroff = b;
}
flipper_format_rewind(file);
if(flipper_format_read_bool(file, "lockscreen_time", &b, 1)) { if(flipper_format_read_bool(file, "lockscreen_time", &b, 1)) {
x->lockscreen_time = b; x->lockscreen_time = b;
} }
@@ -216,6 +221,7 @@ void XTREME_SETTINGS_SAVE() {
flipper_format_write_bool( flipper_format_write_bool(
file, "allow_locked_rpc_commands", &x->allow_locked_rpc_commands, 1); file, "allow_locked_rpc_commands", &x->allow_locked_rpc_commands, 1);
flipper_format_write_bool(file, "lock_on_boot", &x->lock_on_boot, 1); flipper_format_write_bool(file, "lock_on_boot", &x->lock_on_boot, 1);
flipper_format_write_bool(file, "lockscreen_poweroff", &x->lockscreen_poweroff, 1);
flipper_format_write_bool(file, "lockscreen_time", &x->lockscreen_time, 1); flipper_format_write_bool(file, "lockscreen_time", &x->lockscreen_time, 1);
flipper_format_write_bool(file, "lockscreen_seconds", &x->lockscreen_seconds, 1); flipper_format_write_bool(file, "lockscreen_seconds", &x->lockscreen_seconds, 1);
flipper_format_write_bool(file, "lockscreen_date", &x->lockscreen_date, 1); flipper_format_write_bool(file, "lockscreen_date", &x->lockscreen_date, 1);

View File

@@ -62,6 +62,7 @@ typedef struct {
bool lock_on_boot; bool lock_on_boot;
bool bad_pins_format; bool bad_pins_format;
bool allow_locked_rpc_commands; bool allow_locked_rpc_commands;
bool lockscreen_poweroff;
bool lockscreen_time; bool lockscreen_time;
bool lockscreen_seconds; bool lockscreen_seconds;
bool lockscreen_date; bool lockscreen_date;