diff options
-rw-r--r-- | apps/misc.c | 6 | ||||
-rw-r--r-- | firmware/export/powermgmt.h | 1 | ||||
-rw-r--r-- | firmware/powermgmt.c | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/apps/misc.c b/apps/misc.c index e10fceb9af..21a45037ad 100644 --- a/apps/misc.c +++ b/apps/misc.c | |||
@@ -306,6 +306,12 @@ static bool clean_shutdown(enum shutdown_type sd_type, | |||
306 | { | 306 | { |
307 | long msg_id = -1; | 307 | long msg_id = -1; |
308 | 308 | ||
309 | if (!global_settings.show_shutdown_message && get_sleep_timer_active()) | ||
310 | { | ||
311 | talk_force_shutup(); | ||
312 | talk_disable(true); | ||
313 | } | ||
314 | |||
309 | status_save(); | 315 | status_save(); |
310 | 316 | ||
311 | #if CONFIG_CHARGING && !defined(HAVE_POWEROFF_WHILE_CHARGING) | 317 | #if CONFIG_CHARGING && !defined(HAVE_POWEROFF_WHILE_CHARGING) |
diff --git a/firmware/export/powermgmt.h b/firmware/export/powermgmt.h index 6ae5ccfd13..41594abe4d 100644 --- a/firmware/export/powermgmt.h +++ b/firmware/export/powermgmt.h | |||
@@ -164,6 +164,7 @@ int get_battery_capacity(void); /* get local battery capacity value */ | |||
164 | void set_battery_type(int type); /* set local battery type */ | 164 | void set_battery_type(int type); /* set local battery type */ |
165 | 165 | ||
166 | void set_sleeptimer_duration(int minutes); | 166 | void set_sleeptimer_duration(int minutes); |
167 | bool get_sleep_timer_active(void); | ||
167 | int get_sleep_timer(void); | 168 | int get_sleep_timer(void); |
168 | void set_keypress_restarts_sleep_timer(bool enable); | 169 | void set_keypress_restarts_sleep_timer(bool enable); |
169 | void handle_auto_poweroff(void); | 170 | void handle_auto_poweroff(void); |
diff --git a/firmware/powermgmt.c b/firmware/powermgmt.c index c33ad387ae..abcd32f814 100644 --- a/firmware/powermgmt.c +++ b/firmware/powermgmt.c | |||
@@ -961,6 +961,11 @@ static void set_sleep_timer(int seconds) | |||
961 | sleeptimer_duration = seconds; | 961 | sleeptimer_duration = seconds; |
962 | } | 962 | } |
963 | 963 | ||
964 | bool get_sleep_timer_active(void) | ||
965 | { | ||
966 | return sleeptimer_active; | ||
967 | } | ||
968 | |||
964 | int get_sleep_timer(void) | 969 | int get_sleep_timer(void) |
965 | { | 970 | { |
966 | if (sleeptimer_active && (sleeptimer_endtick >= current_tick)) | 971 | if (sleeptimer_active && (sleeptimer_endtick >= current_tick)) |