@@ -283,10 +283,6 @@ int CLIENT_STATE::check_suspend_processing() {
283283 // If suspend because of hot battery, don't resume for at least 5 min
284284 // (crude hysteresis)
285285 //
286- static double battery_heat_resume_time=0 ;
287- if (now < battery_heat_resume_time) {
288- return SUSPEND_REASON_BATTERY_OVERHEATED;
289- }
290286 if (device_status.battery_state == BATTERY_STATE_OVERHEATED) {
291287 battery_heat_resume_time = now + ANDROID_BATTERY_BACKOFF;
292288 return SUSPEND_REASON_BATTERY_OVERHEATED;
@@ -295,20 +291,20 @@ int CLIENT_STATE::check_suspend_processing() {
295291 battery_heat_resume_time = now + ANDROID_BATTERY_BACKOFF;
296292 return SUSPEND_REASON_BATTERY_OVERHEATED;
297293 }
294+ if (now < battery_heat_resume_time) {
295+ return SUSPEND_REASON_BATTERY_HEAT_WAIT;
296+ }
298297
299298 // check for sufficient battery charge.
300299 // If suspend, don't resume for at least 5 min
301300 //
302- static double battery_charge_resume_time=0 ;
303- if (now < battery_charge_resume_time) {
301+ int cp = device_status.battery_charge_pct ;
302+ if ((cp >= 0 ) && (cp < global_prefs.battery_charge_min_pct )) {
303+ battery_charge_resume_time = now + ANDROID_BATTERY_BACKOFF;
304304 return SUSPEND_REASON_BATTERY_CHARGING;
305305 }
306- int cp = device_status.battery_charge_pct ;
307- if (cp >= 0 ) {
308- if (cp < global_prefs.battery_charge_min_pct ) {
309- battery_charge_resume_time = now + ANDROID_BATTERY_BACKOFF;
310- return SUSPEND_REASON_BATTERY_CHARGING;
311- }
306+ if (now < battery_charge_resume_time) {
307+ return SUSPEND_REASON_BATTERY_CHARGE_WAIT;
312308 }
313309 }
314310#endif
@@ -375,12 +371,28 @@ void CLIENT_STATE::show_suspend_tasks_message(int reason) {
375371 case SUSPEND_REASON_BATTERY_CHARGING:
376372 if (log_flags.task ) {
377373 msg_printf (NULL , MSG_INFO,
378- " (battery charge level %.1f%% < threshold %.1f%%" ,
374+ " (battery charge level %.1f%% < threshold %.1f%%) " ,
379375 device_status.battery_charge_pct ,
380376 global_prefs.battery_charge_min_pct
381377 );
382378 }
383379 break ;
380+ case SUSPEND_REASON_BATTERY_CHARGE_WAIT:
381+ if (log_flags.task ) {
382+ msg_printf (NULL , MSG_INFO,
383+ " (battery charge wait: %.0f sec)" ,
384+ battery_charge_resume_time - now
385+ );
386+ }
387+ break ;
388+ case SUSPEND_REASON_BATTERY_HEAT_WAIT:
389+ if (log_flags.task ) {
390+ msg_printf (NULL , MSG_INFO,
391+ " (battery heat wait: %.0f sec)" ,
392+ battery_heat_resume_time - now
393+ );
394+ }
395+ break ;
384396 }
385397#endif
386398 }
0 commit comments