1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2024-09-28 07:08:23 +00:00

Fixed the "Remove Watched" bug

Reverted changes and fixed bug in a different way
This commit is contained in:
Jared Fantaye 2022-11-22 15:36:57 +01:00 committed by Stypox
parent fd8e92cf77
commit 38c4a1ed85
No known key found for this signature in database
GPG Key ID: 4BDF1B40A49FDD23

View File

@ -404,7 +404,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
.firstElement() .firstElement()
.zipWith(historyIdsMaybe, (playlist, historyStreamIds) -> { .zipWith(historyIdsMaybe, (playlist, historyStreamIds) -> {
// Remove Watched, Functionality data // Remove Watched, Functionality data
final List<PlaylistStreamEntry> notWatchedItems = new ArrayList<>(); final List<PlaylistStreamEntry> itemsToKeep = new ArrayList<>();
final boolean isThumbnailPermanent = playlistManager final boolean isThumbnailPermanent = playlistManager
.getIsPlaylistThumbnailPermanent(playlistId); .getIsPlaylistThumbnailPermanent(playlistId);
boolean thumbnailVideoRemoved = false; boolean thumbnailVideoRemoved = false;
@ -415,7 +415,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
playlistItem.getStreamId()); playlistItem.getStreamId());
if (indexInHistory < 0) { if (indexInHistory < 0) {
notWatchedItems.add(playlistItem); itemsToKeep.add(playlistItem);
} else if (!isThumbnailPermanent && !thumbnailVideoRemoved } else if (!isThumbnailPermanent && !thumbnailVideoRemoved
&& playlistManager.getPlaylistThumbnail(playlistId) && playlistManager.getPlaylistThumbnail(playlistId)
.equals(playlistItem.getStreamEntity().getThumbnailUrl())) { .equals(playlistItem.getStreamEntity().getThumbnailUrl())) {
@ -436,7 +436,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
if (indexInHistory < 0 || (streamStateEntity != null if (indexInHistory < 0 || (streamStateEntity != null
&& !streamStateEntity.isFinished(duration))) { && !streamStateEntity.isFinished(duration))) {
notWatchedItems.add(playlistItem); itemsToKeep.add(playlistItem);
} else if (!isThumbnailPermanent && !thumbnailVideoRemoved } else if (!isThumbnailPermanent && !thumbnailVideoRemoved
&& playlistManager.getPlaylistThumbnail(playlistId) && playlistManager.getPlaylistThumbnail(playlistId)
.equals(playlistItem.getStreamEntity().getThumbnailUrl())) { .equals(playlistItem.getStreamEntity().getThumbnailUrl())) {
@ -445,17 +445,17 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
} }
} }
return new Pair<>(notWatchedItems, thumbnailVideoRemoved); return new Pair<>(itemsToKeep, thumbnailVideoRemoved);
}); });
disposables.add(streamsMaybe.subscribeOn(Schedulers.io()) disposables.add(streamsMaybe.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(flow -> { .subscribe(flow -> {
final List<PlaylistStreamEntry> notWatchedItems = flow.first; final List<PlaylistStreamEntry> itemsToKeep = flow.first;
final boolean thumbnailVideoRemoved = flow.second; final boolean thumbnailVideoRemoved = flow.second;
itemListAdapter.clearStreamItemList(); itemListAdapter.clearStreamItemList();
itemListAdapter.addItems(notWatchedItems); itemListAdapter.addItems(itemsToKeep);
saveChanges(); saveChanges();
if (thumbnailVideoRemoved) { if (thumbnailVideoRemoved) {