diff --git a/owlplug-client/src/main/java/com/owlplug/auth/services/AuthenticationService.java b/owlplug-client/src/main/java/com/owlplug/auth/services/AuthenticationService.java index ae7fdcfd..b6375ea6 100644 --- a/owlplug-client/src/main/java/com/owlplug/auth/services/AuthenticationService.java +++ b/owlplug-client/src/main/java/com/owlplug/auth/services/AuthenticationService.java @@ -39,6 +39,7 @@ import com.owlplug.auth.model.UserAccountProvider; import com.owlplug.auth.utils.AuthenticationException; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.services.BaseService; import jakarta.transaction.Transactional; import java.io.IOException; @@ -114,7 +115,7 @@ public void createAccountAndAuth() throws AuthenticationException { userAccount.setCredential(googleCredentialRepository.findByKey(userAccount.getKey())); userAccountRepository.save(userAccount); - this.getPreferences().putLong(ApplicationDefaults.SELECTED_ACCOUNT_KEY, userAccount.getId()); + this.getPreferences().putLong(Prefs.Auth.SELECTED_ACCOUNT, userAccount.getId()); publisher.publishEvent(new AccountUpdateEvent()); } catch (GeneralSecurityException | IOException e) { diff --git a/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationDefaults.java b/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationDefaults.java index 47851561..85345db8 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationDefaults.java +++ b/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationDefaults.java @@ -91,36 +91,59 @@ public class ApplicationDefaults { // CHECKSTYLE:ON - public static final String VST_DIRECTORY_KEY = "VST_DIRECTORY"; - public static final String VST2_DISCOVERY_ENABLED_KEY = "VST2_DISCOVERY_ENABLED"; - public static final String VST2_EXTRA_DIRECTORY_KEY = "VST2_EXTRA_DIRECTORY_KEY"; - public static final String VST3_DIRECTORY_KEY = "VST3_DIRECTORY"; - public static final String VST3_DISCOVERY_ENABLED_KEY = "VST3_DISCOVERY_ENABLED"; - public static final String VST3_EXTRA_DIRECTORY_KEY = "VST3_EXTRA_DIRECTORY_KEY"; - public static final String AU_DIRECTORY_KEY = "AU_DIRECTORY_KEY"; - public static final String AU_DISCOVERY_ENABLED_KEY = "AU_DISCOVERY_ENABLED_KEY"; - public static final String AU_EXTRA_DIRECTORY_KEY = "AU_EXTRA_DIRECTORY_KEY"; - public static final String LV2_DIRECTORY_KEY = "LV2_DIRECTORY_KEY"; - public static final String LV2_DISCOVERY_ENABLED_KEY = "LV2_DISCOVERY_ENABLED_KEY"; - public static final String LV2_EXTRA_DIRECTORY_KEY = "LV2_EXTRA_DIRECTORY_KEY"; - public static final String NATIVE_HOST_ENABLED_KEY = "NATIVE_HOST_ENABLED_KEY"; - public static final String PREFERRED_NATIVE_LOADER = "PREFERRED_NATIVE_LOADER"; - public static final String NATIVE_LOADER_TIMEOUT_KEY = "NATIVE_LOADER_TIMEOUT_KEY"; - public static final String SELECTED_ACCOUNT_KEY = "SELECTED_ACCOUNT_KEY"; - public static final String SYNC_PLUGINS_STARTUP_KEY = "SYNC_PLUGINS_STARTUP_KEY"; - public static final String STORE_DIRECTORY_ENABLED_KEY = "STORE_DIRECTORY_ENABLED_KEY"; - public static final String STORE_BY_CREATOR_ENABLED_KEY = "STORE_BY_CREATOR_ENABLED_KEY"; - public static final String STORE_DIRECTORY_KEY = "STORE_DIRECTORY_KEY"; - public static final String STORE_SUBDIRECTORY_ENABLED = "STORE_SUBDIRECTORY_ENABLED"; - public static final String FIRST_LAUNCH_KEY = "FIRST_LAUNCH_KEY"; - public static final String APPLICATION_STATE_KEY = "APPLICATION_STATE_KEY"; - public static final String SHOW_DIALOG_DISABLE_PLUGIN_KEY = "SHOW_DIALOG_DISABLE_PLUGIN_KEY"; - public static final String PROJECT_DIRECTORY_KEY = "PROJECT_DIRECTORY_KEY"; - public static final String PLUGIN_PREFERRED_DISPLAY_KEY = "PLUGIN_PREFERRED_DISPLAY_KEY"; - public static final String SYNC_FILE_STAT_KEY = "SYNC_FILE_STAT_KEY"; - public static final String TELEMETRY_ENABLED_KEY = "TELEMETRY_ENABLED_KEY"; - public static final String TELEMETRY_USER_ID_KEY = "TELEMETRY_USER_ID_KEY"; - public static final String LAST_PLUGIN_SCAN_DATE_KEY = "LAST_PLUGIN_SCAN_DATE_KEY"; + public static final class Prefs { + + public static final class Plugins { + public static final String VST2_DIRECTORY = "plugins.vst2.directory"; + public static final String VST2_DISCOVERY_ENABLED = "plugins.vst2.discovery_enabled"; + public static final String VST2_EXTRA_DIRECTORY = "plugins.vst2.extra_directory"; + public static final String VST3_DIRECTORY = "plugins.vst3.directory"; + public static final String VST3_DISCOVERY_ENABLED = "plugins.vst3.discovery_enabled"; + public static final String VST3_EXTRA_DIRECTORY = "plugins.vst3.extra_directory"; + public static final String AU_DIRECTORY = "plugins.au.directory"; + public static final String AU_DISCOVERY_ENABLED = "plugins.au.discovery_enabled"; + public static final String AU_EXTRA_DIRECTORY = "plugins.au.extra_directory"; + public static final String LV2_DIRECTORY = "plugins.lv2.directory"; + public static final String LV2_DISCOVERY_ENABLED = "plugins.lv2.discovery_enabled"; + public static final String LV2_EXTRA_DIRECTORY = "plugins.lv2.extra_directory"; + public static final String PREFERRED_DISPLAY = "plugins.preferred_display"; + public static final String LAST_SCAN_DATE = "plugins.last_scan_date"; + + public static final class NativeHost { + public static final String ENABLED = "plugins.native_host.enabled"; + public static final String PREFERRED_LOADER = "plugins.native_host.preferred_loader"; + public static final String LOADER_TIMEOUT = "plugins.native_host.loader_timeout"; + } + } + + public static final class Explore { + public static final String STORE_DIRECTORY_ENABLED = "explore.store_directory_enabled"; + public static final String STORE_BY_CREATOR_ENABLED = "explore.store_by_creator_enabled"; + public static final String STORE_DIRECTORY = "explore.store_directory"; + public static final String STORE_SUBDIRECTORY_ENABLED = "explore.store_subdirectory_enabled"; + } + + public static final class Auth { + public static final String SELECTED_ACCOUNT = "auth.selected_account"; + } + + public static final class Projects { + public static final String DIRECTORY = "projects.directory"; + } + + public static final class Telemetry { + public static final String ENABLED = "telemetry.enabled"; + public static final String USER_ID = "telemetry.user_id"; + } + + public static final class App { + public static final String FIRST_LAUNCH = "app.first_launch"; + public static final String STATE = "app.state"; + public static final String SYNC_PLUGINS_ON_STARTUP = "app.sync_plugins_on_startup"; + public static final String SYNC_FILE_STAT = "app.sync_file_stat"; + public static final String SHOW_DIALOG_DISABLE_PLUGIN = "app.show_dialog_disable_plugin"; + } + } /** * Creates a new ApplicationDefaults. diff --git a/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationMonitor.java b/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationMonitor.java index 93c0b5e2..6fea8809 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationMonitor.java +++ b/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationMonitor.java @@ -46,13 +46,13 @@ private void initialize() { previousExecutionSafelyTerminated = false; } - preferences.put(ApplicationDefaults.APPLICATION_STATE_KEY, ApplicationState.RUNNING.getText()); + preferences.put(ApplicationDefaults.Prefs.App.STATE, ApplicationState.RUNNING.getText()); } @PreDestroy private void destroy() { log.info("Application monitor received shutdown event"); - preferences.put(ApplicationDefaults.APPLICATION_STATE_KEY, ApplicationState.TERMINATED.getText()); + preferences.put(ApplicationDefaults.Prefs.App.STATE, ApplicationState.TERMINATED.getText()); } @@ -61,7 +61,7 @@ private void destroy() { * @return state */ public ApplicationState getState() { - String stateValue = preferences.get(ApplicationDefaults.APPLICATION_STATE_KEY, "UNKNOWN"); + String stateValue = preferences.get(ApplicationDefaults.Prefs.App.STATE, "UNKNOWN"); return ApplicationState.fromString(stateValue); } diff --git a/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationPreferences.java b/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationPreferences.java index d140e9de..f1e0d051 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationPreferences.java +++ b/owlplug-client/src/main/java/com/owlplug/core/components/ApplicationPreferences.java @@ -28,12 +28,14 @@ import java.util.prefs.Preferences; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; /** * Preferences wrapper supporting string list persistence. */ @Component +@DependsOn("preferencesMigration") public class ApplicationPreferences { private final Logger log = LoggerFactory.getLogger(this.getClass()); @@ -61,6 +63,14 @@ public void putBoolean(String key, boolean value) { basePreferences.putBoolean(key, value); } + public int getInt(String key, int def) { + return basePreferences.getInt(key, def); + } + + public void putInt(String key, int value) { + basePreferences.putInt(key, value); + } + public long getLong(String key, long def) { return basePreferences.getLong(key, def); } @@ -101,6 +111,10 @@ public void putList(String key, List value) { } } + public void remove(String key) { + basePreferences.remove(key); + } + public void clear() throws BackingStoreException { this.basePreferences.clear(); } diff --git a/owlplug-client/src/main/java/com/owlplug/core/components/PreferencesMigration.java b/owlplug-client/src/main/java/com/owlplug/core/components/PreferencesMigration.java new file mode 100644 index 00000000..d3c1cb2e --- /dev/null +++ b/owlplug-client/src/main/java/com/owlplug/core/components/PreferencesMigration.java @@ -0,0 +1,96 @@ +/* OwlPlug + * Copyright (C) 2021 Arthur + * + * This file is part of OwlPlug. + * + * OwlPlug is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 + * as published by the Free Software Foundation. + * + * OwlPlug is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with OwlPlug. If not, see . + */ + +package com.owlplug.core.components; + +import com.owlplug.core.components.ApplicationDefaults.Prefs; +import jakarta.annotation.PostConstruct; +import java.util.Map; +import java.util.prefs.Preferences; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +/** + * Migrates legacy flat preference keys to the current hierarchical key scheme. + * Runs once at startup before OptionsService initializes defaults. + * Bump MIGRATION_VERSION whenever new entries are added to MIGRATIONS. + */ +@Component +public class PreferencesMigration { + + private final Logger log = LoggerFactory.getLogger(this.getClass()); + + private static final String MIGRATION_VERSION_KEY = "app.migration_version"; + private static final int MIGRATION_VERSION = 2; + + private static final Map MIGRATIONS = Map.ofEntries( + Map.entry("VST_DIRECTORY", Prefs.Plugins.VST2_DIRECTORY), + Map.entry("VST2_DISCOVERY_ENABLED", Prefs.Plugins.VST2_DISCOVERY_ENABLED), + Map.entry("VST2_EXTRA_DIRECTORY_KEY", Prefs.Plugins.VST2_EXTRA_DIRECTORY), + Map.entry("VST3_DIRECTORY", Prefs.Plugins.VST3_DIRECTORY), + Map.entry("VST3_DISCOVERY_ENABLED", Prefs.Plugins.VST3_DISCOVERY_ENABLED), + Map.entry("VST3_EXTRA_DIRECTORY_KEY", Prefs.Plugins.VST3_EXTRA_DIRECTORY), + Map.entry("AU_DIRECTORY_KEY", Prefs.Plugins.AU_DIRECTORY), + Map.entry("AU_DISCOVERY_ENABLED_KEY", Prefs.Plugins.AU_DISCOVERY_ENABLED), + Map.entry("AU_EXTRA_DIRECTORY_KEY", Prefs.Plugins.AU_EXTRA_DIRECTORY), + Map.entry("LV2_DIRECTORY_KEY", Prefs.Plugins.LV2_DIRECTORY), + Map.entry("LV2_DISCOVERY_ENABLED_KEY", Prefs.Plugins.LV2_DISCOVERY_ENABLED), + Map.entry("LV2_EXTRA_DIRECTORY_KEY", Prefs.Plugins.LV2_EXTRA_DIRECTORY), + Map.entry("NATIVE_HOST_ENABLED_KEY", Prefs.Plugins.NativeHost.ENABLED), + Map.entry("PREFERRED_NATIVE_LOADER", Prefs.Plugins.NativeHost.PREFERRED_LOADER), + Map.entry("NATIVE_LOADER_TIMEOUT_KEY", Prefs.Plugins.NativeHost.LOADER_TIMEOUT), + Map.entry("SELECTED_ACCOUNT_KEY", Prefs.Auth.SELECTED_ACCOUNT), + Map.entry("SYNC_PLUGINS_STARTUP_KEY", Prefs.App.SYNC_PLUGINS_ON_STARTUP), + Map.entry("STORE_DIRECTORY_ENABLED_KEY", Prefs.Explore.STORE_DIRECTORY_ENABLED), + Map.entry("STORE_BY_CREATOR_ENABLED_KEY", Prefs.Explore.STORE_BY_CREATOR_ENABLED), + Map.entry("STORE_DIRECTORY_KEY", Prefs.Explore.STORE_DIRECTORY), + Map.entry("STORE_SUBDIRECTORY_ENABLED", Prefs.Explore.STORE_SUBDIRECTORY_ENABLED), + Map.entry("FIRST_LAUNCH_KEY", Prefs.App.FIRST_LAUNCH), + Map.entry("APPLICATION_STATE_KEY", Prefs.App.STATE), + Map.entry("SHOW_DIALOG_DISABLE_PLUGIN_KEY", Prefs.App.SHOW_DIALOG_DISABLE_PLUGIN), + Map.entry("PROJECT_DIRECTORY_KEY", Prefs.Projects.DIRECTORY), + Map.entry("PLUGIN_PREFERRED_DISPLAY_KEY", Prefs.Plugins.PREFERRED_DISPLAY), + Map.entry("SYNC_FILE_STAT_KEY", Prefs.App.SYNC_FILE_STAT), + Map.entry("TELEMETRY_ENABLED_KEY", Prefs.Telemetry.ENABLED), + Map.entry("TELEMETRY_USER_ID_KEY", Prefs.Telemetry.USER_ID), + Map.entry("LAST_PLUGIN_SCAN_DATE_KEY", Prefs.Plugins.LAST_SCAN_DATE) + ); + + private final Preferences prefs = Preferences.userRoot().node("com.owlplug.user"); + + @PostConstruct + public void migrate() { + int appliedVersion = prefs.getInt(MIGRATION_VERSION_KEY, 0); + if (appliedVersion >= MIGRATION_VERSION) { + return; + } + + MIGRATIONS.forEach((oldKey, newKey) -> { + String value = prefs.get(oldKey, null); + if (value != null && prefs.get(newKey, null) == null) { + prefs.put(newKey, value); + prefs.remove(oldKey); + log.debug("Migrated preference key {} -> {}", oldKey, newKey); + } + }); + + prefs.putInt(MIGRATION_VERSION_KEY, MIGRATION_VERSION); + log.info("Preferences migrated to version {}", MIGRATION_VERSION); + } +} diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/HomeController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/HomeController.java index 2d0245db..6a6fd618 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/HomeController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/HomeController.java @@ -19,6 +19,7 @@ package com.owlplug.core.controllers; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.utils.Async; import com.owlplug.core.utils.FX; import com.owlplug.core.utils.TimeUtils; @@ -242,7 +243,7 @@ public void refresh() { pluginService.getDirectoriesExplorationSet().size(), projectService.getProjectDirectories().size(), fileStatRepository.findTop5ByParentIsNullOrderByLengthDesc(), - getPreferences().getLong(ApplicationDefaults.LAST_PLUGIN_SCAN_DATE_KEY, 0L) + getPreferences().getLong(Prefs.Plugins.LAST_SCAN_DATE, 0L) )).thenAccept(data -> FX.run(() -> { lastScanLabel.setText(data.lastScanTimestamp() == 0L ? "Never scanned" : "Last scan: " + TimeUtils.getHumanReadableDurationFrom(new Date(data.lastScanTimestamp()))); diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/MainController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/MainController.java index 6bea6769..283ee408 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/MainController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/MainController.java @@ -28,6 +28,7 @@ import com.owlplug.controls.Drawer; import com.owlplug.controls.transitions.AnimatedTabListener; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.ApplicationMonitor; import com.owlplug.core.components.ImageCache; import com.owlplug.core.components.LazyViewRegistry; @@ -145,7 +146,7 @@ public void initialize() { } if (newValue instanceof UserAccount userAccount) { - this.getPreferences().putLong(ApplicationDefaults.SELECTED_ACCOUNT_KEY, userAccount.getId()); + this.getPreferences().putLong(Prefs.Auth.SELECTED_ACCOUNT, userAccount.getId()); } accountComboBox.hide(); @@ -183,14 +184,14 @@ public void dispatchPostInitialize() { refreshAccounts(); - boolean firstLaunch = this.getPreferences().getBoolean(ApplicationDefaults.FIRST_LAUNCH_KEY, true); + boolean firstLaunch = this.getPreferences().getBoolean(Prefs.App.FIRST_LAUNCH, true); if (!this.applicationMonitor.isPreviousExecutionSafelyTerminated()) { log.info("Previous execution not terminated safely, opening crash recovery dialog"); crashRecoveryDialogController.show(); } else if (firstLaunch) { welcomeDialogController.show(); exploreTaskFactory.createSourceSyncTask().schedule(); - this.getPreferences().putBoolean(ApplicationDefaults.FIRST_LAUNCH_KEY, false); + this.getPreferences().putBoolean(Prefs.App.FIRST_LAUNCH, false); publisher.publishEvent(new PreferencesChangedEvent()); } @@ -201,7 +202,7 @@ public void dispatchPostInitialize() { // Startup plugin sync only triggered if configured and previous application // instance safely terminated if (this.applicationMonitor.isPreviousExecutionSafelyTerminated() - && this.getPreferences().getBoolean(ApplicationDefaults.SYNC_PLUGINS_STARTUP_KEY, false)) { + && this.getPreferences().getBoolean(Prefs.App.SYNC_PLUGINS_ON_STARTUP, false)) { log.info("Starting auto plugin sync"); pluginService.scanPlugins(false); } @@ -228,7 +229,7 @@ public void refreshAccounts() { accountComboBox.getItems().setAll(accounts); accountComboBox.getItems().add(new AccountMenuItem(" + New Account")); - long selectedAccountId = this.getPreferences().getLong(ApplicationDefaults.SELECTED_ACCOUNT_KEY, -1); + long selectedAccountId = this.getPreferences().getLong(Prefs.Auth.SELECTED_ACCOUNT, -1); if (selectedAccountId != -1) { Optional selectedAccount = authenticationService.getUserAccountById(selectedAccountId); if (selectedAccount.isPresent()) { diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/CrashRecoveryDialogController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/CrashRecoveryDialogController.java index ac177866..4883b947 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/CrashRecoveryDialogController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/CrashRecoveryDialogController.java @@ -20,6 +20,7 @@ import com.owlplug.controls.DialogLayout; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.LazyViewRegistry; import com.owlplug.core.events.PreferencesChangedEvent; import com.owlplug.core.utils.PlatformUtils; @@ -90,10 +91,10 @@ public void initialize() { nativeDiscoveryCheckbox.setDisable(!nativeHostService.isNativeHostAvailable()); nativeDiscoveryCheckbox.setSelected(this.getPreferences().getBoolean( - ApplicationDefaults.NATIVE_HOST_ENABLED_KEY, false)); + Prefs.Plugins.NativeHost.ENABLED, false)); nativeDiscoveryCheckbox.selectedProperty().addListener((observable, oldValue, newValue) -> { - this.getPreferences().putBoolean(ApplicationDefaults.NATIVE_HOST_ENABLED_KEY, newValue); + this.getPreferences().putBoolean(Prefs.Plugins.NativeHost.ENABLED, newValue); this.pluginNativeComboBox.setDisable(!newValue); }); @@ -103,7 +104,7 @@ public void initialize() { pluginNativeComboBox.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { if (newValue != null) { - this.getPreferences().put(ApplicationDefaults.PREFERRED_NATIVE_LOADER, newValue.getId()); + this.getPreferences().put(Prefs.Plugins.NativeHost.PREFERRED_LOADER, newValue.getId()); nativeHostService.setCurrentPluginLoader(newValue); } }); @@ -139,7 +140,7 @@ public void initialize() { this.getTelemetryService().event("/Error/PluginScanIncomplete", p -> { p.put("nativeDiscoveryLoader", this.getPreferences().get( - ApplicationDefaults.PREFERRED_NATIVE_LOADER, "unknown")); + Prefs.Plugins.NativeHost.PREFERRED_LOADER, "unknown")); p.put("pluginName", plugin.getName()); p.put("pluginFormat", plugin.getFormat().getText()); }); diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/WelcomeDialogController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/WelcomeDialogController.java index 37fd0527..305c1fd5 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/WelcomeDialogController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/dialogs/WelcomeDialogController.java @@ -21,6 +21,7 @@ import atlantafx.base.controls.ToggleSwitch; import com.owlplug.controls.DialogLayout; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.LazyViewRegistry; import com.owlplug.core.controllers.OptionsController; import com.owlplug.core.model.OperatingSystem; @@ -90,13 +91,13 @@ public void initialize() { private void buildFormatToggles() { formatTogglesContainer.getChildren().addAll( - buildFormatRow(PluginFormat.VST2, ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, + buildFormatRow(PluginFormat.VST2, Prefs.Plugins.VST2_DISCOVERY_ENABLED, "VST2", "Legacy format, broadly supported across DAWs"), - buildFormatRow(PluginFormat.VST3, ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, + buildFormatRow(PluginFormat.VST3, Prefs.Plugins.VST3_DISCOVERY_ENABLED, "VST3", "Modern Steinberg format — recommended"), - buildFormatRow(PluginFormat.AU, ApplicationDefaults.AU_DISCOVERY_ENABLED_KEY, + buildFormatRow(PluginFormat.AU, Prefs.Plugins.AU_DISCOVERY_ENABLED, "AU", "Audio Units — macOS only"), - buildFormatRow(PluginFormat.LV2, ApplicationDefaults.LV2_DISCOVERY_ENABLED_KEY, + buildFormatRow(PluginFormat.LV2, Prefs.Plugins.LV2_DISCOVERY_ENABLED, "LV2", "Open standard, primarily for Linux") ); diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ApplicationOptionsController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ApplicationOptionsController.java index 082ec448..ed3a9374 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ApplicationOptionsController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ApplicationOptionsController.java @@ -21,6 +21,7 @@ import com.owlplug.controls.Dialog; import com.owlplug.controls.DialogLayout; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.controllers.BaseController; import com.owlplug.core.controllers.dialogs.DonateDialogController; import com.owlplug.core.services.OptionsService; @@ -59,7 +60,7 @@ public class ApplicationOptionsController extends BaseController { @FXML public void initialize() { telemetryCheckBox.selectedProperty().addListener((obs, o, n) -> - getPreferences().putBoolean(ApplicationDefaults.TELEMETRY_ENABLED_KEY, n)); + getPreferences().putBoolean(Prefs.Telemetry.ENABLED, n)); telemetryHyperlink.setOnAction(e -> PlatformUtils.openDefaultBrowser( getApplicationDefaults().getEnvProperty("owlplug.github.wiki.url") + "/Telemetry")); @@ -93,7 +94,7 @@ public void initialize() { public void refresh() { telemetryCheckBox.setSelected( - getPreferences().getBoolean(ApplicationDefaults.TELEMETRY_ENABLED_KEY, true)); + getPreferences().getBoolean(Prefs.Telemetry.ENABLED, true)); } } \ No newline at end of file diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/InstallationOptionsController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/InstallationOptionsController.java index db43b15d..6a709096 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/InstallationOptionsController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/InstallationOptionsController.java @@ -19,6 +19,7 @@ package com.owlplug.core.controllers.options; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.controllers.BaseController; import com.owlplug.plugin.ui.PluginFormatBadgeView; import java.io.File; @@ -62,20 +63,20 @@ public void initialize() { warningSubDirectory.managedProperty().bind(warningSubDirectory.visibleProperty()); storeDirectoryCheckBox.selectedProperty().addListener((obs, o, n) -> { - getPreferences().putBoolean(ApplicationDefaults.STORE_DIRECTORY_ENABLED_KEY, n); + getPreferences().putBoolean(Prefs.Explore.STORE_DIRECTORY_ENABLED, n); refreshPathPreview(); }); storeByCreatorCheckBox.selectedProperty().addListener((obs, o, n) -> { - getPreferences().putBoolean(ApplicationDefaults.STORE_BY_CREATOR_ENABLED_KEY, n); + getPreferences().putBoolean(Prefs.Explore.STORE_BY_CREATOR_ENABLED, n); refreshPathPreview(); }); storeSubDirectoryCheckBox.selectedProperty().addListener((obs, o, n) -> { - getPreferences().putBoolean(ApplicationDefaults.STORE_SUBDIRECTORY_ENABLED, n); + getPreferences().putBoolean(Prefs.Explore.STORE_SUBDIRECTORY_ENABLED, n); warningSubDirectory.setVisible(!n); refreshPathPreview(); }); storeDirectoryTextField.textProperty().addListener((obs, o, n) -> { - getPreferences().put(ApplicationDefaults.STORE_DIRECTORY_KEY, n); + getPreferences().put(Prefs.Explore.STORE_DIRECTORY, n); refreshPathPreview(); }); @@ -92,23 +93,23 @@ public void initialize() { } public void refresh() { - boolean storeSubDir = getPreferences().getBoolean(ApplicationDefaults.STORE_SUBDIRECTORY_ENABLED, true); + boolean storeSubDir = getPreferences().getBoolean(Prefs.Explore.STORE_SUBDIRECTORY_ENABLED, true); storeSubDirectoryCheckBox.setSelected(storeSubDir); warningSubDirectory.setVisible(!storeSubDir); storeDirectoryCheckBox.setSelected( - getPreferences().getBoolean(ApplicationDefaults.STORE_DIRECTORY_ENABLED_KEY, false)); + getPreferences().getBoolean(Prefs.Explore.STORE_DIRECTORY_ENABLED, false)); storeByCreatorCheckBox.setSelected( - getPreferences().getBoolean(ApplicationDefaults.STORE_BY_CREATOR_ENABLED_KEY, false)); + getPreferences().getBoolean(Prefs.Explore.STORE_BY_CREATOR_ENABLED, false)); storeDirectoryTextField.setText( - getPreferences().get(ApplicationDefaults.STORE_DIRECTORY_KEY, "")); + getPreferences().get(Prefs.Explore.STORE_DIRECTORY, "")); refreshPathPreview(); } private void refreshPathPreview() { - vst2PathLabel.setText(simulatePath(ApplicationDefaults.VST_DIRECTORY_KEY)); - vst3PathLabel.setText(simulatePath(ApplicationDefaults.VST3_DIRECTORY_KEY)); - auPathLabel.setText(simulatePath(ApplicationDefaults.AU_DIRECTORY_KEY)); - lv2PathLabel.setText(simulatePath(ApplicationDefaults.LV2_DIRECTORY_KEY)); + vst2PathLabel.setText(simulatePath(Prefs.Plugins.VST2_DIRECTORY)); + vst3PathLabel.setText(simulatePath(Prefs.Plugins.VST3_DIRECTORY)); + auPathLabel.setText(simulatePath(Prefs.Plugins.AU_DIRECTORY)); + lv2PathLabel.setText(simulatePath(Prefs.Plugins.LV2_DIRECTORY)); } private String simulatePath(String formatDirKey) { diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/PluginScanOptionsController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/PluginScanOptionsController.java index b70b8cbe..21ac8d14 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/PluginScanOptionsController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/PluginScanOptionsController.java @@ -19,6 +19,7 @@ package com.owlplug.core.controllers.options; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.controllers.BaseController; import com.owlplug.core.controllers.dialogs.ListDirectoryDialogController; import com.owlplug.core.controllers.fragments.PluginPathFragmentController; @@ -65,20 +66,20 @@ public class PluginScanOptionsController extends BaseController { @FXML public void initialize() { vst2Fragment = new PluginPathFragmentController(PluginFormat.VST2, - ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, ApplicationDefaults.VST_DIRECTORY_KEY, - ApplicationDefaults.VST2_EXTRA_DIRECTORY_KEY, getPreferences(), + Prefs.Plugins.VST2_DISCOVERY_ENABLED, Prefs.Plugins.VST2_DIRECTORY, + Prefs.Plugins.VST2_EXTRA_DIRECTORY, getPreferences(), getApplicationDefaults(), listDirectoryDialogController); vst3Fragment = new PluginPathFragmentController(PluginFormat.VST3, - ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, ApplicationDefaults.VST3_DIRECTORY_KEY, - ApplicationDefaults.VST3_EXTRA_DIRECTORY_KEY, getPreferences(), + Prefs.Plugins.VST3_DISCOVERY_ENABLED, Prefs.Plugins.VST3_DIRECTORY, + Prefs.Plugins.VST3_EXTRA_DIRECTORY, getPreferences(), getApplicationDefaults(), listDirectoryDialogController); auFragment = new PluginPathFragmentController(PluginFormat.AU, - ApplicationDefaults.AU_DISCOVERY_ENABLED_KEY, ApplicationDefaults.AU_DIRECTORY_KEY, - ApplicationDefaults.AU_EXTRA_DIRECTORY_KEY, getPreferences(), + Prefs.Plugins.AU_DISCOVERY_ENABLED, Prefs.Plugins.AU_DIRECTORY, + Prefs.Plugins.AU_EXTRA_DIRECTORY, getPreferences(), getApplicationDefaults(), listDirectoryDialogController); lv2Fragment = new PluginPathFragmentController(PluginFormat.LV2, - ApplicationDefaults.LV2_DISCOVERY_ENABLED_KEY, ApplicationDefaults.LV2_DIRECTORY_KEY, - ApplicationDefaults.LV2_EXTRA_DIRECTORY_KEY, getPreferences(), + Prefs.Plugins.LV2_DISCOVERY_ENABLED, Prefs.Plugins.LV2_DIRECTORY, + Prefs.Plugins.LV2_EXTRA_DIRECTORY, getPreferences(), getApplicationDefaults(), listDirectoryDialogController); formatsContainer.getChildren().addAll( @@ -88,7 +89,7 @@ ApplicationDefaults.LV2_EXTRA_DIRECTORY_KEY, getPreferences(), lv2Fragment.getNode()); pluginNativeCheckbox.selectedProperty().addListener((obs, o, n) -> { - getPreferences().putBoolean(ApplicationDefaults.NATIVE_HOST_ENABLED_KEY, n); + getPreferences().putBoolean(Prefs.Plugins.NativeHost.ENABLED, n); pluginNativeComboBox.setDisable(!n); updateScannerTimeoutFieldState(); }); @@ -97,7 +98,7 @@ ApplicationDefaults.LV2_EXTRA_DIRECTORY_KEY, getPreferences(), FXCollections.observableArrayList(nativeHostService.getAvailablePluginLoaders())); pluginNativeComboBox.getSelectionModel().selectedItemProperty().addListener((obs, o, n) -> { if (n != null) { - getPreferences().put(ApplicationDefaults.PREFERRED_NATIVE_LOADER, n.getId()); + getPreferences().put(Prefs.Plugins.NativeHost.PREFERRED_LOADER, n.getId()); nativeHostService.setCurrentPluginLoader(n); updateScannerTimeoutFieldState(); } @@ -106,14 +107,14 @@ ApplicationDefaults.LV2_EXTRA_DIRECTORY_KEY, getPreferences(), loaderTimeoutSpinner.setValueFactory( new SpinnerValueFactory.IntegerSpinnerValueFactory(0, 3600, 10)); loaderTimeoutSpinner.valueProperty().addListener((obs, o, n) -> { - getPreferences().putLong(ApplicationDefaults.NATIVE_LOADER_TIMEOUT_KEY, n.longValue()); + getPreferences().putLong(Prefs.Plugins.NativeHost.LOADER_TIMEOUT, n.longValue()); nativeHostService.setScannerTimeout(n.longValue()); }); syncPluginsCheckBox.selectedProperty().addListener((obs, o, n) -> - getPreferences().putBoolean(ApplicationDefaults.SYNC_PLUGINS_STARTUP_KEY, n)); + getPreferences().putBoolean(Prefs.App.SYNC_PLUGINS_ON_STARTUP, n)); syncFileStatCheckbox.selectedProperty().addListener((obs, o, n) -> - getPreferences().putBoolean(ApplicationDefaults.SYNC_FILE_STAT_KEY, n)); + getPreferences().putBoolean(Prefs.App.SYNC_FILE_STAT, n)); } public void refresh() { @@ -126,19 +127,19 @@ public void refresh() { pluginNativeCheckbox.setDisable(!nativeAvailable); pluginNativeComboBox.setDisable(!nativeAvailable); pluginNativeCheckbox.setSelected( - getPreferences().getBoolean(ApplicationDefaults.NATIVE_HOST_ENABLED_KEY, false)); + getPreferences().getBoolean(Prefs.Plugins.NativeHost.ENABLED, false)); NativePluginLoader loader = nativeHostService.getCurrentPluginLoader(); pluginNativeComboBox.getSelectionModel().select(loader); - int timeout = (int) getPreferences().getLong(ApplicationDefaults.NATIVE_LOADER_TIMEOUT_KEY, 10L); + int timeout = (int) getPreferences().getLong(Prefs.Plugins.NativeHost.LOADER_TIMEOUT, 10L); loaderTimeoutSpinner.getValueFactory().setValue(timeout); updateScannerTimeoutFieldState(); syncPluginsCheckBox.setSelected( - getPreferences().getBoolean(ApplicationDefaults.SYNC_PLUGINS_STARTUP_KEY, false)); + getPreferences().getBoolean(Prefs.App.SYNC_PLUGINS_ON_STARTUP, false)); syncFileStatCheckbox.setSelected( - getPreferences().getBoolean(ApplicationDefaults.SYNC_FILE_STAT_KEY, true)); + getPreferences().getBoolean(Prefs.App.SYNC_FILE_STAT, true)); if (!getApplicationDefaults().getRuntimePlatform() .getOperatingSystem().equals(OperatingSystem.MAC)) { diff --git a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ProjectsOptionsController.java b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ProjectsOptionsController.java index f70c9fe1..9ab9bc8f 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ProjectsOptionsController.java +++ b/owlplug-client/src/main/java/com/owlplug/core/controllers/options/ProjectsOptionsController.java @@ -19,6 +19,7 @@ package com.owlplug.core.controllers.options; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.controllers.BaseController; import java.io.File; import java.util.ArrayList; @@ -61,12 +62,12 @@ public void initialize() { removeDirButton.setGraphic(removeIcon); projectDirectories = FXCollections.observableArrayList( - getPreferences().getList(ApplicationDefaults.PROJECT_DIRECTORY_KEY, new ArrayList<>())); + getPreferences().getList(Prefs.Projects.DIRECTORY, new ArrayList<>())); projectListView.setItems(projectDirectories); projectDirectories.addListener((ListChangeListener) change -> getPreferences().putList( - ApplicationDefaults.PROJECT_DIRECTORY_KEY, new ArrayList<>(projectDirectories))); + Prefs.Projects.DIRECTORY, new ArrayList<>(projectDirectories))); addDirButton.setOnAction(e -> { DirectoryChooser chooser = new DirectoryChooser(); @@ -86,7 +87,7 @@ public void initialize() { public void refresh() { projectDirectories.setAll( - getPreferences().getList(ApplicationDefaults.PROJECT_DIRECTORY_KEY, new ArrayList<>())); + getPreferences().getList(Prefs.Projects.DIRECTORY, new ArrayList<>())); } } \ No newline at end of file diff --git a/owlplug-client/src/main/java/com/owlplug/core/services/OptionsService.java b/owlplug-client/src/main/java/com/owlplug/core/services/OptionsService.java index 1e975c85..1566681c 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/services/OptionsService.java +++ b/owlplug-client/src/main/java/com/owlplug/core/services/OptionsService.java @@ -21,6 +21,7 @@ import com.owlplug.auth.repositories.GoogleCredentialRepository; import com.owlplug.auth.repositories.UserAccountRepository; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.ApplicationPreferences; import com.owlplug.core.components.ImageCache; import com.owlplug.core.model.OperatingSystem; @@ -64,36 +65,36 @@ private void initialize() { ApplicationPreferences prefs = this.getPreferences(); // Init default options - if (prefs.get(ApplicationDefaults.VST_DIRECTORY_KEY, null) == null) { - prefs.put(ApplicationDefaults.VST_DIRECTORY_KEY, + if (prefs.get(Prefs.Plugins.VST2_DIRECTORY, null) == null) { + prefs.put(Prefs.Plugins.VST2_DIRECTORY, this.getApplicationDefaults().getDefaultPluginPath(PluginFormat.VST2)); } - if (prefs.get(ApplicationDefaults.VST3_DIRECTORY_KEY, null) == null) { - prefs.put(ApplicationDefaults.VST3_DIRECTORY_KEY, + if (prefs.get(Prefs.Plugins.VST3_DIRECTORY, null) == null) { + prefs.put(Prefs.Plugins.VST3_DIRECTORY, this.getApplicationDefaults().getDefaultPluginPath(PluginFormat.VST3)); } - if (prefs.get(ApplicationDefaults.AU_DIRECTORY_KEY, null) == null + if (prefs.get(Prefs.Plugins.AU_DIRECTORY, null) == null && this.getApplicationDefaults().getRuntimePlatform().getOperatingSystem().equals(OperatingSystem.MAC)) { - prefs.put(ApplicationDefaults.AU_DIRECTORY_KEY, + prefs.put(Prefs.Plugins.AU_DIRECTORY, this.getApplicationDefaults().getDefaultPluginPath(PluginFormat.AU)); } - if (prefs.get(ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, null) == null) { - prefs.putBoolean(ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, Boolean.TRUE); + if (prefs.get(Prefs.Plugins.VST2_DISCOVERY_ENABLED, null) == null) { + prefs.putBoolean(Prefs.Plugins.VST2_DISCOVERY_ENABLED, Boolean.TRUE); } - if (prefs.get(ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, null) == null) { - prefs.putBoolean(ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, Boolean.TRUE); + if (prefs.get(Prefs.Plugins.VST3_DISCOVERY_ENABLED, null) == null) { + prefs.putBoolean(Prefs.Plugins.VST3_DISCOVERY_ENABLED, Boolean.TRUE); } - if (prefs.get(ApplicationDefaults.NATIVE_HOST_ENABLED_KEY, null) == null) { - prefs.putBoolean(ApplicationDefaults.NATIVE_HOST_ENABLED_KEY, Boolean.TRUE); + if (prefs.get(Prefs.Plugins.NativeHost.ENABLED, null) == null) { + prefs.putBoolean(Prefs.Plugins.NativeHost.ENABLED, Boolean.TRUE); } - if (prefs.get(ApplicationDefaults.SELECTED_ACCOUNT_KEY, null) == null) { - prefs.putBoolean(ApplicationDefaults.SELECTED_ACCOUNT_KEY, Boolean.FALSE); + if (prefs.get(Prefs.Auth.SELECTED_ACCOUNT, null) == null) { + prefs.putBoolean(Prefs.Auth.SELECTED_ACCOUNT, Boolean.FALSE); } - if (prefs.get(ApplicationDefaults.STORE_SUBDIRECTORY_ENABLED, null) == null) { - prefs.putBoolean(ApplicationDefaults.STORE_SUBDIRECTORY_ENABLED, Boolean.TRUE); + if (prefs.get(Prefs.Explore.STORE_SUBDIRECTORY_ENABLED, null) == null) { + prefs.putBoolean(Prefs.Explore.STORE_SUBDIRECTORY_ENABLED, Boolean.TRUE); } - if (prefs.get(ApplicationDefaults.NATIVE_LOADER_TIMEOUT_KEY, null) == null) { - prefs.putLong(ApplicationDefaults.NATIVE_LOADER_TIMEOUT_KEY, 10L); + if (prefs.get(Prefs.Plugins.NativeHost.LOADER_TIMEOUT, null) == null) { + prefs.putLong(Prefs.Plugins.NativeHost.LOADER_TIMEOUT, 10L); } } diff --git a/owlplug-client/src/main/java/com/owlplug/core/services/TelemetryService.java b/owlplug-client/src/main/java/com/owlplug/core/services/TelemetryService.java index 729bdc0d..8eb749e3 100644 --- a/owlplug-client/src/main/java/com/owlplug/core/services/TelemetryService.java +++ b/owlplug-client/src/main/java/com/owlplug/core/services/TelemetryService.java @@ -23,6 +23,7 @@ import com.mixpanel.mixpanelapi.MessageBuilder; import com.mixpanel.mixpanelapi.MixpanelAPI; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import jakarta.annotation.PostConstruct; import java.io.IOException; import java.util.HashMap; @@ -57,8 +58,8 @@ private void initialize() { "https://api-eu.mixpanel.com/engage"); messageBuilder = new MessageBuilder(this.getApplicationDefaults().getEnvProperty("owlplug.telemetry.code")); - userId = this.getPreferences().get(ApplicationDefaults.TELEMETRY_USER_ID_KEY, UUID.randomUUID().toString()); - this.getPreferences().put(ApplicationDefaults.TELEMETRY_USER_ID_KEY, userId); + userId = this.getPreferences().get(Prefs.Telemetry.USER_ID, UUID.randomUUID().toString()); + this.getPreferences().put(Prefs.Telemetry.USER_ID, userId); } @@ -67,7 +68,7 @@ public void event(String name) { } public void event(String name, Consumer> builder) { - if (!this.getPreferences().getBoolean(ApplicationDefaults.TELEMETRY_ENABLED_KEY, false)) { + if (!this.getPreferences().getBoolean(Prefs.Telemetry.ENABLED, false)) { return; } if (!allowedEvents.contains(name)) { diff --git a/owlplug-client/src/main/java/com/owlplug/explore/controllers/dialogs/InstallStepDialogController.java b/owlplug-client/src/main/java/com/owlplug/explore/controllers/dialogs/InstallStepDialogController.java index 6caf9b80..e65ba4e6 100644 --- a/owlplug-client/src/main/java/com/owlplug/explore/controllers/dialogs/InstallStepDialogController.java +++ b/owlplug-client/src/main/java/com/owlplug/explore/controllers/dialogs/InstallStepDialogController.java @@ -20,6 +20,7 @@ import com.owlplug.controls.DialogLayout; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.ImageCache; import com.owlplug.core.components.LazyViewRegistry; import com.owlplug.core.controllers.dialogs.AbstractDialogController; @@ -123,13 +124,13 @@ public void initialize() { } String baseDir = null; if (vst2ToggleButton.equals(obs.getValue())) { - baseDir = this.getPreferences().get(ApplicationDefaults.VST_DIRECTORY_KEY, ""); + baseDir = this.getPreferences().get(Prefs.Plugins.VST2_DIRECTORY, ""); } else if (vst3ToggleButton.equals(obs.getValue())) { - baseDir = this.getPreferences().get(ApplicationDefaults.VST3_DIRECTORY_KEY, ""); + baseDir = this.getPreferences().get(Prefs.Plugins.VST3_DIRECTORY, ""); } else if (auToggleButton.equals(obs.getValue())) { - baseDir = this.getPreferences().get(ApplicationDefaults.AU_DIRECTORY_KEY, ""); + baseDir = this.getPreferences().get(Prefs.Plugins.AU_DIRECTORY, ""); } else if (lv2ToggleButton.equals(obs.getValue())) { - baseDir = this.getPreferences().get(ApplicationDefaults.LV2_DIRECTORY_KEY, ""); + baseDir = this.getPreferences().get(Prefs.Plugins.LV2_DIRECTORY, ""); } if (baseDir != null) { File installationDirectory = generateInstallationDirectoryFromBasePath(baseDir); @@ -345,15 +346,15 @@ private File generateInstallationDirectoryFromBasePath(String baseDirectoryPath) selectedDirectory = new File(baseDirectoryPath); boolean shouldStoreInDirectory = this.getPreferences().getBoolean( - ApplicationDefaults.STORE_DIRECTORY_ENABLED_KEY, false); + Prefs.Explore.STORE_DIRECTORY_ENABLED, false); //if the user wishes to group plugins in a dedicated directory //then we need to include the subdirectory as well. if (shouldStoreInDirectory) { - String relativeDirectoryPath = this.getPreferences().get(ApplicationDefaults.STORE_DIRECTORY_KEY, ""); + String relativeDirectoryPath = this.getPreferences().get(Prefs.Explore.STORE_DIRECTORY, ""); selectedDirectory = new File(selectedDirectory, relativeDirectoryPath); } - boolean shouldGroupByCreator = this.getPreferences().getBoolean(ApplicationDefaults.STORE_BY_CREATOR_ENABLED_KEY, false); + boolean shouldGroupByCreator = this.getPreferences().getBoolean(Prefs.Explore.STORE_BY_CREATOR_ENABLED, false); //if the user wishes to group plugins by their creator, //then we need to include the subdirectory as well. if (shouldGroupByCreator) { @@ -361,7 +362,7 @@ private File generateInstallationDirectoryFromBasePath(String baseDirectoryPath) selectedDirectory = new File(selectedDirectory, creator); } - boolean shouldWrapSubDirectory = this.getPreferences().getBoolean(ApplicationDefaults.STORE_SUBDIRECTORY_ENABLED, true); + boolean shouldWrapSubDirectory = this.getPreferences().getBoolean(Prefs.Explore.STORE_SUBDIRECTORY_ENABLED, true); if (shouldWrapSubDirectory) { // If the plugin is wrapped into a subdirectory, checks for already existing // directory @@ -381,13 +382,13 @@ public void reset() { verifyStep.setGraphic(null); vst2ToggleButton.setDisable(!this.getPreferences().getBoolean( - ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, false)); + Prefs.Plugins.VST2_DISCOVERY_ENABLED, false)); vst3ToggleButton.setDisable(!this.getPreferences().getBoolean( - ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, false)); + Prefs.Plugins.VST3_DISCOVERY_ENABLED, false)); auToggleButton.setDisable(!this.getPreferences().getBoolean( - ApplicationDefaults.AU_DISCOVERY_ENABLED_KEY, false)); + Prefs.Plugins.AU_DISCOVERY_ENABLED, false)); lv2ToggleButton.setDisable(!this.getPreferences().getBoolean( - ApplicationDefaults.LV2_DISCOVERY_ENABLED_KEY, false)); + Prefs.Plugins.LV2_DISCOVERY_ENABLED, false)); toggleGroup.selectToggle(null); diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/components/PluginTaskFactory.java b/owlplug-client/src/main/java/com/owlplug/plugin/components/PluginTaskFactory.java index 398cc93a..461bdada 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/components/PluginTaskFactory.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/components/PluginTaskFactory.java @@ -19,6 +19,7 @@ package com.owlplug.plugin.components; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.ApplicationPreferences; import com.owlplug.core.components.BaseTaskFactory; import com.owlplug.core.tasks.TaskExecutionContext; @@ -96,18 +97,18 @@ public TaskExecutionContext createPluginScanTask(String directoryScope, boolean PluginScanTaskParameters parameters = new PluginScanTaskParameters(); parameters.setPlatform(applicationDefaults.getRuntimePlatform()); - parameters.setVst2Directory(prefs.get(ApplicationDefaults.VST_DIRECTORY_KEY, "")); - parameters.setVst3Directory(prefs.get(ApplicationDefaults.VST3_DIRECTORY_KEY, "")); - parameters.setAuDirectory(prefs.get(ApplicationDefaults.AU_DIRECTORY_KEY, "")); - parameters.setLv2Directory(prefs.get(ApplicationDefaults.LV2_DIRECTORY_KEY, "")); - parameters.setFindVst2(prefs.getBoolean(ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, false)); - parameters.setFindVst3(prefs.getBoolean(ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, false)); - parameters.setFindAu(prefs.getBoolean(ApplicationDefaults.AU_DISCOVERY_ENABLED_KEY, false)); - parameters.setFindLv2(prefs.getBoolean(ApplicationDefaults.LV2_DISCOVERY_ENABLED_KEY, false)); - parameters.setVst2ExtraDirectories(prefs.getList(ApplicationDefaults.VST2_EXTRA_DIRECTORY_KEY)); - parameters.setVst3ExtraDirectories(prefs.getList(ApplicationDefaults.VST3_EXTRA_DIRECTORY_KEY)); - parameters.setAuExtraDirectories(prefs.getList(ApplicationDefaults.AU_EXTRA_DIRECTORY_KEY)); - parameters.setLv2ExtraDirectories(prefs.getList(ApplicationDefaults.LV2_EXTRA_DIRECTORY_KEY)); + parameters.setVst2Directory(prefs.get(Prefs.Plugins.VST2_DIRECTORY, "")); + parameters.setVst3Directory(prefs.get(Prefs.Plugins.VST3_DIRECTORY, "")); + parameters.setAuDirectory(prefs.get(Prefs.Plugins.AU_DIRECTORY, "")); + parameters.setLv2Directory(prefs.get(Prefs.Plugins.LV2_DIRECTORY, "")); + parameters.setFindVst2(prefs.getBoolean(Prefs.Plugins.VST2_DISCOVERY_ENABLED, false)); + parameters.setFindVst3(prefs.getBoolean(Prefs.Plugins.VST3_DISCOVERY_ENABLED, false)); + parameters.setFindAu(prefs.getBoolean(Prefs.Plugins.AU_DISCOVERY_ENABLED, false)); + parameters.setFindLv2(prefs.getBoolean(Prefs.Plugins.LV2_DISCOVERY_ENABLED, false)); + parameters.setVst2ExtraDirectories(prefs.getList(Prefs.Plugins.VST2_EXTRA_DIRECTORY)); + parameters.setVst3ExtraDirectories(prefs.getList(Prefs.Plugins.VST3_EXTRA_DIRECTORY)); + parameters.setAuExtraDirectories(prefs.getList(Prefs.Plugins.AU_EXTRA_DIRECTORY)); + parameters.setLv2ExtraDirectories(prefs.getList(Prefs.Plugins.LV2_EXTRA_DIRECTORY)); parameters.setDifferential(differential); @@ -124,11 +125,11 @@ public TaskExecutionContext createPluginScanTask(String directoryScope, boolean scanTask.setOnRunning(e -> publisher.publishEvent(new PluginScanStartedEvent())); scanTask.setOnSucceeded(scanEvent -> { - prefs.putLong(ApplicationDefaults.LAST_PLUGIN_SCAN_DATE_KEY, System.currentTimeMillis()); + prefs.putLong(Prefs.Plugins.LAST_SCAN_DATE, System.currentTimeMillis()); publisher.publishEvent(new PluginScanCompletedEvent()); TaskExecutionContext lookupTask = projectTaskFactory.createLookupTask(); - if (prefs.getBoolean(ApplicationDefaults.SYNC_FILE_STAT_KEY, true) + if (prefs.getBoolean(Prefs.App.SYNC_FILE_STAT, true) && !parameters.isDifferential()) { lookupTask.getTask().setOnScheduled(lookupEvent -> { if (directoryScope != null) { diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginInfoController.java b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginInfoController.java index b6563e66..828f203a 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginInfoController.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginInfoController.java @@ -22,6 +22,7 @@ import com.owlplug.controls.Dialog; import com.owlplug.controls.DialogLayout; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.ImageCache; import com.owlplug.core.controllers.BaseController; import com.owlplug.core.utils.Async; @@ -143,7 +144,7 @@ public void initialize() { disableButton.setOnAction(e -> { Plugin plugin = pluginProperty.get(); - if (this.getPreferences().getBoolean(ApplicationDefaults.SHOW_DIALOG_DISABLE_PLUGIN_KEY, true)) { + if (this.getPreferences().getBoolean(Prefs.App.SHOW_DIALOG_DISABLE_PLUGIN, true)) { this.disableController.setPlugin(plugin); this.disableController.show(); } else { diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginTableController.java b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginTableController.java index 94632fa8..9cda0e51 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginTableController.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginTableController.java @@ -19,6 +19,7 @@ package com.owlplug.plugin.controllers; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.controllers.BaseController; import com.owlplug.core.utils.FileUtils; import com.owlplug.core.utils.PlatformUtils; @@ -249,7 +250,7 @@ private ContextMenu createPluginContextMenu(IPlugin plugin) { } else { MenuItem disableItem = new MenuItem("Disable plugin"); disableItem.setOnAction(e -> { - if (this.getPreferences().getBoolean(ApplicationDefaults.SHOW_DIALOG_DISABLE_PLUGIN_KEY, true)) { + if (this.getPreferences().getBoolean(Prefs.App.SHOW_DIALOG_DISABLE_PLUGIN, true)) { this.disableController.setPlugin(p); this.disableController.show(); } else { diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginsController.java b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginsController.java index f24863e5..99e41363 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginsController.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/PluginsController.java @@ -19,6 +19,7 @@ package com.owlplug.plugin.controllers; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.controllers.BaseController; import com.owlplug.core.utils.FX; import com.owlplug.plugin.components.PluginTaskFactory; @@ -162,24 +163,24 @@ public void initialize() { treeViewController.setNodeManaged(true); tableController.setNodeManaged(false); setInfoPaneDisplay(true); - this.getPreferences().put(ApplicationDefaults.PLUGIN_PREFERRED_DISPLAY_KEY, "LIST"); + this.getPreferences().put(Prefs.Plugins.PREFERRED_DISPLAY, "LIST"); } else if (newTab.equals(displayDirectoriesTab)) { treeViewController.setDisplayMode(PluginTreeViewController.Display.DirectoryTree); treeViewController.setNodeManaged(true); tableController.setNodeManaged(false); setInfoPaneDisplay(true); - this.getPreferences().put(ApplicationDefaults.PLUGIN_PREFERRED_DISPLAY_KEY, "DIRECTORIES"); + this.getPreferences().put(Prefs.Plugins.PREFERRED_DISPLAY, "DIRECTORIES"); } else { treeViewController.setNodeManaged(false); tableController.setNodeManaged(true); setInfoPaneDisplay(false); - this.getPreferences().put(ApplicationDefaults.PLUGIN_PREFERRED_DISPLAY_KEY, "TABLE"); + this.getPreferences().put(Prefs.Plugins.PREFERRED_DISPLAY, "TABLE"); } }); - if (this.getPreferences().get(ApplicationDefaults.PLUGIN_PREFERRED_DISPLAY_KEY, "").equals("TABLE")) { + if (this.getPreferences().get(Prefs.Plugins.PREFERRED_DISPLAY, "").equals("TABLE")) { displaySwitchTabPane.getSelectionModel().select(displayTableTab); - } else if (this.getPreferences().get(ApplicationDefaults.PLUGIN_PREFERRED_DISPLAY_KEY, "").equals("DIRECTORIES")) { + } else if (this.getPreferences().get(Prefs.Plugins.PREFERRED_DISPLAY, "").equals("DIRECTORIES")) { displaySwitchTabPane.getSelectionModel().select(displayDirectoriesTab); } else { displaySwitchTabPane.getSelectionModel().select(displayListTab); diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/DisablePluginDialogController.java b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/DisablePluginDialogController.java index dc422661..0588cbb0 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/DisablePluginDialogController.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/DisablePluginDialogController.java @@ -21,6 +21,7 @@ import com.owlplug.controls.DialogLayout; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.controllers.dialogs.AbstractDialogController; import com.owlplug.plugin.controllers.PluginInfoController; import com.owlplug.plugin.model.Plugin; @@ -64,9 +65,9 @@ protected DialogLayout getLayout() { CheckBox displayDialog = new CheckBox("Don't show me this message again"); VBox.setMargin(displayDialog, new Insets(20,0,0,0)); - displayDialog.setSelected(!getPreferences().getBoolean(ApplicationDefaults.SHOW_DIALOG_DISABLE_PLUGIN_KEY, true)); + displayDialog.setSelected(!getPreferences().getBoolean(Prefs.App.SHOW_DIALOG_DISABLE_PLUGIN, true)); displayDialog.selectedProperty().addListener((observable, oldValue, newValue) -> { - this.getPreferences().putBoolean(ApplicationDefaults.SHOW_DIALOG_DISABLE_PLUGIN_KEY, !newValue); + this.getPreferences().putBoolean(Prefs.App.SHOW_DIALOG_DISABLE_PLUGIN, !newValue); }); vbox.getChildren().add(displayDialog); layout.setBody(vbox); diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/NewLinkController.java b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/NewLinkController.java index 60503fba..31cb4192 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/NewLinkController.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/controllers/dialogs/NewLinkController.java @@ -21,6 +21,7 @@ import com.owlplug.controls.AutoCompletePopup; import com.owlplug.controls.DialogLayout; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.LazyViewRegistry; import com.owlplug.core.controllers.dialogs.AbstractDialogController; import com.owlplug.plugin.components.PluginTaskFactory; @@ -129,11 +130,11 @@ public void initialize() { @Override public void show() { autoCompletePath.getSuggestions().clear(); - if (this.getPreferences().getBoolean(ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, false)) { - autoCompletePath.getSuggestions().add(this.getPreferences().get(ApplicationDefaults.VST_DIRECTORY_KEY,"")); + if (this.getPreferences().getBoolean(Prefs.Plugins.VST2_DISCOVERY_ENABLED, false)) { + autoCompletePath.getSuggestions().add(this.getPreferences().get(Prefs.Plugins.VST2_DIRECTORY,"")); } - if (this.getPreferences().getBoolean(ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, false)) { - autoCompletePath.getSuggestions().add(this.getPreferences().get(ApplicationDefaults.VST3_DIRECTORY_KEY,"")); + if (this.getPreferences().getBoolean(Prefs.Plugins.VST3_DISCOVERY_ENABLED, false)) { + autoCompletePath.getSuggestions().add(this.getPreferences().get(Prefs.Plugins.VST3_DIRECTORY,"")); } super.show(); } diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/services/NativeHostService.java b/owlplug-client/src/main/java/com/owlplug/plugin/services/NativeHostService.java index ebd41fb0..14dfc270 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/services/NativeHostService.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/services/NativeHostService.java @@ -19,6 +19,7 @@ package com.owlplug.plugin.services; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.services.BaseService; import com.owlplug.host.NativePlugin; import com.owlplug.host.loaders.DummyPluginLoader; @@ -53,13 +54,13 @@ private void init() { loader.init(); } configureCurrentPluginLoader(); - long timeoutSeconds = this.getPreferences().getLong(ApplicationDefaults.NATIVE_LOADER_TIMEOUT_KEY, 30L); + long timeoutSeconds = this.getPreferences().getLong(Prefs.Plugins.NativeHost.LOADER_TIMEOUT, 10L); EmbeddedScannerPluginLoader.getInstance().setTimeout(timeoutSeconds * 1000); } private void configureCurrentPluginLoader() { - String prefLoaderId = this.getPreferences().get(ApplicationDefaults.PREFERRED_NATIVE_LOADER, null); + String prefLoaderId = this.getPreferences().get(Prefs.Plugins.NativeHost.PREFERRED_LOADER, null); // If a preferred loader as been set if (prefLoaderId != null) { @@ -127,7 +128,7 @@ public List loadPlugin(String path) throws NativeLoaderException { } public boolean isNativeHostEnabled() { - return this.getPreferences().getBoolean(ApplicationDefaults.NATIVE_HOST_ENABLED_KEY, false); + return this.getPreferences().getBoolean(Prefs.Plugins.NativeHost.ENABLED, false); } public boolean isNativeHostAvailable() { diff --git a/owlplug-client/src/main/java/com/owlplug/plugin/services/PluginService.java b/owlplug-client/src/main/java/com/owlplug/plugin/services/PluginService.java index a99ce079..c4962b5f 100644 --- a/owlplug-client/src/main/java/com/owlplug/plugin/services/PluginService.java +++ b/owlplug-client/src/main/java/com/owlplug/plugin/services/PluginService.java @@ -20,6 +20,7 @@ import com.google.common.collect.Iterables; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.ApplicationPreferences; import com.owlplug.core.services.BaseService; import com.owlplug.core.utils.FileUtils; @@ -204,16 +205,16 @@ public Iterable findByComponentName(String name, PluginFormat pluginForm public String getPrimaryPluginPathByFormat(PluginFormat format) { if (PluginFormat.VST2.equals(format)) { - return this.getPreferences().get(ApplicationDefaults.VST_DIRECTORY_KEY, ""); + return this.getPreferences().get(Prefs.Plugins.VST2_DIRECTORY, ""); } else if (PluginFormat.VST3.equals(format)) { - return this.getPreferences().get(ApplicationDefaults.VST3_DIRECTORY_KEY, ""); + return this.getPreferences().get(Prefs.Plugins.VST3_DIRECTORY, ""); } else if (PluginFormat.AU.equals(format)) { - return this.getPreferences().get(ApplicationDefaults.AU_DIRECTORY_KEY, ""); + return this.getPreferences().get(Prefs.Plugins.AU_DIRECTORY, ""); } else if (PluginFormat.LV2.equals(format)) { - return this.getPreferences().get(ApplicationDefaults.LV2_DIRECTORY_KEY, ""); + return this.getPreferences().get(Prefs.Plugins.LV2_DIRECTORY, ""); } - return this.getPreferences().get(ApplicationDefaults.VST_DIRECTORY_KEY, ""); + return this.getPreferences().get(Prefs.Plugins.VST2_DIRECTORY, ""); } /** @@ -225,28 +226,28 @@ public Set getDirectoriesExplorationSet() { Set directorySet = new HashSet<>(); ApplicationPreferences prefs = this.getPreferences(); - if (prefs.getBoolean(ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, false) - && !prefs.get(ApplicationDefaults.VST_DIRECTORY_KEY, "").isBlank()) { - directorySet.add(prefs.get(ApplicationDefaults.VST_DIRECTORY_KEY, "")); - directorySet.addAll(prefs.getList(ApplicationDefaults.VST2_EXTRA_DIRECTORY_KEY)); + if (prefs.getBoolean(Prefs.Plugins.VST2_DISCOVERY_ENABLED, false) + && !prefs.get(Prefs.Plugins.VST2_DIRECTORY, "").isBlank()) { + directorySet.add(prefs.get(Prefs.Plugins.VST2_DIRECTORY, "")); + directorySet.addAll(prefs.getList(Prefs.Plugins.VST2_EXTRA_DIRECTORY)); } - if (prefs.getBoolean(ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, false) - && !prefs.get(ApplicationDefaults.VST3_DIRECTORY_KEY, "").isBlank()) { - directorySet.add(prefs.get(ApplicationDefaults.VST3_DIRECTORY_KEY, "")); - directorySet.addAll(prefs.getList(ApplicationDefaults.VST3_EXTRA_DIRECTORY_KEY)); + if (prefs.getBoolean(Prefs.Plugins.VST3_DISCOVERY_ENABLED, false) + && !prefs.get(Prefs.Plugins.VST3_DIRECTORY, "").isBlank()) { + directorySet.add(prefs.get(Prefs.Plugins.VST3_DIRECTORY, "")); + directorySet.addAll(prefs.getList(Prefs.Plugins.VST3_EXTRA_DIRECTORY)); } - if (prefs.getBoolean(ApplicationDefaults.AU_DISCOVERY_ENABLED_KEY, false) - && !prefs.get(ApplicationDefaults.AU_DIRECTORY_KEY, "").isBlank()) { - directorySet.add(prefs.get(ApplicationDefaults.AU_DIRECTORY_KEY, "")); - directorySet.addAll(prefs.getList(ApplicationDefaults.AU_EXTRA_DIRECTORY_KEY)); + if (prefs.getBoolean(Prefs.Plugins.AU_DISCOVERY_ENABLED, false) + && !prefs.get(Prefs.Plugins.AU_DIRECTORY, "").isBlank()) { + directorySet.add(prefs.get(Prefs.Plugins.AU_DIRECTORY, "")); + directorySet.addAll(prefs.getList(Prefs.Plugins.AU_EXTRA_DIRECTORY)); } - if (prefs.getBoolean(ApplicationDefaults.LV2_DISCOVERY_ENABLED_KEY, false) - && !prefs.get(ApplicationDefaults.LV2_DIRECTORY_KEY, "").isBlank()) { - directorySet.add(prefs.get(ApplicationDefaults.LV2_DIRECTORY_KEY, "")); - directorySet.addAll(prefs.getList(ApplicationDefaults.LV2_EXTRA_DIRECTORY_KEY)); + if (prefs.getBoolean(Prefs.Plugins.LV2_DISCOVERY_ENABLED, false) + && !prefs.get(Prefs.Plugins.LV2_DIRECTORY, "").isBlank()) { + directorySet.add(prefs.get(Prefs.Plugins.LV2_DIRECTORY, "")); + directorySet.addAll(prefs.getList(Prefs.Plugins.LV2_EXTRA_DIRECTORY)); } return directorySet.stream() @@ -262,13 +263,13 @@ public Set getDirectoriesExplorationSet() { public boolean isFormatEnabled(PluginFormat format) { if (PluginFormat.VST2.equals(format)) { - return this.getPreferences().getBoolean(ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY, false); + return this.getPreferences().getBoolean(Prefs.Plugins.VST2_DISCOVERY_ENABLED, false); } else if (PluginFormat.VST3.equals(format)) { - return this.getPreferences().getBoolean(ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY, false); + return this.getPreferences().getBoolean(Prefs.Plugins.VST3_DISCOVERY_ENABLED, false); } else if (PluginFormat.AU.equals(format)) { - return this.getPreferences().getBoolean(ApplicationDefaults.AU_DISCOVERY_ENABLED_KEY, false); + return this.getPreferences().getBoolean(Prefs.Plugins.AU_DISCOVERY_ENABLED, false); } else if (PluginFormat.LV2.equals(format)) { - return this.getPreferences().getBoolean(ApplicationDefaults.LV2_DISCOVERY_ENABLED_KEY, false); + return this.getPreferences().getBoolean(Prefs.Plugins.LV2_DISCOVERY_ENABLED, false); } return false; diff --git a/owlplug-client/src/main/java/com/owlplug/project/components/ProjectTaskFactory.java b/owlplug-client/src/main/java/com/owlplug/project/components/ProjectTaskFactory.java index fd6bcae8..d81439f1 100644 --- a/owlplug-client/src/main/java/com/owlplug/project/components/ProjectTaskFactory.java +++ b/owlplug-client/src/main/java/com/owlplug/project/components/ProjectTaskFactory.java @@ -20,6 +20,7 @@ package com.owlplug.project.components; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.components.ApplicationPreferences; import com.owlplug.core.components.BaseTaskFactory; import com.owlplug.core.tasks.TaskExecutionContext; @@ -51,7 +52,7 @@ public class ProjectTaskFactory extends BaseTaskFactory { public TaskExecutionContext createSyncTask() { - List directories = prefs.getList(ApplicationDefaults.PROJECT_DIRECTORY_KEY); + List directories = prefs.getList(Prefs.Projects.DIRECTORY); ProjectSyncTask task = new ProjectSyncTask(projectRepository, directories); task.setOnSucceeded(e -> { diff --git a/owlplug-client/src/main/java/com/owlplug/project/services/ProjectService.java b/owlplug-client/src/main/java/com/owlplug/project/services/ProjectService.java index 28cccc22..774c7cf7 100644 --- a/owlplug-client/src/main/java/com/owlplug/project/services/ProjectService.java +++ b/owlplug-client/src/main/java/com/owlplug/project/services/ProjectService.java @@ -19,6 +19,7 @@ package com.owlplug.project.services; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import com.owlplug.core.services.BaseService; import com.owlplug.project.components.ProjectTaskFactory; import com.owlplug.project.model.DawProject; @@ -46,7 +47,7 @@ public Iterable getAllProjects() { } public Set getProjectDirectories() { - return new HashSet<>(this.getPreferences().getList(ApplicationDefaults.PROJECT_DIRECTORY_KEY)); + return new HashSet<>(this.getPreferences().getList(Prefs.Projects.DIRECTORY)); } } diff --git a/owlplug-client/src/test/java/com/owlplug/AppTestContext.java b/owlplug-client/src/test/java/com/owlplug/AppTestContext.java index 3782152e..96c6ba06 100644 --- a/owlplug-client/src/test/java/com/owlplug/AppTestContext.java +++ b/owlplug-client/src/test/java/com/owlplug/AppTestContext.java @@ -19,6 +19,7 @@ package com.owlplug; import com.owlplug.core.components.ApplicationDefaults; +import com.owlplug.core.components.ApplicationDefaults.Prefs; import java.io.File; import java.util.prefs.Preferences; @@ -47,13 +48,13 @@ public Object answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); Object mock = invocation.getMock(); - if (((String) args[0]).equals(ApplicationDefaults.VST2_DISCOVERY_ENABLED_KEY)) { + if (((String) args[0]).equals(Prefs.Plugins.VST2_DISCOVERY_ENABLED)) { return true; } - if (((String) args[0]).equals(ApplicationDefaults.VST3_DISCOVERY_ENABLED_KEY)) { + if (((String) args[0]).equals(Prefs.Plugins.VST3_DISCOVERY_ENABLED)) { return true; } - if (((String) args[0]).equals(ApplicationDefaults.SYNC_PLUGINS_STARTUP_KEY)) { + if (((String) args[0]).equals(Prefs.App.SYNC_PLUGINS_ON_STARTUP)) { return false; } return false; @@ -66,7 +67,7 @@ public Object answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); Object mock = invocation.getMock(); - if (((String) args[0]).equals(ApplicationDefaults.VST_DIRECTORY_KEY)) { + if (((String) args[0]).equals(Prefs.Plugins.VST2_DIRECTORY)) { return vstDirectoryTestPath; }