diff --git a/src/Core/RideDB.h b/src/Core/RideDB.h index 317f05029..a00d189ae 100644 --- a/src/Core/RideDB.h +++ b/src/Core/RideDB.h @@ -82,6 +82,9 @@ struct RideDBContext { // is cache/rideDB.json an older version ? bool old; int loading; + + // tracks the last progress update sent + double lastProgressUpdate; }; #endif diff --git a/src/Core/RideDB.y b/src/Core/RideDB.y index bb0d4a000..b297dc863 100644 --- a/src/Core/RideDB.y +++ b/src/Core/RideDB.y @@ -82,11 +82,10 @@ ride: '{' rideelement_list '}' { jc->api->writeRideLine(jc->item, jc->request, jc->response); #endif } else { - static double last = 0.0; double progress= round(double(jc->loading++) / double(jc->cache->rides().count()) * 100.0f); - if (progress > last) { + if (progress > jc->lastProgressUpdate) { jc->context->notifyLoadProgress(jc->folder,progress); - last = progress; + jc->lastProgressUpdate = progress; } // find entry and update it @@ -344,6 +343,7 @@ RideCache::load() jc->api = NULL; jc->old = false; jc->loading = 0; + jc->lastProgressUpdate = 0.0; jc->folder = context->athlete->home->root().canonicalPath(); // clean item