added sfw_mode support for badusb

This commit is contained in:
jbohack
2022-12-29 23:46:34 -05:00
parent 51bd4e3d99
commit afa0e5aae9
2 changed files with 52 additions and 14 deletions

View File

@@ -1,4 +1,5 @@
#include "../bad_usb_app_i.h" #include "../bad_usb_app_i.h"
#include "../../../settings/desktop_settings/desktop_settings_app.h"
typedef enum { typedef enum {
BadUsbCustomEventErrorBack, BadUsbCustomEventErrorBack,
@@ -16,6 +17,8 @@ static void
void bad_usb_scene_error_on_enter(void* context) { void bad_usb_scene_error_on_enter(void* context) {
BadUsbApp* app = context; BadUsbApp* app = context;
DesktopSettings* settings = malloc(sizeof(DesktopSettings));
DESKTOP_SETTINGS_LOAD(settings);
if(app->error == BadUsbAppErrorNoFiles) { if(app->error == BadUsbAppErrorNoFiles) {
widget_add_icon_element(app->widget, 0, 0, &I_SDQuestion_35x43); widget_add_icon_element(app->widget, 0, 0, &I_SDQuestion_35x43);
@@ -31,19 +34,34 @@ void bad_usb_scene_error_on_enter(void* context) {
app->widget, GuiButtonTypeLeft, "Back", bad_usb_scene_error_event_callback, app); app->widget, GuiButtonTypeLeft, "Back", bad_usb_scene_error_event_callback, app);
} else if(app->error == BadUsbAppErrorCloseRpc) { } else if(app->error == BadUsbAppErrorCloseRpc) {
widget_add_icon_element(app->widget, 78, 0, &I_ActiveConnection_50x64); widget_add_icon_element(app->widget, 78, 0, &I_ActiveConnection_50x64);
widget_add_string_multiline_element( if (settings->sfw_mode) {
app->widget, 3, 2, AlignLeft, AlignTop, FontPrimary, "I am not\na whore!"); widget_add_string_multiline_element(
widget_add_string_multiline_element( app->widget, 3, 2, AlignLeft, AlignTop, FontPrimary, "Connection\nis active!");
app->widget, widget_add_string_multiline_element(
3, app->widget,
30, 3,
AlignLeft, 30,
AlignTop, AlignLeft,
FontSecondary, AlignTop,
"Pull out from\nPC or phone to\nuse me like this."); FontSecondary,
"Disconnect from\nPC or phone to\nuse this function.");
}
else {
widget_add_string_multiline_element(
app->widget, 3, 2, AlignLeft, AlignTop, FontPrimary, "I am not\na whore!");
widget_add_string_multiline_element(
app->widget,
3,
30,
AlignLeft,
AlignTop,
FontSecondary,
"Pull out from\nPC or phone to\nuse me like this.");
}
} }
view_dispatcher_switch_to_view(app->view_dispatcher, BadUsbAppViewError); view_dispatcher_switch_to_view(app->view_dispatcher, BadUsbAppViewError);
free(settings);
} }
bool bad_usb_scene_error_on_event(void* context, SceneManagerEvent event) { bool bad_usb_scene_error_on_event(void* context, SceneManagerEvent event) {

View File

@@ -3,6 +3,7 @@
#include <toolbox/path.h> #include <toolbox/path.h>
#include <gui/elements.h> #include <gui/elements.h>
#include <bad_usb_icons.h> #include <bad_usb_icons.h>
#include "../../../settings/desktop_settings/desktop_settings_app.h"
#define MAX_NAME_LEN 64 #define MAX_NAME_LEN 64
@@ -27,6 +28,8 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
elements_string_fit_width(canvas, disp_str, 128 - 2); elements_string_fit_width(canvas, disp_str, 128 - 2);
canvas_set_font(canvas, FontSecondary); canvas_set_font(canvas, FontSecondary);
canvas_draw_str(canvas, 2, 8, furi_string_get_cstr(disp_str)); canvas_draw_str(canvas, 2, 8, furi_string_get_cstr(disp_str));
DesktopSettings* settings = malloc(sizeof(DesktopSettings));
DESKTOP_SETTINGS_LOAD(settings);
if(strlen(model->layout) == 0) { if(strlen(model->layout) == 0) {
furi_string_set(disp_str, "(default)"); furi_string_set(disp_str, "(default)");
@@ -47,7 +50,12 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
if((model->state.state == BadUsbStateIdle) || (model->state.state == BadUsbStateDone) || if((model->state.state == BadUsbStateIdle) || (model->state.state == BadUsbStateDone) ||
(model->state.state == BadUsbStateNotConnected)) { (model->state.state == BadUsbStateNotConnected)) {
elements_button_center(canvas, "Cum"); if (settings->sfw_mode) {
elements_button_center(canvas, "Start");
}
else {
elements_button_center(canvas, "Cum");
}
} else if((model->state.state == BadUsbStateRunning) || (model->state.state == BadUsbStateDelay)) { } else if((model->state.state == BadUsbStateRunning) || (model->state.state == BadUsbStateDelay)) {
elements_button_center(canvas, "Stop"); elements_button_center(canvas, "Stop");
} else if(model->state.state == BadUsbStateWillRun) { } else if(model->state.state == BadUsbStateWillRun) {
@@ -62,12 +70,23 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
if(model->state.state == BadUsbStateNotConnected) { if(model->state.state == BadUsbStateNotConnected) {
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18); canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
canvas_set_font(canvas, FontPrimary); canvas_set_font(canvas, FontPrimary);
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Plug me"); if (settings->sfw_mode) {
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "in, Daddy"); canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Connect me");
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "to a computer");
}
else {
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Plug me");
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "in, Daddy");
}
} else if(model->state.state == BadUsbStateWillRun) { } else if(model->state.state == BadUsbStateWillRun) {
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18); canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
canvas_set_font(canvas, FontPrimary); canvas_set_font(canvas, FontPrimary);
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will cum"); if (settings->sfw_mode) {
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will run");
}
else {
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will cum");
}
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "on connect"); canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "on connect");
} else if(model->state.state == BadUsbStateFileError) { } else if(model->state.state == BadUsbStateFileError) {
canvas_draw_icon(canvas, 4, 26, &I_Error_18x18); canvas_draw_icon(canvas, 4, 26, &I_Error_18x18);
@@ -131,6 +150,7 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
} }
furi_string_free(disp_str); furi_string_free(disp_str);
free(settings);
} }
static bool bad_usb_input_callback(InputEvent* event, void* context) { static bool bad_usb_input_callback(InputEvent* event, void* context) {