Merge pull request #13005 from dustdfg/db_immediate

Commit all the playlist changes to db immediately
This commit is contained in:
Tobi 2026-01-05 14:03:30 -08:00 committed by GitHub
commit 85cebf8fe3

View file

@ -111,7 +111,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
private MainFragment.SelectedTabsPagerAdapter tabsPagerAdapter = null; private MainFragment.SelectedTabsPagerAdapter tabsPagerAdapter = null;
public static LocalPlaylistFragment getInstance(final long playlistId, final String name) { public static LocalPlaylistFragment getInstance(final long playlistId, final String name) {
final LocalPlaylistFragment instance = new LocalPlaylistFragment(); final var instance = new LocalPlaylistFragment();
instance.setInitialData(playlistId, name); instance.setInitialData(playlistId, name);
return instance; return instance;
} }
@ -180,9 +180,8 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
itemListAdapter.setSelectedListener(new OnClickGesture<>() { itemListAdapter.setSelectedListener(new OnClickGesture<>() {
@Override @Override
public void selected(final LocalItem selectedItem) { public void selected(final LocalItem selectedItem) {
if (selectedItem instanceof PlaylistStreamEntry) { if (selectedItem instanceof PlaylistStreamEntry entry) {
final StreamEntity item = final StreamEntity item = entry.getStreamEntity();
((PlaylistStreamEntry) selectedItem).getStreamEntity();
NavigationHelper.openVideoDetailFragment(requireContext(), getFM(), NavigationHelper.openVideoDetailFragment(requireContext(), getFM(),
item.getServiceId(), item.getUrl(), item.getTitle(), null, false); item.getServiceId(), item.getUrl(), item.getTitle(), null, false);
} }
@ -496,6 +495,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
itemListAdapter.clearStreamItemList(); itemListAdapter.clearStreamItemList();
itemListAdapter.addItems(itemsToKeep); itemListAdapter.addItems(itemsToKeep);
debounceSaver.setHasChangesToSave(); debounceSaver.setHasChangesToSave();
saveImmediate();
if (thumbnailVideoRemoved) { if (thumbnailVideoRemoved) {
updateThumbnailUrl(); updateThumbnailUrl();
@ -560,8 +560,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
return; return;
} }
final DialogEditTextBinding dialogBinding = final var dialogBinding = DialogEditTextBinding.inflate(getLayoutInflater());
DialogEditTextBinding.inflate(getLayoutInflater());
dialogBinding.dialogEditText.setHint(R.string.name); dialogBinding.dialogEditText.setHint(R.string.name);
dialogBinding.dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT); dialogBinding.dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT);
dialogBinding.dialogEditText.setSelection(dialogBinding.dialogEditText.getText().length()); dialogBinding.dialogEditText.setSelection(dialogBinding.dialogEditText.getText().length());
@ -667,6 +666,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
itemListAdapter.addItems(itemsToKeep); itemListAdapter.addItems(itemsToKeep);
setStreamCountAndOverallDuration(itemListAdapter.getItemsList()); setStreamCountAndOverallDuration(itemListAdapter.getItemsList());
debounceSaver.setHasChangesToSave(); debounceSaver.setHasChangesToSave();
saveImmediate();
hideLoading(); hideLoading();
isRewritingPlaylist = false; isRewritingPlaylist = false;
@ -686,6 +686,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
setStreamCountAndOverallDuration(itemListAdapter.getItemsList()); setStreamCountAndOverallDuration(itemListAdapter.getItemsList());
debounceSaver.setHasChangesToSave(); debounceSaver.setHasChangesToSave();
saveImmediate();
} }
/** /**
@ -708,8 +709,8 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
final List<LocalItem> items = itemListAdapter.getItemsList(); final List<LocalItem> items = itemListAdapter.getItemsList();
final List<Long> streamIds = new ArrayList<>(items.size()); final List<Long> streamIds = new ArrayList<>(items.size());
for (final LocalItem item : items) { for (final LocalItem item : items) {
if (item instanceof PlaylistStreamEntry) { if (item instanceof PlaylistStreamEntry entry) {
streamIds.add(((PlaylistStreamEntry) item).getStreamId()); streamIds.add(entry.getStreamId());
} }
} }
@ -767,6 +768,7 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
final boolean isSwapped = itemListAdapter.swapItems(sourceIndex, targetIndex); final boolean isSwapped = itemListAdapter.swapItems(sourceIndex, targetIndex);
if (isSwapped) { if (isSwapped) {
debounceSaver.setHasChangesToSave(); debounceSaver.setHasChangesToSave();
saveImmediate();
} }
return isSwapped; return isSwapped;
} }