diff --git a/applications/services/desktop/scenes/desktop_scene_locked.c b/applications/services/desktop/scenes/desktop_scene_locked.c index 1bc0683f6..03dcead88 100644 --- a/applications/services/desktop/scenes/desktop_scene_locked.c +++ b/applications/services/desktop/scenes/desktop_scene_locked.c @@ -88,6 +88,9 @@ bool desktop_scene_locked_on_event(void* context, SceneManagerEvent event) { consumed = true; break; case DesktopLockedEventUpdate: + if(desktop_view_locked_is_locked_hint_visible(desktop->locked_view)) { + notification_message(desktop->notification, &sequence_display_backlight_off_delay_1000); + } desktop_view_locked_update(desktop->locked_view); consumed = true; break; diff --git a/applications/services/desktop/views/desktop_view_locked.c b/applications/services/desktop/views/desktop_view_locked.c index 462aa5828..a7f072518 100644 --- a/applications/services/desktop/views/desktop_view_locked.c +++ b/applications/services/desktop/views/desktop_view_locked.c @@ -289,3 +289,10 @@ void desktop_view_locked_unlock(DesktopViewLocked* locked_view) { view_commit_model(locked_view->view, true); xTimerChangePeriod(locked_view->timer, pdMS_TO_TICKS(COVER_MOVING_INTERVAL_MS), portMAX_DELAY); } + +bool desktop_view_locked_is_locked_hint_visible(DesktopViewLocked* locked_view) { + DesktopViewLockedModel* model = view_get_model(locked_view->view); + const DesktopViewLockedState view_state = model->view_state; + view_commit_model(locked_view->view, false); + return view_state == DesktopViewLockedStateLockedHintShown; +} diff --git a/applications/services/desktop/views/desktop_view_locked.h b/applications/services/desktop/views/desktop_view_locked.h index 8c59c1832..4c12c0274 100644 --- a/applications/services/desktop/views/desktop_view_locked.h +++ b/applications/services/desktop/views/desktop_view_locked.h @@ -19,3 +19,4 @@ void desktop_view_locked_free(DesktopViewLocked* locked_view); void desktop_view_locked_lock(DesktopViewLocked* locked_view, bool pin_locked); void desktop_view_locked_unlock(DesktopViewLocked* locked_view); void desktop_view_locked_close_cover(DesktopViewLocked* locked_view); +bool desktop_view_locked_is_locked_hint_visible(DesktopViewLocked* locked_view);