- Nixed the START step.
- Allow multiple percentages to be specified for a step. The lowest one that's higher than the current percentage is used. - It seems sometimes the UI is shown after some progress is made. Track the percentage we're at when the UI is shown and reset that to be the new 0, scaling subsequent progress to fill the remainder. I added this convinced I needed it, but now I'm seeing that it's always at 0 when the UI is shown... Perhaps I'll revisit that after I do some other stuff...
This commit is contained in:
@@ -98,23 +98,22 @@ public abstract class Getdown extends Thread
|
|||||||
*/
|
*/
|
||||||
public enum Step
|
public enum Step
|
||||||
{
|
{
|
||||||
START(1),
|
|
||||||
UPDATE_JAVA(10),
|
UPDATE_JAVA(10),
|
||||||
VERIFY_METADATA(12),
|
VERIFY_METADATA(15, 65, 95),
|
||||||
DOWNLOAD(40),
|
DOWNLOAD(40),
|
||||||
PATCH(60),
|
PATCH(60),
|
||||||
VERIFY_RESOURCES(70),
|
VERIFY_RESOURCES(70, 97),
|
||||||
REDOWNLOAD_RESOURCES(90),
|
REDOWNLOAD_RESOURCES(90),
|
||||||
UNPACK(98),
|
UNPACK(98),
|
||||||
LAUNCH(99);
|
LAUNCH(99);
|
||||||
|
|
||||||
/** What is the final percent value for this step? */
|
/** What is the final percent value for this step? */
|
||||||
public final int finalPercent;
|
public int[] finalPercents;
|
||||||
|
|
||||||
/** Enum constructor. */
|
/** Enum constructor. */
|
||||||
Step (int finalPercent)
|
Step (int... finalPercents)
|
||||||
{
|
{
|
||||||
this.finalPercent = finalPercent;
|
this.finalPercents = finalPercents;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -444,7 +443,7 @@ public abstract class Getdown extends Thread
|
|||||||
// we'll keep track of all the resources we unpack
|
// we'll keep track of all the resources we unpack
|
||||||
Set<Resource> unpacked = new HashSet<Resource>();
|
Set<Resource> unpacked = new HashSet<Resource>();
|
||||||
|
|
||||||
setStep(Step.START);
|
//setStep(Step.START);
|
||||||
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
|
||||||
@@ -920,6 +919,11 @@ public abstract class Getdown extends Thread
|
|||||||
|
|
||||||
_patchNotes.setBounds(_ifc.patchNotes);
|
_patchNotes.setBounds(_ifc.patchNotes);
|
||||||
_patchNotes.setVisible(false);
|
_patchNotes.setVisible(false);
|
||||||
|
|
||||||
|
// we were displaying progress while the UI wasn't up. Now that it is, whatever progress
|
||||||
|
// is left is scaled into a 0-100 DISPLAYED progress.
|
||||||
|
_uiDisplayPercent = _lastGlobalPercent;
|
||||||
|
_stepMinPercent = _lastGlobalPercent = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected RotatingBackgrounds getBackground ()
|
protected RotatingBackgrounds getBackground ()
|
||||||
@@ -973,11 +977,19 @@ public abstract class Getdown extends Thread
|
|||||||
*/
|
*/
|
||||||
protected void setStep (Step step)
|
protected void setStep (Step step)
|
||||||
{
|
{
|
||||||
if (step.finalPercent < _stepMaxPercent) {
|
int finalPercent = -1;
|
||||||
// we've gone backwards. Ignore it.
|
for (int perc : step.finalPercents) {
|
||||||
|
if (perc > _stepMaxPercent) {
|
||||||
|
finalPercent = perc;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (finalPercent == -1) {
|
||||||
|
// we've gone backwards and this step will be ignored
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_stepMaxPercent = step.finalPercent;
|
|
||||||
|
_stepMaxPercent = finalPercent;
|
||||||
_stepMinPercent = _lastGlobalPercent;
|
_stepMinPercent = _lastGlobalPercent;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -996,8 +1008,10 @@ public abstract class Getdown extends Thread
|
|||||||
|
|
||||||
// maybe update the global percent, never letting it go backwards
|
// maybe update the global percent, never letting it go backwards
|
||||||
if (percent >= 0) {
|
if (percent >= 0) {
|
||||||
|
int adjustedMaxPercent =
|
||||||
|
((_stepMaxPercent - _uiDisplayPercent) * 100) / (100 - _uiDisplayPercent);
|
||||||
_lastGlobalPercent = Math.max(_lastGlobalPercent,
|
_lastGlobalPercent = Math.max(_lastGlobalPercent,
|
||||||
_stepMinPercent + (percent * (_stepMaxPercent - _stepMinPercent)) / 100);
|
_stepMinPercent + (percent * (adjustedMaxPercent - _stepMinPercent)) / 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
final int reportedPercent = (percent >= 0) ? _lastGlobalPercent : -1;
|
final int reportedPercent = (percent >= 0) ? _lastGlobalPercent : -1;
|
||||||
@@ -1178,6 +1192,7 @@ public abstract class Getdown extends Thread
|
|||||||
protected int _stepMaxPercent;
|
protected int _stepMaxPercent;
|
||||||
protected int _stepMinPercent;
|
protected int _stepMinPercent;
|
||||||
protected int _lastGlobalPercent;
|
protected int _lastGlobalPercent;
|
||||||
|
protected int _uiDisplayPercent;
|
||||||
|
|
||||||
protected static final int MAX_LOOPS = 5;
|
protected static final int MAX_LOOPS = 5;
|
||||||
protected static final long MIN_EXIST_TIME = 5000L;
|
protected static final long MIN_EXIST_TIME = 5000L;
|
||||||
|
|||||||
Reference in New Issue
Block a user