diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c index 20af4dc3da..1b6f9c3b2a 100644 --- a/apps/gui/usb_screen.c +++ b/apps/gui/usb_screen.c @@ -96,8 +96,7 @@ static int handle_usb_events(void) case SYS_USB_DISCONNECTED: return 1; case SYS_CHARGER_DISCONNECTED: - /*reset rockbox battery runtime*/ - global_status.runtime = 0; + reset_runtime(); break; case SYS_TIMEOUT: break; diff --git a/apps/misc.c b/apps/misc.c index b6eaafb599..037daf0cac 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -576,8 +576,7 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame case SYS_CHARGER_DISCONNECTED: car_adapter_mode_processing(false); - /*reset rockbox battery runtime*/ - global_status.runtime = 0; + reset_runtime(); return SYS_CHARGER_DISCONNECTED; case SYS_CAR_ADAPTER_RESUME: diff --git a/apps/settings.c b/apps/settings.c index a0e20839ed..eed2b3a692 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -608,6 +608,11 @@ static void flush_config_block_callback(void) settings_write_config(CONFIGFILE, SETTINGS_SAVE_CHANGED); } +void reset_runtime(void) { + lasttime = current_tick; + global_status.runtime = 0; +} + /* * persist all runtime user settings to disk or RTC RAM */ diff --git a/apps/settings.h b/apps/settings.h index ec2d1007eb..e7388b4586 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -196,6 +196,7 @@ bool settings_load_config(const char* file, bool apply); void status_save(void); int settings_save(void); +void reset_runtime(void); /* defines for the options paramater */ enum { SETTINGS_SAVE_CHANGED = 0,