Archive refactoring WIP (#688)
* view_dispatcher queue * refactoring, all works * scenes Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
@@ -5,44 +5,27 @@
|
||||
#include <furi.h>
|
||||
#include <gui/gui_i.h>
|
||||
#include <gui/view_dispatcher.h>
|
||||
#include <gui/scene_manager.h>
|
||||
#include <gui/modules/text_input.h>
|
||||
#include <loader/loader.h>
|
||||
|
||||
#include <m-string.h>
|
||||
#include <m-array.h>
|
||||
#include <storage/storage.h>
|
||||
#include "archive_views.h"
|
||||
#include "applications.h"
|
||||
#include "file-worker.h"
|
||||
|
||||
#define MAX_DEPTH 32
|
||||
#define MAX_FILES 100 //temp
|
||||
#include "views/archive_main_view.h"
|
||||
#include "scenes/archive_scene.h"
|
||||
|
||||
#define MAX_FILE_SIZE 128
|
||||
#define ARCHIVE_FAV_PATH "/any/favorites.txt"
|
||||
#define ARCHIVE_FAV_TEMP_PATH "/any/favorites.tmp"
|
||||
|
||||
typedef enum {
|
||||
ArchiveViewMain,
|
||||
ArchiveViewBrowser,
|
||||
ArchiveViewTextInput,
|
||||
ArchiveViewTotal,
|
||||
} ArchiveViewEnum;
|
||||
|
||||
static const char* flipper_app_name[] = {
|
||||
[ArchiveFileTypeIButton] = "iButton",
|
||||
[ArchiveFileTypeNFC] = "NFC",
|
||||
[ArchiveFileTypeSubGhz] = "Sub-GHz",
|
||||
[ArchiveFileTypeLFRFID] = "125 kHz RFID",
|
||||
[ArchiveFileTypeIrda] = "Infrared",
|
||||
};
|
||||
|
||||
static const char* known_ext[] = {
|
||||
[ArchiveFileTypeIButton] = ".ibtn",
|
||||
[ArchiveFileTypeNFC] = ".nfc",
|
||||
[ArchiveFileTypeSubGhz] = ".sub",
|
||||
[ArchiveFileTypeLFRFID] = ".rfid",
|
||||
[ArchiveFileTypeIrda] = ".ir",
|
||||
};
|
||||
|
||||
static const char* tab_default_paths[] = {
|
||||
[ArchiveTabFavorites] = "/any/favorites",
|
||||
[ArchiveTabIButton] = "/any/ibutton",
|
||||
@@ -53,23 +36,6 @@ static const char* tab_default_paths[] = {
|
||||
[ArchiveTabBrowser] = "/any",
|
||||
};
|
||||
|
||||
static inline const char* get_tab_ext(ArchiveTabEnum tab) {
|
||||
switch(tab) {
|
||||
case ArchiveTabIButton:
|
||||
return known_ext[ArchiveFileTypeIButton];
|
||||
case ArchiveTabNFC:
|
||||
return known_ext[ArchiveFileTypeNFC];
|
||||
case ArchiveTabSubGhz:
|
||||
return known_ext[ArchiveFileTypeSubGhz];
|
||||
case ArchiveTabLFRFID:
|
||||
return known_ext[ArchiveFileTypeLFRFID];
|
||||
case ArchiveTabIrda:
|
||||
return known_ext[ArchiveFileTypeIrda];
|
||||
default:
|
||||
return "*";
|
||||
}
|
||||
}
|
||||
|
||||
static inline const char* get_default_path(ArchiveFileTypeEnum type) {
|
||||
switch(type) {
|
||||
case ArchiveFileTypeIButton:
|
||||
@@ -104,35 +70,11 @@ typedef struct {
|
||||
EventType type;
|
||||
} AppEvent;
|
||||
|
||||
typedef enum {
|
||||
FavoritesCheck,
|
||||
FavoritesRead,
|
||||
FavoritesDelete,
|
||||
FavoritesRename,
|
||||
} FavActionsEnum;
|
||||
|
||||
typedef struct {
|
||||
ArchiveTabEnum tab_id;
|
||||
string_t name;
|
||||
string_t path;
|
||||
char text_input_buffer[MAX_NAME_LEN];
|
||||
|
||||
uint8_t depth;
|
||||
uint16_t last_idx[MAX_DEPTH];
|
||||
|
||||
bool menu;
|
||||
} ArchiveBrowser;
|
||||
|
||||
struct ArchiveApp {
|
||||
osMessageQueueId_t event_queue;
|
||||
FuriThread* app_thread;
|
||||
Loader* loader;
|
||||
Gui* gui;
|
||||
ViewDispatcher* view_dispatcher;
|
||||
View* view_archive_main;
|
||||
SceneManager* scene_manager;
|
||||
ArchiveMainView* main_view;
|
||||
TextInput* text_input;
|
||||
|
||||
Storage* api;
|
||||
FileWorker* file_worker;
|
||||
ArchiveBrowser browser;
|
||||
char text_store[MAX_NAME_LEN];
|
||||
};
|
||||
|
Reference in New Issue
Block a user