mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-14 03:08:36 -07:00
Merge desktop service changes, refactor some old code
This commit is contained in:
@@ -43,7 +43,7 @@ void desktop_lock_menu_set_pin_state(DesktopLockMenuView* lock_menu, bool pin_is
|
||||
DesktopLockMenuViewModel * model,
|
||||
{
|
||||
model->pin_is_set = pin_is_set;
|
||||
model->pin_lock = pin_is_set;
|
||||
model->lock_popup_index = pin_is_set; // Select with PIN by default if set
|
||||
},
|
||||
true);
|
||||
}
|
||||
@@ -166,13 +166,13 @@ void desktop_lock_menu_draw_callback(Canvas* canvas, void* model) {
|
||||
}
|
||||
}
|
||||
|
||||
if(m->show_lock_menu) {
|
||||
if(m->show_lock_popup) {
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
elements_bold_rounded_frame(canvas, 24, 4, 80, 56);
|
||||
canvas_draw_str_aligned(canvas, 64, 16, AlignCenter, AlignCenter, "Keypad Lock");
|
||||
canvas_draw_str_aligned(canvas, 64, 32, AlignCenter, AlignCenter, "PIN Code Lock");
|
||||
canvas_draw_str_aligned(canvas, 64, 48, AlignCenter, AlignCenter, "PIN Lock + OFF");
|
||||
elements_frame(canvas, 28, 8 + m->pin_lock * 16, 72, 15);
|
||||
elements_frame(canvas, 28, 8 + m->lock_popup_index * 16, 72, 15);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,8 +187,8 @@ bool desktop_lock_menu_input_callback(InputEvent* event, void* context) {
|
||||
|
||||
DesktopLockMenuView* lock_menu = context;
|
||||
uint8_t idx = 0;
|
||||
int pin_lock = 0;
|
||||
bool show_lock_menu = false;
|
||||
bool show_lock_popup = false;
|
||||
DesktopLockMenuPopupIndex lock_popup_index = 0;
|
||||
bool stealth_mode = false;
|
||||
bool consumed = true;
|
||||
|
||||
@@ -196,26 +196,28 @@ bool desktop_lock_menu_input_callback(InputEvent* event, void* context) {
|
||||
lock_menu->view,
|
||||
DesktopLockMenuViewModel * model,
|
||||
{
|
||||
show_lock_menu = model->show_lock_menu;
|
||||
show_lock_popup = model->show_lock_popup;
|
||||
stealth_mode = model->stealth_mode;
|
||||
if((event->type == InputTypeShort) || (event->type == InputTypeRepeat)) {
|
||||
if(model->show_lock_menu) {
|
||||
if(model->show_lock_popup) {
|
||||
if(event->key == InputKeyUp) {
|
||||
model->pin_lock--;
|
||||
if(model->pin_lock < 0) {
|
||||
model->pin_lock = 2;
|
||||
if(model->lock_popup_index == 0) {
|
||||
model->lock_popup_index = DesktopLockMenuPopupIndexMAX - 1;
|
||||
} else {
|
||||
model->lock_popup_index--;
|
||||
}
|
||||
} else if(event->key == InputKeyDown) {
|
||||
model->pin_lock++;
|
||||
if(model->pin_lock > 2) {
|
||||
model->pin_lock = 0;
|
||||
if(model->lock_popup_index == DesktopLockMenuPopupIndexMAX - 1) {
|
||||
model->lock_popup_index = 0;
|
||||
} else {
|
||||
model->lock_popup_index++;
|
||||
}
|
||||
} else if(event->key == InputKeyBack || event->key == InputKeyOk) {
|
||||
model->show_lock_menu = false;
|
||||
model->show_lock_popup = false;
|
||||
}
|
||||
} else {
|
||||
if(model->idx == DesktopLockMenuIndexLock && event->key == InputKeyOk) {
|
||||
model->show_lock_menu = true;
|
||||
model->show_lock_popup = true;
|
||||
} else if(model->idx < 6) {
|
||||
if(event->key == InputKeyUp || event->key == InputKeyDown) {
|
||||
if(model->idx % 2) {
|
||||
@@ -250,21 +252,21 @@ bool desktop_lock_menu_input_callback(InputEvent* event, void* context) {
|
||||
}
|
||||
}
|
||||
idx = model->idx;
|
||||
pin_lock = model->pin_lock;
|
||||
lock_popup_index = model->lock_popup_index;
|
||||
},
|
||||
true);
|
||||
|
||||
DesktopEvent desktop_event = 0;
|
||||
if(show_lock_menu) {
|
||||
if(show_lock_popup) {
|
||||
if(event->key == InputKeyOk && event->type == InputTypeShort) {
|
||||
switch(pin_lock) {
|
||||
case 0:
|
||||
switch(lock_popup_index) {
|
||||
case DesktopLockMenuPopupIndexKeypad:
|
||||
desktop_event = DesktopLockMenuEventLockKeypad;
|
||||
break;
|
||||
case 1:
|
||||
case DesktopLockMenuPopupIndexPinCode:
|
||||
desktop_event = DesktopLockMenuEventLockPinCode;
|
||||
break;
|
||||
case 2:
|
||||
case DesktopLockMenuPopupIndexPinOff:
|
||||
desktop_event = DesktopLockMenuEventLockPinOff;
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -23,14 +23,21 @@ struct DesktopLockMenuView {
|
||||
bool save_bt;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
DesktopLockMenuPopupIndexKeypad,
|
||||
DesktopLockMenuPopupIndexPinCode,
|
||||
DesktopLockMenuPopupIndexPinOff,
|
||||
DesktopLockMenuPopupIndexMAX,
|
||||
} DesktopLockMenuPopupIndex;
|
||||
|
||||
typedef struct {
|
||||
uint8_t idx;
|
||||
bool _dummy_mode; // Unused, kept for compatibility
|
||||
bool stealth_mode;
|
||||
|
||||
bool pin_is_set;
|
||||
int pin_lock;
|
||||
bool show_lock_menu;
|
||||
bool show_lock_popup;
|
||||
DesktopLockMenuPopupIndex lock_popup_index;
|
||||
DesktopLockMenuView* lock_menu;
|
||||
} DesktopLockMenuViewModel;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user