From 0085ce7ab81f910c5c9138ab5a0d22ac2b602a0d Mon Sep 17 00:00:00 2001 From: 0xboobface <0xboobface@gmail.com> Date: Wed, 24 Oct 2018 20:02:00 +0200 Subject: [PATCH] Add marker interface to mark tabs, which contain followed models --- .../ctbrec/sites/chaturbate/ChaturbateFollowedTab.java | 3 ++- src/main/java/ctbrec/sites/mfc/MyFreeCamsFriendsTab.java | 3 ++- src/main/java/ctbrec/ui/FollowedTab.java | 8 ++++++++ src/main/java/ctbrec/ui/ThumbOverviewTab.java | 7 +++---- 4 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 src/main/java/ctbrec/ui/FollowedTab.java diff --git a/src/main/java/ctbrec/sites/chaturbate/ChaturbateFollowedTab.java b/src/main/java/ctbrec/sites/chaturbate/ChaturbateFollowedTab.java index d5593c6d..16e5220a 100644 --- a/src/main/java/ctbrec/sites/chaturbate/ChaturbateFollowedTab.java +++ b/src/main/java/ctbrec/sites/chaturbate/ChaturbateFollowedTab.java @@ -1,5 +1,6 @@ package ctbrec.sites.chaturbate; +import ctbrec.ui.FollowedTab; import ctbrec.ui.ThumbOverviewTab; import javafx.concurrent.WorkerStateEvent; import javafx.geometry.Insets; @@ -11,7 +12,7 @@ import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.HBox; -public class ChaturbateFollowedTab extends ThumbOverviewTab { +public class ChaturbateFollowedTab extends ThumbOverviewTab implements FollowedTab { private Label status; private String onlineUrl; private String offlineUrl; diff --git a/src/main/java/ctbrec/sites/mfc/MyFreeCamsFriendsTab.java b/src/main/java/ctbrec/sites/mfc/MyFreeCamsFriendsTab.java index 5a9829d8..eb1f7e31 100644 --- a/src/main/java/ctbrec/sites/mfc/MyFreeCamsFriendsTab.java +++ b/src/main/java/ctbrec/sites/mfc/MyFreeCamsFriendsTab.java @@ -3,6 +3,7 @@ import static ctbrec.sites.mfc.FriendsUpdateService.Mode.*; import java.util.concurrent.TimeUnit; +import ctbrec.ui.FollowedTab; import ctbrec.ui.ThumbOverviewTab; import javafx.geometry.Insets; import javafx.scene.Scene; @@ -13,7 +14,7 @@ import javafx.scene.input.KeyEvent; import javafx.scene.layout.HBox; import javafx.util.Duration; -public class MyFreeCamsFriendsTab extends ThumbOverviewTab { +public class MyFreeCamsFriendsTab extends ThumbOverviewTab implements FollowedTab { public MyFreeCamsFriendsTab(MyFreeCams mfc) { super("Friends", new FriendsUpdateService(mfc), mfc); updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(10))); diff --git a/src/main/java/ctbrec/ui/FollowedTab.java b/src/main/java/ctbrec/ui/FollowedTab.java new file mode 100644 index 00000000..d04fbe01 --- /dev/null +++ b/src/main/java/ctbrec/ui/FollowedTab.java @@ -0,0 +1,8 @@ +package ctbrec.ui; + +/** + * Marker interface to mark tabs, which contain followed models + */ +public interface FollowedTab { + +} diff --git a/src/main/java/ctbrec/ui/ThumbOverviewTab.java b/src/main/java/ctbrec/ui/ThumbOverviewTab.java index 0e28a9b3..f2a6fd7f 100644 --- a/src/main/java/ctbrec/ui/ThumbOverviewTab.java +++ b/src/main/java/ctbrec/ui/ThumbOverviewTab.java @@ -21,6 +21,7 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; +import org.eclipse.jetty.util.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,7 +31,6 @@ import ctbrec.Config; import ctbrec.Model; import ctbrec.recorder.Recorder; import ctbrec.sites.Site; -import ctbrec.sites.chaturbate.ChaturbateFollowedTab; import ctbrec.sites.mfc.MyFreeCamsClient; import ctbrec.sites.mfc.MyFreeCamsModel; import javafx.collections.ObservableList; @@ -391,10 +391,9 @@ public class ThumbOverviewTab extends Tab implements TabSelectionListener { contextMenu.setAutoHide(true); contextMenu.setHideOnEscape(true); contextMenu.setAutoFix(true); - // TODO get rid of direct reference to Chaturbate - MenuItem followOrUnFollow = this instanceof ChaturbateFollowedTab ? unfollow : follow; contextMenu.getItems().addAll(openInPlayer, startStop); - if(site.supportsFollow()) { + if(site.supportsFollow() && StringUtil.isNotBlank(Config.getInstance().getSettings().username)) { + MenuItem followOrUnFollow = (this instanceof FollowedTab) ? unfollow : follow; contextMenu.getItems().add(followOrUnFollow); } if(site.supportsTips()) {