Fix showing popup options with audio-only streams
This commit is contained in:
parent
bb5028364b
commit
8edc332a4e
|
@ -25,6 +25,7 @@ import org.schabi.newpipe.extractor.channel.ChannelInfoItem;
|
|||
import org.schabi.newpipe.extractor.comments.CommentsInfoItem;
|
||||
import org.schabi.newpipe.extractor.playlist.PlaylistInfoItem;
|
||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
|
||||
import org.schabi.newpipe.extractor.stream.StreamType;
|
||||
import org.schabi.newpipe.fragments.BaseStateFragment;
|
||||
import org.schabi.newpipe.fragments.OnScrollBelowItemsListener;
|
||||
import org.schabi.newpipe.info_list.InfoItemDialog;
|
||||
|
@ -263,7 +264,18 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I> implem
|
|||
final Activity activity = getActivity();
|
||||
if (context == null || context.getResources() == null || activity == null) return;
|
||||
|
||||
final String[] commands = new String[]{
|
||||
boolean isAudioStream = (item.getStreamType() == StreamType.AUDIO_STREAM);
|
||||
|
||||
final String[] commands;
|
||||
if (isAudioStream) {
|
||||
commands = new String[]{
|
||||
context.getResources().getString(R.string.enqueue_on_background),
|
||||
context.getResources().getString(R.string.start_here_on_background),
|
||||
context.getResources().getString(R.string.append_playlist),
|
||||
context.getResources().getString(R.string.share)
|
||||
};
|
||||
} else {
|
||||
commands = new String[]{
|
||||
context.getResources().getString(R.string.enqueue_on_background),
|
||||
context.getResources().getString(R.string.enqueue_on_popup),
|
||||
context.getResources().getString(R.string.start_here_on_background),
|
||||
|
@ -271,32 +283,30 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I> implem
|
|||
context.getResources().getString(R.string.append_playlist),
|
||||
context.getResources().getString(R.string.share)
|
||||
};
|
||||
}
|
||||
|
||||
final DialogInterface.OnClickListener actions = (dialogInterface, i) -> {
|
||||
switch (i) {
|
||||
case 0:
|
||||
if (i == 0) {
|
||||
NavigationHelper.enqueueOnBackgroundPlayer(context, new SinglePlayQueue(item), false);
|
||||
break;
|
||||
case 1:
|
||||
|
||||
} else if (i == (isAudioStream ? -1 : 1)) { // disabled with audio streams
|
||||
NavigationHelper.enqueueOnPopupPlayer(context, new SinglePlayQueue(item), false);
|
||||
break;
|
||||
case 2:
|
||||
|
||||
} else if (i == (isAudioStream ? 1 : 2)) {
|
||||
NavigationHelper.playOnBackgroundPlayer(context, new SinglePlayQueue(item), true);
|
||||
break;
|
||||
case 3:
|
||||
|
||||
} else if (i == (isAudioStream ? -1 : 3)) { // disabled with audio streams
|
||||
NavigationHelper.playOnPopupPlayer(context, new SinglePlayQueue(item), true);
|
||||
break;
|
||||
case 4:
|
||||
|
||||
} else if (i == (isAudioStream ? 2 : 4)) {
|
||||
if (getFragmentManager() != null) {
|
||||
PlaylistAppendDialog.fromStreamInfoItems(Collections.singletonList(item))
|
||||
.show(getFragmentManager(), TAG);
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
|
||||
} else if (i == (isAudioStream ? 3 : 5)) {
|
||||
ShareUtils.shareUrl(context, item.getName(), item.getUrl());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import org.schabi.newpipe.R;
|
|||
import org.schabi.newpipe.database.LocalItem;
|
||||
import org.schabi.newpipe.database.stream.StreamStatisticsEntry;
|
||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
|
||||
import org.schabi.newpipe.extractor.stream.StreamType;
|
||||
import org.schabi.newpipe.info_list.InfoItemDialog;
|
||||
import org.schabi.newpipe.local.BaseLocalListFragment;
|
||||
import org.schabi.newpipe.local.dialog.PlaylistAppendDialog;
|
||||
|
@ -362,9 +363,21 @@ public class StatisticsPlaylistFragment
|
|||
final Context context = getContext();
|
||||
final Activity activity = getActivity();
|
||||
if (context == null || context.getResources() == null || activity == null) return;
|
||||
final StreamInfoItem infoItem = item.toStreamInfoItem();
|
||||
|
||||
final String[] commands = new String[]{
|
||||
final StreamInfoItem infoItem = item.toStreamInfoItem();
|
||||
boolean isAudioStream = (infoItem.getStreamType() == StreamType.AUDIO_STREAM);
|
||||
|
||||
final String[] commands;
|
||||
if (isAudioStream) {
|
||||
commands = new String[]{
|
||||
context.getResources().getString(R.string.enqueue_on_background),
|
||||
context.getResources().getString(R.string.start_here_on_background),
|
||||
context.getResources().getString(R.string.delete),
|
||||
context.getResources().getString(R.string.append_playlist),
|
||||
context.getResources().getString(R.string.share)
|
||||
};
|
||||
} else {
|
||||
commands = new String[]{
|
||||
context.getResources().getString(R.string.enqueue_on_background),
|
||||
context.getResources().getString(R.string.enqueue_on_popup),
|
||||
context.getResources().getString(R.string.start_here_on_background),
|
||||
|
@ -373,36 +386,36 @@ public class StatisticsPlaylistFragment
|
|||
context.getResources().getString(R.string.append_playlist),
|
||||
context.getResources().getString(R.string.share)
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
final DialogInterface.OnClickListener actions = (dialogInterface, i) -> {
|
||||
final int index = Math.max(itemListAdapter.getItemsList().indexOf(item), 0);
|
||||
switch (i) {
|
||||
case 0:
|
||||
|
||||
if (i == 0) {
|
||||
NavigationHelper.enqueueOnBackgroundPlayer(context, new SinglePlayQueue(infoItem), false);
|
||||
break;
|
||||
case 1:
|
||||
|
||||
} else if (i == (isAudioStream ? -1 : 1)) { // disabled with audio streams
|
||||
NavigationHelper.enqueueOnPopupPlayer(context, new SinglePlayQueue(infoItem), false);
|
||||
break;
|
||||
case 2:
|
||||
NavigationHelper.playOnBackgroundPlayer(context, getPlayQueue(index), true);
|
||||
break;
|
||||
case 3:
|
||||
NavigationHelper.playOnPopupPlayer(context, getPlayQueue(index), true);
|
||||
break;
|
||||
case 4:
|
||||
|
||||
} else if (i == (isAudioStream ? 1 : 2)) {
|
||||
NavigationHelper.playOnBackgroundPlayer(context, new SinglePlayQueue(infoItem), true);
|
||||
|
||||
} else if (i == (isAudioStream ? -1 : 3)) { // disabled with audio streams
|
||||
NavigationHelper.playOnPopupPlayer(context, new SinglePlayQueue(infoItem), true);
|
||||
|
||||
} else if (i == (isAudioStream ? 2 : 4)) {
|
||||
deleteEntry(index);
|
||||
break;
|
||||
case 5:
|
||||
|
||||
} else if (i == (isAudioStream ? 3 : 5)) {
|
||||
if (getFragmentManager() != null) {
|
||||
PlaylistAppendDialog.fromStreamInfoItems(Collections.singletonList(infoItem))
|
||||
.show(getFragmentManager(), TAG);
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
|
||||
} else if (i == (isAudioStream ? 4 : 6)) {
|
||||
ShareUtils.shareUrl(context, infoItem.getName(), infoItem.getUrl());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.schabi.newpipe.R;
|
|||
import org.schabi.newpipe.database.LocalItem;
|
||||
import org.schabi.newpipe.database.playlist.PlaylistStreamEntry;
|
||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
|
||||
import org.schabi.newpipe.extractor.stream.StreamType;
|
||||
import org.schabi.newpipe.local.BaseLocalListFragment;
|
||||
import org.schabi.newpipe.info_list.InfoItemDialog;
|
||||
import org.schabi.newpipe.local.dialog.PlaylistAppendDialog;
|
||||
|
@ -518,8 +519,20 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
|||
if (context == null || context.getResources() == null || activity == null) return;
|
||||
|
||||
final StreamInfoItem infoItem = item.toStreamInfoItem();
|
||||
boolean isAudioStream = (infoItem.getStreamType() == StreamType.AUDIO_STREAM);
|
||||
|
||||
final String[] commands = new String[]{
|
||||
final String[] commands;
|
||||
if (isAudioStream) {
|
||||
commands = new String[]{
|
||||
context.getResources().getString(R.string.enqueue_on_background),
|
||||
context.getResources().getString(R.string.start_here_on_background),
|
||||
context.getResources().getString(R.string.set_as_playlist_thumbnail),
|
||||
context.getResources().getString(R.string.delete),
|
||||
context.getResources().getString(R.string.append_playlist),
|
||||
context.getResources().getString(R.string.share),
|
||||
};
|
||||
} else {
|
||||
commands = new String[]{
|
||||
context.getResources().getString(R.string.enqueue_on_background),
|
||||
context.getResources().getString(R.string.enqueue_on_popup),
|
||||
context.getResources().getString(R.string.start_here_on_background),
|
||||
|
@ -529,39 +542,39 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
|||
context.getResources().getString(R.string.append_playlist),
|
||||
context.getResources().getString(R.string.share),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
final DialogInterface.OnClickListener actions = (dialogInterface, i) -> {
|
||||
final int index = Math.max(itemListAdapter.getItemsList().indexOf(item), 0);
|
||||
switch (i) {
|
||||
case 0:
|
||||
|
||||
if (i == 0) {
|
||||
NavigationHelper.enqueueOnBackgroundPlayer(context, new SinglePlayQueue(infoItem), false);
|
||||
break;
|
||||
case 1:
|
||||
|
||||
} else if (i == (isAudioStream ? -1 : 1)) { // disabled with audio streams
|
||||
NavigationHelper.enqueueOnPopupPlayer(context, new SinglePlayQueue(infoItem), false);
|
||||
break;
|
||||
case 2:
|
||||
|
||||
} else if (i == (isAudioStream ? 1 : 2)) {
|
||||
NavigationHelper.playOnBackgroundPlayer(context, getPlayQueue(index), true);
|
||||
break;
|
||||
case 3:
|
||||
|
||||
} else if (i == (isAudioStream ? -1 : 3)) { // disabled with audio streams
|
||||
NavigationHelper.playOnPopupPlayer(context, getPlayQueue(index), true);
|
||||
break;
|
||||
case 4:
|
||||
|
||||
} else if (i == (isAudioStream ? 2 : 4)) {
|
||||
changeThumbnailUrl(item.thumbnailUrl);
|
||||
break;
|
||||
case 5:
|
||||
|
||||
} else if (i == (isAudioStream ? 3 : 5)) {
|
||||
deleteItem(item);
|
||||
break;
|
||||
case 6:
|
||||
|
||||
} else if (i == (isAudioStream ? 4 : 6)) {
|
||||
if (getFragmentManager() != null) {
|
||||
PlaylistAppendDialog.fromStreamInfoItems(Collections.singletonList(infoItem))
|
||||
.show(getFragmentManager(), TAG);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
|
||||
} else if (i == (isAudioStream ? 5 : 7)) {
|
||||
ShareUtils.shareUrl(context, infoItem.getName(), infoItem.getUrl());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue