move the no ext app tile to forward (#2047)

* strong notice of missing ext app

* textual

* move the notice tile to front and remove the painter string

* remove notice icon

* format

* for back button

* remove <>
This commit is contained in:
set sail into the sea of life 2024-03-29 10:05:09 +08:00 committed by GitHub
parent 2e1e02baac
commit 90ff1e62ce
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 26 additions and 10 deletions

View File

@ -4,6 +4,7 @@
* Copyright (C) 2019 Elia Yehuda (z4ziggy) * Copyright (C) 2019 Elia Yehuda (z4ziggy)
* Copyright (C) 2023 Mark Thompson * Copyright (C) 2023 Mark Thompson
* Copyright (C) 2024 u-foka * Copyright (C) 2024 u-foka
* Copyleft () 2024 zxkmm with the GPL license
* *
* This file is part of PortaPack. * This file is part of PortaPack.
* *
@ -133,6 +134,19 @@ void BtnGridView::add_item(GridItem new_item) {
} }
} }
void BtnGridView::insert_item(GridItem new_item, uint8_t position) {
if (!blacklisted_app(new_item)) {
if (position < menu_items.size()) {
auto pos_iter = menu_items.begin() + position;
menu_items.insert(pos_iter, new_item);
update_items();
} else {
menu_items.push_back(new_item);
update_items();
}
}
}
void BtnGridView::update_items() { void BtnGridView::update_items() {
size_t i = 0; size_t i = 0;
Color bg_color = portapack::persistent_memory::menu_color(); Color bg_color = portapack::persistent_memory::menu_color();

View File

@ -61,6 +61,7 @@ class BtnGridView : public View {
void add_items(std::initializer_list<GridItem> new_items); void add_items(std::initializer_list<GridItem> new_items);
void add_item(GridItem new_item); void add_item(GridItem new_item);
void insert_item(GridItem new_item, uint8_t position);
void set_max_rows(int rows); void set_max_rows(int rows);
int rows(); int rows();
void clear(); void clear();

View File

@ -723,16 +723,17 @@ static void add_apps(NavigationView& nav, BtnGridView& grid, app_location_t loc)
void addExternalItems(NavigationView& nav, app_location_t location, BtnGridView& grid) { void addExternalItems(NavigationView& nav, app_location_t location, BtnGridView& grid) {
auto externalItems = ExternalItemsMenuLoader::load_external_items(location, nav); auto externalItems = ExternalItemsMenuLoader::load_external_items(location, nav);
if (externalItems.empty()) { if (externalItems.empty()) {
grid.add_item({"Notice", grid.insert_item({"Notice!",
Color::red(), Color::red(),
&bitmap_icon_debug, nullptr,
[&nav]() { [&nav]() {
nav.display_modal( nav.display_modal(
"Notice", "Notice",
"External app directory empty;\n" "External app directory empty;\n"
"see Mayhem wiki and copy apps\n" "see Mayhem wiki and copy apps\n"
"to " + apps_dir.string() + " folder of SD card."); "to " + apps_dir.string() + " folder of SD card.");
}}); }},
pmem::show_gui_return_icon() ? 1 : 0);
} else { } else {
for (auto const& gridItem : externalItems) { for (auto const& gridItem : externalItems) {
grid.add_item(gridItem); grid.add_item(gridItem);