mirror of
https://github.com/DarkFlippers/unleashed-firmware.git
synced 2024-12-19 11:21:39 +03:00
Merge pull request #334 from Willy-JL/last-filebrowser-fixes
(Hopefully) last filebrowser fixes
This commit is contained in:
commit
0abb88842a
@ -74,7 +74,9 @@ static void archive_list_item_cb(
|
|||||||
browser->view,
|
browser->view,
|
||||||
ArchiveBrowserViewModel * model,
|
ArchiveBrowserViewModel * model,
|
||||||
{
|
{
|
||||||
files_array_sort(model->files);
|
if(model->item_cnt <= BROWSER_SORT_THRESHOLD) {
|
||||||
|
files_array_sort(model->files);
|
||||||
|
}
|
||||||
model->list_loading = false;
|
model->list_loading = false;
|
||||||
},
|
},
|
||||||
true);
|
true);
|
||||||
|
@ -398,15 +398,20 @@ static bool archive_view_input(InputEvent* event, void* context) {
|
|||||||
|
|
||||||
bool in_menu;
|
bool in_menu;
|
||||||
bool move_fav_mode;
|
bool move_fav_mode;
|
||||||
|
bool is_loading;
|
||||||
with_view_model(
|
with_view_model(
|
||||||
browser->view,
|
browser->view,
|
||||||
ArchiveBrowserViewModel * model,
|
ArchiveBrowserViewModel * model,
|
||||||
{
|
{
|
||||||
in_menu = model->menu;
|
in_menu = model->menu;
|
||||||
move_fav_mode = model->move_fav;
|
move_fav_mode = model->move_fav;
|
||||||
|
is_loading = model->folder_loading || model->list_loading;
|
||||||
},
|
},
|
||||||
false);
|
false);
|
||||||
|
|
||||||
|
if(is_loading) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if(in_menu) {
|
if(in_menu) {
|
||||||
if(event->type != InputTypeShort) {
|
if(event->type != InputTypeShort) {
|
||||||
return true; // RETURN
|
return true; // RETURN
|
||||||
|
@ -478,7 +478,7 @@ static void browser_list_item_cb(
|
|||||||
browser->view,
|
browser->view,
|
||||||
FileBrowserModel * model,
|
FileBrowserModel * model,
|
||||||
{
|
{
|
||||||
if(model->item_cnt < 430) {
|
if(model->item_cnt <= BROWSER_SORT_THRESHOLD) {
|
||||||
FuriString* selected = NULL;
|
FuriString* selected = NULL;
|
||||||
if(model->item_idx > 0) {
|
if(model->item_idx > 0) {
|
||||||
selected = furi_string_alloc_set(
|
selected = furi_string_alloc_set(
|
||||||
@ -646,7 +646,10 @@ static bool file_browser_view_input_callback(InputEvent* event, void* context) {
|
|||||||
bool is_loading = false;
|
bool is_loading = false;
|
||||||
|
|
||||||
with_view_model(
|
with_view_model(
|
||||||
browser->view, FileBrowserModel * model, { is_loading = model->folder_loading; }, false);
|
browser->view,
|
||||||
|
FileBrowserModel * model,
|
||||||
|
{ is_loading = model->folder_loading || model->list_loading; },
|
||||||
|
false);
|
||||||
|
|
||||||
if(is_loading) {
|
if(is_loading) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -418,7 +418,7 @@ static int32_t browser_worker(void* context) {
|
|||||||
if(flags & WorkerEvtLoad) {
|
if(flags & WorkerEvtLoad) {
|
||||||
FURI_LOG_D(
|
FURI_LOG_D(
|
||||||
TAG, "Load offset: %lu cnt: %lu", browser->load_offset, browser->load_count);
|
TAG, "Load offset: %lu cnt: %lu", browser->load_offset, browser->load_count);
|
||||||
if(items_cnt > 430) {
|
if(items_cnt > BROWSER_SORT_THRESHOLD) {
|
||||||
browser_folder_load_chunked(
|
browser_folder_load_chunked(
|
||||||
browser, path, browser->load_offset, browser->load_count);
|
browser, path, browser->load_offset, browser->load_count);
|
||||||
} else {
|
} else {
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define BROWSER_SORT_THRESHOLD 400
|
||||||
|
|
||||||
typedef struct BrowserWorker BrowserWorker;
|
typedef struct BrowserWorker BrowserWorker;
|
||||||
typedef void (*BrowserWorkerFolderOpenCallback)(
|
typedef void (*BrowserWorkerFolderOpenCallback)(
|
||||||
void* context,
|
void* context,
|
||||||
|
Loading…
Reference in New Issue
Block a user