|
@@ -134,6 +134,13 @@ const WifiMarauderItem items[NUM_MENU_ITEMS] = {
|
|
|
{"Update", {"ota", "sd"}, 2, {"update -w", "update -s"}, NO_ARGS, FOCUS_CONSOLE_END, NO_TIP},
|
|
{"Update", {"ota", "sd"}, 2, {"update -w", "update -s"}, NO_ARGS, FOCUS_CONSOLE_END, NO_TIP},
|
|
|
{"Reboot", {""}, 1, {"reboot"}, NO_ARGS, FOCUS_CONSOLE_END, NO_TIP},
|
|
{"Reboot", {""}, 1, {"reboot"}, NO_ARGS, FOCUS_CONSOLE_END, NO_TIP},
|
|
|
{"Help", {""}, 1, {"help"}, NO_ARGS, FOCUS_CONSOLE_START, SHOW_STOPSCAN_TIP},
|
|
{"Help", {""}, 1, {"help"}, NO_ARGS, FOCUS_CONSOLE_START, SHOW_STOPSCAN_TIP},
|
|
|
|
|
+ {"Save to flipper sdcard", // keep as last entry or change logic in callback below
|
|
|
|
|
+ {""},
|
|
|
|
|
+ 1,
|
|
|
|
|
+ {""},
|
|
|
|
|
+ NO_ARGS,
|
|
|
|
|
+ FOCUS_CONSOLE_START,
|
|
|
|
|
+ NO_TIP},
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
static void wifi_marauder_scene_start_var_list_enter_callback(void* context, uint32_t index) {
|
|
static void wifi_marauder_scene_start_var_list_enter_callback(void* context, uint32_t index) {
|
|
@@ -143,6 +150,13 @@ static void wifi_marauder_scene_start_var_list_enter_callback(void* context, uin
|
|
|
furi_assert(index < NUM_MENU_ITEMS);
|
|
furi_assert(index < NUM_MENU_ITEMS);
|
|
|
const WifiMarauderItem* item = &items[index];
|
|
const WifiMarauderItem* item = &items[index];
|
|
|
|
|
|
|
|
|
|
+ if(index == NUM_MENU_ITEMS - 1) {
|
|
|
|
|
+ // "Save to flipper sdcard" special case - start SettingsInit widget
|
|
|
|
|
+ view_dispatcher_send_custom_event(
|
|
|
|
|
+ app->view_dispatcher, WifiMarauderEventStartSettingsInit);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
const int selected_option_index = app->selected_option_index[index];
|
|
const int selected_option_index = app->selected_option_index[index];
|
|
|
furi_assert(selected_option_index < item->num_options_menu);
|
|
furi_assert(selected_option_index < item->num_options_menu);
|
|
|
app->selected_tx_string = item->actual_commands[selected_option_index];
|
|
app->selected_tx_string = item->actual_commands[selected_option_index];
|
|
@@ -154,6 +168,12 @@ static void wifi_marauder_scene_start_var_list_enter_callback(void* context, uin
|
|
|
item->focus_console;
|
|
item->focus_console;
|
|
|
app->show_stopscan_tip = item->show_stopscan_tip;
|
|
app->show_stopscan_tip = item->show_stopscan_tip;
|
|
|
|
|
|
|
|
|
|
+ if(!app->is_command && selected_option_index == 0) {
|
|
|
|
|
+ // View Log from start
|
|
|
|
|
+ view_dispatcher_send_custom_event(app->view_dispatcher, WifiMarauderEventStartLogViewer);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
bool needs_keyboard = (item->needs_keyboard == TOGGLE_ARGS) ? (selected_option_index != 0) :
|
|
bool needs_keyboard = (item->needs_keyboard == TOGGLE_ARGS) ? (selected_option_index != 0) :
|
|
|
item->needs_keyboard;
|
|
item->needs_keyboard;
|
|
|
if(needs_keyboard) {
|
|
if(needs_keyboard) {
|
|
@@ -200,6 +220,11 @@ void wifi_marauder_scene_start_on_enter(void* context) {
|
|
|
var_item_list, scene_manager_get_scene_state(app->scene_manager, WifiMarauderSceneStart));
|
|
var_item_list, scene_manager_get_scene_state(app->scene_manager, WifiMarauderSceneStart));
|
|
|
|
|
|
|
|
view_dispatcher_switch_to_view(app->view_dispatcher, WifiMarauderAppViewVarItemList);
|
|
view_dispatcher_switch_to_view(app->view_dispatcher, WifiMarauderAppViewVarItemList);
|
|
|
|
|
+
|
|
|
|
|
+ // Wait, if the user hasn't initialized sdcard settings, let's prompt them once (then come back here)
|
|
|
|
|
+ if(app->need_to_prompt_settings_init) {
|
|
|
|
|
+ scene_manager_next_scene(app->scene_manager, WifiMarauderSceneSettingsInit);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
bool wifi_marauder_scene_start_on_event(void* context, SceneManagerEvent event) {
|
|
bool wifi_marauder_scene_start_on_event(void* context, SceneManagerEvent event) {
|
|
@@ -211,16 +236,28 @@ bool wifi_marauder_scene_start_on_event(void* context, SceneManagerEvent event)
|
|
|
if(event.event == WifiMarauderEventStartKeyboard) {
|
|
if(event.event == WifiMarauderEventStartKeyboard) {
|
|
|
scene_manager_set_scene_state(
|
|
scene_manager_set_scene_state(
|
|
|
app->scene_manager, WifiMarauderSceneStart, app->selected_menu_index);
|
|
app->scene_manager, WifiMarauderSceneStart, app->selected_menu_index);
|
|
|
- scene_manager_next_scene(app->scene_manager, WifiMarauderAppViewTextInput);
|
|
|
|
|
|
|
+ scene_manager_next_scene(app->scene_manager, WifiMarauderSceneTextInput);
|
|
|
} else if(event.event == WifiMarauderEventStartConsole) {
|
|
} else if(event.event == WifiMarauderEventStartConsole) {
|
|
|
scene_manager_set_scene_state(
|
|
scene_manager_set_scene_state(
|
|
|
app->scene_manager, WifiMarauderSceneStart, app->selected_menu_index);
|
|
app->scene_manager, WifiMarauderSceneStart, app->selected_menu_index);
|
|
|
- scene_manager_next_scene(app->scene_manager, WifiMarauderAppViewConsoleOutput);
|
|
|
|
|
|
|
+ scene_manager_next_scene(app->scene_manager, WifiMarauderSceneConsoleOutput);
|
|
|
|
|
+ } else if(event.event == WifiMarauderEventStartSettingsInit) {
|
|
|
|
|
+ scene_manager_set_scene_state(
|
|
|
|
|
+ app->scene_manager, WifiMarauderSceneStart, app->selected_menu_index);
|
|
|
|
|
+ scene_manager_next_scene(app->scene_manager, WifiMarauderSceneSettingsInit);
|
|
|
|
|
+ } else if(event.event == WifiMarauderEventStartLogViewer) {
|
|
|
|
|
+ scene_manager_set_scene_state(
|
|
|
|
|
+ app->scene_manager, WifiMarauderSceneStart, app->selected_menu_index);
|
|
|
|
|
+ scene_manager_next_scene(app->scene_manager, WifiMarauderSceneLogViewer);
|
|
|
}
|
|
}
|
|
|
consumed = true;
|
|
consumed = true;
|
|
|
} else if(event.type == SceneManagerEventTypeTick) {
|
|
} else if(event.type == SceneManagerEventTypeTick) {
|
|
|
app->selected_menu_index = variable_item_list_get_selected_item_index(app->var_item_list);
|
|
app->selected_menu_index = variable_item_list_get_selected_item_index(app->var_item_list);
|
|
|
consumed = true;
|
|
consumed = true;
|
|
|
|
|
+ } else if(event.type == SceneManagerEventTypeBack) {
|
|
|
|
|
+ scene_manager_stop(app->scene_manager);
|
|
|
|
|
+ view_dispatcher_stop(app->view_dispatcher);
|
|
|
|
|
+ consumed = true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return consumed;
|
|
return consumed;
|