From cb58ec1896543b49e86a88875a849a71df626032 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Tue, 28 Mar 2023 02:33:44 +0100 Subject: [PATCH] Xfw app fix crash on load own fap manifest --- .../scenes/xtreme_app_scene_interface_mainmenu_add.c | 3 ++- applications/main/xtreme_app/xtreme_app.c | 1 + applications/main/xtreme_app/xtreme_app.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_mainmenu_add.c b/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_mainmenu_add.c index 57fa78090..cc866ce00 100644 --- a/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_mainmenu_add.c +++ b/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_mainmenu_add.c @@ -9,7 +9,8 @@ static bool xtreme_app_scene_interface_mainmenu_add_file_browser_callback( void* context, uint8_t** icon_ptr, FuriString* item_name) { - UNUSED(context); + XtremeApp* app = context; + if(furi_string_end_with(file_path, app->fap_name)) return false; Storage* storage = furi_record_open(RECORD_STORAGE); bool success = fap_loader_load_name_and_icon(file_path, storage, icon_ptr, item_name); furi_record_close(RECORD_STORAGE); diff --git a/applications/main/xtreme_app/xtreme_app.c b/applications/main/xtreme_app/xtreme_app.c index d392568ec..68d017d40 100644 --- a/applications/main/xtreme_app/xtreme_app.c +++ b/applications/main/xtreme_app/xtreme_app.c @@ -315,6 +315,7 @@ void xtreme_app_free(XtremeApp* app) { extern int32_t xtreme_app(void* p) { UNUSED(p); XtremeApp* app = xtreme_app_alloc(); + snprintf(app->fap_name, 32, "%s.fap", furi_thread_get_appid(furi_thread_get_current_id())); scene_manager_next_scene(app->scene_manager, XtremeAppSceneStart); view_dispatcher_run(app->view_dispatcher); xtreme_app_free(app); diff --git a/applications/main/xtreme_app/xtreme_app.h b/applications/main/xtreme_app/xtreme_app.h index 39f99b6c3..c8eab0150 100644 --- a/applications/main/xtreme_app/xtreme_app.h +++ b/applications/main/xtreme_app/xtreme_app.h @@ -31,6 +31,7 @@ ARRAY_DEF(CharList, char*) typedef struct { + char fap_name[32]; Gui* gui; DialogsApp* dialogs; NotificationApp* notification;