Skip to content

Commit 1cd3ef5

Browse files
committed
Extract entries into beginning and end category
1 parent 80157fc commit 1cd3ef5

6 files changed

Lines changed: 39 additions & 61 deletions

File tree

app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
import org.schabi.newpipe.util.NavigationHelper;
3636
import org.schabi.newpipe.util.OnClickGesture;
3737
import org.schabi.newpipe.util.StateSaver;
38-
import org.schabi.newpipe.util.StreamDialogDefaultEntry;
3938
import org.schabi.newpipe.views.SuperScrollLayoutManager;
4039

4140
import java.util.List;
@@ -413,16 +412,8 @@ protected void showStreamDialog(final StreamInfoItem item) {
413412
final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder(
414413
activity, this, item);
415414

416-
dialogBuilder.addEnqueueEntriesIfNeeded();
417-
dialogBuilder.addStartHereEntries();
418-
dialogBuilder.addAllEntries(
419-
StreamDialogDefaultEntry.APPEND_PLAYLIST,
420-
StreamDialogDefaultEntry.SHARE,
421-
StreamDialogDefaultEntry.OPEN_IN_BROWSER
422-
);
423-
dialogBuilder.addPlayWithKodiEntryIfNeeded();
424-
dialogBuilder.addMarkAsWatchedEntryIfNeeded(item.getStreamType());
425-
dialogBuilder.addChannelDetailsEntryIfPossible();
415+
dialogBuilder.addDefaultEntriesAtBeginning();
416+
dialogBuilder.addDefaultEntriesAtEnd();
426417

427418
dialogBuilder.create().show();
428419
}

