| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- #include "../wifi_marauder_app_i.h"
- const char* Y = "Y";
- const char* N = "N";
- #define PROMPT_PCAPS 0
- #define PROMPT_LOGS 1
- void wifi_marauder_scene_settings_init_widget_callback(
- GuiButtonType result,
- InputType type,
- void* context) {
- WifiMarauderApp* app = context;
- if(type == InputTypeShort) {
- view_dispatcher_send_custom_event(app->view_dispatcher, result);
- }
- }
- void wifi_marauder_scene_settings_init_setup_widget(WifiMarauderApp* app) {
- Widget* widget = app->widget;
- widget_reset(widget);
- widget_add_button_element(
- widget, GuiButtonTypeLeft, "No", wifi_marauder_scene_settings_init_widget_callback, app);
- widget_add_button_element(
- widget, GuiButtonTypeRight, "Yes", wifi_marauder_scene_settings_init_widget_callback, app);
- if(app->which_prompt == PROMPT_PCAPS) {
- widget_add_string_element(widget, 0, 0, AlignLeft, AlignTop, FontPrimary, "Save pcaps?");
- widget_add_text_scroll_element(
- widget,
- 0,
- 12,
- 128,
- 38,
- "With compatible marauder\nfirmware, you can choose to\nsave captures (pcaps) to the\nflipper sd card here:\n" MARAUDER_APP_FOLDER_USER_PCAPS
- "\n\nYou can change this setting in the app at any time. Would\nyou like to enable this feature now?");
- } else {
- widget_add_string_element(widget, 0, 0, AlignLeft, AlignTop, FontPrimary, "Save logs?");
- widget_add_text_scroll_element(
- widget,
- 0,
- 12,
- 128,
- 38,
- "This app supports saving text\nlogs of console output to the\nflipper sd card here:\n" MARAUDER_APP_FOLDER_USER_LOGS
- "\n\nYou can change this setting in the app at any time. Would\nyou like to enable this feature now?");
- }
- }
- void wifi_marauder_scene_settings_init_on_enter(void* context) {
- WifiMarauderApp* app = context;
- app->which_prompt = PROMPT_PCAPS;
- wifi_marauder_scene_settings_init_setup_widget(app);
- view_dispatcher_switch_to_view(app->view_dispatcher, WifiMarauderAppViewWidget);
- }
- bool wifi_marauder_scene_settings_init_on_event(void* context, SceneManagerEvent event) {
- WifiMarauderApp* app = context;
- bool consumed = false;
- if(event.type == SceneManagerEventTypeCustom) {
- // get which button press: "Yes" or "No"
- if(event.event == GuiButtonTypeRight) {
- // Yes
- if(app->which_prompt == PROMPT_PCAPS) {
- app->ok_to_save_pcaps = true;
- } else {
- app->ok_to_save_logs = true;
- }
- } else if(event.event == GuiButtonTypeLeft) {
- // No
- if(app->which_prompt == PROMPT_PCAPS) {
- app->ok_to_save_pcaps = false;
- } else {
- app->ok_to_save_logs = false;
- }
- }
- // save setting to file, load next widget or scene
- if(app->which_prompt == PROMPT_PCAPS) {
- if(storage_file_open(
- app->save_pcap_setting_file,
- SAVE_PCAP_SETTING_FILEPATH,
- FSAM_WRITE,
- FSOM_CREATE_ALWAYS)) {
- const char* ok = app->ok_to_save_pcaps ? Y : N;
- storage_file_write(app->save_pcap_setting_file, ok, sizeof(ok));
- } else {
- dialog_message_show_storage_error(app->dialogs, "Cannot save settings");
- }
- storage_file_close(app->save_pcap_setting_file);
- // same scene, different-looking widget
- app->which_prompt = PROMPT_LOGS;
- wifi_marauder_scene_settings_init_setup_widget(app);
- } else {
- if(storage_file_open(
- app->save_logs_setting_file,
- SAVE_LOGS_SETTING_FILEPATH,
- FSAM_WRITE,
- FSOM_CREATE_ALWAYS)) {
- const char* ok = app->ok_to_save_logs ? Y : N;
- storage_file_write(app->save_logs_setting_file, ok, sizeof(ok));
- } else {
- dialog_message_show_storage_error(app->dialogs, "Cannot save settings");
- }
- storage_file_close(app->save_logs_setting_file);
- // go back to start scene (main menu)
- app->need_to_prompt_settings_init = false;
- scene_manager_previous_scene(app->scene_manager);
- }
- consumed = true;
- }
- return consumed;
- }
- void wifi_marauder_scene_settings_init_on_exit(void* context) {
- WifiMarauderApp* app = context;
- widget_reset(app->widget);
- if(storage_file_is_open(app->save_pcap_setting_file)) {
- storage_file_close(app->save_pcap_setting_file);
- }
- if(storage_file_is_open(app->save_logs_setting_file)) {
- storage_file_close(app->save_logs_setting_file);
- }
- }
|