From e77b08e96bc8e7238be92bc3efe031f67a489880 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Tue, 28 Mar 2023 00:27:11 +0100 Subject: [PATCH] Fix lock menu settings saving --- .../desktop/scenes/desktop_scene_lock_menu.c | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/applications/services/desktop/scenes/desktop_scene_lock_menu.c b/applications/services/desktop/scenes/desktop_scene_lock_menu.c index c811f84e9..eeebe31b6 100644 --- a/applications/services/desktop/scenes/desktop_scene_lock_menu.c +++ b/applications/services/desktop/scenes/desktop_scene_lock_menu.c @@ -30,10 +30,6 @@ void desktop_scene_lock_menu_on_enter(void* context) { desktop_lock_menu_set_pin_state(desktop->lock_menu, desktop->settings.pin_code.length > 0); desktop_lock_menu_set_idx(desktop->lock_menu, 3); - desktop->lock_menu->save_notification = false; - desktop->lock_menu->save_xtreme = false; - desktop->lock_menu->save_bt = false; - Gui* gui = furi_record_open(RECORD_GUI); gui_set_lockmenu(gui, true); furi_record_close(RECORD_GUI); @@ -41,6 +37,21 @@ void desktop_scene_lock_menu_on_enter(void* context) { view_dispatcher_switch_to_view(desktop->view_dispatcher, DesktopViewIdLockMenu); } +void desktop_scene_lock_menu_save_settings(Desktop* desktop) { + if(desktop->lock_menu->save_notification) { + notification_message_save_settings(desktop->lock_menu->notification); + desktop->lock_menu->save_notification = false; + } + if(desktop->lock_menu->save_xtreme) { + XTREME_SETTINGS_SAVE(); + desktop->lock_menu->save_xtreme = false; + } + if(desktop->lock_menu->save_bt) { + bt_settings_save(&desktop->lock_menu->bt->bt_settings); + desktop->lock_menu->save_bt = false; + } +} + bool desktop_scene_lock_menu_on_event(void* context, SceneManagerEvent event) { Desktop* desktop = (Desktop*)context; bool consumed = false; @@ -60,15 +71,18 @@ bool desktop_scene_lock_menu_on_event(void* context, SceneManagerEvent event) { } else if(event.type == SceneManagerEventTypeCustom) { switch(event.event) { case DesktopLockMenuEventSettings: + desktop_scene_lock_menu_save_settings(desktop); loader_show_settings(); consumed = true; break; case DesktopLockMenuEventLock: + desktop_scene_lock_menu_save_settings(desktop); scene_manager_set_scene_state(desktop->scene_manager, DesktopSceneLockMenu, 0); desktop_lock(desktop); consumed = true; break; case DesktopLockMenuEventLockPin: + desktop_scene_lock_menu_save_settings(desktop); if(desktop->settings.pin_code.length > 0) { desktop_pin_lock(&desktop->settings); desktop_lock(desktop); @@ -84,6 +98,7 @@ bool desktop_scene_lock_menu_on_event(void* context, SceneManagerEvent event) { consumed = true; break; case DesktopLockMenuEventXtreme: + desktop_scene_lock_menu_save_settings(desktop); loader_start( desktop->loader, FAP_LOADER_APP_NAME, EXT_PATH("apps/.Main/xtreme_app.fap")); consumed = true; @@ -99,15 +114,7 @@ bool desktop_scene_lock_menu_on_event(void* context, SceneManagerEvent event) { void desktop_scene_lock_menu_on_exit(void* context) { Desktop* desktop = (Desktop*)context; - if(desktop->lock_menu->save_notification) { - notification_message_save_settings(desktop->lock_menu->notification); - } - if(desktop->lock_menu->save_xtreme) { - XTREME_SETTINGS_SAVE(); - } - if(desktop->lock_menu->save_bt) { - bt_settings_save(&desktop->lock_menu->bt->bt_settings); - } + desktop_scene_lock_menu_save_settings(desktop); Gui* gui = furi_record_open(RECORD_GUI); gui_set_lockmenu(gui, false);