package ctbrec.ui.sites.xlovecam; 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; import javafx.scene.Scene; import javafx.scene.control.Tab; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class XloveCamTabProvider extends AbstractTabProvider { private final XloveCam xloveCam; private static final String FILTER_PARAM = "config[filter][10][]"; private static final String FILTER_PARAM_NEW = "config[filter][100522][]"; public XloveCamTabProvider(XloveCam xloveCam) { super(xloveCam); this.xloveCam = xloveCam; } @Override protected List getSiteTabs(Scene scene) { List tabs = new ArrayList<>(); // 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)); Map tabMap = new HashMap<>(); tabMap.put("1", "Young Women"); tabMap.put("13", "Ladies"); tabMap.put("6", "Mature Female"); tabMap.put("2", "Couples"); tabMap.put("3", "Lesbian"); tabMap.put("7", "Male"); tabMap.put("5", "Trans"); tabMap.put("all", "All"); List enabledTabs = TabUtils.getEnabledTabs(Sites.XLOVECAM); for (String tab : enabledTabs) { String title = tabMap.getOrDefault(tab, tab); switch (tab) { case "all": updateService = new XloveCamUpdateService(xloveCam, Collections.emptyMap()); break; default: updateService = new XloveCamUpdateService(xloveCam, Map.of(FILTER_PARAM, tab)); break; } tabs.add(createTab(title, updateService)); } return tabs; } private Tab createTab(String title, PaginatedScheduledService updateService) { var tab = new ThumbOverviewTab(title, updateService, xloveCam); tab.setRecorder(recorder); return tab; } }