diff options
Diffstat (limited to 'apps/misc.c')
-rw-r--r-- | apps/misc.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/apps/misc.c b/apps/misc.c index 7e4e5071a1..80c4588f0f 100644 --- a/apps/misc.c +++ b/apps/misc.c | |||
@@ -583,16 +583,25 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter) | |||
583 | #ifdef X5_BACKLIGHT_SHUTDOWN | 583 | #ifdef X5_BACKLIGHT_SHUTDOWN |
584 | x5_backlight_shutdown(); | 584 | x5_backlight_shutdown(); |
585 | #endif | 585 | #endif |
586 | if (!battery_level_safe()) | ||
587 | gui_syncsplash(3*HZ, true, "%s %s", | ||
588 | str(LANG_WARNING_BATTERY_EMPTY), | ||
589 | str(LANG_SHUTTINGDOWN)); | ||
590 | else if (battery_level_critical()) | ||
591 | gui_syncsplash(3*HZ, true, "%s %s", | ||
592 | str(LANG_WARNING_BATTERY_LOW), | ||
593 | str(LANG_SHUTTINGDOWN)); | ||
594 | else { | ||
586 | #ifdef HAVE_TAGCACHE | 595 | #ifdef HAVE_TAGCACHE |
587 | if (!tagcache_prepare_shutdown()) | 596 | if (!tagcache_prepare_shutdown()) |
588 | { | 597 | { |
589 | cancel_shutdown(); | 598 | cancel_shutdown(); |
590 | gui_syncsplash(HZ, true, str(LANG_TAGCACHE_BUSY)); | 599 | gui_syncsplash(HZ, true, str(LANG_TAGCACHE_BUSY)); |
591 | return false; | 600 | return false; |
592 | } | 601 | } |
593 | #endif | 602 | #endif |
594 | 603 | gui_syncsplash(0, true, str(LANG_SHUTTINGDOWN)); | |
595 | gui_syncsplash(0, true, str(LANG_SHUTTINGDOWN)); | 604 | } |
596 | 605 | ||
597 | if (global_settings.fade_on_stop | 606 | if (global_settings.fade_on_stop |
598 | && (audio_status() & AUDIO_STATUS_PLAY)) | 607 | && (audio_status() & AUDIO_STATUS_PLAY)) |
@@ -607,7 +616,8 @@ static bool clean_shutdown(void (*callback)(void *), void *parameter) | |||
607 | if (callback != NULL) | 616 | if (callback != NULL) |
608 | callback(parameter); | 617 | callback(parameter); |
609 | 618 | ||
610 | system_flush(); | 619 | if (!battery_level_critical()) /* do not save on critical battery */ |
620 | system_flush(); | ||
611 | #ifdef HAVE_EEPROM_SETTINGS | 621 | #ifdef HAVE_EEPROM_SETTINGS |
612 | if (firmware_settings.initialized) | 622 | if (firmware_settings.initialized) |
613 | { | 623 | { |