Skip to content

Commit

Permalink
Implement loading default values (closes #1)
Browse files Browse the repository at this point in the history
  • Loading branch information
maede97 committed Jan 9, 2023
1 parent 5966670 commit fcc2a0a
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 11 deletions.
2 changes: 1 addition & 1 deletion application.fam
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
App(
appid="ExtendRange",
appid="extend_range",
name="Extend Range",
apptype=FlipperAppType.EXTERNAL,
entry_point="extend_range_app",
Expand Down
64 changes: 54 additions & 10 deletions extend_range.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
/*
This application let's you unlock the extended range of the Sub-GHz module.
Use at your own risk!
@author: maede97
*/

#include <furi.h>

#include <gui/gui.h>
Expand Down Expand Up @@ -54,23 +62,23 @@ void extend_range_draw_callback(Canvas* canvas, void* ctx) {
canvas_draw_str(canvas, 2, 10, "Extend Range Sub-GHz");

canvas_set_font(canvas, FontSecondary);
canvas_draw_str(canvas, 2, 20, "Back -> Exit, OK -> Extend");
canvas_draw_str(canvas, 2, 20, "Back -> Exit, OK -> Apply");

// Extend Range

if(global_user_selection.extend_range)
canvas_draw_str(canvas, 2, 30, "< Extend Range: Yes >");
canvas_draw_str(canvas, 2, 30, "< Risky Range: Yes >");
else
canvas_draw_str(canvas, 2, 30, "< Extend Range: No >");
canvas_draw_str(canvas, 2, 30, "< Risky Range: No >");
if(global_user_selection.current_selection == 0) {
canvas_draw_line(canvas, 2, 31, 125, 31);
}

// Ignore Default
if(global_user_selection.ignore_default)
canvas_draw_str(canvas, 2, 40, "< Ignore Default: Yes >");
canvas_draw_str(canvas, 2, 40, "< Ignore Region: Yes >");
else
canvas_draw_str(canvas, 2, 40, "< Ignore Default: No >");
canvas_draw_str(canvas, 2, 40, "< Ignore Region: No >");
if(global_user_selection.current_selection == 1) {
canvas_draw_line(canvas, 2, 41, 125, 41);
}
Expand All @@ -88,10 +96,10 @@ void extend_range_draw_callback(Canvas* canvas, void* ctx) {
canvas_draw_str(canvas, 2, 60, "File not found");
break;
case 2:
canvas_draw_str(canvas, 2, 60, "Failed to update extend_range");
canvas_draw_str(canvas, 2, 60, "Failed to update 'risky ranges'");
break;
case 3:
canvas_draw_str(canvas, 2, 60, "Failed to update ignore_default");
canvas_draw_str(canvas, 2, 60, "Failed to update 'ignore region'");
break;
default:
canvas_draw_str(canvas, 2, 60, "Unknown error");
Expand All @@ -105,9 +113,43 @@ void extend_range_input_callback(InputEvent* input_event, void* ctx) {
furi_message_queue_put(event_queue, input_event, FuriWaitForever);
}

int extend_range() {
void extend_range_read_defaults() {
FlipperFormat* file = extend_range_open_file();
if(file == NULL) {
return;
}

FuriString* extend_range_;
FuriString* ignore_default_;
extend_range_ = furi_string_alloc();
ignore_default_ = furi_string_alloc();

if(!flipper_format_read_string(file, KEY_EXTEND_RANGE, extend_range_)) {
extend_range_close_file(file);
return;
}
if(!flipper_format_read_string(file, KEY_IGNORE_DEFAULT, ignore_default_)) {
extend_range_close_file(file);
return;
}

if(furi_string_cmp_str(extend_range_, "true") == 0) {
global_user_selection.extend_range = true;
} else {
global_user_selection.extend_range = false;
}

if(furi_string_cmp_str(ignore_default_, "true") == 0) {
global_user_selection.ignore_default = true;
} else {
global_user_selection.ignore_default = false;
}

extend_range_close_file(file);
}

int apply_user_selection() {
FlipperFormat* file = extend_range_open_file();
if(file == NULL) {
return 1;
}
Expand Down Expand Up @@ -136,7 +178,7 @@ void handle_key(InputEvent* input_event) {
case InputKeyBack:
return;
case InputKeyOk:
global_ret_val = extend_range();
global_ret_val = apply_user_selection();
return;
case InputKeyUp:
global_user_selection.current_selection =
Expand Down Expand Up @@ -169,6 +211,8 @@ int32_t extend_range_app(void* p) {
UNUSED(p);
FuriMessageQueue* event_queue = furi_message_queue_alloc(8, sizeof(InputEvent));

extend_range_read_defaults();

// Configure view port & callbacks
ViewPort* view_port = view_port_alloc();
view_port_draw_callback_set(view_port, extend_range_draw_callback, NULL);
Expand All @@ -179,8 +223,8 @@ int32_t extend_range_app(void* p) {

InputEvent event;
while(furi_message_queue_get(event_queue, &event, FuriWaitForever) == FuriStatusOk) {
if(event.type == InputTypeShort && event.key == InputKeyBack) break;
handle_key(&event);
if(event.key == InputKeyBack) break;
}

gui_remove_view_port(gui, view_port);
Expand Down

0 comments on commit fcc2a0a

Please sign in to comment.