mass_storage_scene_file_select.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "../mass_storage_app_i.h"
  2. #include "furi_hal_power.h"
  3. static bool mass_storage_file_select(MassStorageApp* mass_storage) {
  4. furi_assert(mass_storage);
  5. DialogsFileBrowserOptions browser_options;
  6. dialog_file_browser_set_basic_options(
  7. &browser_options, MASS_STORAGE_APP_EXTENSION, &I_mass_storage_10px);
  8. browser_options.base_path = MASS_STORAGE_APP_PATH_FOLDER;
  9. browser_options.hide_ext = false;
  10. // Input events and views are managed by file_select
  11. bool res = dialog_file_browser_show(
  12. mass_storage->dialogs, mass_storage->file_path, mass_storage->file_path, &browser_options);
  13. return res;
  14. }
  15. void mass_storage_scene_file_select_on_enter(void* context) {
  16. MassStorageApp* mass_storage = context;
  17. if(mass_storage_file_select(mass_storage)) {
  18. if(!furi_hal_usb_is_locked()) {
  19. scene_manager_next_scene(mass_storage->scene_manager, MassStorageSceneWork);
  20. } else {
  21. scene_manager_next_scene(mass_storage->scene_manager, MassStorageSceneUsbLocked);
  22. }
  23. } else {
  24. scene_manager_previous_scene(mass_storage->scene_manager);
  25. }
  26. }
  27. bool mass_storage_scene_file_select_on_event(void* context, SceneManagerEvent event) {
  28. UNUSED(context);
  29. UNUSED(event);
  30. // MassStorageApp* mass_storage = context;
  31. return false;
  32. }
  33. void mass_storage_scene_file_select_on_exit(void* context) {
  34. UNUSED(context);
  35. }