From f92cf9c9e0412dff4f3e39cd83407a47c041dd4f Mon Sep 17 00:00:00 2001 From: Julian Raufelder Date: Thu, 27 Jul 2023 15:49:38 +0200 Subject: [PATCH 01/22] Change update check URL --- src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java b/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java index ffc2a3d2f..d70301e78 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java +++ b/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java @@ -28,7 +28,7 @@ public abstract class UpdateCheckerModule { private static final Logger LOG = LoggerFactory.getLogger(UpdateCheckerModule.class); - private static final URI LATEST_VERSION_URI = URI.create("https://api.cryptomator.org/updates/latestVersion.json"); + private static final URI LATEST_VERSION_URI = URI.create("https://api.cryptomator.org/desktop/latest-version.json"); private static final Duration UPDATE_CHECK_INTERVAL = Duration.hours(3); private static final Duration DISABLED_UPDATE_CHECK_INTERVAL = Duration.hours(100000); // Duration.INDEFINITE leads to overflows... From ab409152e357d79222c038984168881e22cec72e Mon Sep 17 00:00:00 2001 From: Julian Raufelder Date: Fri, 28 Jul 2023 16:14:58 +0200 Subject: [PATCH 02/22] Change error codes URL --- src/main/java/org/cryptomator/ui/error/ErrorController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/ui/error/ErrorController.java b/src/main/java/org/cryptomator/ui/error/ErrorController.java index d84af9fde..4b5b9b741 100644 --- a/src/main/java/org/cryptomator/ui/error/ErrorController.java +++ b/src/main/java/org/cryptomator/ui/error/ErrorController.java @@ -42,7 +42,7 @@ public class ErrorController implements FxController { private static final ObjectMapper JSON = new ObjectMapper(); private static final Logger LOG = LoggerFactory.getLogger(ErrorController.class); - private static final String ERROR_CODES_URL = "https://gist.githubusercontent.com/cryptobot/accba9fb9555e7192271b85606f97230/raw/errorcodes.json"; + private static final String ERROR_CODES_URL = "https://api.cryptomator.org/desktop/error-codes.json"; private static final String SEARCH_URL_FORMAT = "https://github.com/cryptomator/cryptomator/discussions/categories/errors?discussions_q=category:Errors+%s"; private static final String REPORT_URL_FORMAT = "https://github.com/cryptomator/cryptomator/discussions/new?category=Errors&title=Error+%s&body=%s"; private static final String SEARCH_ERRORCODE_DELIM = " OR "; From 1f09a3fa3abcf1ff1e94ddd9d591dd3a8e56c929 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Tue, 1 Aug 2023 10:04:07 +0200 Subject: [PATCH 03/22] allow notarization on manually dispatched builds --- .github/workflows/mac-dmg.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 1b3b4f0b9..764af2d9a 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -8,6 +8,11 @@ on: version: description: 'Version' required: false + notarize: + description: 'Notarize' + required: true + default: false + type: boolean env: JAVA_VERSION: 20 @@ -222,7 +227,7 @@ jobs: env: VERSION_NO: ${{ needs.get-version.outputs.semVerNum }} - name: Notarize .dmg - if: startsWith(github.ref, 'refs/tags/') + if: startsWith(github.ref, 'refs/tags/') || inputs.notarize uses: cocoalibs/xcode-notarization-action@v1 with: app-path: 'Cryptomator-*.dmg' From f4ad7aa43dd36c23a3573bc120e21337753d98f0 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 1 Aug 2023 16:29:36 +0200 Subject: [PATCH 04/22] References #3045 Use different encoding reading process output --- .../OneDriveWindowsLocationPresetsProvider.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cryptomator/common/locationpresets/OneDriveWindowsLocationPresetsProvider.java b/src/main/java/org/cryptomator/common/locationpresets/OneDriveWindowsLocationPresetsProvider.java index 7dcfde239..1d5bffd70 100644 --- a/src/main/java/org/cryptomator/common/locationpresets/OneDriveWindowsLocationPresetsProvider.java +++ b/src/main/java/org/cryptomator/common/locationpresets/OneDriveWindowsLocationPresetsProvider.java @@ -83,8 +83,8 @@ public final class OneDriveWindowsLocationPresetsProvider implements LocationPre throw new TimeoutException(cmdDescription + " timed out after " + timeoutSeconds + "s"); } if (process.exitValue() != 0) { - @SuppressWarnings("resource") var stdout = process.inputReader(StandardCharsets.UTF_8).lines().collect(Collectors.joining("\n")); - @SuppressWarnings("resource") var stderr = process.errorReader(StandardCharsets.UTF_8).lines().collect(Collectors.joining("\n")); + @SuppressWarnings("resource") var stdout = process.inputReader(StandardCharsets.ISO_8859_1).lines().collect(Collectors.joining("\n")); + @SuppressWarnings("resource") var stderr = process.errorReader(StandardCharsets.ISO_8859_1).lines().collect(Collectors.joining("\n")); throw new CommandFailedException(cmdDescription, process.exitValue(), stdout, stderr); } } From 7f0c92e2f09c4fa62d72ea3e9b0543bd18462f94 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 2 Aug 2023 09:44:18 +0200 Subject: [PATCH 05/22] Bump integrations-linux to 1.3.0-beta6 Fixes #3020 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f1f42b093..ff2f1c218 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ 1.3.0 1.2.0 1.2.0 - 1.3.0-beta5 + 1.3.0-beta6 3.0.0 2.0.0 2.0.3 From d08d992768b669006bff4c8fb5e416923745a1c8 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 2 Aug 2023 09:44:31 +0200 Subject: [PATCH 06/22] Bump integrations-win to 1.2.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ff2f1c218..871611ea0 100644 --- a/pom.xml +++ b/pom.xml @@ -35,7 +35,7 @@ 2.6.6 1.3.0 - 1.2.0 + 1.2.2 1.2.0 1.3.0-beta6 3.0.0 From fa3e0efd124fc76ebc5f62554da85277e2f58c1d Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Thu, 3 Aug 2023 12:53:44 +0200 Subject: [PATCH 07/22] init commit added new string properties added ui elements for user permission to look up error solutions in database modified ErrorController for permission handling --- .../cryptomator/ui/error/ErrorController.java | 46 ++++++++++----- src/main/resources/fxml/error.fxml | 56 ++++++++++++------- src/main/resources/i18n/strings.properties | 4 +- 3 files changed, 73 insertions(+), 33 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/error/ErrorController.java b/src/main/java/org/cryptomator/ui/error/ErrorController.java index 4b5b9b741..35941ad62 100644 --- a/src/main/java/org/cryptomator/ui/error/ErrorController.java +++ b/src/main/java/org/cryptomator/ui/error/ErrorController.java @@ -49,13 +49,13 @@ public class ErrorController implements FxController { private static final String REPORT_BODY_TEMPLATE = """ OS: %s / %s App: %s / %s - + - + - + - + """; @@ -65,11 +65,13 @@ public class ErrorController implements FxController { private final Scene previousScene; private final Stage window; private final Environment environment; + private final ExecutorService executorService; private final BooleanProperty copiedDetails = new SimpleBooleanProperty(); private final ObjectProperty matchingErrorDiscussion = new SimpleObjectProperty<>(); private final BooleanExpression errorSolutionFound = matchingErrorDiscussion.isNotNull(); private final BooleanProperty isLoadingHttpResponse = new SimpleBooleanProperty(); + private final BooleanProperty lookupDatabaseUserPermission = new SimpleBooleanProperty(); @Inject ErrorController(Application application, @Named("stackTrace") String stackTrace, ErrorCode errorCode, @Nullable Scene previousScene, Stage window, Environment environment, ExecutorService executorService) { @@ -79,15 +81,7 @@ public class ErrorController implements FxController { this.previousScene = previousScene; this.window = window; this.environment = environment; - - isLoadingHttpResponse.set(true); - HttpClient httpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build(); - HttpRequest httpRequest = HttpRequest.newBuilder()// - .uri(URI.create(ERROR_CODES_URL))// - .build(); - httpClient.sendAsync(httpRequest, HttpResponse.BodyHandlers.ofInputStream())// - .thenAcceptAsync(this::loadHttpResponse, executorService)// - .whenCompleteAsync((r, e) -> isLoadingHttpResponse.set(false), Platform::runLater); + this.executorService = executorService; } @FXML @@ -140,6 +134,24 @@ public class ErrorController implements FxController { CompletableFuture.delayedExecutor(2, TimeUnit.SECONDS, Platform::runLater).execute(() -> copiedDetails.set(false)); } + @FXML + public void dismiss() { + lookupDatabaseUserPermission.set(true); + } + + @FXML + public void lookUpSolution() { + lookupDatabaseUserPermission.set(true); + isLoadingHttpResponse.set(true); + HttpClient httpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build(); + HttpRequest httpRequest = HttpRequest.newBuilder()// + .uri(URI.create(ERROR_CODES_URL))// + .build(); + httpClient.sendAsync(httpRequest, HttpResponse.BodyHandlers.ofInputStream())// + .thenAcceptAsync(this::loadHttpResponse, executorService)// + .whenCompleteAsync((r, e) -> isLoadingHttpResponse.set(false), Platform::runLater); + } + private void loadHttpResponse(HttpResponse response) { if (response.statusCode() != 200) { LOG.error("Status code {} when trying to load {} ", response.statusCode(), response.uri()); @@ -293,4 +305,12 @@ public class ErrorController implements FxController { return isLoadingHttpResponse.get(); } + public BooleanProperty lookupDatabaseUserPermissionProperty() { + return lookupDatabaseUserPermission; + } + + public boolean isLookupDatabaseUserPermission() { + return lookupDatabaseUserPermission.get(); + } + } \ No newline at end of file diff --git a/src/main/resources/fxml/error.fxml b/src/main/resources/fxml/error.fxml index cc11db58a..d54a3f3c1 100644 --- a/src/main/resources/fxml/error.fxml +++ b/src/main/resources/fxml/error.fxml @@ -14,6 +14,8 @@ + + - - -