ctbrec-5.3.2-experimental/client/src/main/java/ctbrec/ui/settings/TabUtils.java

59 lines
1.8 KiB
Java

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<String> siteTabs = getTabsForSite(settings, site);
if (selected) {
if (!siteTabs.contains(tab)) {
siteTabs.add(tab);
}
} else {
siteTabs.remove(tab);
}
save();
}
public static List<String> 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<String> 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);
}
}
}