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) 2023 Mark Thompson
* Copyright (C) 2024 u-foka
* Copyleft () 2024 zxkmm with the GPL license
*
* 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() {
size_t i = 0;
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_item(GridItem new_item);
void insert_item(GridItem new_item, uint8_t position);
void set_max_rows(int rows);
int rows();
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) {
auto externalItems = ExternalItemsMenuLoader::load_external_items(location, nav);
if (externalItems.empty()) {
grid.add_item({"Notice",
Color::red(),
&bitmap_icon_debug,
[&nav]() {
nav.display_modal(
"Notice",
"External app directory empty;\n"
"see Mayhem wiki and copy apps\n"
"to " + apps_dir.string() + " folder of SD card.");
}});
grid.insert_item({"Notice!",
Color::red(),
nullptr,
[&nav]() {
nav.display_modal(
"Notice",
"External app directory empty;\n"
"see Mayhem wiki and copy apps\n"
"to " + apps_dir.string() + " folder of SD card.");
}},
pmem::show_gui_return_icon() ? 1 : 0);
} else {
for (auto const& gridItem : externalItems) {
grid.add_item(gridItem);