diff --git a/main/ui/src/main/java/org/cryptomator/ui/health/ReportWriter.java b/main/ui/src/main/java/org/cryptomator/ui/health/ReportWriter.java index ae5dd70cf..9590626cd 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/health/ReportWriter.java +++ b/main/ui/src/main/java/org/cryptomator/ui/health/ReportWriter.java @@ -3,13 +3,12 @@ package org.cryptomator.ui.health; import org.apache.commons.lang3.exception.ExceptionUtils; import org.cryptomator.common.Environment; import org.cryptomator.common.vaults.Vault; -import org.cryptomator.common.vaults.Volume; import org.cryptomator.cryptofs.VaultConfig; -import org.cryptomator.ui.common.HostServiceRevealer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; +import javafx.application.Application; import javafx.concurrent.Worker; import java.io.BufferedWriter; import java.io.IOException; @@ -48,24 +47,24 @@ public class ReportWriter { private final Vault vault; private final VaultConfig vaultConfig; - private final Path path; - private final HostServiceRevealer revealer; + private final Application application; + private final Path exportDestination; @Inject - public ReportWriter(@HealthCheckWindow Vault vault, AtomicReference vaultConfigRef, Environment env, HostServiceRevealer revealer) { + public ReportWriter(@HealthCheckWindow Vault vault, AtomicReference vaultConfigRef, Application application, Environment env) { this.vault = vault; this.vaultConfig = Objects.requireNonNull(vaultConfigRef.get()); - this.revealer = revealer; - this.path = env.getLogDir().orElse(Path.of(System.getProperty("user.home"))).resolve("healthReport_" + vault.getDisplayName() + "_" + TIME_STAMP.format(Instant.now()) + ".log"); + this.application = application; + this.exportDestination = env.getLogDir().orElse(Path.of(System.getProperty("user.home"))).resolve("healthReport_" + vault.getDisplayName() + "_" + TIME_STAMP.format(Instant.now()) + ".log"); } protected void writeReport(Collection tasks) throws IOException { - try (var out = Files.newOutputStream(path, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); // + try (var out = Files.newOutputStream(exportDestination, StandardOpenOption.CREATE, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); // var writer = new BufferedWriter(new OutputStreamWriter(out, StandardCharsets.UTF_8))) { writer.write(REPORT_HEADER.formatted(vaultConfig.getId(), vault.getDisplayName(), vault.getPath())); for (var task : tasks) { if (task.getState() == Worker.State.READY) { - LOG.debug("Skipping not performed check {}.",task.getCheck().identifier()); + LOG.debug("Skipping not performed check {}.", task.getCheck().identifier()); continue; } writer.write(REPORT_CHECK_HEADER.formatted(task.getCheck().identifier())); @@ -100,11 +99,7 @@ public class ReportWriter { } private void reveal() { - try { - revealer.reveal(path); - } catch (Volume.VolumeException e) { - //should not happen - } + application.getHostServices().showDocument(exportDestination.getParent().toUri().toString()); } }