diff --git a/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java index 77f4a74d47d2d33bcdcffdb4b4afd0b56c21c7af..27bd2292b11de1fc582f4fabf810c1d2c4b1909a 100644 --- a/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java +++ b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java @@ -490,4 +490,24 @@ public class ServerConnection return null; } } + + /* + * VERSION + */ + public int getServerVersion() throws Exception + { + URL url = new URL(settings.getUrl() + "/version?secret=" + Helpers.getURLEncodedString(settings.getSecret())); + HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection(); + httpsCon.setDoOutput(true); + httpsCon.setRequestMethod("GET"); + + if(httpsCon.getResponseCode() == HttpsURLConnection.HTTP_OK) + { + return Integer.parseInt(Read.getStringFromInputStream(httpsCon.getInputStream())); + } + else + { + throw new ServerConnectionException(String.valueOf(httpsCon.getResponseCode())); + } + } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java b/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java index 5e397726f5cc7635d80aad42870e37241e502fd6..1318e3fd03cfb2fd894908e46e9cbfb2049efa02 100644 --- a/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java +++ b/src/de/deadlocker8/budgetmaster/logic/utils/Strings.java @@ -180,4 +180,5 @@ public class Strings public static final String ERROR_DATABASE_IMPORT = "error.database.import"; public static final String ERROR_DATABASE_IMPORT_WRONG_FILE = "error.database.import.wrong.file"; public static final String ERROR_PASSWORD_SAVE = "error.password.save"; + public static final String ERROR_UPDATER_GET_LATEST_VERSION = "error.updater.get.latest.version"; } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties b/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties index 3852afab4b4b904cd932d9c7183e155cb7cac840..16a7e731663ae8a8c02beb1354e2d09a26650c71 100644 --- a/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties +++ b/src/de/deadlocker8/budgetmaster/resources/languages/_de.properties @@ -178,6 +178,7 @@ error.settings.save=Beim Speichern der Einstellungen ist ein Fehler aufgetreten. error.database.import=Beim Einlesen der Datei ist ein Fehler aufgetreten. error.database.import.wrong.file=Die angegebene Datei enth�lt kein g�ltiges BudgetMaster-Datenformat und kann daher nicht importiert werden. error.password.save=Beim Speichern des Passworts ist ein Fehler aufgetreten. +error.updater.get.latest.version=Beim �berpr�fen auf Updates ist ein Fehler aufgetreten. Informationen zu neuen Versionen konnten nicht abgerufen werden. Versuche es sp�ter noch einmal. # UI categorytab.button.category.new=\ Neue Kategorie diff --git a/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties b/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties index af43d93b216f80beced88e135dc305410a85f1f8..a54e0f13761a94109079bc72f0333ce7410a47d3 100644 --- a/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties +++ b/src/de/deadlocker8/budgetmaster/resources/languages/_en.properties @@ -178,6 +178,7 @@ error.settings.save=An error occurred while saving the settings. error.database.import=An error occurred while reading the file. error.database.import.wrong.file=The specified file does not contain a valid BudgetMaster data format thus can not be imported. error.password.save=An error occurred while saving the password. +error.updater.get.latest.version=An error occurred while checking for updates. Information about latest versions could not be retrieved. Please try again later. # UI categorytab.button.category.new=\ New Category diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java b/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java index e653694f368bd3c93c3dfe1bba83352be8a6d326..5d976acd08e90a6f5d7a46f7a3be3b453f6a1743 100644 --- a/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java +++ b/src/de/deadlocker8/budgetmaster/ui/controller/Controller.java @@ -377,7 +377,11 @@ public class Controller catch(NumberFormatException | IOException e) { Logger.error(e); - //ERRORHANDLING + AlertGenerator.showAlert(AlertType.ERROR, + Localization.getString(Strings.TITLE_ERROR), + "", + Localization.getString(Strings.ERROR_UPDATER_GET_LATEST_VERSION), + icon, null, null, true); } } diff --git a/src/de/deadlocker8/budgetmasterserver/main/Main.java b/src/de/deadlocker8/budgetmasterserver/main/Main.java index 61a8906296d81470e7983c1382f687048d0bfe9f..c191960967bea6ac788dcc55a7bf1e12ab16f7e8 100644 --- a/src/de/deadlocker8/budgetmasterserver/main/Main.java +++ b/src/de/deadlocker8/budgetmasterserver/main/Main.java @@ -60,7 +60,7 @@ public class Main try { settings = Utils.loadSettings(); - new SparkServer(settings); + new SparkServer(settings, bundle.getString("version.code")); } catch(IOException | URISyntaxException e) { diff --git a/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java b/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java index 6a35e670f4e5030ecbf6735686f2643814c7c4c2..ce364e936552397ad5fc864e4625ee0bbb1f3e4c 100644 --- a/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java +++ b/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java @@ -41,6 +41,7 @@ import de.deadlocker8.budgetmasterserver.server.payment.repeating.RepeatingPayme import de.deadlocker8.budgetmasterserver.server.payment.repeating.RepeatingPaymentGetAll; import de.deadlocker8.budgetmasterserver.server.rest.RestGet; import de.deadlocker8.budgetmasterserver.server.updater.RepeatingPaymentUpdater; +import de.deadlocker8.budgetmasterserver.server.version.VersionGet; import logger.Logger; import spark.Spark; import spark.route.RouteOverview; @@ -50,10 +51,12 @@ public class SparkServer { private Gson gson; private DatabaseHandler handler; + private String versionCode; - public SparkServer(Settings settings) + public SparkServer(Settings settings, String versionCode) { - Logger.info("Initialized SparkServer"); + this.versionCode = versionCode; + Logger.info("Initializing SparkServer..."); gson = new GsonBuilder().setPrettyPrinting().create(); @@ -126,6 +129,8 @@ public class SparkServer get("/database", new DatabaseExport(settings, gson)); post("/database", new DatabaseImport(handler, gson)); delete("/database", new DatabaseDelete(handler, settings)); + + get("/version", new VersionGet(versionCode)); after((request, response) -> { new RepeatingPaymentUpdater(handler).updateRepeatingPayments(DateTime.now()); diff --git a/src/de/deadlocker8/budgetmasterserver/server/version/VersionGet.java b/src/de/deadlocker8/budgetmasterserver/server/version/VersionGet.java new file mode 100644 index 0000000000000000000000000000000000000000..5e9b3e5d92d3012345bc8ceba1fd51645a34b415 --- /dev/null +++ b/src/de/deadlocker8/budgetmasterserver/server/version/VersionGet.java @@ -0,0 +1,21 @@ +package de.deadlocker8.budgetmasterserver.server.version; + +import spark.Request; +import spark.Response; +import spark.Route; + +public class VersionGet implements Route +{ + private String versionCode; + + public VersionGet( String versionCode) + { + this.versionCode = versionCode; + } + + @Override + public Object handle(Request req, Response res) throws Exception + { + return versionCode; + } +} \ No newline at end of file