mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-10-31 07:13:00 +00:00 
			
		
		
		
	Extract entries into beginning and end category
This commit is contained in:
		| @@ -35,7 +35,6 @@ import org.schabi.newpipe.info_list.InfoListAdapter; | ||||
| import org.schabi.newpipe.util.NavigationHelper; | ||||
| import org.schabi.newpipe.util.OnClickGesture; | ||||
| import org.schabi.newpipe.util.StateSaver; | ||||
| import org.schabi.newpipe.util.StreamDialogDefaultEntry; | ||||
| import org.schabi.newpipe.views.SuperScrollLayoutManager; | ||||
|  | ||||
| import java.util.List; | ||||
| @@ -413,16 +412,8 @@ public abstract class BaseListFragment<I, N> extends BaseStateFragment<I> | ||||
|         final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder( | ||||
|                 activity, this, item); | ||||
|  | ||||
|         dialogBuilder.addEnqueueEntriesIfNeeded(); | ||||
|         dialogBuilder.addStartHereEntries(); | ||||
|         dialogBuilder.addAllEntries( | ||||
|                 StreamDialogDefaultEntry.APPEND_PLAYLIST, | ||||
|                 StreamDialogDefaultEntry.SHARE, | ||||
|                 StreamDialogDefaultEntry.OPEN_IN_BROWSER | ||||
|         ); | ||||
|         dialogBuilder.addPlayWithKodiEntryIfNeeded(); | ||||
|         dialogBuilder.addMarkAsWatchedEntryIfNeeded(item.getStreamType()); | ||||
|         dialogBuilder.addChannelDetailsEntryIfPossible(); | ||||
|         dialogBuilder.addDefaultEntriesAtBeginning(); | ||||
|         dialogBuilder.addDefaultEntriesAtEnd(); | ||||
|  | ||||
|         dialogBuilder.create().show(); | ||||
|     } | ||||
|   | ||||
| @@ -145,16 +145,8 @@ public class PlaylistFragment extends BaseListInfoFragment<PlaylistInfo> { | ||||
|         final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder( | ||||
|                 activity, this, item); | ||||
|  | ||||
|         dialogBuilder.addEnqueueEntriesIfNeeded(); | ||||
|         dialogBuilder.addStartHereEntries(); | ||||
|         dialogBuilder.addAllEntries( | ||||
|                 StreamDialogDefaultEntry.APPEND_PLAYLIST, | ||||
|                 StreamDialogDefaultEntry.SHARE, | ||||
|                 StreamDialogDefaultEntry.OPEN_IN_BROWSER | ||||
|         ); | ||||
|         dialogBuilder.addPlayWithKodiEntryIfNeeded(); | ||||
|         dialogBuilder.addMarkAsWatchedEntryIfNeeded(item.getStreamType()); | ||||
|         dialogBuilder.addChannelDetailsEntryIfPossible(); | ||||
|         dialogBuilder.addDefaultEntriesAtBeginning(); | ||||
|         dialogBuilder.addDefaultEntriesAtEnd(); | ||||
|  | ||||
|         dialogBuilder.setAction(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND, | ||||
|                 (fragment, infoItem) -> NavigationHelper.playOnBackgroundPlayer( | ||||
|   | ||||
| @@ -76,16 +76,16 @@ public final class InfoItemDialog { | ||||
|      */ | ||||
|     public static class Builder { | ||||
|         @NonNull private final Activity activity; | ||||
|         @NonNull private final StreamInfoItem info; | ||||
|         @NonNull private final StreamInfoItem item; | ||||
|         @NonNull private final Fragment fragment; | ||||
|         @NonNull private final List<StreamDialogEntry> entries = new ArrayList<>(); | ||||
|  | ||||
|         public Builder(@NonNull final Activity activity, | ||||
|                        @NonNull final Fragment fragment, | ||||
|                        @NonNull final StreamInfoItem info) { | ||||
|                        @NonNull final StreamInfoItem item) { | ||||
|             this.activity = activity; | ||||
|             this.fragment = fragment; | ||||
|             this.info = info; | ||||
|             this.item = item; | ||||
|         } | ||||
|  | ||||
|         public void addEntry(@NonNull final StreamDialogDefaultEntry entry) { | ||||
| @@ -108,7 +108,7 @@ public final class InfoItemDialog { | ||||
|         } | ||||
|  | ||||
|         public void addChannelDetailsEntryIfPossible() { | ||||
|             if (!isNullOrEmpty(info.getUploaderUrl())) { | ||||
|             if (!isNullOrEmpty(item.getUploaderUrl())) { | ||||
|                 addEntry(StreamDialogDefaultEntry.SHOW_CHANNEL_DETAILS); | ||||
|             } | ||||
|         } | ||||
| @@ -125,8 +125,8 @@ public final class InfoItemDialog { | ||||
|  | ||||
|         public void addStartHereEntries() { | ||||
|             addEntry(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND); | ||||
|             if (info.getStreamType() != StreamType.AUDIO_STREAM | ||||
|                     && info.getStreamType() != StreamType.AUDIO_LIVE_STREAM) { | ||||
|             if (item.getStreamType() != StreamType.AUDIO_STREAM | ||||
|                     && item.getStreamType() != StreamType.AUDIO_LIVE_STREAM) { | ||||
|                 addEntry(StreamDialogDefaultEntry.START_HERE_ON_POPUP); | ||||
|             } | ||||
|         } | ||||
| @@ -148,17 +148,33 @@ public final class InfoItemDialog { | ||||
|         } | ||||
|  | ||||
|         public void addPlayWithKodiEntryIfNeeded() { | ||||
|             if (KoreUtils.shouldShowPlayWithKodi(activity, info.getServiceId())) { | ||||
|             if (KoreUtils.shouldShowPlayWithKodi(activity, item.getServiceId())) { | ||||
|                 addEntry(StreamDialogDefaultEntry.PLAY_WITH_KODI); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         public void addDefaultEntriesAtBeginning() { | ||||
|             addEnqueueEntriesIfNeeded(); | ||||
|             addStartHereEntries(); | ||||
|         } | ||||
|  | ||||
|         public void addDefaultEntriesAtEnd() { | ||||
|             addAllEntries( | ||||
|                     StreamDialogDefaultEntry.APPEND_PLAYLIST, | ||||
|                     StreamDialogDefaultEntry.SHARE, | ||||
|                     StreamDialogDefaultEntry.OPEN_IN_BROWSER | ||||
|             ); | ||||
|             addPlayWithKodiEntryIfNeeded(); | ||||
|             addMarkAsWatchedEntryIfNeeded(item.getStreamType()); | ||||
|             addChannelDetailsEntryIfPossible(); | ||||
|         } | ||||
|  | ||||
|         /** | ||||
|          * Creates the {@link InfoItemDialog}. | ||||
|          * @return a new instance of {@link InfoItemDialog} | ||||
|          */ | ||||
|         public InfoItemDialog create() { | ||||
|             return new InfoItemDialog(this.activity, this.fragment, this.info, this.entries); | ||||
|             return new InfoItemDialog(this.activity, this.fragment, this.item, this.entries); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -80,7 +80,6 @@ import org.schabi.newpipe.local.subscription.SubscriptionManager | ||||
| import org.schabi.newpipe.util.DeviceUtils | ||||
| import org.schabi.newpipe.util.Localization | ||||
| import org.schabi.newpipe.util.NavigationHelper | ||||
| import org.schabi.newpipe.util.StreamDialogDefaultEntry | ||||
| import org.schabi.newpipe.util.ThemeHelper.getGridSpanCountStreams | ||||
| import org.schabi.newpipe.util.ThemeHelper.shouldUseGridLayout | ||||
| import java.time.OffsetDateTime | ||||
| @@ -360,16 +359,8 @@ class FeedFragment : BaseStateFragment<FeedState>() { | ||||
|  | ||||
|         val dialogBuilder = InfoItemDialog.Builder(activity, this, item) | ||||
|  | ||||
|         dialogBuilder.addEnqueueEntriesIfNeeded() | ||||
|         dialogBuilder.addStartHereEntries() | ||||
|         dialogBuilder.addAllEntries( | ||||
|             StreamDialogDefaultEntry.APPEND_PLAYLIST, | ||||
|             StreamDialogDefaultEntry.SHARE, | ||||
|             StreamDialogDefaultEntry.OPEN_IN_BROWSER | ||||
|         ) | ||||
|         dialogBuilder.addPlayWithKodiEntryIfNeeded() | ||||
|         dialogBuilder.addMarkAsWatchedEntryIfNeeded(item.streamType) | ||||
|         dialogBuilder.addChannelDetailsEntryIfPossible() | ||||
|         dialogBuilder.addDefaultEntriesAtBeginning() | ||||
|         dialogBuilder.addDefaultEntriesAtEnd() | ||||
|  | ||||
|         dialogBuilder.create().show() | ||||
|     } | ||||
|   | ||||
| @@ -335,19 +335,12 @@ public class StatisticsPlaylistFragment | ||||
|         final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder( | ||||
|                 activity, this, infoItem); | ||||
|  | ||||
|         dialogBuilder.addEnqueueEntriesIfNeeded(); | ||||
|         dialogBuilder.addStartHereEntries(); | ||||
|         dialogBuilder.addAllEntries( | ||||
|                 StreamDialogDefaultEntry.DELETE, | ||||
|                 StreamDialogDefaultEntry.APPEND_PLAYLIST, | ||||
|                 StreamDialogDefaultEntry.SHARE, | ||||
|                 StreamDialogDefaultEntry.OPEN_IN_BROWSER | ||||
|         ); | ||||
|         dialogBuilder.addPlayWithKodiEntryIfNeeded(); | ||||
|         dialogBuilder.addMarkAsWatchedEntryIfNeeded(infoItem.getStreamType()); | ||||
|         dialogBuilder.addChannelDetailsEntryIfPossible(); | ||||
|  | ||||
|         // set entries | ||||
|         dialogBuilder.addDefaultEntriesAtBeginning(); | ||||
|         dialogBuilder.addEntry(StreamDialogDefaultEntry.DELETE); | ||||
|         dialogBuilder.addDefaultEntriesAtEnd(); | ||||
|  | ||||
|         // set custom actions | ||||
|         dialogBuilder.setAction(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND, | ||||
|                 (fragment, infoItemDuplicate) -> NavigationHelper | ||||
|                         .playOnBackgroundPlayer(context, getPlayQueueStartingAt(item), true)); | ||||
|   | ||||
| @@ -750,18 +750,13 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt | ||||
|         final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder( | ||||
|                 activity, this, infoItem); | ||||
|  | ||||
|         dialogBuilder.addEnqueueEntriesIfNeeded(); | ||||
|         dialogBuilder.addStartHereEntries(); | ||||
|         // set entries | ||||
|         dialogBuilder.addDefaultEntriesAtBeginning(); | ||||
|         dialogBuilder.addAllEntries( | ||||
|                 StreamDialogDefaultEntry.SET_AS_PLAYLIST_THUMBNAIL, | ||||
|                 StreamDialogDefaultEntry.DELETE, | ||||
|                 StreamDialogDefaultEntry.APPEND_PLAYLIST, | ||||
|                 StreamDialogDefaultEntry.SHARE, | ||||
|                 StreamDialogDefaultEntry.OPEN_IN_BROWSER | ||||
|                 StreamDialogDefaultEntry.DELETE | ||||
|         ); | ||||
|         dialogBuilder.addPlayWithKodiEntryIfNeeded(); | ||||
|         dialogBuilder.addMarkAsWatchedEntryIfNeeded(infoItem.getStreamType()); | ||||
|         dialogBuilder.addChannelDetailsEntryIfPossible(); | ||||
|         dialogBuilder.addDefaultEntriesAtEnd(); | ||||
|  | ||||
|         // set custom actions | ||||
|         dialogBuilder.setAction(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 TobiGr
					TobiGr