package ctbrec.ui.sites.flirt4free; import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; import ctbrec.sites.flirt4free.Flirt4Free; import ctbrec.sites.flirt4free.Flirt4FreeModel; import ctbrec.ui.tabs.TabProvider; import ctbrec.ui.tabs.ThumbOverviewTab; import javafx.scene.Scene; import javafx.scene.control.Tab; import javafx.util.Duration; public class Flirt4FreeTabProvider implements TabProvider { private Flirt4Free flirt4Free; private ThumbOverviewTab followedTab; public Flirt4FreeTabProvider(Flirt4Free flirt4Free) { this.flirt4Free = flirt4Free; followedTab = new Flirt4FreeFavoritesTab(flirt4Free); followedTab.setRecorder(flirt4Free.getRecorder()); } @Override public List getTabs(Scene scene) { List tabs = new ArrayList<>(); tabs.add(createTab("Girls", flirt4Free.getBaseUrl() + "/live/girls/", m -> true)); tabs.add(createTab("New Girls", flirt4Free.getBaseUrl() + "/live/girls/", Flirt4FreeModel::isNew)); tabs.add(createTab("Boys", flirt4Free.getBaseUrl() + "/live/guys/", m -> true)); tabs.add(createTab("Trans", flirt4Free.getBaseUrl() + "/live/trans/", m -> true)); tabs.add(followedTab); return tabs; } @Override public Tab getFollowedTab() { return followedTab; } private ThumbOverviewTab createTab(String title, String url, Predicate filter) { var s = new Flirt4FreeUpdateService(flirt4Free, url, filter); var tab = new ThumbOverviewTab(title, s, flirt4Free); tab.setRecorder(flirt4Free.getRecorder()); s.setPeriod(Duration.seconds(60)); return tab; } }