mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-14 16:58:36 -07:00
FindMy: Refactors and improvements
- state handled reparately, decoupled from app - better apple/samsung/unknown parsing and handling - improve error handling - add url to manifest + up stack size just in case
This commit is contained in:
@@ -9,8 +9,8 @@ struct FindMyMain {
|
||||
|
||||
typedef struct {
|
||||
bool active;
|
||||
bool apple;
|
||||
uint8_t interval;
|
||||
FindMyType type;
|
||||
} FindMyMainModel;
|
||||
|
||||
static void findmy_main_draw_callback(Canvas* canvas, void* _model) {
|
||||
@@ -34,12 +34,17 @@ static void findmy_main_draw_callback(Canvas* canvas, void* _model) {
|
||||
snprintf(interval_str, sizeof(interval_str), "Ping Interval: %ds", model->interval);
|
||||
canvas_draw_str(canvas, 4, 62, interval_str);
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
if(model->apple) {
|
||||
switch(model->type) {
|
||||
case FindMyTypeApple:
|
||||
canvas_draw_str(canvas, 4, 32, "Apple Network");
|
||||
canvas_draw_icon(canvas, 80, 24, &I_Lock_7x8);
|
||||
} else {
|
||||
break;
|
||||
case FindMyTypeSamsung:
|
||||
canvas_draw_str(canvas, 4, 32, "Samsung Network");
|
||||
canvas_draw_icon(canvas, 97, 24, &I_Lock_7x8);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str(canvas, 100, 61, "Config");
|
||||
@@ -96,9 +101,9 @@ FindMyMain* findmy_main_alloc(FindMy* app) {
|
||||
findmy_main->view,
|
||||
FindMyMainModel * model,
|
||||
{
|
||||
model->active = app->beacon_active;
|
||||
model->apple = app->apple;
|
||||
model->interval = app->broadcast_interval;
|
||||
model->active = app->state.beacon_active;
|
||||
model->interval = app->state.broadcast_interval;
|
||||
model->type = findmy_data_get_type(app->state.data);
|
||||
},
|
||||
false);
|
||||
view_set_context(findmy_main->view, findmy_main);
|
||||
@@ -138,8 +143,8 @@ void findmy_main_update_interval(FindMyMain* findmy_main, uint8_t interval) {
|
||||
findmy_main->view, FindMyMainModel * model, { model->interval = interval; }, true);
|
||||
}
|
||||
|
||||
void findmy_main_update_apple(FindMyMain* findmy_main, bool apple) {
|
||||
void findmy_main_update_type(FindMyMain* findmy_main, FindMyType type) {
|
||||
furi_assert(findmy_main);
|
||||
with_view_model(
|
||||
findmy_main->view, FindMyMainModel * model, { model->apple = apple; }, true);
|
||||
findmy_main->view, FindMyMainModel * model, { model->type = type; }, true);
|
||||
}
|
||||
@@ -26,4 +26,4 @@ void findmy_main_set_callback(FindMyMain* findmy_main, FindMyMainCallback callba
|
||||
// To redraw when info changes
|
||||
void findmy_main_update_active(FindMyMain* findmy_main, bool active);
|
||||
void findmy_main_update_interval(FindMyMain* findmy_main, uint8_t interval);
|
||||
void findmy_main_update_apple(FindMyMain* findmy_main, bool apple);
|
||||
void findmy_main_update_type(FindMyMain* findmy_main, FindMyType type);
|
||||
Reference in New Issue
Block a user