New loader stuff in api mismatch (app too new/old)

This commit is contained in:
Willy-JL
2023-09-16 19:31:45 +02:00
parent 4b2cc53280
commit c28901462f

View File

@@ -455,18 +455,21 @@ static LoaderStatus loader_start_external_app(
const FlipperApplicationManifest* manifest = const FlipperApplicationManifest* manifest =
flipper_application_get_manifest(loader->app.fap); flipper_application_get_manifest(loader->app.fap);
char buf[66]; bool app_newer = preload_res == FlipperApplicationPreloadStatusApiTooNew;
const char* header = app_newer ? "App Too New" : "App Too Old";
char text[63];
snprintf( snprintf(
buf, text,
66, sizeof(text),
"FAP: %i != FW: %i\nThis app might not work\nContinue anyways?", "APP:%i %c FW:%i\nThis app might not work\nContinue anyways?",
manifest->base.api_version.major, manifest->base.api_version.major,
app_newer ? '>' : '<',
firmware_api_interface->api_version_major); firmware_api_interface->api_version_major);
DialogMessage* message = dialog_message_alloc(); DialogMessage* message = dialog_message_alloc();
dialog_message_set_header(message, "API Mismatch", 64, 0, AlignCenter, AlignTop); dialog_message_set_header(message, header, 64, 0, AlignCenter, AlignTop);
dialog_message_set_buttons(message, "Cancel", NULL, "Continue"); dialog_message_set_buttons(message, "Cancel", NULL, "Continue");
dialog_message_set_text(message, buf, 64, 32, AlignCenter, AlignCenter); dialog_message_set_text(message, text, 64, 32, AlignCenter, AlignCenter);
DialogMessageButton res = DialogMessageButton res =
dialog_message_show(furi_record_open(RECORD_DIALOGS), message); dialog_message_show(furi_record_open(RECORD_DIALOGS), message);
dialog_message_free(message); dialog_message_free(message);