From 69e9423712a9723386885342a7b16871955d71f5 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Wed, 5 Feb 2025 01:58:19 +0000 Subject: [PATCH] Prevent autolock based on RPC too --nobuild --- CHANGELOG.md | 2 +- applications/services/desktop/desktop.c | 9 +++++++-- .../scenes/desktop_settings_scene_start.c | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce66804c8..ed3fe4bf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ ### Breaking Changes: -- UL: Desktop: Option to prevent Auto Lock when connected to USB (by @Dmitry422) +- UL: Desktop: Option to prevent Auto Lock when connected to USB/RPC (by @Dmitry422) - Desktop settings will be reset, need to reconfigure - Keybinds will remain configured diff --git a/applications/services/desktop/desktop.c b/applications/services/desktop/desktop.c index db8bdb14c..d2178a5e2 100644 --- a/applications/services/desktop/desktop.c +++ b/applications/services/desktop/desktop.c @@ -138,8 +138,13 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) { } else if(event == DesktopGlobalAutoLock) { if(!desktop->app_running && !desktop->locked) { // Disable AutoLock if usb_inhibit_autolock option enabled and device have active USB session. - if((desktop->settings.usb_inhibit_auto_lock) && (furi_hal_usb_is_locked())) { - return true; + if(desktop->settings.usb_inhibit_auto_lock) { + Rpc* rpc = furi_record_open(RECORD_RPC); + bool inhibit_auto_lock = furi_hal_usb_is_locked() || rpc_get_sessions_count(rpc); + furi_record_close(RECORD_RPC); + if(inhibit_auto_lock) { + return true; + } } desktop_lock(desktop, desktop->settings.auto_lock_with_pin); } diff --git a/applications/settings/desktop_settings/scenes/desktop_settings_scene_start.c b/applications/settings/desktop_settings/scenes/desktop_settings_scene_start.c index f570ce769..8a6369625 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_start.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_start.c @@ -124,7 +124,7 @@ void desktop_settings_scene_start_on_enter(void* context) { // USB connection Inhibit autolock OFF|ON|with opened RPC session item = variable_item_list_add( variable_item_list, - "Auto Lock disarm by active USB session", + "Prevent Auto Lock with USB/RPC session", USB_INHIBIT_AUTO_LOCK_DELAY_COUNT, desktop_settings_scene_start_usb_inhibit_auto_lock_delay_changed, app);