diff --git a/main/ant-kit/src/main/resources/build.xml b/main/ant-kit/src/main/resources/build.xml
index 018df82f4..89dd5c4bb 100644
--- a/main/ant-kit/src/main/resources/build.xml
+++ b/main/ant-kit/src/main/resources/build.xml
@@ -31,6 +31,7 @@
+
@@ -53,6 +54,7 @@
+
diff --git a/main/ui/src/main/java/org/cryptomator/ui/logging/ConfigurableFileAppender.java b/main/ui/src/main/java/org/cryptomator/ui/logging/ConfigurableFileAppender.java
index 375c51352..9074f9a87 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/logging/ConfigurableFileAppender.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/logging/ConfigurableFileAppender.java
@@ -97,10 +97,6 @@ public class ConfigurableFileAppender extends AbstractOutputStreamAppender {
private static final Logger LOG = LoggerFactory.getLogger(SettingsProvider.class);
- private static final Path SETTINGS_DIR;
- private static final String SETTINGS_FILE = "settings.json";
+ private static final Path DEFAULT_SETTINGS_PATH;
private static final long SAVE_DELAY_MS = 1000;
static {
- final String appdata = System.getenv("APPDATA");
final FileSystem fs = FileSystems.getDefault();
-
- if (SystemUtils.IS_OS_WINDOWS && appdata != null) {
- SETTINGS_DIR = fs.getPath(appdata, "Cryptomator");
- } else if (SystemUtils.IS_OS_WINDOWS && appdata == null) {
- SETTINGS_DIR = fs.getPath(SystemUtils.USER_HOME, ".Cryptomator");
+ if (SystemUtils.IS_OS_WINDOWS) {
+ DEFAULT_SETTINGS_PATH = fs.getPath(SystemUtils.USER_HOME, "AppData/Roaming/Cryptomator/settings.json");
} else if (SystemUtils.IS_OS_MAC_OSX) {
- SETTINGS_DIR = fs.getPath(SystemUtils.USER_HOME, "Library/Application Support/Cryptomator");
+ DEFAULT_SETTINGS_PATH = fs.getPath(SystemUtils.USER_HOME, "Library/Application Support/Cryptomator/settings.json");
} else {
- // (os.contains("solaris") || os.contains("sunos") || os.contains("linux") || os.contains("unix"))
- SETTINGS_DIR = fs.getPath(SystemUtils.USER_HOME, ".Cryptomator");
+ DEFAULT_SETTINGS_PATH = fs.getPath(SystemUtils.USER_HOME, ".Cryptomator/settings.json");
}
}
@@ -68,12 +64,8 @@ public class SettingsProvider implements Provider {
}
private Path getSettingsPath() throws IOException {
- String settingsPathProperty = System.getProperty("cryptomator.settingsPath");
- if (settingsPathProperty == null) {
- return SETTINGS_DIR.resolve(SETTINGS_FILE);
- } else {
- return FileSystems.getDefault().getPath(settingsPathProperty);
- }
+ final String settingsPathProperty = System.getProperty("cryptomator.settingsPath");
+ return Optional.ofNullable(settingsPathProperty).filter(StringUtils::isNotBlank).map(FileSystems.getDefault()::getPath).orElse(DEFAULT_SETTINGS_PATH);
}
@Override
@@ -96,7 +88,7 @@ public class SettingsProvider implements Provider {
}
ScheduledFuture> saveCmd = saveScheduler.schedule(() -> {
this.save(settings);
- } , SAVE_DELAY_MS, TimeUnit.MILLISECONDS);
+ }, SAVE_DELAY_MS, TimeUnit.MILLISECONDS);
ScheduledFuture> previousSaveCmd = scheduledSaveCmd.getAndSet(saveCmd);
if (previousSaveCmd != null) {
previousSaveCmd.cancel(false);