app/src/main/java/org/schabi/newpipe/fragments/list/playlist/PlaylistFragment.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -145,16 +145,8 @@ protected void showStreamDialog(final StreamInfoItem item) {
145145
final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder(
146146
activity, this, item);
147147

148-
dialogBuilder.addEnqueueEntriesIfNeeded();
149-
dialogBuilder.addStartHereEntries();
150-
dialogBuilder.addAllEntries(
151-
StreamDialogDefaultEntry.APPEND_PLAYLIST,
152-
StreamDialogDefaultEntry.SHARE,
153-
StreamDialogDefaultEntry.OPEN_IN_BROWSER
154-
);
155-
dialogBuilder.addPlayWithKodiEntryIfNeeded();
156-
dialogBuilder.addMarkAsWatchedEntryIfNeeded(item.getStreamType());
157-
dialogBuilder.addChannelDetailsEntryIfPossible();
148+
dialogBuilder.addDefaultEntriesAtBeginning();
149+
dialogBuilder.addDefaultEntriesAtEnd();
158150

159151
dialogBuilder.setAction(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND,
160152
(fragment, infoItem) -> NavigationHelper.playOnBackgroundPlayer(

app/src/main/java/org/schabi/newpipe/info_list/InfoItemDialog.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,16 @@ public void show() {
7676
*/
7777
public static class Builder {
7878
@NonNull private final Activity activity;
79-
@NonNull private final StreamInfoItem info;
79+
@NonNull private final StreamInfoItem item;
8080
@NonNull private final Fragment fragment;
8181
@NonNull private final List<StreamDialogEntry> entries = new ArrayList<>();
8282

8383
public Builder(@NonNull final Activity activity,
8484
@NonNull final Fragment fragment,
85-
@NonNull final StreamInfoItem info) {
85+
@NonNull final StreamInfoItem item) {
8686
this.activity = activity;
8787
this.fragment = fragment;
88-
this.info = info;
88+
this.item = item;
8989
}
9090

9191
public void addEntry(@NonNull final StreamDialogDefaultEntry entry) {
@@ -108,7 +108,7 @@ public void setAction(@NonNull final StreamDialogDefaultEntry entry,
108108
}
109109

110110
public void addChannelDetailsEntryIfPossible() {
111-
if (!isNullOrEmpty(info.getUploaderUrl())) {
111+
if (!isNullOrEmpty(item.getUploaderUrl())) {
112112
addEntry(StreamDialogDefaultEntry.SHOW_CHANNEL_DETAILS);
113113
}
114114
}
@@ -125,8 +125,8 @@ public void addEnqueueEntriesIfNeeded() {
125125

126126
public void addStartHereEntries() {
127127
addEntry(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND);
128-
if (info.getStreamType() != StreamType.AUDIO_STREAM
129-
&& info.getStreamType() != StreamType.AUDIO_LIVE_STREAM) {
128+
if (item.getStreamType() != StreamType.AUDIO_STREAM
129+
&& item.getStreamType() != StreamType.AUDIO_LIVE_STREAM) {
130130
addEntry(StreamDialogDefaultEntry.START_HERE_ON_POPUP);
131131
}
132132
}
@@ -148,17 +148,33 @@ public void addMarkAsWatchedEntryIfNeeded(final StreamType streamType) {
148148
}
149149

150150
public void addPlayWithKodiEntryIfNeeded() {
151-
if (KoreUtils.shouldShowPlayWithKodi(activity, info.getServiceId())) {
151+
if (KoreUtils.shouldShowPlayWithKodi(activity, item.getServiceId())) {
152152
addEntry(StreamDialogDefaultEntry.PLAY_WITH_KODI);
153153
}
154154
}
155155

156+
public void addDefaultEntriesAtBeginning() {
157+
addEnqueueEntriesIfNeeded();
158+
addStartHereEntries();
159+
}
160+
161+
public void addDefaultEntriesAtEnd() {
162+
addAllEntries(
163+
StreamDialogDefaultEntry.APPEND_PLAYLIST,
164+
StreamDialogDefaultEntry.SHARE,
165+
StreamDialogDefaultEntry.OPEN_IN_BROWSER
166+
);
167+
addPlayWithKodiEntryIfNeeded();
168+
addMarkAsWatchedEntryIfNeeded(item.getStreamType());
169+
addChannelDetailsEntryIfPossible();
170+
}
171+
156172
/**
157173
* Creates the {@link InfoItemDialog}.
158174
* @return a new instance of {@link InfoItemDialog}
159175
*/
160176
public InfoItemDialog create() {
161-
return new InfoItemDialog(this.activity, this.fragment, this.info, this.entries);
177+
return new InfoItemDialog(this.activity, this.fragment, this.item, this.entries);
162178
}
163179
}
164180
}

app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ import org.schabi.newpipe.local.subscription.SubscriptionManager
8080
import org.schabi.newpipe.util.DeviceUtils
8181
import org.schabi.newpipe.util.Localization
8282
import org.schabi.newpipe.util.NavigationHelper
83-
import org.schabi.newpipe.util.StreamDialogDefaultEntry
8483
import org.schabi.newpipe.util.ThemeHelper.getGridSpanCountStreams
8584
import org.schabi.newpipe.util.ThemeHelper.shouldUseGridLayout
8685
import java.time.OffsetDateTime
@@ -360,16 +359,8 @@ class FeedFragment : BaseStateFragment<FeedState>() {
360359

361360
val dialogBuilder = InfoItemDialog.Builder(activity, this, item)
362361

363-
dialogBuilder.addEnqueueEntriesIfNeeded()
364-
dialogBuilder.addStartHereEntries()
365-
dialogBuilder.addAllEntries(
366-
StreamDialogDefaultEntry.APPEND_PLAYLIST,
367-
StreamDialogDefaultEntry.SHARE,
368-
StreamDialogDefaultEntry.OPEN_IN_BROWSER
369-
)
370-
dialogBuilder.addPlayWithKodiEntryIfNeeded()
371-
dialogBuilder.addMarkAsWatchedEntryIfNeeded(item.streamType)
372-
dialogBuilder.addChannelDetailsEntryIfPossible()
362+
dialogBuilder.addDefaultEntriesAtBeginning()
363+
dialogBuilder.addDefaultEntriesAtEnd()
373364

374365
dialogBuilder.create().show()
375366
}

app/src/main/java/org/schabi/newpipe/local/history/StatisticsPlaylistFragment.java

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -335,19 +335,12 @@ private void showStreamDialog(final StreamStatisticsEntry item) {
335335
final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder(
336336
activity, this, infoItem);
337337

338-
dialogBuilder.addEnqueueEntriesIfNeeded();
339-
dialogBuilder.addStartHereEntries();
340-
dialogBuilder.addAllEntries(
341-
StreamDialogDefaultEntry.DELETE,
342-
StreamDialogDefaultEntry.APPEND_PLAYLIST,
343-
StreamDialogDefaultEntry.SHARE,
344-
StreamDialogDefaultEntry.OPEN_IN_BROWSER
345-
);
346-
dialogBuilder.addPlayWithKodiEntryIfNeeded();
347-
dialogBuilder.addMarkAsWatchedEntryIfNeeded(infoItem.getStreamType());
348-
dialogBuilder.addChannelDetailsEntryIfPossible();
349-
338+
// set entries
339+
dialogBuilder.addDefaultEntriesAtBeginning();
340+
dialogBuilder.addEntry(StreamDialogDefaultEntry.DELETE);
341+
dialogBuilder.addDefaultEntriesAtEnd();
350342

343+
// set custom actions
351344
dialogBuilder.setAction(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND,
352345
(fragment, infoItemDuplicate) -> NavigationHelper
353346
.playOnBackgroundPlayer(context, getPlayQueueStartingAt(item), true));

app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -750,18 +750,13 @@ protected void showStreamItemDialog(final PlaylistStreamEntry item) {
750750
final InfoItemDialog.Builder dialogBuilder = new InfoItemDialog.Builder(
751751
activity, this, infoItem);
752752

753-
dialogBuilder.addEnqueueEntriesIfNeeded();
754-
dialogBuilder.addStartHereEntries();
753+
// set entries
754+
dialogBuilder.addDefaultEntriesAtBeginning();
755755
dialogBuilder.addAllEntries(
756756
StreamDialogDefaultEntry.SET_AS_PLAYLIST_THUMBNAIL,
757-
StreamDialogDefaultEntry.DELETE,
758-
StreamDialogDefaultEntry.APPEND_PLAYLIST,
759-
StreamDialogDefaultEntry.SHARE,
760-
StreamDialogDefaultEntry.OPEN_IN_BROWSER
757+
StreamDialogDefaultEntry.DELETE
761758
);
762-
dialogBuilder.addPlayWithKodiEntryIfNeeded();
763-
dialogBuilder.addMarkAsWatchedEntryIfNeeded(infoItem.getStreamType());
764-
dialogBuilder.addChannelDetailsEntryIfPossible();
759+
dialogBuilder.addDefaultEntriesAtEnd();
765760

766761
// set custom actions
767762
dialogBuilder.setAction(StreamDialogDefaultEntry.START_HERE_ON_BACKGROUND,

0 commit comments

Comments
 (0)