From c865a383493a81e0cdc2a129bfe7abe9abd0bb14 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 20 Apr 2021 20:38:57 +0200 Subject: [PATCH] Redefine property path --- src/main/java/app/settings/SettingsProvider.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/app/settings/SettingsProvider.java b/src/main/java/app/settings/SettingsProvider.java index 30ddc0e..62b3629 100644 --- a/src/main/java/app/settings/SettingsProvider.java +++ b/src/main/java/app/settings/SettingsProvider.java @@ -18,7 +18,10 @@ import app.model.Model; public class SettingsProvider implements SettingsProviderI { private static EventBus eventBus; - private static final String SETTINGS_PATH = "/BNNsettings/settings.dat"; + private static final String SETTINGS_PATH = + (System.getProperty("os.name").startsWith("Windows")) + ? System.getProperty("user.home") + "\\AppData\\Roaming\\/BNNsettings.dat" + : System.getProperty("user.home") + System.getProperty("file.separator") + ".BNNsettings.dat"; public SettingsProvider(EventBus eB) { setEventBus(eB); @@ -34,7 +37,7 @@ public class SettingsProvider implements SettingsProviderI { public void loadSettings() { List settings = new ArrayList<>(); List legalSettings = Arrays.asList("Java", "Markdown", "Monokai", "Solarized Light"); - try (Scanner sc = new Scanner(new File(getClass().getResource(SETTINGS_PATH).getPath()))) { + try (Scanner sc = new Scanner(new File(SETTINGS_PATH))) { while (sc.hasNextLine()) { var nextLine = sc.nextLine().trim(); @@ -53,6 +56,7 @@ public class SettingsProvider implements SettingsProviderI { } } catch (IOException e) { + System.err.println("[WARNING] Couldn't read settings file. Using defaults"); eventBus.post(new LanguageChangedEvent("Java")); eventBus.post(new ThemeChangedEvent("Monokai")); } @@ -61,11 +65,12 @@ public class SettingsProvider implements SettingsProviderI { @Override public void saveSettings() { - try (PrintWriter writer = new PrintWriter(new File(getClass().getResource(SETTINGS_PATH).getPath()))) { + try (PrintWriter writer = new PrintWriter(new File(SETTINGS_PATH))) { writer.println("- Settings:"); writer.println("Programming Language = " + Model.getLanguage().getName()); writer.println("Theme = " + Model.getTheme()); } catch (IOException e) { + System.err.println("[ERROR] Couldn't write to settings file."); System.err.println(e); }