Commit Graph

478 Commits

Author SHA1 Message Date
Daniel Gredler ad6a08cdd3 Bitmasks seem to be using wrong operator ("anything | 1 != 0" is always true)
Note return value check was changed from != to == based on JavaDoc for return value and logic in overridden method in superclass.
2018-08-30 15:52:11 -04:00
Michael Bayne cdde1c773c Reel in the verbosity a bit.
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.
2018-08-27 10:56:26 -07:00
Daniel Gredler a083f32ce0 Add a few more try-with-resources 2018-08-24 12:11:06 -04:00
Daniel Gredler 44ae6d99d0 Use try-with-resources: in some cases, resources were not always being released; in others, behavior was correct and we are just simplifying code 2018-08-24 11:28:26 -04:00
Michael Bayne 07412a792a Remove depend on commons-codec.
We'll use the Base64 class from Classpath/Android instead. One less moving
part.
2018-08-22 13:36:39 -07:00
Michael Bayne 83b316ab58 Fall back to main class if no app-specific class. 2018-08-22 08:21:04 -07:00
Michael Bayne 4e14def623 Truthier doc comment. 2018-08-09 12:27:23 -07:00
Michael Bayne 852bba52b1 Made ConfigUtil into a Config object that wraps the data.
This allows all of the config parsing helpers to live with Config.
2018-08-09 12:21:13 -07:00
Michael Bayne 45dc04c5a7 Added ui.min_show_seconds config.
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.
2018-08-09 11:26:35 -07:00
Michael Bayne d1992a5b9d Added support for marking resources as executable. 2018-08-08 11:21:17 -07:00
Michael Bayne 2b18ac283c Merge pull request #106 from ThomasGAI/patch-1
change "game" occurrences to "app" in messages_de
2018-07-26 08:52:33 -07:00
Michael Bayne a886bcac14 Don't encode the tracking URL, only the event & args. 2018-07-26 08:45:35 -07:00
ThomasGAI f72c937842 change "game" occurrences to "app" in messages_de
Changed "Spiel" to "Anwendung" in messages_de.properties for more common usage
2018-07-25 10:45:18 +02:00
Michael Bayne fa696c8999 Avoid calling the launched app a game. 2018-07-06 06:15:49 -07:00
Michael Bayne 9b6837bc69 Make appbase_domain work with https URLs.
Also refactored code to be more easily testable and added some tests.
2018-05-27 10:32:38 -07:00
Michael Bayne 3d5d5a630c Add clarifying comment; trim long line to < 100 chars. 2018-05-11 18:34:51 -07:00
Michael Bayne aaf33fe35e Merge pull request #100 from tschulte/issue-95
download control files using gzip content encoding
2018-05-11 18:31:10 -07:00
Michael Bayne 5917ce9329 Merge pull request #99 from tschulte/issue-94
make ucode with pack.gz work again
2018-05-11 18:30:13 -07:00
Michael Bayne 5a3e1d71bd Merge pull request #98 from tschulte/issue-93
change default Java version regex
2018-05-11 18:29:10 -07:00
Tobias Schulte 44e45cb701 set window to decorated even if error occurs during very early stage
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
2018-05-04 09:26:59 +02:00
Tobias Schulte d64bd1c1af allow transparent splash screens
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
2018-05-04 09:26:52 +02:00
Tobias Schulte c117d572d6 download control files using gzip content encoding
Closes #95
2018-05-04 09:13:10 +02:00
Tobias Schulte 8d57dfe1e4 make ucode with pack.gz work again
Closes #94
2018-05-04 09:12:49 +02:00
Tobias Schulte cf77b72235 change default Java version regex
Closes #93
2018-05-04 09:12:17 +02:00
Michael Bayne 5cc23397cd Use correct sig algorithm for each digest version.
Fixes #91.
2018-04-23 19:14:12 -07:00
Michael Bayne 16d8f08518 Delete harder, with a vengeance.
See comment in FileUtil.deleteHarder for rationale.
2018-04-10 12:04:38 -07:00
Michael Bayne c26f5a2468 Shutdown digester thread pool when done.
Closes #89.
2017-12-11 10:09:31 -08:00
Michael Bayne 0fd022d9cc Fix issues with installation and unpacking.
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.
2017-11-17 15:07:26 -08:00
Michael Bayne 065728276f Move unpackJar into Getdown's FileUtil.
Convert unpackJar and unpackPackedJar200 to throwing exceptions on failure
instead of catching, logging and returning booleans.
2017-11-17 14:59:12 -08:00
Michael Bayne 5925a6b57c Move noInstall() check into install(). 2017-11-17 13:59:17 -08:00
Michael Bayne 3b3e8be165 Order logic a little less weirdly. 2017-11-17 13:57:46 -08:00
Michael Bayne 9e95ef3ea2 Apply connect and read timeouts uniformly.
Also use a 5 second connect/read timeout when detecting a proxy, to avoid
lengthy stalls.
2017-10-23 18:13:19 -07:00
Michael Bayne 167ea2c5d5 Use some diamond operators just for kicks. 2017-09-17 10:31:58 -07:00
Michael Bayne 93f313c1d8 Fix Javadoc. 2017-09-17 10:11:41 -07:00
Michael Bayne 1f919ca9c9 Parallelize digest(2).txt computation.
Ad-hoc test on MBP with four-core i7 takes us from:

