summaryrefslogtreecommitdiff
path: root/apps/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/misc.c')
-rw-r--r--apps/misc.c28
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 {