|
|
@@ -3,6 +3,7 @@
|
|
|
#include <gui/elements.h>
|
|
|
|
|
|
typedef enum {
|
|
|
+ DictAttackStateStart,
|
|
|
DictAttackStateRead,
|
|
|
DictAttackStateCardRemoved,
|
|
|
} DictAttackState;
|
|
|
@@ -29,7 +30,12 @@ typedef struct {
|
|
|
|
|
|
static void dict_attack_draw_callback(Canvas* canvas, void* model) {
|
|
|
DictAttackViewModel* m = model;
|
|
|
- if(m->state == DictAttackStateCardRemoved) {
|
|
|
+ if(m->state == DictAttackStateStart) {
|
|
|
+ canvas_draw_icon(canvas, 0, 8, &I_RFIDDolphinReceive_97x61);
|
|
|
+ canvas_set_font(canvas, FontPrimary);
|
|
|
+ elements_multiline_text_aligned(
|
|
|
+ canvas, 128, 40, AlignRight, AlignCenter, "Apply card to\nthe back");
|
|
|
+ } else if(m->state == DictAttackStateCardRemoved) {
|
|
|
canvas_set_font(canvas, FontPrimary);
|
|
|
canvas_draw_str_aligned(canvas, 64, 4, AlignCenter, AlignTop, "Lost the tag!");
|
|
|
canvas_set_font(canvas, FontSecondary);
|
|
|
@@ -78,8 +84,8 @@ static void dict_attack_draw_callback(Canvas* canvas, void* model) {
|
|
|
m->sectors_read,
|
|
|
m->sectors_total);
|
|
|
canvas_draw_str_aligned(canvas, 0, 43, AlignLeft, AlignTop, draw_str);
|
|
|
+ elements_button_center(canvas, "Skip");
|
|
|
}
|
|
|
- elements_button_center(canvas, "Skip");
|
|
|
}
|
|
|
|
|
|
static bool dict_attack_input_callback(InputEvent* event, void* context) {
|
|
|
@@ -126,7 +132,7 @@ void dict_attack_reset(DictAttack* dict_attack) {
|
|
|
dict_attack->view,
|
|
|
DictAttackViewModel * model,
|
|
|
{
|
|
|
- model->state = DictAttackStateRead;
|
|
|
+ model->state = DictAttackStateStart;
|
|
|
model->sectors_total = 1;
|
|
|
model->sectors_read = 0;
|
|
|
model->sector_current = 0;
|
|
|
@@ -181,7 +187,12 @@ void dict_attack_set_card_removed(DictAttack* dict_attack) {
|
|
|
with_view_model(
|
|
|
dict_attack->view,
|
|
|
DictAttackViewModel * model,
|
|
|
- { model->state = DictAttackStateCardRemoved; },
|
|
|
+ {
|
|
|
+ // Only mark card as removed it if had been Read
|
|
|
+ if(model->state == DictAttackStateRead) {
|
|
|
+ model->state = DictAttackStateCardRemoved;
|
|
|
+ }
|
|
|
+ },
|
|
|
true);
|
|
|
}
|
|
|
|