diff --git a/client/src/main/java/ctbrec/ui/settings/SettingsTab.java b/client/src/main/java/ctbrec/ui/settings/SettingsTab.java index 6a81533e..a8e761be 100644 --- a/client/src/main/java/ctbrec/ui/settings/SettingsTab.java +++ b/client/src/main/java/ctbrec/ui/settings/SettingsTab.java @@ -209,7 +209,11 @@ public class SettingsTab extends Tab implements TabSelectionListener { fastScrollSpeed = new SimpleBooleanProperty(null, "fastScrollSpeed", settings.fastScrollSpeed); confirmationDialogs = new SimpleBooleanProperty(null, "confirmationForDangerousActions", settings.confirmationForDangerousActions); naCamsOnly = new SimpleBooleanProperty(null, "filterNAcamsOnly", settings.filterNAcamsOnly); - naCamsOnly.addListener((obs, oldValue, newValue) -> { settings.filterNAcamsOnly = newValue; saveConfig();}); + naCamsOnly.addListener((obs, oldValue, newValue) -> { + settings.filterNAcamsOnly = newValue; + saveConfig(); + refreshChaturbateTabs(); // Refresh tabs when the setting changes + }); useHlsdl = new SimpleBooleanProperty(null, "useHlsdl", settings.useHlsdl); hlsdlExecutable = new SimpleFileProperty(null, "hlsdlExecutable", settings.hlsdlExecutable); recentlyWatched = new SimpleBooleanProperty(null, "recentlyWatched", settings.recentlyWatched); @@ -233,6 +237,19 @@ public class SettingsTab extends Tab implements TabSelectionListener { httpClientMaxRequestsPerHost = new SimpleIntegerProperty(null, "httpClientMaxRequestsPerHost", settings.httpClientMaxRequestsPerHost); } + private void refreshChaturbateTabs() { + getTabPane().getTabs().forEach(tab -> { + if (tab.getContent() instanceof ThumbOverviewTab overviewTab) { + if (overviewTab.getUpdateService() instanceof ChaturbateTabProvider updateService) { + // Fetch the latest setting dynamically and rebuild the URL + boolean filterNA = settings.filterNAcamsOnly; + updateService.setUrl(updateService.buildUrl(updateService.getEndpoint(), filterNA)); + updateService.restart(); // Refresh tab content + } + } + }); + } + private void createGui() { var postProcessingStepPanel = new PostProcessingStepPanel(config); var variablesHelpButton = createHelpButton("Variables", "http://localhost:5689/docs/PostProcessing.md#variables"); diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java index 61680cc5..a435052c 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java @@ -79,8 +79,9 @@ public class ChaturbateTabProvider extends AbstractTabProvider { return createTab(title, updateService); } - // Helper function to append region filter if enabled private String buildUrl(String endpoint) { - return apiUrl + endpoint + (regionNAEnabled ? "®ions=NA" : ""); + boolean filterNA = Config.getInstance().isFilterNAcamsOnlyEnabled(); // Fetch latest setting + return apiUrl + endpoint + (filterNA ? "®ions=NA" : ""); } + } \ No newline at end of file