From 53026d08380a5879d445a44fcfc0e5cedc47bad6 Mon Sep 17 00:00:00 2001 From: Sibo Van Gool Date: Fri, 3 Jun 2022 00:58:20 +0200 Subject: [PATCH] Add check beta updates checkbox in preferences --- core/resources/build.properties | 4 +++- core/resources/l10n/messages.properties | 2 ++ .../communication/UpdateInfoRetriever.java | 3 +-- core/src/net/sf/openrocket/startup/Preferences.java | 10 ++++++++++ core/src/net/sf/openrocket/util/BuildProperties.java | 11 +++++++++++ .../dialogs/preferences/GeneralPreferencesPanel.java | 12 ++++++++++++ 6 files changed, 39 insertions(+), 3 deletions(-) diff --git a/core/resources/build.properties b/core/resources/build.properties index e8ae1f4fc..3a06e646e 100644 --- a/core/resources/build.properties +++ b/core/resources/build.properties @@ -14,5 +14,7 @@ build.source=default # Whether checking for updates is enabled by default. - build.checkupdates=true + +# Whether checking for beta updates is enabled by default. +build.checkbetaupdates=true diff --git a/core/resources/l10n/messages.properties b/core/resources/l10n/messages.properties index 145b86628..1b8530a99 100644 --- a/core/resources/l10n/messages.properties +++ b/core/resources/l10n/messages.properties @@ -293,6 +293,8 @@ pref.dlg.RockSimfiles = RockSim engine files (*.rse) pref.dlg.ZIParchives = ZIP archives (*.zip) pref.dlg.checkbox.Checkupdates = Check for software updates at startup pref.dlg.checkbox.Checkupdates.ttip = Check for software updates every time you start up OpenRocket +pref.dlg.checkbox.CheckBetaupdates = Also check for beta releases +pref.dlg.checkbox.CheckBetaupdates.ttip = If checked, beta release updates are also notified. If unchecked, only official releases are considered. pref.dlg.ttip.Checkupdatesnow = Check for software updates now pref.dlg.lbl.Selectprefunits = Select your preferred units: pref.dlg.lbl.Rocketinfofontsize = Size of text in rocket design panel: diff --git a/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java b/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java index b664a684c..4018c12b6 100644 --- a/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java +++ b/core/src/net/sf/openrocket/communication/UpdateInfoRetriever.java @@ -117,7 +117,6 @@ public class UpdateInfoRetriever { private final String preTag = null; // Change e.g. to 'android' for Android release private final String[] filterTags = null; // Change to e.g. ["beta"] to only retrieve beta releases - private final boolean onlyOfficial = false; // Change to false for beta testing private volatile UpdateInfo info; @@ -140,7 +139,7 @@ public class UpdateInfoRetriever { // Get the latest release name from the GitHub release page JsonArray jsonArr = retrieveAllReleaseObjects(); - JsonObject latestObj = getLatestReleaseJSON(jsonArr, preTag, filterTags, onlyOfficial); + JsonObject latestObj = getLatestReleaseJSON(jsonArr, preTag, filterTags, !Application.getPreferences().getCheckBetaUpdates()); ReleaseInfo release = new ReleaseInfo(latestObj); String latestName = release.getReleaseName(); diff --git a/core/src/net/sf/openrocket/startup/Preferences.java b/core/src/net/sf/openrocket/startup/Preferences.java index 687a0512f..58f76a742 100644 --- a/core/src/net/sf/openrocket/startup/Preferences.java +++ b/core/src/net/sf/openrocket/startup/Preferences.java @@ -55,6 +55,8 @@ public abstract class Preferences implements ChangeSource { public static final String PLOT_SHOW_POINTS = "ShowPlotPoints"; private static final String CHECK_UPDATES = "CheckUpdates"; + + private static final String CHECK_BETA_UPDATES = "CheckBetaUpdates"; public static final String MOTOR_DIAMETER_FILTER = "MotorDiameterMatch"; public static final String MOTOR_HIDE_SIMILAR = "MotorHideSimilar"; @@ -140,6 +142,14 @@ public abstract class Preferences implements ChangeSource { public final void setCheckUpdates(boolean check) { this.putBoolean(CHECK_UPDATES, check); } + + public final boolean getCheckBetaUpdates() { + return this.getBoolean(CHECK_BETA_UPDATES, BuildProperties.getDefaultCheckBetaUpdates()); + } + + public final void setCheckBetaUpdates(boolean check) { + this.putBoolean(CHECK_BETA_UPDATES, check); + } public final boolean getConfirmSimDeletion() { return this.getBoolean(CONFIRM_DELETE_SIMULATION, true); diff --git a/core/src/net/sf/openrocket/util/BuildProperties.java b/core/src/net/sf/openrocket/util/BuildProperties.java index 870d9001c..d1d69c69a 100644 --- a/core/src/net/sf/openrocket/util/BuildProperties.java +++ b/core/src/net/sf/openrocket/util/BuildProperties.java @@ -12,6 +12,7 @@ public class BuildProperties { private static final String BUILD_COPYRIGHT; private static final String BUILD_SOURCE; private static final boolean DEFAULT_CHECK_UPDATES; + private static final boolean DEFAULT_CHECK_BETA_UPDATES; /** * Return the OpenRocket version number. @@ -30,6 +31,10 @@ public class BuildProperties { public static boolean getDefaultCheckUpdates() { return DEFAULT_CHECK_UPDATES; } + + public static boolean getDefaultCheckBetaUpdates() { + return DEFAULT_CHECK_BETA_UPDATES; + } public static String getCopyrightYear() { return BUILD_COPYRIGHT; @@ -69,6 +74,12 @@ public class BuildProperties { DEFAULT_CHECK_UPDATES = Boolean.parseBoolean(value); else DEFAULT_CHECK_UPDATES = true; + + value = PROPERTIES.getProperty("build.checkbetaupdates"); + if (value != null) + DEFAULT_CHECK_BETA_UPDATES = Boolean.parseBoolean(value); + else + DEFAULT_CHECK_BETA_UPDATES = true; BUILD_COPYRIGHT = PROPERTIES.getProperty("build.copyright", "2021"); diff --git a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java index 62b069136..e2efb2251 100644 --- a/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java +++ b/swing/src/net/sf/openrocket/gui/dialogs/preferences/GeneralPreferencesPanel.java @@ -212,6 +212,18 @@ public class GeneralPreferencesPanel extends PreferencesPanel { } }); this.add(button, "right, wrap"); + + //// Check for beta releases + final JCheckBox betaUpdateBox = new JCheckBox(trans.get("pref.dlg.checkbox.CheckBetaupdates")); + betaUpdateBox.setToolTipText(trans.get("pref.dlg.checkbox.CheckBetaupdates.ttip")); + betaUpdateBox.setSelected(preferences.getCheckBetaUpdates()); + betaUpdateBox.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + preferences.setCheckBetaUpdates(betaUpdateBox.isSelected()); + } + }); + this.add(betaUpdateBox, "gapleft para, wrap"); //// Open most recent file on startup final JCheckBox openRecentOnStartupBox = new JCheckBox(trans.get("pref.dlg.but.openlast"));