diff --git a/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_lockscreen.c b/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_lockscreen.c index 1dbde0a03..56e2d73da 100644 --- a/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_lockscreen.c +++ b/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_lockscreen.c @@ -34,6 +34,14 @@ static void xtreme_app_scene_interface_lockscreen_show_statusbar_changed(Variabl app->save_settings = true; } +static void xtreme_app_scene_interface_lockscreen_unlock_prompt_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_prompt = value; + app->save_settings = true; +} + void xtreme_app_scene_interface_lockscreen_on_enter(void* context) { XtremeApp* app = context; XtremeSettings* xtreme_settings = XTREME_SETTINGS(); @@ -55,6 +63,11 @@ void xtreme_app_scene_interface_lockscreen_on_enter(void* context) { variable_item_set_current_value_index(item, xtreme_settings->lockscreen_statusbar); variable_item_set_current_value_text(item, xtreme_settings->lockscreen_statusbar ? "ON" : "OFF"); + item = variable_item_list_add( + var_item_list, "Unlock Prompt", 2, xtreme_app_scene_interface_lockscreen_unlock_prompt_changed, app); + variable_item_set_current_value_index(item, xtreme_settings->lockscreen_prompt); + variable_item_set_current_value_text(item, xtreme_settings->lockscreen_prompt ? "ON" : "OFF"); + variable_item_list_set_enter_callback( var_item_list, xtreme_app_scene_interface_lockscreen_var_item_list_callback, app); diff --git a/applications/services/desktop/views/desktop_view_locked.c b/applications/services/desktop/views/desktop_view_locked.c index 070257f7e..23aef6e92 100644 --- a/applications/services/desktop/views/desktop_view_locked.c +++ b/applications/services/desktop/views/desktop_view_locked.c @@ -106,7 +106,7 @@ void desktop_view_locked_draw_lockscreen(Canvas* canvas, void* m) { canvas_set_font(canvas, FontSecondary); canvas_draw_str(canvas, 0, 48 + y + 16 * !xtreme_settings->lockscreen_time, date_str); } - if(model->view_state == DesktopViewLockedStateLockedHintShown) { + if(model->view_state == DesktopViewLockedStateLockedHintShown && xtreme_settings->lockscreen_prompt) { canvas_set_font(canvas, FontSecondary); if(model->pin_locked) { elements_bubble_str(canvas, 12, 14 + y, " Press \nto unlock!", AlignRight, AlignBottom); diff --git a/applications/services/xtreme/settings.c b/applications/services/xtreme/settings.c index 69bc14cd0..fe921cca5 100644 --- a/applications/services/xtreme/settings.c +++ b/applications/services/xtreme/settings.c @@ -43,6 +43,7 @@ void XTREME_SETTINGS_LOAD() { xtreme_settings->lockscreen_time = true; // ON xtreme_settings->lockscreen_date = true; // ON xtreme_settings->lockscreen_statusbar = true; // ON + xtreme_settings->lockscreen_prompt = true; // ON xtreme_settings->battery_icon = BatteryIconBarPercent; // Bar % xtreme_settings->status_icons = true; // ON xtreme_settings->bar_borders = true; // ON diff --git a/applications/services/xtreme/settings.h b/applications/services/xtreme/settings.h index 167bf4a60..42069e71b 100644 --- a/applications/services/xtreme/settings.h +++ b/applications/services/xtreme/settings.h @@ -15,7 +15,7 @@ extern "C" { #define MAX_PACK_NAME_LEN 32 -#define XTREME_SETTINGS_VERSION (8) +#define XTREME_SETTINGS_VERSION (9) #define XTREME_SETTINGS_PATH_OLD INT_PATH(XTREME_SETTINGS_FILE_NAME) #define XTREME_SETTINGS_PATH EXT_PATH(XTREME_SETTINGS_FILE_NAME) #define XTREME_SETTINGS_MAGIC (0x69) @@ -31,6 +31,7 @@ typedef struct { bool lockscreen_time; bool lockscreen_date; bool lockscreen_statusbar; + bool lockscreen_prompt; BatteryIcon battery_icon; bool status_icons; bool bar_borders;