Progress reporting fixes.
This commit is contained in:
@@ -882,8 +882,11 @@ public class Application
|
|||||||
* Verifies the code and media resources associated with this application. A list of resources
|
* Verifies the code and media resources associated with this application. A list of resources
|
||||||
* that do not exist or fail the verification process will be returned. If all resources are
|
* that do not exist or fail the verification process will be returned. If all resources are
|
||||||
* ready to go, null will be returned and the application is considered ready to run.
|
* ready to go, null will be returned and the application is considered ready to run.
|
||||||
|
*
|
||||||
|
* @param alreadyValid if non-null a 1 element array that will have the number of "already
|
||||||
|
* validated" resources filled in.
|
||||||
*/
|
*/
|
||||||
public List<Resource> verifyResources (ProgressObserver obs)
|
public List<Resource> verifyResources (ProgressObserver obs, int[] alreadyValid)
|
||||||
{
|
{
|
||||||
List<Resource> rsrcs = getAllResources();
|
List<Resource> rsrcs = getAllResources();
|
||||||
List<Resource> failures = new ArrayList<Resource>();
|
List<Resource> failures = new ArrayList<Resource>();
|
||||||
@@ -899,6 +902,9 @@ public class Application
|
|||||||
mpobs.startElement(rsrc.getLocal().length());
|
mpobs.startElement(rsrc.getLocal().length());
|
||||||
|
|
||||||
if (rsrc.isMarkedValid()) {
|
if (rsrc.isMarkedValid()) {
|
||||||
|
if (alreadyValid != null) {
|
||||||
|
alreadyValid[0]++;
|
||||||
|
}
|
||||||
mpobs.progress(100);
|
mpobs.progress(100);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -340,6 +340,14 @@ public abstract class Getdown extends Thread
|
|||||||
createInterface(true);
|
createInterface(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// we create this tracking counter here so that we properly note the first time through
|
||||||
|
// the update process whether we previously had validated resources (which means this
|
||||||
|
// is not a first time install); we may, in the course of updating, wipe out our
|
||||||
|
// validation markers and revalidate which would make us think we were doing a fresh
|
||||||
|
// install if we didn't specifically remember that we had validated resources the first
|
||||||
|
// time through
|
||||||
|
int[] alreadyValid = new int[1];
|
||||||
|
|
||||||
for (int ii = 0; ii < MAX_LOOPS; ii++) {
|
for (int ii = 0; ii < MAX_LOOPS; ii++) {
|
||||||
// if we aren't running in a JVM that meets our version requirements, either
|
// if we aren't running in a JVM that meets our version requirements, either
|
||||||
// complain or attempt to download and install the appropriate version
|
// complain or attempt to download and install the appropriate version
|
||||||
@@ -367,7 +375,7 @@ public abstract class Getdown extends Thread
|
|||||||
|
|
||||||
// now verify our resources...
|
// now verify our resources...
|
||||||
setStatus("m.validating", -1, -1L, false);
|
setStatus("m.validating", -1, -1L, false);
|
||||||
List<Resource> failures = _app.verifyResources(_progobs);
|
List<Resource> failures = _app.verifyResources(_progobs, alreadyValid);
|
||||||
if (failures == null) {
|
if (failures == null) {
|
||||||
Log.info("Resources verified.");
|
Log.info("Resources verified.");
|
||||||
launch();
|
launch();
|
||||||
@@ -375,12 +383,14 @@ public abstract class Getdown extends Thread
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
int rcount = _app.getAllResources().size();
|
// if any of our resources have already been marked valid this is not a first
|
||||||
_enableTracking = (failures.size() == rcount);
|
// time install and we don't want to enable tracking
|
||||||
|
_enableTracking = (alreadyValid[0] == 0);
|
||||||
reportTrackingEvent("app_start", -1);
|
reportTrackingEvent("app_start", -1);
|
||||||
|
|
||||||
// redownload any that are corrupt or invalid...
|
// redownload any that are corrupt or invalid...
|
||||||
Log.info(failures.size() + " of " + rcount + " rsrcs require update.");
|
Log.info(failures.size() + " of " + _app.getAllResources().size() +
|
||||||
|
" rsrcs require update (" + alreadyValid[0] + " assumed valid).");
|
||||||
download(failures);
|
download(failures);
|
||||||
|
|
||||||
reportTrackingEvent("app_complete", -1);
|
reportTrackingEvent("app_complete", -1);
|
||||||
@@ -747,12 +757,12 @@ public abstract class Getdown extends Thread
|
|||||||
|
|
||||||
} else if (progress > 0) {
|
} else if (progress > 0) {
|
||||||
// we need to make sure we do the right thing if we skip over progress levels
|
// we need to make sure we do the right thing if we skip over progress levels
|
||||||
for (int ii = _reportedProgress+1; ii <= progress; ii++) {
|
do {
|
||||||
URL url = _app.getTrackingProgressURL(progress);
|
URL url = _app.getTrackingProgressURL(++_reportedProgress);
|
||||||
if (url != null) {
|
if (url != null) {
|
||||||
new ProgressReporter(url).start();
|
new ProgressReporter(url).start();
|
||||||
}
|
}
|
||||||
}
|
} while (_reportedProgress <= progress);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
URL url = _app.getTrackingURL(event);
|
URL url = _app.getTrackingURL(event);
|
||||||
|
|||||||
Reference in New Issue
Block a user