mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-12 20:18:35 -07:00
Merge branch 'dev' of https://github.com/DarkFlippers/unleashed-firmware into xfw-dev
This commit is contained in:
@@ -43,11 +43,32 @@ static void desktop_lock_icon_draw_callback(Canvas* canvas, void* context) {
|
||||
canvas_draw_icon(canvas, 0, 0, &I_Lock_7x8);
|
||||
}
|
||||
|
||||
static void desktop_toggle_clock_view(Desktop* desktop, bool is_enabled) {
|
||||
static void desktop_clock_upd_time(Desktop* desktop, bool forced) {
|
||||
furi_assert(desktop);
|
||||
|
||||
// clock type upd after 1 minute
|
||||
desktop->clock_type = (locale_get_time_format() == LocaleTimeFormat24h);
|
||||
FuriHalRtcDateTime curr_dt;
|
||||
furi_hal_rtc_get_datetime(&curr_dt);
|
||||
|
||||
if(forced) {
|
||||
desktop->clock_type = (locale_get_time_format() == LocaleTimeFormat24h);
|
||||
}
|
||||
|
||||
if(forced || (desktop->minute != curr_dt.minute)) {
|
||||
if(desktop->clock_type) {
|
||||
desktop->hour = curr_dt.hour;
|
||||
} else {
|
||||
desktop->hour = (curr_dt.hour > 12) ? curr_dt.hour - 12 :
|
||||
((curr_dt.hour == 0) ? 12 : curr_dt.hour);
|
||||
}
|
||||
desktop->minute = curr_dt.minute;
|
||||
view_port_update(desktop->clock_viewport);
|
||||
}
|
||||
}
|
||||
|
||||
static void desktop_clock_toggle_view(Desktop* desktop, bool is_enabled) {
|
||||
furi_assert(desktop);
|
||||
|
||||
desktop_clock_upd_time(desktop, true);
|
||||
|
||||
if(is_enabled) { // && !furi_timer_is_running(desktop->update_clock_timer)) {
|
||||
furi_timer_start(desktop->update_clock_timer, furi_ms_to_ticks(1000));
|
||||
@@ -135,7 +156,7 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) {
|
||||
// locking and unlocking
|
||||
DESKTOP_SETTINGS_LOAD(&desktop->settings);
|
||||
|
||||
desktop_toggle_clock_view(desktop, desktop->settings.display_clock);
|
||||
desktop_clock_toggle_view(desktop, desktop->settings.display_clock);
|
||||
|
||||
desktop_auto_lock_arm(desktop);
|
||||
return true;
|
||||
@@ -202,24 +223,12 @@ static void desktop_auto_lock_inhibit(Desktop* desktop) {
|
||||
}
|
||||
}
|
||||
|
||||
static void desktop_update_clock_timer_callback(void* context) {
|
||||
static void desktop_clock_timer_callback(void* context) {
|
||||
furi_assert(context);
|
||||
Desktop* desktop = context;
|
||||
|
||||
if(gui_get_count_of_enabled_view_port_in_layer(desktop->gui, GuiLayerStatusBarLeft) < 6) {
|
||||
FuriHalRtcDateTime curr_dt;
|
||||
furi_hal_rtc_get_datetime(&curr_dt);
|
||||
|
||||
if(desktop->minute != curr_dt.minute) {
|
||||
if(desktop->clock_type) {
|
||||
desktop->hour = curr_dt.hour;
|
||||
} else {
|
||||
desktop->hour = (curr_dt.hour > 12) ? curr_dt.hour - 12 :
|
||||
((curr_dt.hour == 0) ? 12 : curr_dt.hour);
|
||||
}
|
||||
desktop->minute = curr_dt.minute;
|
||||
view_port_update(desktop->clock_viewport);
|
||||
}
|
||||
desktop_clock_upd_time(desktop, false);
|
||||
|
||||
view_port_enabled_set(desktop->clock_viewport, true);
|
||||
} else {
|
||||
@@ -403,18 +412,12 @@ Desktop* desktop_alloc() {
|
||||
desktop->status_pubsub = furi_pubsub_alloc();
|
||||
|
||||
desktop->update_clock_timer =
|
||||
furi_timer_alloc(desktop_update_clock_timer_callback, FuriTimerTypePeriodic, desktop);
|
||||
furi_timer_alloc(desktop_clock_timer_callback, FuriTimerTypePeriodic, desktop);
|
||||
|
||||
FuriHalRtcDateTime curr_dt;
|
||||
furi_hal_rtc_get_datetime(&curr_dt);
|
||||
|
||||
if(desktop->clock_type) {
|
||||
desktop->hour = curr_dt.hour;
|
||||
} else {
|
||||
desktop->hour = (curr_dt.hour > 12) ? curr_dt.hour - 12 :
|
||||
((curr_dt.hour == 0) ? 12 : curr_dt.hour);
|
||||
}
|
||||
desktop->minute = curr_dt.minute;
|
||||
desktop_clock_upd_time(desktop, true);
|
||||
|
||||
furi_record_create(RECORD_DESKTOP, desktop);
|
||||
|
||||
@@ -460,7 +463,7 @@ int32_t desktop_srv(void* p) {
|
||||
DESKTOP_SETTINGS_SAVE(&desktop->settings);
|
||||
}
|
||||
|
||||
desktop_toggle_clock_view(desktop, desktop->settings.display_clock);
|
||||
desktop_clock_toggle_view(desktop, desktop->settings.display_clock);
|
||||
|
||||
scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain);
|
||||
|
||||
|
||||
@@ -265,7 +265,7 @@ static void text_input_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
canvas_draw_str(canvas, 2, 8, model->header);
|
||||
elements_slightly_rounded_frame(canvas, 1, 12, 126, 15);
|
||||
|
||||
char buf[model->text_buffer_size + 1];
|
||||
char buf[text_length + 1];
|
||||
if(model->text_buffer) {
|
||||
strlcpy(buf, model->text_buffer, sizeof(buf));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user