digest.txt: Computed digests [rsrcs=344, time=1055ms]
digest2.txt: Computed digests [rsrcs=344, time=2068ms]

to

digest.txt: Computed digests [rsrcs=344, time=328ms]
digest2.txt: Computed digests [rsrcs=344, time=832ms]
2017-09-17 09:52:48 -07:00
Michael Bayne dcd74f1bd9 Parallelize resource verification.
Ad-hoc testing with ~320MB of resources reduces verification time from
~2400ms to ~800ms on MBP with four-core i7.
2017-09-17 09:34:45 -07:00
Michael Bayne b39e59550f Make Resource comparable. 2017-09-17 09:29:06 -07:00
Michael Bayne 99a093a1c7 Allow any collection of resources to be downloaded. 2017-09-17 09:26:13 -07:00
Michael Bayne bc3252dbf0 Default to a 30s read timeout during downloads.
This is configurable via a system property -Dread_timeout=N.
2017-08-15 09:32:13 -07:00
Michael Bayne 19ed330a8d Always install a (valid) _new file if we have one.
Thanks to deepfreeze32 for the suggested fix.
2017-08-15 08:52:39 -07:00
Michael Bayne 454a8759af Apply strict comments to digest.txt file as well. 2017-07-03 09:21:53 -07:00
Michael Bayne b1c85ddb2e Restructure code to be less wonky. 2017-06-29 10:37:51 -07:00
Michael Bayne 1922919995 Formatting tweaks. 2017-06-29 09:31:01 -07:00
Paul-Yves Lucas e9774a0385 correcting bug when a localNew resource was here but not the local (if the app was stopped in the middle of dl for ex), it was valid and not installed, now it put in the _toBeInstalledResouces list for proper installation 2017-06-29 10:57:57 +02:00
Michael Bayne 61534b569c Added support for "strict comments".
In this mode, Getdown only treats a # as a comment starter in column zero. All
other #s are ignored. You enable it by putting:

strict_comments = true

in your getdown.txt file. Yes the same file that has to be parsed with or
without strict comments. If we see that, we reparse the file with strict
comments.
2017-06-28 17:58:17 -07:00
Michael Bayne 02975c107e Replace SysPropsTest with VersionUtilTest.
As pointed out by soapyfrog, depending on info from the JVM running the
test is fragile and not a good idea.

Fixes #84.
2017-04-25 08:43:19 -07:00
Michael Bayne e66b8fc2eb Fix error parsing code_cache_retention_days.
Fixes #82.
2017-04-10 14:03:01 -07:00
Michael Bayne 9e23a426a6 Fix backward logic re: use of code cache. 2017-02-22 08:45:20 -08:00
Michael Bayne 4ac9990785 Apparently jspawnhelper moved. 2017-02-14 11:01:44 -08:00
Michael Bayne e60b95cf2d Install the local JVM resource before unpacking.
Fixes #78.
2017-02-12 09:20:58 -08:00