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); } } }