Other than to disambiguate for the compiler, I don't think clarity is enhanced
with twenty plus individual imports from the most commonly used packages in the
JDK (java.io + java.util). We all know where HashMap and InputStream are
defined.
Also some of the try-with-resources expanded multiple stream wrappers into
individual declarations. This doesn't make things any safer, close one and
you've closed them all. I reverted them to their more compact form.
This defines the minimum amount of time for which the UI will be shown before
automatically hiding itself. It defaults to 5 seconds (the old hard coded
value), which was chosen to ensure that users did not see a random window flash
up on the screen and then immediately disappear before they could see what it
was or meant, thereby confusing them.
This upgrades a bunch of Maven plugins, upgrades Proguard to 6.0, and adds some
fiddly profile stuff to point Proguard at the right set of JDK jmods since
rt.jar no longer exists for Java 9, and ignores a bunch more samskivert library
stuff since it references Java modules that we don't use (like java.sql).
When the window is undecorated and an error occurs very early, e.g. during
java version check, the order of the calls in the fail method is
significant. super.fail() will call setStatusAsync, which will create
the interface using EventQueue.invokeLater, if it does not exist yet.
Therefore we must first call super.fail(), and then asynchronously make
the window decorated again. Otherwise the window might not be created yet.
Closes#57
When defining a background color, it is now possible to define an alpha
value as most significant byte. E.g. `80FF0000` would define a half
transparent red background. This only works in combination with
`ui.hide_decorations = true`.
Closes#92
When the resource installation phase was added (downloading to _new files and
then moving them over top of the originals once they were validated), this
broke handling of unpacked resources.
Because we don't explicitly track whether a given version of a resource has
been unpacked (would be tricky) we try to piggy back on the download validation
process. But we validate before we install and we need to unpack after we
install, so for resources that are to be installed, we now also unpack and mark
as valid after the install is complete.
Closes#88.