Merge pull request #9445 from Jared234/9122_remove_watched_bug

Fixed a bug that incorrectly removed videos from a playlist when using the "Remove Viewed" dialog
This commit is contained in:
Stypox 2023-01-12 23:45:48 +01:00 committed by GitHub
commit 0546c9b9fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 6 deletions

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) {