Skip to content

Commit f5592ca

Browse files
committed
Changed is_dir to Icon in FileListItem
- File list now accounts for `.js` files and uses correct icon
1 parent 4afb86b commit f5592ca

1 file changed

Lines changed: 9 additions & 10 deletions

File tree

applications/services/gui/modules/widget_elements/widget_element_file_list.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
#include <gui/elements.h>
55
#include <core/common_defines.h>
66
#include "archive/archive_i.h"
7+
#include "assets_icons.h"
78

89
typedef struct {
910
FuriString* name;
10-
bool is_dir;
11+
const Icon* icon;
1112
} FileListItem;
1213

1314
typedef struct {
@@ -30,10 +31,7 @@ static void widget_element_file_list_draw(Canvas* canvas, WidgetElement* element
3031
size_t idx = model->offset + i;
3132
if(idx < model->count) {
3233
canvas_draw_icon(
33-
canvas,
34-
model->x + 2,
35-
model->y + (i * FRAME_HEIGHT) - 9,
36-
model->files[idx].is_dir ? &I_dir_10px : &I_unknown_10px);
34+
canvas, model->x + 2, model->y + (i * FRAME_HEIGHT) - 9, model->files[idx].icon);
3735
canvas_draw_str(
3836
canvas,
3937
model->x + 15,
@@ -99,13 +97,14 @@ WidgetElement* widget_element_file_list_create(
9997
model->files = malloc(sizeof(FileListItem) * count);
10098
Storage* storage = furi_record_open(RECORD_STORAGE);
10199
for(size_t i = 0; i < count; i++) {
102-
FileInfo fileinfo;
103100
model->files[i].name = furi_string_alloc();
104101
path_extract_filename(files[i], model->files[i].name, false);
105-
model->files[i].is_dir = false;
106-
107-
if(storage_common_stat(storage, furi_string_get_cstr(files[i]), &fileinfo) == FSE_OK) {
108-
model->files[i].is_dir = file_info_is_dir(&fileinfo);
102+
if(storage_dir_exists(storage, furi_string_get_cstr(files[i]))) {
103+
model->files[i].icon = &I_dir_10px;
104+
} else {
105+
const char* ext = strrchr(furi_string_get_cstr(model->files[i].name), '.');
106+
model->files[i].icon = (ext && strcasecmp(ext, ".js") == 0) ? &I_js_script_10px :
107+
&I_unknown_10px;
109108
}
110109
}
111110
furi_record_close(RECORD_STORAGE);

0 commit comments

Comments
 (0)