59 lines
1.8 KiB
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);
|
|
}
|
|
}
|
|
}
|