Add hidden files and internal tab settings

This commit is contained in:
Willy-JL
2023-06-05 00:39:52 +01:00
parent c4624ea209
commit 1e299c1b74
4 changed files with 61 additions and 7 deletions
@@ -471,10 +471,14 @@ void archive_switch_tab(ArchiveBrowserView* browser, InputKey key) {
browser->last_tab_switch_dir = key;
if(key == InputKeyLeft) {
tab = ((tab - 1) + ArchiveTabTotal) % ArchiveTabTotal;
} else {
tab = (tab + 1) % ArchiveTabTotal;
for(int i = 0; i < 2; i++) {
if(key == InputKeyLeft) {
tab = ((tab - 1) + ArchiveTabTotal) % ArchiveTabTotal;
} else {
tab = (tab + 1) % ArchiveTabTotal;
}
if(tab == ArchiveTabInternal && !XTREME_SETTINGS()->show_internal_tab) continue;
break;
}
browser->is_root = true;
@@ -503,14 +507,14 @@ void archive_switch_tab(ArchiveBrowserView* browser, InputKey key) {
bool hide_dot_files = !is_browser ? true :
tab == ArchiveTabInternal ?
false :
!furi_hal_rtc_is_flag_set(FuriHalRtcFlagDebug);
!XTREME_SETTINGS()->show_hidden_files;
archive_file_browser_set_path(
browser, browser->path, archive_get_tab_ext(tab), skip_assets, hide_dot_files);
tab_empty = false; // Empty check will be performed later
}
}
if((tab_empty) && (tab != ArchiveTabBrowser) && (tab != ArchiveTabInternal)) {
if(tab_empty && tab != ArchiveTabBrowser && tab != ArchiveTabInternal) {
archive_switch_tab(browser, key);
} else {
with_view_model(
@@ -2,6 +2,8 @@
enum VarItemListIndex {
VarItemListIndexSortDirsFirst,
VarItemListIndexShowHiddenFiles,
VarItemListIndexShowInternalTab,
VarItemListIndexFavoriteTimeout,
};
@@ -18,6 +20,22 @@ static void xtreme_app_scene_interface_filebrowser_sort_dirs_first_changed(Varia
app->save_settings = true;
}
static void xtreme_app_scene_interface_filebrowser_show_hidden_files_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
bool value = variable_item_get_current_value_index(item);
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
XTREME_SETTINGS()->show_hidden_files = value;
app->save_settings = true;
}
static void xtreme_app_scene_interface_filebrowser_show_internal_tab_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
bool value = variable_item_get_current_value_index(item);
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
XTREME_SETTINGS()->show_internal_tab = value;
app->save_settings = true;
}
static void xtreme_app_scene_interface_filebrowser_favorite_timeout_changed(VariableItem* item) {
XtremeApp* app = variable_item_get_context(item);
uint32_t value = variable_item_get_current_value_index(item);
@@ -43,6 +61,24 @@ void xtreme_app_scene_interface_filebrowser_on_enter(void* context) {
variable_item_set_current_value_index(item, xtreme_settings->sort_dirs_first);
variable_item_set_current_value_text(item, xtreme_settings->sort_dirs_first ? "ON" : "OFF");
item = variable_item_list_add(
var_item_list,
"Show Hidden Files",
2,
xtreme_app_scene_interface_filebrowser_show_hidden_files_changed,
app);
variable_item_set_current_value_index(item, xtreme_settings->show_hidden_files);
variable_item_set_current_value_text(item, xtreme_settings->show_hidden_files ? "ON" : "OFF");
item = variable_item_list_add(
var_item_list,
"Show Internal Tab",
2,
xtreme_app_scene_interface_filebrowser_show_internal_tab_changed,
app);
variable_item_set_current_value_index(item, xtreme_settings->show_internal_tab);
variable_item_set_current_value_text(item, xtreme_settings->show_internal_tab ? "ON" : "OFF");
item = variable_item_list_add(
var_item_list,
"Favorite Timeout",
+13 -1
View File
@@ -6,7 +6,7 @@
#define TAG "XtremeSettings"
XtremeSettings xtreme_settings = {
.asset_pack = "",
.asset_pack = "", // SFW
.anim_speed = 100, // 100%
.cycle_anims = 0, // Meta.txt
.unlock_anims = false, // OFF
@@ -24,6 +24,8 @@ XtremeSettings xtreme_settings = {
.bar_borders = true, // ON
.bar_background = false, // OFF
.sort_dirs_first = true, // ON
.show_hidden_files = false, // OFF
.show_internal_tab = false, // OFF
.favorite_timeout = 0, // OFF
.bad_bt = false, // USB
.bad_bt_remember = false, // OFF
@@ -117,6 +119,14 @@ void XTREME_SETTINGS_LOAD() {
x->sort_dirs_first = b;
}
flipper_format_rewind(file);
if(flipper_format_read_bool(file, "show_hidden_files", &b, 1)) {
x->show_hidden_files = b;
}
flipper_format_rewind(file);
if(flipper_format_read_bool(file, "show_internal_tab", &b, 1)) {
x->show_internal_tab = b;
}
flipper_format_rewind(file);
if(flipper_format_read_uint32(file, "favorite_timeout", &u, 1)) {
x->favorite_timeout = CLAMP(u, 60U, 0U);
}
@@ -174,6 +184,8 @@ void XTREME_SETTINGS_SAVE() {
flipper_format_write_bool(file, "bar_borders", &x->bar_borders, 1);
flipper_format_write_bool(file, "bar_background", &x->bar_background, 1);
flipper_format_write_bool(file, "sort_dirs_first", &x->sort_dirs_first, 1);
flipper_format_write_bool(file, "show_hidden_files", &x->show_hidden_files, 1);
flipper_format_write_bool(file, "show_internal_tab", &x->show_internal_tab, 1);
flipper_format_write_uint32(file, "favorite_timeout", &x->favorite_timeout, 1);
flipper_format_write_bool(file, "bad_bt", &x->bad_bt, 1);
flipper_format_write_bool(file, "bad_bt_remember", &x->bad_bt_remember, 1);
+2
View File
@@ -33,6 +33,8 @@ typedef struct {
bool bar_borders;
bool bar_background;
bool sort_dirs_first;
bool show_hidden_files;
bool show_internal_tab;
uint32_t favorite_timeout;
bool bad_bt;
bool bad_bt_remember;