jafea7-ctbrec-v5.3.0-based/client/src/main/java/ctbrec/ui/sites/xlovecam/XloveCamTabProvider.java

70 lines
2.3 KiB
Java

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<Tab> getSiteTabs(Scene scene) {
List<Tab> 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<String, String> 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<String> 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;
}
}