From da8320b5c2c1fe4898bdd0bd3e3c3a1d6e0161d5 Mon Sep 17 00:00:00 2001 From: jafea7 Date: Fri, 18 Apr 2025 15:49:09 +1000 Subject: [PATCH] Change HashSet to ArrayList --- .../ui/sites/bonga/BongaCamsConfigUI.java | 6 +++-- .../bonga/BongaCamsElectronLoginDialog.java | 10 +++++++-- .../ctbrec/ui/sites/cam4/Cam4ConfigUI.java | 4 +++- .../ui/sites/camsoda/CamsodaConfigUI.java | 4 +++- .../sites/chaturbate/ChaturbateConfigUi.java | 8 ++++--- .../ui/sites/dreamcam/DreamcamConfigUI.java | 4 +++- .../sites/flirt4free/Flirt4FreeConfigUI.java | 4 +++- .../ui/sites/showup/ShowupConfigUI.java | 4 +++- .../ui/sites/streamate/StreamateConfigUI.java | 4 +++- .../ui/sites/streamray/StreamrayConfigUI.java | 4 +++- .../ui/sites/stripchat/StripchatConfigUI.java | 4 +++- .../ui/sites/xlovecam/XloveCamConfigUI.java | 4 +++- common/src/main/java/ctbrec/Settings.java | 22 +++++++++---------- 13 files changed, 55 insertions(+), 27 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java index 1e7885e3..86255fa8 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java @@ -150,11 +150,13 @@ public class BongaCamsConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.bongaTabs.add(tab); + if (!settings.bongaTabs.contains(tab)) { + settings.bongaTabs.add(tab); + } } else { settings.bongaTabs.remove(tab); } - save(); + save(); } private List getEnabledTabs() { diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java index f5d4a372..3f0b8468 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsElectronLoginDialog.java @@ -13,7 +13,9 @@ import org.slf4j.LoggerFactory; import java.io.IOException; import java.net.MalformedURLException; -import java.net.URL; +// import java.net.URL; +import java.net.URI; +import java.net.URISyntaxException; import java.util.Collections; import java.util.Objects; import java.util.function.Consumer; @@ -110,13 +112,17 @@ public class BongaCamsElectronLoginDialog { } try { - if (Objects.equals(new URL(url).getPath(), "/")) { + URI uri = new URI(url); + + if (Objects.equals(uri.getPath(), "/")) { browser.close(); } } catch (MalformedURLException e) { LOG.error("Couldn't parse new url {}", url, e); } catch (IOException e) { LOG.error("Couldn't send shutdown request to external browser", e); + } catch (URISyntaxException e) { + LOG.error("Invalid URL: " + url); } } } diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java index 455e38b9..27203f8a 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java @@ -142,7 +142,9 @@ public class Cam4ConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.cam4Tabs.add(tab); + if (!settings.cam4Tabs.contains(tab)) { + settings.cam4Tabs.add(tab); + } } else { settings.cam4Tabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java index d7e3870b..7a86b29f 100644 --- a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java @@ -143,7 +143,9 @@ public class CamsodaConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.camsodaTabs.add(tab); + if (!settings.camsodaTabs.contains(tab)) { + settings.camsodaTabs.add(tab); + } } else { settings.camsodaTabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java index 5daddd46..1b824980 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java @@ -215,12 +215,14 @@ public class ChaturbateConfigUi extends AbstractConfigUI { return layout; } - private void toggleTab(String region, boolean selected) { + private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.chaturbateTabs.add(region); + if (!settings.chaturbateTabs.contains(tab)) { + settings.chaturbateTabs.add(tab); + } } else { - settings.chaturbateTabs.remove(region); + settings.chaturbateTabs.remove(tab); } save(); } diff --git a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java index 2132ddd8..b8799392 100644 --- a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java @@ -99,7 +99,9 @@ public class DreamcamConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.dreamcamTabs.add(tab); + if (!settings.dreamcamTabs.contains(tab)) { + settings.dreamcamTabs.add(tab); + } } else { settings.dreamcamTabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java index 80a455bb..9913a698 100644 --- a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java @@ -132,7 +132,9 @@ public class Flirt4FreeConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.flirt4freeTabs.add(tab); + if (!settings.flirt4freeTabs.contains(tab)) { + settings.flirt4freeTabs.add(tab); + } } else { settings.flirt4freeTabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java index 7dc3d487..5e526e60 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java @@ -121,7 +121,9 @@ public class ShowupConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.showupTabs.add(tab); + if (!settings.showupTabs.contains(tab)) { + settings.showupTabs.add(tab); + } } else { settings.showupTabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java index 0a05410c..8c0187e8 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java @@ -138,7 +138,9 @@ public class StreamateConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.streamateTabs.add(tab); + if (!settings.streamateTabs.contains(tab)) { + settings.streamateTabs.add(tab); + } } else { settings.streamateTabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java index 18e9f53f..898a43c1 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java @@ -96,7 +96,9 @@ public class StreamrayConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.streamrayTabs.add(tab); + if (!settings.streamrayTabs.contains(tab)) { + settings.streamrayTabs.add(tab); + } } else { settings.streamrayTabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java index d91b41ea..b3e47d8b 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java @@ -211,7 +211,9 @@ public class StripchatConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.stripchatTabs.add(tab); + if (!settings.stripchatTabs.contains(tab)) { + settings.stripchatTabs.add(tab); + } } else { settings.stripchatTabs.remove(tab); } diff --git a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java index 39e5c5be..b96fe3f0 100644 --- a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java @@ -147,7 +147,9 @@ public class XloveCamConfigUI extends AbstractConfigUI { private void toggleTab(String tab, boolean selected) { var settings = Config.getInstance().getSettings(); if (selected) { - settings.xlovecamTabs.add(tab); + if (!settings.xlovecamTabs.contains(tab)) { + settings.xlovecamTabs.add(tab); + } } else { settings.xlovecamTabs.remove(tab); } diff --git a/common/src/main/java/ctbrec/Settings.java b/common/src/main/java/ctbrec/Settings.java index ebe79b5e..d82df466 100644 --- a/common/src/main/java/ctbrec/Settings.java +++ b/common/src/main/java/ctbrec/Settings.java @@ -53,20 +53,20 @@ public class Settings { public String bongacamsBaseUrl = "https://bongacams.com"; public String bongaPassword = ""; public String bongaUsername = ""; - public Set bongaTabs = new HashSet<>(Arrays.asList("female")); + public List bongaTabs = new ArrayList<>(Arrays.asList("female")); public String cam4Password = ""; public String cam4Username = ""; - public Set cam4Tabs = new HashSet<>(Arrays.asList("female")); + public List cam4Tabs = new ArrayList<>(Arrays.asList("female")); public String camsodaPassword = ""; public String camsodaUsername = ""; - public Set camsodaTabs = new HashSet<>(Arrays.asList("f")); + public List camsodaTabs = new ArrayList<>(Arrays.asList("f")); public String chaturbatePassword = ""; public String chaturbateUsername = ""; public String chaturbateBaseUrl = "https://chaturbate.com"; @Deprecated public boolean chaturbateUseFlaresolverr = false; public int chaturbateMsBetweenRequests = 3000; - public Set chaturbateTabs = new HashSet<>(Arrays.asList("f")); + public List chaturbateTabs = new ArrayList<>(Arrays.asList("f")); public boolean chooseStreamQuality = false; public String colorAccent = "#FFFFFF"; public String colorBase = "#FFFFFF"; @@ -79,7 +79,7 @@ public class Settings { public boolean determineResolution = false; public List disabledSites = new ArrayList<>(Arrays.asList("Streamray", "WinkTv")); public String downloadFilename = "$sanitize(${modelName})_$format(${localDateTime})"; - public Set dreamcamTabs = new HashSet<>(Arrays.asList("girls")); + public List dreamcamTabs = new ArrayList<>(Arrays.asList("girls")); public List eventHandlers = new ArrayList<>(); public boolean eventsSuspended = false; public boolean fastScrollSpeed = true; @@ -89,7 +89,7 @@ public class Settings { public String ffmpegFileSuffix = "ts"; public String flirt4freePassword; public String flirt4freeUsername; - public Set flirt4freeTabs = new HashSet<>(Arrays.asList("female")); + public List flirt4freeTabs = new ArrayList<>(Arrays.asList("female")); public String fontFamily = "Sans-Serif"; public int fontSize = 14; public String hlsdlExecutable = "hlsdl"; @@ -186,7 +186,7 @@ public class Settings { public boolean showPlayerStarting = false; public String showupUsername = ""; public String showupPassword = ""; - public Set showupTabs = new HashSet<>(Arrays.asList("female")); + public List showupTabs = new ArrayList<>(Arrays.asList("female")); public boolean singlePlayer = true; @Deprecated public int splitRecordings = 0; @@ -197,11 +197,11 @@ public class Settings { public boolean startMinimized = false; public String streamatePassword = ""; public String streamateUsername = ""; - public Set streamateTabs = new HashSet<>(Arrays.asList("f,ff")); - public Set streamrayTabs = new HashSet<>(Arrays.asList("F")); + public List streamateTabs = new ArrayList<>(Arrays.asList("f,ff")); + public List streamrayTabs = new ArrayList<>(Arrays.asList("F")); public String stripchatUsername = ""; public String stripchatPassword = ""; - public Set stripchatTabs = new HashSet<>(Arrays.asList("girls")); + public List stripchatTabs = new ArrayList<>(Arrays.asList("girls")); public boolean stripchatUseXhamster = false; public boolean stripchatUseSuperchat = false; public List tabOrder = new ArrayList<>(); @@ -225,7 +225,7 @@ public class Settings { public String webinterfacePassword = "sucks"; public String xlovecamUsername = ""; public String xlovecamPassword = ""; - public Set xlovecamTabs = new HashSet<>(Arrays.asList("1")); + public List xlovecamTabs = new ArrayList<>(Arrays.asList("1")); public boolean stripchatVR = true; public boolean streamrayRecordGoalShows = false; public int thumbCacheSize = 16;