1
mirror of https://github.com/DarkFlippers/unleashed-firmware.git synced 2025-12-13 13:09:49 +04:00

Loader: Fix misplaced ApplicationBeforeLoad events

This commit is contained in:
WillyJL
2025-06-11 04:02:42 +01:00
parent f1f1a89204
commit 407e482566
2 changed files with 12 additions and 11 deletions

View File

@@ -654,10 +654,6 @@ static LoaderMessageLoaderStatusResult loader_do_start_by_name(
status.value = loader_make_success_status(error_message); status.value = loader_make_success_status(error_message);
status.error = LoaderStatusErrorUnknown; status.error = LoaderStatusErrorUnknown;
LoaderEvent event;
event.type = LoaderEventTypeApplicationBeforeLoad;
furi_pubsub_publish(loader->pubsub, &event);
do { do {
// check lock // check lock
if(loader_do_is_locked(loader)) { if(loader_do_is_locked(loader)) {
@@ -677,6 +673,17 @@ static LoaderMessageLoaderStatusResult loader_do_start_by_name(
break; break;
} }
// check Applications
if(strcmp(name, LOADER_APPLICATIONS_NAME) == 0) {
loader_do_applications_show(loader);
status.value = loader_make_success_status(error_message);
break;
}
LoaderEvent event;
event.type = LoaderEventTypeApplicationBeforeLoad;
furi_pubsub_publish(loader->pubsub, &event);
// check internal apps // check internal apps
{ {
const FlipperInternalApplication* app = loader_find_application_by_name(name); const FlipperInternalApplication* app = loader_find_application_by_name(name);
@@ -687,13 +694,6 @@ static LoaderMessageLoaderStatusResult loader_do_start_by_name(
} }
} }
// check Applications
if(strcmp(name, LOADER_APPLICATIONS_NAME) == 0) {
loader_do_applications_show(loader);
status.value = loader_make_success_status(error_message);
break;
}
// check External Applications // check External Applications
{ {
const char* path = loader_find_external_application_by_name(name); const char* path = loader_find_external_application_by_name(name);

View File

@@ -141,6 +141,7 @@ static void
} }
furi_pubsub_unsubscribe(loader_get_pubsub(app->loader), subscription); furi_pubsub_unsubscribe(loader_get_pubsub(app->loader), subscription);
furi_thread_flags_clear(APPLICATION_STOP_EVENT);
} }
static int32_t loader_applications_thread(void* p) { static int32_t loader_applications_thread(void* p) {