From f58bbf8e743470e678e76421b50a5916ea6e4cd3 Mon Sep 17 00:00:00 2001 From: jafea7 Date: Thu, 10 Apr 2025 21:37:51 +1000 Subject: [PATCH] BC optional tabs --- .../ui/sites/bonga/BongaCamsConfigUI.java | 57 ++++++++++++++++ .../ui/sites/bonga/BongaCamsTabProvider.java | 66 +++++++++++-------- 2 files changed, 94 insertions(+), 29 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 9f51d380..1e7885e3 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsConfigUI.java @@ -14,6 +14,8 @@ 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; public class BongaCamsConfigUI extends AbstractConfigUI { private BongaCams bongaCams; @@ -85,6 +87,48 @@ public class BongaCamsConfigUI extends AbstractConfigUI { GridPane.setColumnSpan(baseUrl, 2); layout.add(baseUrl, 1, row++); + Label tabsLabel = new Label("Tabs"); + layout.add(tabsLabel, 0, row); + List tabs = getEnabledTabs(); + + GridPane checkboxGrid = new GridPane(); + checkboxGrid.setHgap(10); + checkboxGrid.setVgap(5); + checkboxGrid.setPadding(new Insets(0, 0, 0, 7)); + + CheckBox female = new CheckBox("Female"); + female.setSelected(tabs.contains("female")); + female.setOnAction(e -> toggleTab("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())); + checkboxGrid.add(male, 1, 0); + + CheckBox couples = new CheckBox("Couples"); + couples.setSelected(tabs.contains("couples")); + couples.setOnAction(e -> toggleTab("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())); + checkboxGrid.add(trans, 0, 1); + + CheckBox newModels = new CheckBox("New"); + newModels.setSelected(tabs.contains("new")); + newModels.setOnAction(e -> toggleTab("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())); + checkboxGrid.add(mobile, 2, 1); + + layout.add(checkboxGrid, 1, row, 3, 2); + row += 2; + var createAccount = new Button("Create new Account"); createAccount.setOnAction(e -> DesktopIntegration.open(bongaCams.getAffiliateLink())); layout.add(createAccount, 1, row++); @@ -103,4 +147,17 @@ public class BongaCamsConfigUI extends AbstractConfigUI { return layout; } + private void toggleTab(String tab, boolean selected) { + var settings = Config.getInstance().getSettings(); + if (selected) { + 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 7f14aee9..450cc44d 100644 --- a/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java +++ b/client/src/main/java/ctbrec/ui/sites/bonga/BongaCamsTabProvider.java @@ -1,5 +1,6 @@ package ctbrec.ui.sites.bonga; +import ctbrec.Config; import ctbrec.sites.bonga.BongaCams; import ctbrec.ui.sites.AbstractTabProvider; import ctbrec.ui.tabs.PaginatedScheduledService; @@ -8,10 +9,14 @@ import javafx.scene.Scene; import javafx.scene.control.Tab; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class BongaCamsTabProvider extends AbstractTabProvider { + private String url; + private PaginatedScheduledService updateService; private BongaCamsFriendsTab friendsTab; public BongaCamsTabProvider(BongaCams bongaCams) { @@ -22,35 +27,34 @@ public class BongaCamsTabProvider extends AbstractTabProvider { protected List getSiteTabs(Scene scene) { List tabs = new ArrayList<>(); - // female - String url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=female&online_only=true&is_mobile=true&limit=72&offset="; - var updateService = new BongaCamsUpdateService((BongaCams) site, url); - tabs.add(createTab("Female", updateService)); - - // male - url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=male&online_only=true&is_mobile=true&limit=72&offset="; - updateService = new BongaCamsUpdateService((BongaCams) site, url); - tabs.add(createTab("Male", updateService)); - - // couples - url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=couples&online_only=true&is_mobile=true&limit=72&offset="; - updateService = new BongaCamsUpdateService((BongaCams) site, url); - tabs.add(createTab("Couples", updateService)); - - // trans - url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=transsexual&online_only=true&is_mobile=true&limit=72&offset="; - updateService = new BongaCamsUpdateService((BongaCams) site, url); - tabs.add(createTab("Transsexual", updateService)); - - // mobile - url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=all&online_only=true&tag=mobile-live&limit=72&offset="; - updateService = new BongaCamsUpdateService((BongaCams) site, url); - tabs.add(createTab("Mobile", updateService)); - - // new - url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=new&online_only=true&is_mobile=true&limit=72&offset="; - updateService = new BongaCamsUpdateService((BongaCams) site, url); - tabs.add(createTab("New", updateService)); + Map tabMap = new HashMap<>(); + tabMap.put("mobile", "Mobile"); + tabMap.put("new", "New"); + tabMap.put("female", "Female"); + tabMap.put("male", "Male"); + tabMap.put("couple", "Couple"); + tabMap.put("trans", "Trans"); + List enabledTabs = getEnabledTabs(); + for (String tab : enabledTabs) { + switch (tab) { + case "female": + case "male": + case "couple": + case "trans": + url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=" + tab + "&online_only=true&is_mobile=true&limit=72&offset="; + break; + case "new": + url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=new&online_only=true&is_mobile=true&limit=72&offset="; + break; + case "mobile": + url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=all&online_only=true&tag=mobile-live&limit=72&offset="; + break; + default: + } + updateService = new BongaCamsUpdateService((BongaCams) site, url); + String title = tabMap.getOrDefault(tab, tab); + tabs.add(createTab(title, updateService)); + } // friends url = site.getBaseUrl() + "/tools/listing_v3.php?livetab=friends&online_only=true&limit=72&offset="; @@ -73,4 +77,8 @@ public class BongaCamsTabProvider extends AbstractTabProvider { return tab; } + private List getEnabledTabs() { + return new ArrayList<>(Config.getInstance().getSettings().bongaTabs); + } + }