diff --git a/applications/services/desktop/desktop_settings.h b/applications/services/desktop/desktop_settings.h index 784b1eeba..6f81d99cb 100644 --- a/applications/services/desktop/desktop_settings.h +++ b/applications/services/desktop/desktop_settings.h @@ -14,6 +14,7 @@ typedef enum { FavoriteAppLeftLong, FavoriteAppRightShort, FavoriteAppRightLong, + FavoriteAppOkLong, FavoriteAppNumber, } FavoriteAppShortcut; diff --git a/applications/services/desktop/scenes/desktop_scene_main.c b/applications/services/desktop/scenes/desktop_scene_main.c index 4fdcc3400..b329cc16d 100644 --- a/applications/services/desktop/scenes/desktop_scene_main.c +++ b/applications/services/desktop/scenes/desktop_scene_main.c @@ -174,6 +174,11 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) { desktop, &desktop->settings.favorite_apps[FavoriteAppRightLong]); consumed = true; break; + case DesktopMainEventOpenFavoriteOkLong: + desktop_scene_main_start_favorite( + desktop, &desktop->settings.favorite_apps[FavoriteAppOkLong]); + consumed = true; + break; case DesktopAnimationEventCheckAnimation: animation_manager_check_blocking_process(desktop->animation_manager); diff --git a/applications/services/desktop/views/desktop_events.h b/applications/services/desktop/views/desktop_events.h index ba91a30cc..8eeea00e2 100644 --- a/applications/services/desktop/views/desktop_events.h +++ b/applications/services/desktop/views/desktop_events.h @@ -8,6 +8,7 @@ typedef enum { DesktopMainEventOpenFavoriteLeftLong, DesktopMainEventOpenFavoriteRightShort, DesktopMainEventOpenFavoriteRightLong, + DesktopMainEventOpenFavoriteOkLong, DesktopMainEventOpenMenu, DesktopMainEventOpenDebug, DesktopMainEventOpenPowerOff, diff --git a/applications/services/desktop/views/desktop_view_main.c b/applications/services/desktop/views/desktop_view_main.c index 57cfa1a3e..9ea144364 100644 --- a/applications/services/desktop/views/desktop_view_main.c +++ b/applications/services/desktop/views/desktop_view_main.c @@ -74,6 +74,7 @@ bool desktop_main_input_callback(InputEvent* event, void* context) { if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagDebug)) { main_view->callback(DesktopAnimationEventNewIdleAnimation, main_view->context); } + main_view->callback(DesktopMainEventOpenFavoriteOkLong, main_view->context); } } } else { 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 dfcac3eed..8555bbf71 100644 --- a/applications/settings/desktop_settings/scenes/desktop_settings_scene_start.c +++ b/applications/settings/desktop_settings/scenes/desktop_settings_scene_start.c @@ -18,6 +18,7 @@ typedef enum { DesktopSettingsFavoriteLeftLong, DesktopSettingsFavoriteRightShort, DesktopSettingsFavoriteRightLong, + DesktopSettingsFavoriteOkLong, DesktopSettingsDummyLeft, DesktopSettingsDummyLeftLong, DesktopSettingsDummyRight, @@ -182,6 +183,7 @@ void desktop_settings_scene_start_on_enter(void* context) { variable_item_list_add(variable_item_list, "Favorite App - Left Long", 1, NULL, NULL); variable_item_list_add(variable_item_list, "Favorite App - Right Short", 1, NULL, NULL); variable_item_list_add(variable_item_list, "Favorite App - Right Long", 1, NULL, NULL); + variable_item_list_add(variable_item_list, "Favorite App - Ok Long", 1, NULL, NULL); variable_item_list_add(variable_item_list, "DummyMode - Left", 1, NULL, NULL); variable_item_list_add(variable_item_list, "DummyMode - Left Long", 1, NULL, NULL); @@ -246,6 +248,13 @@ bool desktop_settings_scene_start_on_event(void* context, SceneManagerEvent even SCENE_STATE_SET_FAVORITE_APP | FavoriteAppRightLong); scene_manager_next_scene(app->scene_manager, DesktopSettingsAppSceneFavorite); break; + case DesktopSettingsFavoriteOkLong: + scene_manager_set_scene_state( + app->scene_manager, + DesktopSettingsAppSceneFavorite, + SCENE_STATE_SET_FAVORITE_APP | FavoriteAppOkLong); + scene_manager_next_scene(app->scene_manager, DesktopSettingsAppSceneFavorite); + break; case DesktopSettingsDummyLeft: scene_manager_set_scene_state(