MNTM Settings: Add Skip Sliding Animations option for Lockscreen (#436)

* Add Fast Lock/Unlock
The cover animation takes time and blocks input while animating, so add options to skip the animations.

* Combine options into "Skip Sliding Animation"

* Update changelog

* Wording

---------

Co-authored-by: WillyJL <me@willyjl.dev>
This commit is contained in:
Aaron Tulino
2025-07-20 01:46:11 +01:00
committed by GitHub
parent bd88e42622
commit b33456d243
5 changed files with 47 additions and 9 deletions

View File

@@ -288,10 +288,17 @@ void desktop_view_locked_free(DesktopViewLocked* locked_view) {
void desktop_view_locked_close_cover(DesktopViewLocked* locked_view) {
DesktopViewLockedModel* model = view_get_model(locked_view->view);
furi_assert(model->view_state == DesktopViewLockedStateLocked);
model->view_state = DesktopViewLockedStateCoverClosing;
model->cover_offset = COVER_OFFSET_START;
view_commit_model(locked_view->view, true);
furi_timer_start(locked_view->timer, COVER_MOVING_INTERVAL_MS);
if(momentum_settings.lockscreen_skip_animation) {
locked_view->callback(DesktopLockedEventCoversClosed, locked_view->context);
model->cover_offset = COVER_OFFSET_END;
view_commit_model(locked_view->view, true);
} else {
model->view_state = DesktopViewLockedStateCoverClosing;
model->cover_offset = COVER_OFFSET_START;
view_commit_model(locked_view->view, true);
furi_timer_start(locked_view->timer, COVER_MOVING_INTERVAL_MS);
}
}
void desktop_view_locked_lock(DesktopViewLocked* locked_view, bool pin_locked) {
@@ -305,11 +312,19 @@ void desktop_view_locked_lock(DesktopViewLocked* locked_view, bool pin_locked) {
void desktop_view_locked_unlock(DesktopViewLocked* locked_view) {
locked_view->lock_count = 0;
DesktopViewLockedModel* model = view_get_model(locked_view->view);
model->view_state = DesktopViewLockedStateCoverOpening;
model->cover_offset = COVER_OFFSET_END;
model->pin_locked = false;
view_commit_model(locked_view->view, true);
furi_timer_start(locked_view->timer, COVER_MOVING_INTERVAL_MS);
if(momentum_settings.lockscreen_skip_animation) {
model->view_state = DesktopViewLockedStateUnlocked;
model->cover_offset = COVER_OFFSET_START;
model->pin_locked = false;
view_commit_model(locked_view->view, true);
} else {
model->view_state = DesktopViewLockedStateCoverOpening;
model->cover_offset = COVER_OFFSET_END;
model->pin_locked = false;
view_commit_model(locked_view->view, true);
furi_timer_start(locked_view->timer, COVER_MOVING_INTERVAL_MS);
}
}
bool desktop_view_locked_is_locked_hint_visible(DesktopViewLocked* locked_view) {