flipbip_file.c 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "flipbip_file.h"
  2. #include "../flipbip.h"
  3. #include "../crypto/memzero.h"
  4. #include <storage/storage.h>
  5. #define FLIPBIP_APP_BASE_FOLDER EXT_PATH("apps_data/flipbip")
  6. // #define FLIPBIP_SETTINGS_FILE_NAME ".flipbip.dat"
  7. #define FLIPBIP_SETTINGS_FILE_NAME ".flipbip.txt"
  8. #define FLIPBIP_SETTINGS_PATH FLIPBIP_APP_BASE_FOLDER "/" FLIPBIP_SETTINGS_FILE_NAME
  9. bool flipbip_load_settings(char* settings) {
  10. Storage *fs_api = furi_record_open(RECORD_STORAGE);
  11. File* settings_file = storage_file_alloc(fs_api);
  12. if(storage_file_open(settings_file, FLIPBIP_SETTINGS_PATH, FSAM_READ, FSOM_OPEN_EXISTING)) {
  13. char chr;
  14. int i = 0;
  15. while((storage_file_read(settings_file, &chr, 1) == 1) &&
  16. !storage_file_eof(settings_file) && !isspace(chr)) {
  17. settings[i] = chr;
  18. i++;
  19. }
  20. } else {
  21. memzero(settings, strlen(settings));
  22. settings[0] = '\0';
  23. }
  24. storage_file_close(settings_file);
  25. storage_file_free(settings_file);
  26. furi_record_close(RECORD_STORAGE);
  27. // if(!strlen(settings) == 0) {
  28. // Storage* fs_api = furi_record_open(RECORD_STORAGE);
  29. // FileInfo layout_file_info;
  30. // FS_Error file_check_err = storage_common_stat(
  31. // fs_api, FLIPBIP_SETTINGS_PATH, &layout_file_info);
  32. // furi_record_close(RECORD_STORAGE);
  33. // if(file_check_err != FSE_OK) {
  34. // memzero(settings, strlen(settings));
  35. // settings[0] = '\0';
  36. // return;
  37. // }
  38. // if(layout_file_info.size != 256) {
  39. // memzero(settings, strlen(settings));
  40. // settings[0] = '\0';
  41. // }
  42. // }
  43. return true;
  44. }
  45. bool flipbip_save_settings(const char* settings) {
  46. Storage* fs_api = furi_record_open(RECORD_STORAGE);
  47. File* settings_file = storage_file_alloc(fs_api);
  48. storage_common_mkdir(fs_api, FLIPBIP_APP_BASE_FOLDER);
  49. if(storage_file_open(settings_file, FLIPBIP_SETTINGS_PATH, FSAM_WRITE, FSOM_OPEN_ALWAYS)) {
  50. storage_file_write(
  51. settings_file,
  52. settings,
  53. strlen(settings));
  54. storage_file_write(settings_file, "\n", 1);
  55. }
  56. storage_file_close(settings_file);
  57. storage_file_free(settings_file);
  58. furi_record_close(RECORD_STORAGE);
  59. return true;
  60. }