mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2025-12-12 12:42:30 +04:00
Merge pull request #905 from WillyJL/fix/loader-events
Loader: Fix misplaced ApplicationBeforeLoad events
This commit is contained in:
@@ -654,10 +654,6 @@ static LoaderMessageLoaderStatusResult loader_do_start_by_name(
|
||||
status.value = loader_make_success_status(error_message);
|
||||
status.error = LoaderStatusErrorUnknown;
|
||||
|
||||
LoaderEvent event;
|
||||
event.type = LoaderEventTypeApplicationBeforeLoad;
|
||||
furi_pubsub_publish(loader->pubsub, &event);
|
||||
|
||||
do {
|
||||
// check lock
|
||||
if(loader_do_is_locked(loader)) {
|
||||
@@ -677,6 +673,17 @@ static LoaderMessageLoaderStatusResult loader_do_start_by_name(
|
||||
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
|
||||
{
|
||||
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
|
||||
{
|
||||
const char* path = loader_find_external_application_by_name(name);
|
||||
|
||||
@@ -141,6 +141,7 @@ static void
|
||||
}
|
||||
|
||||
furi_pubsub_unsubscribe(loader_get_pubsub(app->loader), subscription);
|
||||
furi_thread_flags_clear(APPLICATION_STOP_EVENT);
|
||||
}
|
||||
|
||||
static int32_t loader_applications_thread(void* p) {
|
||||
|
||||
@@ -487,9 +487,7 @@ static void power_loader_callback(const void* message, void* context) {
|
||||
power->app_running = true;
|
||||
power_auto_poweroff_disarm(power);
|
||||
// arm timer if some apps was not loaded or was stoped
|
||||
} else if(
|
||||
event->type == LoaderEventTypeApplicationLoadFailed ||
|
||||
event->type == LoaderEventTypeApplicationStopped) {
|
||||
} else if(event->type == LoaderEventTypeNoMoreAppsInQueue) {
|
||||
power->app_running = false;
|
||||
power_auto_poweroff_arm(power);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user