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);