Skip to content

Commit

Permalink
autostart fix 2 (#2331)
Browse files Browse the repository at this point in the history
  • Loading branch information
zxkmm authored Nov 2, 2024
1 parent d5296c6 commit 5bb23b6
Showing 1 changed file with 22 additions and 11 deletions.
33 changes: 22 additions & 11 deletions firmware/application/ui_navigation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -725,20 +725,31 @@ void NavigationView::handle_autostart() {
{{"autostart_app"sv, &autostart_app}}};
if (!autostart_app.empty()) {
bool app_started = false;

// try innerapp
// inner app
if (StartAppByName(autostart_app.c_str())) {
app_started = true;
} else {
// try outside app
auto external_items = ExternalItemsMenuLoader::load_external_items(app_location_t::HOME, *this);
for (const auto& item : external_items) {
if (item.text == autostart_app) {
item.on_select();
app_started = true;
break;
}
return;
}

// lambda
auto execute_app = [=](const std::string& extension) { // TODO: capture ref aka [&] would also lagging th GUI, no idea why
std::string appwithpath = "/" + apps_dir.string() + "/" + autostart_app + extension;
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> conv;
std::filesystem::path pth = conv.from_bytes(appwithpath.c_str());
if (ui::ExternalItemsMenuLoader::run_external_app(*this, pth)) {
return true;
}
return false;
};

// outside app
if (!app_started) {
app_started = execute_app(".ppma");
}

// standalone app
if (!app_started) {
app_started = execute_app(".ppmp");
}

if (!app_started) {
Expand Down

0 comments on commit 5bb23b6

Please sign in to comment.