[FL-3055] Getter for application data path (#2181)
* Threads: application id * Unit tests: appsdata getter test * Unit tests: moar test cases for appsdata getter * Unit tests: remove folders after test * Storage: dir_is_exist, migrate, + unit_tests * Plugins: migration * Storage: common_exists, moar unit_tests 4 "common_migrate", "common_migrate" and "common_merge" bugfixes * Storage: use FuriString for path handling * Storage API: send caller thread id with path * Storage: remove StorageType field in storage file list * Storage: simplify processing * Storage API: send caller thread id with path everywhere * Storage: /app alias, unit tests and path creation * Storage, path helper: remove unused * Examples: app data example * App plugins: use new VFS path * Storage: file_info_is_dir * Services: handle alias if the service accepts a path. * App plugins: fixes * Make PVS happy * Storage: fix storage_merge_recursive * Storage: rename process_aliases to resolve_path. Rename APPS_DATA to APP_DATA. * Apps: use predefined macro instead of raw paths. Example Apps Data: README fixes. * Storage: rename storage_common_resolve_path to storage_common_resolve_path_and_ensure_app_directory * Api: fix version * Storage: rename alias message * Storage: do not create app folders in path resolving process in certain cases. --------- Co-authored-by: Astra <93453568+Astrrra@users.noreply.github.com> Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
This commit is contained in:
@@ -11,6 +11,7 @@ typedef struct {
|
||||
const char* path;
|
||||
FS_AccessMode access_mode;
|
||||
FS_OpenMode open_mode;
|
||||
FuriThreadId thread_id;
|
||||
} SADataFOpen;
|
||||
|
||||
typedef struct {
|
||||
@@ -34,6 +35,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
File* file;
|
||||
const char* path;
|
||||
FuriThreadId thread_id;
|
||||
} SADataDOpen;
|
||||
|
||||
typedef struct {
|
||||
@@ -46,25 +48,34 @@ typedef struct {
|
||||
typedef struct {
|
||||
const char* path;
|
||||
uint32_t* timestamp;
|
||||
FuriThreadId thread_id;
|
||||
} SADataCTimestamp;
|
||||
|
||||
typedef struct {
|
||||
const char* path;
|
||||
FileInfo* fileinfo;
|
||||
FuriThreadId thread_id;
|
||||
} SADataCStat;
|
||||
|
||||
typedef struct {
|
||||
const char* fs_path;
|
||||
uint64_t* total_space;
|
||||
uint64_t* free_space;
|
||||
FuriThreadId thread_id;
|
||||
} SADataCFSInfo;
|
||||
|
||||
typedef struct {
|
||||
FuriString* path;
|
||||
FuriThreadId thread_id;
|
||||
} SADataCResolvePath;
|
||||
|
||||
typedef struct {
|
||||
uint32_t id;
|
||||
} SADataError;
|
||||
|
||||
typedef struct {
|
||||
const char* path;
|
||||
FuriThreadId thread_id;
|
||||
} SADataPath;
|
||||
|
||||
typedef struct {
|
||||
@@ -87,6 +98,7 @@ typedef union {
|
||||
SADataCTimestamp ctimestamp;
|
||||
SADataCStat cstat;
|
||||
SADataCFSInfo cfsinfo;
|
||||
SADataCResolvePath cresolvepath;
|
||||
|
||||
SADataError error;
|
||||
|
||||
@@ -128,6 +140,7 @@ typedef enum {
|
||||
StorageCommandSDUnmount,
|
||||
StorageCommandSDInfo,
|
||||
StorageCommandSDStatus,
|
||||
StorageCommandCommonResolvePath,
|
||||
} StorageCommand;
|
||||
|
||||
typedef struct {
|
||||
|
Reference in New Issue
Block a user