mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-12-11 06:02:00 -05:00
Hide unwanted apps by naming them in SETTINGS/blacklist file (#1502)
* Add files via upload * Add files via upload * Add files via upload * Add files via upload * Changed some app name strings for blacklist
This commit is contained in:
parent
6ed83c08e3
commit
411e2fb93a
3 changed files with 42 additions and 6 deletions
|
|
@ -110,16 +110,18 @@ void BtnGridView::clear() {
|
|||
|
||||
void BtnGridView::add_items(std::initializer_list<GridItem> new_items) {
|
||||
for (auto item : new_items) {
|
||||
menu_items.push_back(item);
|
||||
if (!blacklisted_app(item))
|
||||
menu_items.push_back(item);
|
||||
}
|
||||
|
||||
update_items();
|
||||
}
|
||||
|
||||
void BtnGridView::add_item(GridItem new_item) {
|
||||
menu_items.push_back(new_item);
|
||||
|
||||
update_items();
|
||||
if (!blacklisted_app(new_item)) {
|
||||
menu_items.push_back(new_item);
|
||||
update_items();
|
||||
}
|
||||
}
|
||||
|
||||
void BtnGridView::update_items() {
|
||||
|
|
@ -232,4 +234,30 @@ bool BtnGridView::on_encoder(const EncoderEvent event) {
|
|||
return set_highlighted(highlighted_item + event);
|
||||
}
|
||||
|
||||
/* BlackList ******************************************************/
|
||||
|
||||
std::unique_ptr<char> blacklist_ptr{};
|
||||
size_t blacklist_len{};
|
||||
|
||||
void load_blacklist() {
|
||||
File f;
|
||||
|
||||
auto error = f.open(BLACKLIST);
|
||||
if (error)
|
||||
return;
|
||||
|
||||
blacklist_ptr = std::unique_ptr<char>(new char[f.size()]);
|
||||
if (f.read(blacklist_ptr.get(), f.size()))
|
||||
blacklist_len = f.size();
|
||||
}
|
||||
|
||||
bool BtnGridView::blacklisted_app(GridItem new_item) {
|
||||
std::string app_name = new_item.text;
|
||||
|
||||
if (blacklist_len < app_name.size())
|
||||
return false;
|
||||
|
||||
return std::search(blacklist_ptr.get(), blacklist_ptr.get() + blacklist_len, app_name.begin(), app_name.end()) < blacklist_ptr.get() + blacklist_len;
|
||||
}
|
||||
|
||||
} /* namespace ui */
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
// file used for listing apps to hide from menu
|
||||
#define BLACKLIST u"/SETTINGS/blacklist"
|
||||
|
||||
namespace ui {
|
||||
|
||||
struct GridItem {
|
||||
|
|
@ -47,6 +50,8 @@ struct GridItem {
|
|||
// TODO: Prevent default-constructed GridItems.
|
||||
};
|
||||
|
||||
void load_blacklist();
|
||||
|
||||
class BtnGridView : public View {
|
||||
public:
|
||||
BtnGridView(Rect new_parent_rect = {0, 0, 240, 304}, bool keep_highlight = false);
|
||||
|
|
@ -70,6 +75,7 @@ class BtnGridView : public View {
|
|||
void on_blur() override;
|
||||
bool on_key(const KeyEvent event) override;
|
||||
bool on_encoder(const EncoderEvent event) override;
|
||||
bool blacklisted_app(GridItem new_item);
|
||||
|
||||
private:
|
||||
int rows_{3};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue