Merge pull request #449 from flipperdevices/aku/browser_navigation

Aku/browser navigation
This commit is contained in:
RogueMaster
2022-11-26 01:25:36 -05:00
committed by GitHub
3 changed files with 8 additions and 6 deletions

View File

@@ -271,8 +271,7 @@ void archive_file_array_load(ArchiveBrowserView* browser, int8_t dir) {
offset_new = model->item_idx - FILE_LIST_BUF_LEN / 4 * 1; offset_new = model->item_idx - FILE_LIST_BUF_LEN / 4 * 1;
} }
if(offset_new > 0) { if(offset_new > 0) {
offset_new = offset_new = CLAMP(offset_new, (int32_t)model->item_cnt, 0);
CLAMP(offset_new, (int32_t)model->item_cnt - FILE_LIST_BUF_LEN, 0);
} else { } else {
offset_new = 0; offset_new = 0;
} }

View File

@@ -5,7 +5,7 @@
#define TAB_RIGHT InputKeyRight // Default tab swith direction #define TAB_RIGHT InputKeyRight // Default tab swith direction
#define TAB_DEFAULT ArchiveTabFavorites // Start tab #define TAB_DEFAULT ArchiveTabFavorites // Start tab
#define FILE_LIST_BUF_LEN 100 #define FILE_LIST_BUF_LEN 50
static const char* tab_default_paths[] = { static const char* tab_default_paths[] = {
[ArchiveTabFavorites] = "/app:favorites", [ArchiveTabFavorites] = "/app:favorites",

View File

@@ -250,7 +250,10 @@ static bool browser_is_item_in_array(FileBrowserModel* model, uint32_t idx) {
static bool browser_is_list_load_required(FileBrowserModel* model) { static bool browser_is_list_load_required(FileBrowserModel* model) {
size_t array_size = items_array_size(model->items); size_t array_size = items_array_size(model->items);
uint32_t item_cnt = (model->is_root) ? model->item_cnt : model->item_cnt - 1; if((array_size > 0) && (!model->is_root) && (model->array_offset == 0)) {
array_size--;
}
uint32_t item_cnt = (model->is_root) ? (model->item_cnt) : (model->item_cnt - 1);
if((model->list_loading) || (array_size >= item_cnt)) { if((model->list_loading) || (array_size >= item_cnt)) {
return false; return false;
@@ -548,7 +551,7 @@ static bool file_browser_view_input_callback(InputEvent* event, void* context) {
model->list_loading = true; model->list_loading = true;
int32_t load_offset = CLAMP( int32_t load_offset = CLAMP(
model->item_idx - ITEM_LIST_LEN_MAX / 4 * 3, model->item_idx - ITEM_LIST_LEN_MAX / 4 * 3,
(int32_t)model->item_cnt - ITEM_LIST_LEN_MAX, (int32_t)model->item_cnt,
0); 0);
file_browser_worker_load( file_browser_worker_load(
browser->worker, load_offset, ITEM_LIST_LEN_MAX); browser->worker, load_offset, ITEM_LIST_LEN_MAX);
@@ -559,7 +562,7 @@ static bool file_browser_view_input_callback(InputEvent* event, void* context) {
model->list_loading = true; model->list_loading = true;
int32_t load_offset = CLAMP( int32_t load_offset = CLAMP(
model->item_idx - ITEM_LIST_LEN_MAX / 4 * 1, model->item_idx - ITEM_LIST_LEN_MAX / 4 * 1,
(int32_t)model->item_cnt - ITEM_LIST_LEN_MAX, (int32_t)model->item_cnt,
0); 0);
file_browser_worker_load( file_browser_worker_load(
browser->worker, load_offset, ITEM_LIST_LEN_MAX); browser->worker, load_offset, ITEM_LIST_LEN_MAX);