Fix lock menu settings saving

This commit is contained in:
Willy-JL
2023-03-28 00:27:11 +01:00
parent 5124b3e0a4
commit e77b08e96b
@@ -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);