Fix file browser sorting for good

This commit is contained in:
Willy-JL
2023-02-07 00:24:19 +00:00
parent e393285064
commit e98ad6fc2c
2 changed files with 13 additions and 3 deletions

View File

@@ -87,6 +87,9 @@ 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;
}
return furi_string_cmpi(a->path, b->path);
}

View File

@@ -78,11 +78,18 @@ static void BrowserItem_t_clear(BrowserItem_t* obj) {
static int BrowserItem_t_cmp(const BrowserItem_t* a, const BrowserItem_t* b) {
// Back indicator comes before everything, then folders, then all other files.
if((a->type == BrowserItemTypeBack) ||
(a->type == BrowserItemTypeFolder && b->type != BrowserItemTypeFolder &&
b->type != BrowserItemTypeBack)) {
if(a->type == BrowserItemTypeBack) {
return -1;
}
if(b->type == BrowserItemTypeBack) {
return 1;
}
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);
}