diff --git a/apps/gui/usb_screen.c b/apps/gui/usb_screen.c index f74747fd5c..527ae9fd15 100644 --- a/apps/gui/usb_screen.c +++ b/apps/gui/usb_screen.c @@ -91,6 +91,10 @@ static int handle_usb_events(void) case SYS_USB_DISCONNECTED: usb_acknowledge(SYS_USB_DISCONNECTED_ACK); return 1; + case SYS_CHARGER_DISCONNECTED: + /*reset rockbox battery runtime*/ + global_status.runtime = 0; + break; case SYS_TIMEOUT: break; } diff --git a/apps/misc.c b/apps/misc.c index 8c60e32559..554d29e630 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -590,6 +590,7 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame system_restore(); } return SYS_USB_CONNECTED; + case SYS_POWEROFF: if (!clean_shutdown(callback, parameter)) return SYS_POWEROFF; @@ -601,6 +602,8 @@ 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; return SYS_CHARGER_DISCONNECTED; case SYS_CAR_ADAPTER_RESUME: diff --git a/apps/screens.c b/apps/screens.c index 92b174b55c..65ab1094d3 100644 --- a/apps/screens.c +++ b/apps/screens.c @@ -825,16 +825,8 @@ bool view_runtime(void) gui_synclist_speak_item(&lists); while(1) { -#if CONFIG_CHARGING - if (charger_inserted()) - { - global_status.runtime = 0; - } - else -#endif - { - global_status.runtime += ((current_tick - lasttime) / HZ); - } + global_status.runtime += ((current_tick - lasttime) / HZ); + lasttime = current_tick; gui_synclist_draw(&lists); list_do_action(CONTEXT_STD, HZ,