Skip to content

Commit 102975a

Browse files
committed
Improve handling playlist duplicate indicator
1 parent c70ce79 commit 102975a

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.view.LayoutInflater;
55
import android.view.View;
66
import android.view.ViewGroup;
7+
import android.widget.TextView;
78
import android.widget.Toast;
89

910
import androidx.annotation.NonNull;
@@ -28,6 +29,7 @@ public final class PlaylistAppendDialog extends PlaylistDialog {
2829

2930
private RecyclerView playlistRecyclerView;
3031
private LocalItemListAdapter playlistAdapter;
32+
private TextView playlistDuplicateIndicator;
3133

3234
private final CompositeDisposable playlistDisposables = new CompositeDisposable();
3335

@@ -73,6 +75,8 @@ public void onViewCreated(@NonNull final View view, @Nullable final Bundle saved
7375
playlistRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext()));
7476
playlistRecyclerView.setAdapter(playlistAdapter);
7577

78+
playlistDuplicateIndicator = view.findViewById(R.id.playlist_duplicate);
79+
7680
final View newPlaylistButton = view.findViewById(R.id.newPlaylist);
7781
newPlaylistButton.setOnClickListener(ignored -> openCreatePlaylistDialog());
7882

@@ -120,23 +124,20 @@ public void openCreatePlaylistDialog() {
120124
}
121125

122126
private void onPlaylistsReceived(@NonNull final List<PlaylistDuplicatesEntry> playlists) {
123-
if (playlistAdapter != null && playlistRecyclerView != null) {
127+
if (playlistAdapter != null
128+
&& playlistRecyclerView != null
129+
&& playlistDuplicateIndicator != null) {
124130
playlistAdapter.clearStreamItemList();
125131
playlistAdapter.addItems(playlists);
126132
playlistRecyclerView.setVisibility(View.VISIBLE);
127-
setDuplicateIndicatorExplanation(playlists);
133+
playlistDuplicateIndicator.setVisibility(
134+
anyPlaylistContainsDuplicates(playlists) ? View.VISIBLE : View.GONE);
128135
}
129136
}
130-
private void setDuplicateIndicatorExplanation(final List<PlaylistDuplicatesEntry> playlists) {
131-
for (final PlaylistDuplicatesEntry entry : playlists) {
132-
if (entry.timesStreamIsContained > 0) {
133-
final View indicatorExplanation = getView()
134-
.findViewById(R.id.playlist_duplicate);
135-
indicatorExplanation.setVisibility(View.VISIBLE);
136-
return;
137-
}
138-
}
139137

138+
private boolean anyPlaylistContainsDuplicates(final List<PlaylistDuplicatesEntry> playlists) {
139+
return playlists.stream()
140+
.anyMatch(playlist -> playlist.timesStreamIsContained > 0);
140141
}
141142

142143
private void onPlaylistSelected(@NonNull final LocalPlaylistManager manager,

0 commit comments

Comments
 (0)