mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-06-07 19:01:54 -07:00
Add xfw setting for sort dirs before files
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include <m-string.h>
|
||||
#include <storage/storage.h>
|
||||
#include "toolbox/path.h"
|
||||
#include "../../../settings/xtreme_settings/xtreme_settings.h"
|
||||
|
||||
#define FAP_MANIFEST_MAX_ICON_SIZE 32
|
||||
|
||||
@@ -84,11 +85,13 @@ static void ArchiveFile_t_clear(ArchiveFile_t* obj) {
|
||||
}
|
||||
|
||||
static int ArchiveFile_t_cmp(const ArchiveFile_t* a, const ArchiveFile_t* b) {
|
||||
if(a->type == ArchiveFileTypeFolder && b->type != ArchiveFileTypeFolder) {
|
||||
return -1;
|
||||
}
|
||||
if(a->type != ArchiveFileTypeFolder && b->type == ArchiveFileTypeFolder) {
|
||||
return 1;
|
||||
if(!XTREME_SETTINGS()->sort_ignore_dirs) {
|
||||
if(a->type == ArchiveFileTypeFolder && b->type != ArchiveFileTypeFolder) {
|
||||
return -1;
|
||||
}
|
||||
if(a->type != ArchiveFileTypeFolder && b->type == ArchiveFileTypeFolder) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return furi_string_cmpi(a->path, b->path);
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <gui/elements.h>
|
||||
#include <furi.h>
|
||||
#include "toolbox/path.h"
|
||||
#include "../../../settings/xtreme_settings/xtreme_settings.h"
|
||||
|
||||
#define LIST_ITEMS 5u
|
||||
#define MAX_LEN_PX 110
|
||||
@@ -84,11 +85,13 @@ static int BrowserItem_t_cmp(const BrowserItem_t* a, const BrowserItem_t* b) {
|
||||
if(b->type == BrowserItemTypeBack) {
|
||||
return 1;
|
||||
}
|
||||
if(a->type == BrowserItemTypeFolder && b->type != BrowserItemTypeFolder) {
|
||||
return -1;
|
||||
}
|
||||
if(a->type != BrowserItemTypeFolder && b->type == BrowserItemTypeFolder) {
|
||||
return 1;
|
||||
if(!XTREME_SETTINGS()->sort_ignore_dirs) {
|
||||
if(a->type == BrowserItemTypeFolder && b->type != BrowserItemTypeFolder) {
|
||||
return -1;
|
||||
}
|
||||
if(a->type != BrowserItemTypeFolder && b->type == BrowserItemTypeFolder) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return furi_string_cmpi(a->path, b->path);
|
||||
|
||||
@@ -87,6 +87,14 @@ static void xtreme_settings_scene_start_battery_style_changed(VariableItem* item
|
||||
app->settings_changed = true;
|
||||
}
|
||||
|
||||
static void xtreme_settings_scene_start_sort_folders_before_changed(VariableItem* item) {
|
||||
XtremeSettingsApp* 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()->sort_ignore_dirs = !value;
|
||||
app->settings_changed = true;
|
||||
}
|
||||
|
||||
static void xtreme_settings_scene_start_xp_level_changed(VariableItem* item) {
|
||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
||||
app->dolphin_level = variable_item_get_current_value_index(item) + 1;
|
||||
@@ -219,6 +227,11 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
||||
variable_item_set_current_value_index(item, value_index);
|
||||
variable_item_set_current_value_text(item, battery_style_names[value_index]);
|
||||
|
||||
item = variable_item_list_add(
|
||||
var_item_list, "Sort folders before", 2, xtreme_settings_scene_start_sort_folders_before_changed, app);
|
||||
variable_item_set_current_value_index(item, !xtreme_settings->sort_ignore_dirs);
|
||||
variable_item_set_current_value_text(item, !xtreme_settings->sort_ignore_dirs ? "ON" : "OFF");
|
||||
|
||||
char level_str[4];
|
||||
snprintf(level_str, 4, "%i", app->dolphin_level);
|
||||
item = variable_item_list_add(
|
||||
|
||||
@@ -22,6 +22,7 @@ typedef struct {
|
||||
char asset_pack[MAX_PACK_NAME_LEN];
|
||||
BatteryStyle battery_style;
|
||||
uint16_t anim_speed;
|
||||
bool sort_ignore_dirs;
|
||||
} XtremeSettings;
|
||||
|
||||
XtremeSettings* XTREME_SETTINGS();
|
||||
|
||||
Reference in New Issue
Block a user