From dd593d5c9cd0caa998feb0df67dcd2343a90939f Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 30 Jan 2021 18:50:51 +0100 Subject: [PATCH] #562 - check connection: show error cause if available --- .../de/deadlocker8/budgetmaster/backup/GitHelper.java | 7 ++++--- .../budgetmaster/settings/SettingsController.java | 11 +++++++++-- src/main/resources/languages/base_de.properties | 2 +- src/main/resources/languages/base_en.properties | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java b/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java index 9e0291afc..bf4d2dbf5 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java +++ b/src/main/java/de/deadlocker8/budgetmaster/backup/GitHelper.java @@ -14,6 +14,7 @@ import java.io.IOException; import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Optional; import java.util.Set; public class GitHelper @@ -87,7 +88,7 @@ public class GitHelper pushCommand.call(); } - public static boolean checkConnection(String uri, CredentialsProvider credentialsProvider) + public static Optional<String> checkConnection(String uri, CredentialsProvider credentialsProvider) { try { @@ -97,10 +98,10 @@ public class GitHelper catch(GitAPIException | IOException e) { e.printStackTrace(); - return false; + return Optional.of(e.getMessage()); } - return true; + return Optional.empty(); } public static boolean isFileModified(Git git, String fileName) throws GitAPIException diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java index fbfa192d6..ccfa4d3ee 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java +++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java @@ -355,9 +355,16 @@ public class SettingsController extends BaseController } final CredentialsProvider credentialsProvider = new UsernamePasswordCredentialsProvider(autoBackupGitUserName, autoBackupGitToken); - final boolean isValidConnection = GitHelper.checkConnection(autoBackupGitUrl, credentialsProvider); + final Optional<String> checkConnectionOptional = GitHelper.checkConnection(autoBackupGitUrl, credentialsProvider); + final boolean isValidConnection = checkConnectionOptional.isEmpty(); + String errorText = ""; + if(checkConnectionOptional.isPresent()) + { + errorText = checkConnectionOptional.get(); + } + - String localizedMessage = Localization.getString("settings.backup.auto.git.test.fail"); + String localizedMessage = Localization.getString("settings.backup.auto.git.test.fail", errorText); if(isValidConnection) { localizedMessage = Localization.getString("settings.backup.auto.git.test.success"); diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index 45ce4ce36..3f2651f2f 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -224,7 +224,7 @@ settings.backup.auto.git.user.name=Git Nutzername settings.backup.auto.git.token=Git Zugriffstoken settings.backup.auto.git.test=Verbindung testen settings.backup.auto.git.test.success=Verbindung erfolgreich! -settings.backup.auto.git.test.fail=Verbindung fehlgeschlagen! +settings.backup.auto.git.test.fail=Verbindung fehlgeschlagen!\n{0} settings.database.import=Importieren settings.database.export=Exportieren diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index 2d0802748..d5e7145c0 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -224,7 +224,7 @@ settings.backup.auto.git.user.name=Git user name settings.backup.auto.git.token=Git access token settings.backup.auto.git.test=Test connection settings.backup.auto.git.test.success=Connection successful! -settings.backup.auto.git.test.fail=Connection failed! +settings.backup.auto.git.test.fail=Connection failed!\n{0} settings.database.import=Import settings.database.export=Export -- GitLab