Armin Schrenk hai 4 meses
pai
achega
737d7e6317

+ 31 - 0
src/main/java/org/cryptomator/common/Hyperlinks.java

@@ -0,0 +1,31 @@
+package org.cryptomator.common;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.io.IOException;
+
+public record Hyperlinks(String docsVolumeType, String docsGettingStarted, String homepageHub) {
+
+	private static final ObjectMapper JSON_DESERIALIZER = new ObjectMapper();
+	/*
+	String docsAccessingVaults;
+	String docsExpertSettings;
+	String docsManualMigration;
+	String homepageDownload;
+	String homepageHub;
+	String homepageDonate;
+	String homepageSponsors;
+	String storeDesktop;
+	 */
+
+
+	public static Hyperlinks load() {
+		try {
+			return JSON_DESERIALIZER.readValue(Hyperlinks.class.getResource("/hyperlinks.json"), Hyperlinks.class);
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+}

+ 7 - 0
src/main/java/org/cryptomator/launcher/CryptomatorModule.java

@@ -2,6 +2,7 @@ package org.cryptomator.launcher;
 
 import dagger.Module;
 import dagger.Provides;
+import org.cryptomator.common.Hyperlinks;
 import org.cryptomator.integrations.autostart.AutoStartProvider;
 import org.cryptomator.integrations.tray.TrayIntegrationProvider;
 import org.cryptomator.integrations.uiappearance.UiAppearanceProvider;
@@ -23,6 +24,12 @@ class CryptomatorModule {
 		return ResourceBundle.getBundle("i18n.strings");
 	}
 
+	@Provides
+	@Singleton
+	static Hyperlinks provideHyperlinks() {
+		return Hyperlinks.load();
+	}
+
 	@Provides
 	@Singleton
 	@Named("launchEventQueue")

+ 4 - 1
src/main/java/org/cryptomator/ui/sharevault/ShareVaultController.java

@@ -1,6 +1,7 @@
 package org.cryptomator.ui.sharevault;
 
 import dagger.Lazy;
+import org.cryptomator.common.Hyperlinks;
 import org.cryptomator.common.vaults.Vault;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.keyloading.hub.HubKeyLoadingStrategy;
@@ -18,9 +19,9 @@ import java.net.URISyntaxException;
 public class ShareVaultController implements FxController {
 
 	private static final String SCHEME_PREFIX = "hub+";
-	private static final String VISIT_HUB_URL = "https://cryptomator.org/hub/";
 	private static final String BEST_PRACTICES_URL = "https://docs.cryptomator.org/en/latest/security/best-practices/#sharing-of-vaults";
 
+	private final String VISIT_HUB_URL;
 	private final Stage window;
 	private final Lazy<Application> application;
 	private final Vault vault;
@@ -29,10 +30,12 @@ public class ShareVaultController implements FxController {
 	@Inject
 	ShareVaultController(@ShareVaultWindow Stage window, //
 						 Lazy<Application> application, //
+						 Hyperlinks links, //
 						 @ShareVaultWindow Vault vault) {
 		this.window = window;
 		this.application = application;
 		this.vault = vault;
+		this.VISIT_HUB_URL =links.homepageHub();
 		var vaultScheme = vault.getVaultConfigCache().getUnchecked().getKeyId().getScheme();
 		this.hubVault = (vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTP) || vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTPS));
 	}

+ 4 - 0
src/main/resources/hyperlinks.json

@@ -0,0 +1,4 @@
+{
+  "docsGettingStarted": "https://docs.cryptomator.org/desktop/getting-started/",
+  "homepageHub": "https://cryptomator.org/hub"
+}