diff --git a/app/src/main/java/org/schabi/newpipe/QueueItemMenuUtil.java b/app/src/main/java/org/schabi/newpipe/QueueItemMenuUtil.java
index 9105ff99288..0201064b443 100644
--- a/app/src/main/java/org/schabi/newpipe/QueueItemMenuUtil.java
+++ b/app/src/main/java/org/schabi/newpipe/QueueItemMenuUtil.java
@@ -18,6 +18,9 @@
import java.util.Collections;
public final class QueueItemMenuUtil {
+ private QueueItemMenuUtil() {
+ }
+
public static void openPopupMenu(final PlayQueue playQueue,
final PlayQueueItem item,
final View view,
@@ -55,6 +58,13 @@ public static void openPopupMenu(final PlayQueue playQueue,
() -> PlaylistCreationDialog.newInstance(d)
.show(fragmentManager, "QueueItemMenuUtil@append_playlist"));
return true;
+ case R.id.menu_item_channel_details:
+ // An intent must be used here.
+ // Opening with FragmentManager transactions is not working,
+ // as PlayQueueActivity doesn't use fragments.
+ NavigationHelper.openChannelFragmentUsingIntent(context, item.getServiceId(),
+ item.getUploaderUrl(), item.getUploader());
+ return true;
case R.id.menu_item_share:
shareText(context, item.getTitle(), item.getUrl(),
item.getThumbnailUrl());
@@ -65,6 +75,4 @@ public static void openPopupMenu(final PlayQueue playQueue,
popupMenu.show();
}
-
- private QueueItemMenuUtil() { }
}
diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java
index afa82667784..c70f6a9d0e8 100644
--- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java
@@ -491,6 +491,27 @@ public static void openVideoDetail(final Context context,
context.startActivity(intent);
}
+ /**
+ * Opens {@link ChannelFragment}.
+ * Use this instead of {@link #openChannelFragment(FragmentManager, int, String, String)}
+ * when no fragments are used / no FragmentManager is available.
+ * @param context
+ * @param serviceId
+ * @param url
+ * @param title
+ */
+ public static void openChannelFragmentUsingIntent(final Context context,
+ final int serviceId,
+ final String url,
+ @NonNull final String title) {
+ final Intent intent = getOpenIntent(context, url, serviceId,
+ StreamingService.LinkType.CHANNEL);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.putExtra(Constants.KEY_TITLE, title);
+
+ context.startActivity(intent);
+ }
+
public static void openMainActivity(final Context context) {
final Intent mIntent = new Intent(context, MainActivity.class);
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
diff --git a/app/src/main/res/menu/menu_play_queue_item.xml b/app/src/main/res/menu/menu_play_queue_item.xml
index ebb361be971..40c4849b454 100644
--- a/app/src/main/res/menu/menu_play_queue_item.xml
+++ b/app/src/main/res/menu/menu_play_queue_item.xml
@@ -10,6 +10,9 @@
+