diff --git a/client/src/main/java/ctbrec/ui/settings/Sites.java b/client/src/main/java/ctbrec/ui/settings/Sites.java new file mode 100644 index 00000000..25a7a1cf --- /dev/null +++ b/client/src/main/java/ctbrec/ui/settings/Sites.java @@ -0,0 +1,15 @@ +package ctbrec.ui.settings; + +public enum Sites { + BONGACAMS, + CAM4, + CAMSODA, + CHATURBATE, + DREAMCAM, + FLIRT4FREE, + SHOWUP, + STREAMATE, + STREAMRAY, + STRIPCHAT, + XLOVECAM +} diff --git a/client/src/main/java/ctbrec/ui/settings/TabUtils.java b/client/src/main/java/ctbrec/ui/settings/TabUtils.java new file mode 100644 index 00000000..362f6634 --- /dev/null +++ b/client/src/main/java/ctbrec/ui/settings/TabUtils.java @@ -0,0 +1,58 @@ +package ctbrec.ui.settings; + +import ctbrec.Config; +import ctbrec.Settings; +import lombok.extern.slf4j.Slf4j; + +import java.util.List; +import java.util.ArrayList; + +import java.io.IOException; + +@Slf4j +public class TabUtils { + public static void toggleTab(Sites site, String tab, boolean selected) { + var settings = Config.getInstance().getSettings(); + List siteTabs = getTabsForSite(settings, site); + + if (selected) { + if (!siteTabs.contains(tab)) { + siteTabs.add(tab); + } + } else { + siteTabs.remove(tab); + } + save(); + } + + public static List getEnabledTabs(Sites site) { + var settings = Config.getInstance().getSettings(); + return new ArrayList<>(getTabsForSite(settings, site)); + } + + // Helper to dynamically get the correct tab list from settings + private static List getTabsForSite(Settings settings, Sites site) { + return switch (site) { + case BONGACAMS -> settings.bongaTabs; + case CAM4 -> settings.cam4Tabs; + case CAMSODA -> settings.camsodaTabs; + case CHATURBATE -> settings.chaturbateTabs; + case DREAMCAM -> settings.dreamcamTabs; + case FLIRT4FREE -> settings.flirt4freeTabs; + case SHOWUP -> settings.showupTabs; + case STREAMATE -> settings.streamateTabs; + case STREAMRAY -> settings.streamrayTabs; + case STRIPCHAT -> settings.stripchatTabs; + case XLOVECAM -> settings.xlovecamTabs; + default -> throw new IllegalArgumentException("Unknown site: " + site); + }; + } + + private static void save() { + try { + Config.getInstance().save(); + } catch (IOException e) { + log.error("Couldn't save config", e); + } + } +} 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 86255fa8..618fb062 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java @@ -14,8 +14,9 @@ import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import javafx.scene.layout.Priority; -import java.util.ArrayList; import java.util.List; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; public class BongaCamsConfigUI extends AbstractConfigUI { private BongaCams bongaCams; @@ -89,7 +90,7 @@ public class BongaCamsConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.BONGACAMS); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -98,32 +99,32 @@ public class BongaCamsConfigUI extends AbstractConfigUI { CheckBox female = new CheckBox("Female"); female.setSelected(tabs.contains("female")); - female.setOnAction(e -> toggleTab("female", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.BONGACAMS, "female", female.isSelected())); checkboxGrid.add(female, 0, 0); CheckBox male = new CheckBox("Male"); male.setSelected(tabs.contains("male")); - male.setOnAction(e -> toggleTab("male", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.BONGACAMS, "male", male.isSelected())); checkboxGrid.add(male, 1, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("couples")); - couples.setOnAction(e -> toggleTab("couples", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.BONGACAMS, "couples", couples.isSelected())); checkboxGrid.add(couples, 2, 0); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("trans")); - trans.setOnAction(e -> toggleTab("trans", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.BONGACAMS, "trans", trans.isSelected())); checkboxGrid.add(trans, 0, 1); CheckBox newModels = new CheckBox("New"); newModels.setSelected(tabs.contains("new")); - newModels.setOnAction(e -> toggleTab("new", newModels.isSelected())); + newModels.setOnAction(e -> TabUtils.toggleTab(Sites.BONGACAMS, "new", newModels.isSelected())); checkboxGrid.add(newModels, 1, 1); CheckBox mobile = new CheckBox("Mobile"); mobile.setSelected(tabs.contains("mobile")); - mobile.setOnAction(e -> toggleTab("mobile", mobile.isSelected())); + mobile.setOnAction(e -> TabUtils.toggleTab(Sites.BONGACAMS, "mobile", mobile.isSelected())); checkboxGrid.add(mobile, 2, 1); layout.add(checkboxGrid, 1, row, 3, 2); @@ -146,20 +147,4 @@ public class BongaCamsConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.bongaTabs.contains(tab)) { - settings.bongaTabs.add(tab); - } - } else { - settings.bongaTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().bongaTabs); - } } diff --git a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java index de902b71..55399c53 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java @@ -1,6 +1,5 @@ package ctbrec.ui.sites.bonga; -import ctbrec.Config; import ctbrec.sites.bonga.BongaCams; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.PaginatedScheduledService; @@ -12,6 +11,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; public class BongaCamsTabProvider extends AbstractTabProvider { @@ -34,7 +35,7 @@ public class BongaCamsTabProvider extends AbstractTabProvider { tabMap.put("male", "Male"); tabMap.put("couples", "Couples"); tabMap.put("trans", "Trans"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.BONGACAMS); for (String tab : enabledTabs) { switch (tab) { case "female": @@ -76,9 +77,4 @@ public class BongaCamsTabProvider extends AbstractTabProvider { tab.setRecorder(recorder); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().bongaTabs); - } - } 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 27203f8a..7d32a76f 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4ConfigUI.java @@ -1,12 +1,13 @@ package ctbrec.ui.sites.cam4; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.cam4.Cam4; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; @@ -77,7 +78,7 @@ public class Cam4ConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.CAM4); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -86,37 +87,37 @@ public class Cam4ConfigUI extends AbstractConfigUI { CheckBox female = new CheckBox("Female"); female.setSelected(tabs.contains("female")); - female.setOnAction(e -> toggleTab("female", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.CAM4, "female", female.isSelected())); checkboxGrid.add(female, 0, 0); CheckBox male = new CheckBox("Male"); male.setSelected(tabs.contains("male")); - male.setOnAction(e -> toggleTab("male", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.CAM4, "male", male.isSelected())); checkboxGrid.add(male, 1, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("couples")); - couples.setOnAction(e -> toggleTab("couples", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.CAM4, "couples", couples.isSelected())); checkboxGrid.add(couples, 2, 0); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("shemale")); - trans.setOnAction(e -> toggleTab("shemale", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.CAM4, "shemale", trans.isSelected())); checkboxGrid.add(trans, 3, 0); CheckBox newModels = new CheckBox("New"); newModels.setSelected(tabs.contains("new")); - newModels.setOnAction(e -> toggleTab("new", newModels.isSelected())); + newModels.setOnAction(e -> TabUtils.toggleTab(Sites.CAM4, "new", newModels.isSelected())); checkboxGrid.add(newModels, 0, 1); CheckBox hdModels = new CheckBox("HD"); hdModels.setSelected(tabs.contains("hd")); - hdModels.setOnAction(e -> toggleTab("hd", hdModels.isSelected())); + hdModels.setOnAction(e -> TabUtils.toggleTab(Sites.CAM4, "hd", hdModels.isSelected())); checkboxGrid.add(hdModels, 1, 1); CheckBox mobile = new CheckBox("Mobile"); mobile.setSelected(tabs.contains("mobile")); - mobile.setOnAction(e -> toggleTab("mobile", mobile.isSelected())); + mobile.setOnAction(e -> TabUtils.toggleTab(Sites.CAM4, "mobile", mobile.isSelected())); checkboxGrid.add(mobile, 2, 1); layout.add(checkboxGrid, 1, row, 4, 2); @@ -138,21 +139,4 @@ public class Cam4ConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.cam4Tabs.contains(tab)) { - settings.cam4Tabs.add(tab); - } - } else { - settings.cam4Tabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().cam4Tabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java index 3dcf855a..891b3dbd 100644 --- a/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/cam4/Cam4TabProvider.java @@ -1,7 +1,8 @@ package ctbrec.ui.sites.cam4; -import ctbrec.Config; import ctbrec.sites.cam4.Cam4; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; @@ -31,7 +32,7 @@ public class Cam4TabProvider extends AbstractTabProvider { tabMap.put("couples", "Couples"); tabMap.put("hd", "HD"); tabMap.put("mobile", "Mobile"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.CAM4); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -74,9 +75,4 @@ public class Cam4TabProvider extends AbstractTabProvider { tab.setRecorder(recorder); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().cam4Tabs); - } - } 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 7a86b29f..56a67a39 100644 --- a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaConfigUI.java @@ -1,12 +1,13 @@ package ctbrec.ui.sites.camsoda; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.camsoda.Camsoda; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; @@ -16,7 +17,6 @@ import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; -// import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; public class CamsodaConfigUI extends AbstractConfigUI { @@ -78,46 +78,46 @@ public class CamsodaConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.CAMSODA); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); checkboxGrid.setVgap(5); checkboxGrid.setPadding(new Insets(0, 0, 0, 7)); - CheckBox female = new CheckBox("Female"); + CheckBox female = new CheckBox("Girls"); female.setSelected(tabs.contains("f")); - female.setOnAction(e -> toggleTab("f", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "f", female.isSelected())); checkboxGrid.add(female, 0, 0); - CheckBox male = new CheckBox("Male"); + CheckBox male = new CheckBox("Guys"); male.setSelected(tabs.contains("m")); - male.setOnAction(e -> toggleTab("m", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "m", male.isSelected())); checkboxGrid.add(male, 1, 0); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("t")); - trans.setOnAction(e -> toggleTab("t", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "t", trans.isSelected())); checkboxGrid.add(trans, 2, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("c")); - couples.setOnAction(e -> toggleTab("c", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "c", couples.isSelected())); checkboxGrid.add(couples, 3, 0); CheckBox isNew = new CheckBox("New"); isNew.setSelected(tabs.contains("isNew")); - isNew.setOnAction(e -> toggleTab("isNew", isNew.isSelected())); + isNew.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "isNew", isNew.isSelected())); checkboxGrid.add(isNew, 0, 1); CheckBox voyeur = new CheckBox("Voyeur"); voyeur.setSelected(tabs.contains("isVoyeur")); - voyeur.setOnAction(e -> toggleTab("isVoyeur", voyeur.isSelected())); + voyeur.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "isVoyeur", voyeur.isSelected())); checkboxGrid.add(voyeur, 1, 1); CheckBox all = new CheckBox("All"); all.setSelected(tabs.contains("all")); - all.setOnAction(e -> toggleTab("all", all.isSelected())); + all.setOnAction(e -> TabUtils.toggleTab(Sites.CAMSODA, "all", all.isSelected())); checkboxGrid.add(all, 2, 1); layout.add(checkboxGrid, 1, row, 4, 2); @@ -139,21 +139,4 @@ public class CamsodaConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.camsodaTabs.contains(tab)) { - settings.camsodaTabs.add(tab); - } - } else { - settings.camsodaTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().camsodaTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java index d4c1660f..2735c105 100644 --- a/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/camsoda/CamsodaTabProvider.java @@ -1,8 +1,9 @@ package ctbrec.ui.sites.camsoda; -import ctbrec.Config; import ctbrec.sites.camsoda.Camsoda; import ctbrec.sites.camsoda.CamsodaModel; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; @@ -36,13 +37,13 @@ public class CamsodaTabProvider extends AbstractTabProvider { Map tabMap = new HashMap<>(); tabMap.put("all", "All"); - tabMap.put("m", "Male"); - tabMap.put("f", "Female"); + tabMap.put("m", "Guys"); + tabMap.put("f", "Girls"); tabMap.put("c", "Couples"); tabMap.put("t", "Trans"); tabMap.put("isNew", "New"); tabMap.put("isVoyeur", "Voyeur"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.CAMSODA); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -80,9 +81,4 @@ public class CamsodaTabProvider extends AbstractTabProvider { tab.setRecorder(recorder); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().camsodaTabs); - } - } 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 1b824980..129bb75e 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateConfigUi.java @@ -4,13 +4,14 @@ import ctbrec.Config; import ctbrec.sites.chaturbate.Chaturbate; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.control.*; import javafx.scene.layout.GridPane; import javafx.scene.layout.Priority; -import java.util.ArrayList; import java.util.List; public class ChaturbateConfigUi extends AbstractConfigUI { @@ -104,7 +105,7 @@ public class ChaturbateConfigUi extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.CHATURBATE); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -113,82 +114,82 @@ public class ChaturbateConfigUi extends AbstractConfigUI { CheckBox female = new CheckBox("Female"); female.setSelected(tabs.contains("f")); - female.setOnAction(e -> toggleTab("f", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "f", female.isSelected())); checkboxGrid.add(female, 0, 0); CheckBox newFemale = new CheckBox("New Female"); newFemale.setSelected(tabs.contains("nf")); - newFemale.setOnAction(e -> toggleTab("nf", newFemale.isSelected())); + newFemale.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "nf", newFemale.isSelected())); checkboxGrid.add(newFemale, 1, 0); CheckBox male = new CheckBox("Male"); male.setSelected(tabs.contains("m")); - male.setOnAction(e -> toggleTab("m", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "m", male.isSelected())); checkboxGrid.add(male, 2, 0); CheckBox newMale = new CheckBox("New Male"); newMale.setSelected(tabs.contains("nm")); - newMale.setOnAction(e -> toggleTab("nm", newMale.isSelected())); + newMale.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "nm", newMale.isSelected())); checkboxGrid.add(newMale, 3, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("c")); - couples.setOnAction(e -> toggleTab("c", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "c", couples.isSelected())); checkboxGrid.add(couples, 0, 1); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("t")); - trans.setOnAction(e -> toggleTab("t", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "t", trans.isSelected())); checkboxGrid.add(trans, 1, 1); CheckBox pvt = new CheckBox("Private"); pvt.setSelected(tabs.contains("xp")); - pvt.setOnAction(e -> toggleTab("xp", pvt.isSelected())); + pvt.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "xp", pvt.isSelected())); checkboxGrid.add(pvt, 2, 1); CheckBox hidden = new CheckBox("Hidden"); hidden.setSelected(tabs.contains("xh")); - hidden.setOnAction(e -> toggleTab("xh", hidden.isSelected())); + hidden.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "xh", hidden.isSelected())); checkboxGrid.add(hidden, 3, 1); CheckBox gaming = new CheckBox("Gaming"); gaming.setSelected(tabs.contains("xg")); - gaming.setOnAction(e -> toggleTab("xg", gaming.isSelected())); + gaming.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "xg", gaming.isSelected())); checkboxGrid.add(gaming, 0, 2); CheckBox feat = new CheckBox("Featured"); feat.setSelected(tabs.contains("ft")); - feat.setOnAction(e -> toggleTab("ft", feat.isSelected())); + feat.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "ft", feat.isSelected())); checkboxGrid.add(feat, 1, 2); CheckBox top = new CheckBox("Top Rated"); top.setSelected(tabs.contains("ar")); - top.setOnAction(e -> toggleTab("ar", top.isSelected())); + top.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "ar", top.isSelected())); checkboxGrid.add(top, 2, 2); CheckBox trend = new CheckBox("Trending"); trend.setSelected(tabs.contains("at")); - trend.setOnAction(e -> toggleTab("at", trend.isSelected())); + trend.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "at", trend.isSelected())); checkboxGrid.add(trend, 3, 2); CheckBox asiaOther = new CheckBox("Asia/Oth"); asiaOther.setSelected(tabs.contains("AS,O")); - asiaOther.setOnAction(e -> toggleTab("AS,O", asiaOther.isSelected())); + asiaOther.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "AS,O", asiaOther.isSelected())); checkboxGrid.add(asiaOther, 0, 3); CheckBox euRu = new CheckBox("Eu/Ru"); euRu.setSelected(tabs.contains("ER")); - euRu.setOnAction(e -> toggleTab("ER", euRu.isSelected())); + euRu.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "ER", euRu.isSelected())); checkboxGrid.add(euRu, 1, 3); CheckBox nthAm = new CheckBox("Nth Am"); nthAm.setSelected(tabs.contains("NA")); - nthAm.setOnAction(e -> toggleTab("NA", nthAm.isSelected())); + nthAm.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "NA", nthAm.isSelected())); checkboxGrid.add(nthAm, 2, 3); CheckBox sthAm = new CheckBox("Sth Am"); sthAm.setSelected(tabs.contains("SA")); - sthAm.setOnAction(e -> toggleTab("SA", sthAm.isSelected())); + sthAm.setOnAction(e -> TabUtils.toggleTab(Sites.CHATURBATE, "SA", sthAm.isSelected())); checkboxGrid.add(sthAm, 3, 3); layout.add(checkboxGrid, 1, row, 4, 4); @@ -215,19 +216,4 @@ public class ChaturbateConfigUi extends AbstractConfigUI { return layout; } - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.chaturbateTabs.contains(tab)) { - settings.chaturbateTabs.add(tab); - } - } else { - settings.chaturbateTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().chaturbateTabs); - } } 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 52c75c8f..717a04cd 100644 --- a/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/chaturbate/ChaturbateTabProvider.java @@ -1,7 +1,8 @@ package ctbrec.ui.sites.chaturbate; -import ctbrec.Config; import ctbrec.sites.chaturbate.Chaturbate; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.PaginatedScheduledService; import ctbrec.ui.tabs.ThumbOverviewTab; @@ -36,13 +37,14 @@ public class ChaturbateTabProvider extends AbstractTabProvider { tabMap.put("nm", "New Male"); tabMap.put("c", "Couples"); tabMap.put("t", "Trans"); + tabMap.put("ft", "Featured"); tabMap.put("xp", "Private"); tabMap.put("xh", "Hidden"); tabMap.put("xg", "Gaming"); tabMap.put("ar", "Top Rated"); tabMap.put("at", "Trending"); - for (String tab : getEnabledTabs()) { + for (String tab : TabUtils.getEnabledTabs(Sites.CHATURBATE)) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { case "ft": @@ -52,7 +54,6 @@ public class ChaturbateTabProvider extends AbstractTabProvider { case "m": case "c": case "t": - // String title = tabMap.getOrDefault(tab, tab); tabs.add(createTab(title, apiUrl + "/roomlist/room-list/?enable_recommendations=false&genders=" + tab)); break; case "nf": @@ -137,8 +138,4 @@ public class ChaturbateTabProvider extends AbstractTabProvider { var updateService = new ChaturbateApiUpdateService(apiUrl, (Chaturbate) site); return createTab(title, updateService); } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().chaturbateTabs); - } } 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 b8799392..e2092c2f 100644 --- a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamConfigUI.java @@ -1,18 +1,17 @@ package ctbrec.ui.sites.dreamcam; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.dreamcam.Dreamcam; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; -// import javafx.scene.control.ToggleGroup; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; -// import javafx.scene.control.RadioButton; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; @@ -59,29 +58,29 @@ public class DreamcamConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.DREAMCAM); HBox checkboxContainer = new HBox(10); CheckBox female = new CheckBox("Girls"); female.setSelected(tabs.contains("girls")); - female.setOnAction(e -> toggleTab("girls", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.DREAMCAM, "girls", female.isSelected())); HBox.setMargin(female, new Insets(0, 0, 0, 7)); checkboxContainer.getChildren().add(female); - CheckBox male = new CheckBox("Boys"); + CheckBox male = new CheckBox("Men"); male.setSelected(tabs.contains("men")); - male.setOnAction(e -> toggleTab("men", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.DREAMCAM, "men", male.isSelected())); checkboxContainer.getChildren().add(male); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("couples")); - couples.setOnAction(e -> toggleTab("couples", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.DREAMCAM, "couples", couples.isSelected())); checkboxContainer.getChildren().add(couples); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("trans")); - trans.setOnAction(e -> toggleTab("trans", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.DREAMCAM, "trans", trans.isSelected())); checkboxContainer.getChildren().add(trans); layout.add(checkboxContainer, 1, row, 4, 1); @@ -95,21 +94,4 @@ public class DreamcamConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.dreamcamTabs.contains(tab)) { - settings.dreamcamTabs.add(tab); - } - } else { - settings.dreamcamTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().dreamcamTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java index 0a79d606..6fc47764 100644 --- a/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/dreamcam/DreamcamTabProvider.java @@ -1,15 +1,14 @@ package ctbrec.ui.sites.dreamcam; -import ctbrec.Config; import ctbrec.sites.dreamcam.Dreamcam; -// import ctbrec.sites.dreamcam.DreamcamModel; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -// import java.util.Objects; import javafx.scene.Scene; import javafx.scene.control.Tab; @@ -27,10 +26,10 @@ public class DreamcamTabProvider extends AbstractTabProvider { Map tabMap = new HashMap<>(); tabMap.put("girls", "Girls"); - tabMap.put("men", "Boys"); + tabMap.put("men", "Men"); tabMap.put("couples", "Couples"); tabMap.put("trans", "Trans"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.DREAMCAM); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); tabs.add(createTab(title, API_URL + "&tag-categories=" + tab)); @@ -46,9 +45,4 @@ public class DreamcamTabProvider extends AbstractTabProvider { tab.setRecorder(recorder); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().dreamcamTabs); - } - } 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 9913a698..8fd76b6a 100644 --- a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeConfigUI.java @@ -1,12 +1,13 @@ package ctbrec.ui.sites.flirt4free; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.flirt4free.Flirt4Free; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; @@ -77,7 +78,7 @@ public class Flirt4FreeConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.FLIRT4FREE); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -86,27 +87,27 @@ public class Flirt4FreeConfigUI extends AbstractConfigUI { CheckBox female = new CheckBox("Female"); female.setSelected(tabs.contains("female")); - female.setOnAction(e -> toggleTab("female", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.FLIRT4FREE, "female", female.isSelected())); checkboxGrid.add(female, 0, 0); CheckBox newModels = new CheckBox("Girls New"); newModels.setSelected(tabs.contains("hd")); - newModels.setOnAction(e -> toggleTab("hd", newModels.isSelected())); + newModels.setOnAction(e -> TabUtils.toggleTab(Sites.FLIRT4FREE, "hd", newModels.isSelected())); checkboxGrid.add(newModels, 1, 0); CheckBox male = new CheckBox("Male"); male.setSelected(tabs.contains("male")); - male.setOnAction(e -> toggleTab("male", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.FLIRT4FREE, "male", male.isSelected())); checkboxGrid.add(male, 2, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("couples")); - couples.setOnAction(e -> toggleTab("couples", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.FLIRT4FREE, "couples", couples.isSelected())); checkboxGrid.add(couples, 0, 1); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("trans")); - trans.setOnAction(e -> toggleTab("trans", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.FLIRT4FREE, "trans", trans.isSelected())); checkboxGrid.add(trans, 1, 1); layout.add(checkboxGrid, 1, row, 3, 2); @@ -128,21 +129,4 @@ public class Flirt4FreeConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.flirt4freeTabs.contains(tab)) { - settings.flirt4freeTabs.add(tab); - } - } else { - settings.flirt4freeTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().flirt4freeTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java index 3b378720..1fbdbad6 100644 --- a/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/flirt4free/Flirt4FreeTabProvider.java @@ -1,8 +1,9 @@ package ctbrec.ui.sites.flirt4free; -import ctbrec.Config; import ctbrec.sites.flirt4free.Flirt4Free; import ctbrec.sites.flirt4free.Flirt4FreeModel; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; @@ -32,10 +33,10 @@ public class Flirt4FreeTabProvider extends AbstractTabProvider { Map tabMap = new HashMap<>(); tabMap.put("female", "Girls"); tabMap.put("new", "New Girls"); - tabMap.put("male", "Male"); + tabMap.put("male", "Guys"); tabMap.put("couples", "Couples"); tabMap.put("trans", "Trans"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.FLIRT4FREE); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -74,9 +75,4 @@ public class Flirt4FreeTabProvider extends AbstractTabProvider { s.setPeriod(Duration.seconds(60)); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().flirt4freeTabs); - } - } 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 5e526e60..9679ae99 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupConfigUI.java @@ -1,12 +1,13 @@ package ctbrec.ui.sites.showup; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.showup.Showup; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; @@ -78,24 +79,24 @@ public class ShowupConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.SHOWUP); HBox checkboxContainer = new HBox(10); CheckBox female = new CheckBox("Female"); female.setSelected(tabs.contains("female")); - female.setOnAction(e -> toggleTab("female", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.SHOWUP, "female", female.isSelected())); HBox.setMargin(female, new Insets(0, 0, 0, 8)); checkboxContainer.getChildren().add(female); CheckBox male = new CheckBox("Male"); - male.setSelected(tabs.contains("m")); - male.setOnAction(e -> toggleTab("m", male.isSelected())); + male.setSelected(tabs.contains("male")); + male.setOnAction(e -> TabUtils.toggleTab(Sites.SHOWUP, "male", male.isSelected())); checkboxContainer.getChildren().add(male); CheckBox all = new CheckBox("All"); all.setSelected(tabs.contains("all")); - all.setOnAction(e -> toggleTab("all", all.isSelected())); + all.setOnAction(e -> TabUtils.toggleTab(Sites.SHOWUP, "all", all.isSelected())); checkboxContainer.getChildren().add(all); layout.add(checkboxContainer, 1, row, 3, 1); @@ -117,21 +118,4 @@ public class ShowupConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.showupTabs.contains(tab)) { - settings.showupTabs.add(tab); - } - } else { - settings.showupTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().showupTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java b/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java index 5dc21f0b..4ff94a4e 100644 --- a/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/showup/ShowupTabProvider.java @@ -1,7 +1,8 @@ package ctbrec.ui.sites.showup; -import ctbrec.Config; import ctbrec.sites.showup.Showup; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; @@ -11,7 +12,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -// import java.util.Objects; public class ShowupTabProvider extends AbstractTabProvider { @@ -27,7 +27,7 @@ public class ShowupTabProvider extends AbstractTabProvider { tabMap.put("female", "Women"); tabMap.put("male", "Men"); tabMap.put("all", "All"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.SHOWUP); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); tabs.add(createTab(title, tab)); @@ -50,8 +50,4 @@ public class ShowupTabProvider extends AbstractTabProvider { tab.setRecorder(site.getRecorder()); return tab; } - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().showupTabs); - } - } 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 8c0187e8..f70991d7 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateConfigUI.java @@ -1,12 +1,13 @@ package ctbrec.ui.sites.streamate; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.streamate.Streamate; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; @@ -16,7 +17,6 @@ import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; -// import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; public class StreamateConfigUI extends AbstractConfigUI { @@ -78,7 +78,7 @@ public class StreamateConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.STREAMATE); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -87,32 +87,32 @@ public class StreamateConfigUI extends AbstractConfigUI { CheckBox female = new CheckBox("Girls"); female.setSelected(tabs.contains("f,ff")); - female.setOnAction(e -> toggleTab("f,ff", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMATE, "f,ff", female.isSelected())); checkboxGrid.add(female, 0, 0); CheckBox male = new CheckBox("Guys"); male.setSelected(tabs.contains("m")); - male.setOnAction(e -> toggleTab("m", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMATE, "m", male.isSelected())); checkboxGrid.add(male, 1, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("mf,mm")); - couples.setOnAction(e -> toggleTab("mf,mm", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMATE, "mf,mm", couples.isSelected())); checkboxGrid.add(couples, 2, 0); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("tm2f,tf2m")); - trans.setOnAction(e -> toggleTab("tm2f,tf2m", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMATE, "tm2f,tf2m", trans.isSelected())); checkboxGrid.add(trans, 0, 1); CheckBox newGirls = new CheckBox("Girls New"); newGirls.setSelected(tabs.contains("fn")); - newGirls.setOnAction(e -> toggleTab("fn", newGirls.isSelected())); + newGirls.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMATE, "fn", newGirls.isSelected())); checkboxGrid.add(newGirls, 1, 1); CheckBox newModels = new CheckBox("New"); newModels.setSelected(tabs.contains("new")); - newModels.setOnAction(e -> toggleTab("new", newModels.isSelected())); + newModels.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMATE, "new", newModels.isSelected())); checkboxGrid.add(newModels, 2, 1); layout.add(checkboxGrid, 1, row, 3, 2); @@ -134,21 +134,4 @@ public class StreamateConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.streamateTabs.contains(tab)) { - settings.streamateTabs.add(tab); - } - } else { - settings.streamateTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().streamateTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java index 8af9bcda..51f0b17e 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/streamate/StreamateTabProvider.java @@ -1,7 +1,8 @@ package ctbrec.ui.sites.streamate; -import ctbrec.Config; import ctbrec.sites.streamate.Streamate; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; @@ -31,7 +32,7 @@ public class StreamateTabProvider extends AbstractTabProvider { tabMap.put("tm2f,tf2m", "Trans"); tabMap.put("fn", "Girls New"); tabMap.put("new", "New"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.STREAMATE); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -70,9 +71,4 @@ public class StreamateTabProvider extends AbstractTabProvider { tab.setRecorder(recorder); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().streamateTabs); - } - } 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 898a43c1..1e89dcb9 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayConfigUI.java @@ -1,21 +1,19 @@ package ctbrec.ui.sites.streamray; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.streamray.Streamray; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; -// import javafx.scene.control.ToggleGroup; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; -// import javafx.scene.control.RadioButton; import javafx.scene.control.Label; import javafx.scene.layout.GridPane; -// import javafx.scene.layout.HBox; import javafx.scene.layout.HBox; public class StreamrayConfigUI extends AbstractConfigUI { @@ -61,24 +59,24 @@ public class StreamrayConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.STREAMRAY); HBox checkboxContainer = new HBox(10); CheckBox female = new CheckBox("Female"); female.setSelected(tabs.contains("F")); - female.setOnAction(e -> toggleTab("F", female.isSelected())); + female.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMRAY, "F", female.isSelected())); HBox.setMargin(female, new Insets(0, 0, 0, 7)); checkboxContainer.getChildren().add(female); CheckBox male = new CheckBox("Male"); male.setSelected(tabs.contains("M")); - male.setOnAction(e -> toggleTab("M", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMRAY, "M", male.isSelected())); checkboxContainer.getChildren().add(male); CheckBox all = new CheckBox("Trans"); all.setSelected(tabs.contains("TS")); - all.setOnAction(e -> toggleTab("TS", all.isSelected())); + all.setOnAction(e -> TabUtils.toggleTab(Sites.STREAMRAY, "TS", all.isSelected())); checkboxContainer.getChildren().add(all); layout.add(checkboxContainer, 1, row, 4, 1); @@ -92,21 +90,4 @@ public class StreamrayConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.streamrayTabs.contains(tab)) { - settings.streamrayTabs.add(tab); - } - } else { - settings.streamrayTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java index d195762f..de99d900 100644 --- a/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/streamray/StreamrayTabProvider.java @@ -1,8 +1,9 @@ package ctbrec.ui.sites.streamray; -import ctbrec.Config; import ctbrec.sites.streamray.Streamray; import ctbrec.sites.streamray.StreamrayModel; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; @@ -32,7 +33,7 @@ public class StreamrayTabProvider extends AbstractTabProvider { tabMap.put("F", "Female"); tabMap.put("M", "Male"); tabMap.put("TS", "Trans"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.STREAMRAY); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); tabs.add(createTab(title, m -> Objects.equals(tab, m.getGender()))); @@ -63,8 +64,4 @@ public class StreamrayTabProvider extends AbstractTabProvider { public Tab getFollowedTab() { return followedTab; } - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().streamrayTabs); - } - } 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 b3e47d8b..44018ee7 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatConfigUI.java @@ -1,12 +1,13 @@ package ctbrec.ui.sites.stripchat; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.stripchat.Stripchat; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; @@ -119,7 +120,7 @@ public class StripchatConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.STRIPCHAT); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -128,23 +129,23 @@ public class StripchatConfigUI extends AbstractConfigUI { CheckBox girls = new CheckBox("Girls"); girls.setSelected(tabs.contains("girls")); - girls.setOnAction(e -> toggleTab("girls", girls.isSelected())); + girls.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "girls", girls.isSelected())); checkboxGrid.add(girls, 0, 0); CheckBox girlsNew = new CheckBox("Girls New"); girlsNew.setSelected(tabs.contains("autoTagNew")); - girlsNew.setOnAction(e -> toggleTab("autoTagNew", girlsNew.isSelected())); + girlsNew.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagNew", girlsNew.isSelected())); checkboxGrid.add(girlsNew, 1, 0); CheckBox girlsHD = new CheckBox("Girls HD"); girlsHD.setSelected(tabs.contains("autoTagHd")); - girlsHD.setOnAction(e -> toggleTab("autoTagHd", girlsHD.isSelected())); + girlsHD.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagHd", girlsHD.isSelected())); checkboxGrid.add(girlsHD, 2, 0); CheckBox girlsVR = new CheckBox("Girls VR"); girlsVR.setSelected(tabs.contains("autoTagVr")); girlsVR.setOnAction(e -> { - toggleTab("autoTagVr", girlsVR.isSelected()); + TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagVr", girlsVR.isSelected()); settings.stripchatVR = girlsVR.isSelected(); vr.setSelected(girlsVR.isSelected()); save(); @@ -153,27 +154,27 @@ public class StripchatConfigUI extends AbstractConfigUI { CheckBox mobile = new CheckBox("Mobile"); mobile.setSelected(tabs.contains("mobile")); - mobile.setOnAction(e -> toggleTab("mobile", mobile.isSelected())); + mobile.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "mobile", mobile.isSelected())); checkboxGrid.add(mobile, 4, 0); CheckBox pvt = new CheckBox("Private"); pvt.setSelected(tabs.contains("autoTagSpy")); - pvt.setOnAction(e -> toggleTab("autoTagSpy", pvt.isSelected())); + pvt.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "autoTagSpy", pvt.isSelected())); checkboxGrid.add(pvt, 0, 1); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("couples")); - couples.setOnAction(e -> toggleTab("couples", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "couples", couples.isSelected())); checkboxGrid.add(couples, 1, 1); CheckBox boys = new CheckBox("Boys"); boys.setSelected(tabs.contains("men")); - boys.setOnAction(e -> toggleTab("men", boys.isSelected())); + boys.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "men", boys.isSelected())); checkboxGrid.add(boys, 2, 1); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("trans")); - trans.setOnAction(e -> toggleTab("trans", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.STRIPCHAT, "trans", trans.isSelected())); checkboxGrid.add(trans, 3, 1); layout.add(checkboxGrid, 1, row, 5, 2); @@ -207,21 +208,4 @@ public class StripchatConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.stripchatTabs.contains(tab)) { - settings.stripchatTabs.add(tab); - } - } else { - settings.stripchatTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().stripchatTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java index 6e86a366..768b6af1 100644 --- a/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/stripchat/StripchatTabProvider.java @@ -1,7 +1,8 @@ package ctbrec.ui.sites.stripchat; -import ctbrec.Config; import ctbrec.sites.stripchat.Stripchat; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; @@ -12,7 +13,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -// import java.util.Objects; public class StripchatTabProvider extends AbstractTabProvider { @@ -41,7 +41,7 @@ public class StripchatTabProvider extends AbstractTabProvider { tabMap.put("couples", "Couples"); tabMap.put("men", "Boys"); tabMap.put("trans", "Trans"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.STRIPCHAT); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); if (tab.contains("auto") || (tab.contains("mobile"))) { @@ -72,9 +72,4 @@ public class StripchatTabProvider extends AbstractTabProvider { tab.setImageAspectRatio(9.0 / 16.0); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().stripchatTabs); - } - } 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 b96fe3f0..f04a039f 100644 --- a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamConfigUI.java @@ -1,12 +1,13 @@ package ctbrec.ui.sites.xlovecam; -import java.util.ArrayList; import java.util.List; import ctbrec.Config; import ctbrec.sites.xlovecam.XloveCam; import ctbrec.ui.DesktopIntegration; import ctbrec.ui.settings.SettingsTab; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractConfigUI; import javafx.geometry.Insets; import javafx.scene.Parent; @@ -77,7 +78,7 @@ public class XloveCamConfigUI extends AbstractConfigUI { Label tabsLabel = new Label("Tabs"); layout.add(tabsLabel, 0, row); - List tabs = getEnabledTabs(); + List tabs = TabUtils.getEnabledTabs(Sites.XLOVECAM); GridPane checkboxGrid = new GridPane(); checkboxGrid.setHgap(10); @@ -86,42 +87,42 @@ public class XloveCamConfigUI extends AbstractConfigUI { CheckBox girls = new CheckBox("Young Women"); girls.setSelected(tabs.contains("1")); - girls.setOnAction(e -> toggleTab("1", girls.isSelected())); + girls.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "1", girls.isSelected())); checkboxGrid.add(girls, 0, 0); CheckBox ladies = new CheckBox("Ladies"); ladies.setSelected(tabs.contains("13")); - ladies.setOnAction(e -> toggleTab("13", ladies.isSelected())); + ladies.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "13", ladies.isSelected())); checkboxGrid.add(ladies, 1, 0); CheckBox mature = new CheckBox("Mature Female"); mature.setSelected(tabs.contains("6")); - mature.setOnAction(e -> toggleTab("6", mature.isSelected())); + mature.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "6", mature.isSelected())); checkboxGrid.add(mature, 2, 0); CheckBox couples = new CheckBox("Couples"); couples.setSelected(tabs.contains("2")); - couples.setOnAction(e -> toggleTab("2", couples.isSelected())); + couples.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "2", couples.isSelected())); checkboxGrid.add(couples, 3, 0); CheckBox lesbian = new CheckBox("Lesbian"); lesbian.setSelected(tabs.contains("3")); - lesbian.setOnAction(e -> toggleTab("3", lesbian.isSelected())); + lesbian.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "3", lesbian.isSelected())); checkboxGrid.add(lesbian, 0, 1); CheckBox male = new CheckBox("Male"); male.setSelected(tabs.contains("7")); - male.setOnAction(e -> toggleTab("7", male.isSelected())); + male.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "7", male.isSelected())); checkboxGrid.add(male, 1, 1); CheckBox trans = new CheckBox("Trans"); trans.setSelected(tabs.contains("5")); - trans.setOnAction(e -> toggleTab("5", trans.isSelected())); + trans.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "5", trans.isSelected())); checkboxGrid.add(trans, 2, 1); CheckBox all = new CheckBox("All"); all.setSelected(tabs.contains("all")); - all.setOnAction(e -> toggleTab("all", all.isSelected())); + all.setOnAction(e -> TabUtils.toggleTab(Sites.XLOVECAM, "all", all.isSelected())); checkboxGrid.add(all, 3, 1); layout.add(checkboxGrid, 1, row, 4, 2); @@ -143,21 +144,4 @@ public class XloveCamConfigUI extends AbstractConfigUI { GridPane.setMargin(deleteCookies, new Insets(0, 0, 0, SettingsTab.CHECKBOX_MARGIN)); return layout; } - - private void toggleTab(String tab, boolean selected) { - var settings = Config.getInstance().getSettings(); - if (selected) { - if (!settings.xlovecamTabs.contains(tab)) { - settings.xlovecamTabs.add(tab); - } - } else { - settings.xlovecamTabs.remove(tab); - } - save(); - } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs); - } - } diff --git a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java index 3bf637ca..87dc3a4e 100644 --- a/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java @@ -1,7 +1,8 @@ package ctbrec.ui.sites.xlovecam; -import ctbrec.Config; import ctbrec.sites.xlovecam.XloveCam; +import ctbrec.ui.settings.Sites; +import ctbrec.ui.settings.TabUtils; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.PaginatedScheduledService; import ctbrec.ui.tabs.ThumbOverviewTab; @@ -13,7 +14,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -// import java.util.Objects; public class XloveCamTabProvider extends AbstractTabProvider { @@ -31,11 +31,7 @@ public class XloveCamTabProvider extends AbstractTabProvider { protected List getSiteTabs(Scene scene) { List tabs = new ArrayList<>(); - // all - // var updateService = new XloveCamUpdateService(xloveCam, Collections.emptyMap()); - // tabs.add(createTab("All", updateService)); - - // new + // New ... it's here so as to declare updateService before use var updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM_NEW, "3")); tabs.add(createTab("New", updateService)); @@ -48,7 +44,7 @@ public class XloveCamTabProvider extends AbstractTabProvider { tabMap.put("7", "Male"); tabMap.put("5", "Trans"); tabMap.put("all", "All"); - List enabledTabs = getEnabledTabs(); + List enabledTabs = TabUtils.getEnabledTabs(Sites.XLOVECAM); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { @@ -70,9 +66,4 @@ public class XloveCamTabProvider extends AbstractTabProvider { tab.setRecorder(recorder); return tab; } - - private List getEnabledTabs() { - return new ArrayList<>(Config.getInstance().getSettings().xlovecamTabs); - } - }