From fe0a34907fa16039b4b6f269eb3bd4e45adbdde5 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 17 Aug 2016 15:59:36 +0200 Subject: [PATCH] Simplified settings/log file path handling. Removed support for %appdata%. Use ~/AppData/Roaming instead! --- main/ant-kit/src/main/resources/build.xml | 2 ++ .../ui/logging/ConfigurableFileAppender.java | 4 --- .../cryptomator/ui/settings/Localization.java | 2 +- .../ui/settings/SettingsProvider.java | 28 +++++++------------ 4 files changed, 13 insertions(+), 23 deletions(-) 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);