🐛 Fix cross source swap siblings issue

This commit is contained in:
2024-09-10 23:06:15 +08:00
parent e0c9edad78
commit 873ad1cf8c
5 changed files with 16 additions and 14 deletions

View File

@@ -77,6 +77,7 @@ class KugouSourcedTrack extends SourcedTrack {
sourceId: siblings.first.info.id,
sourceType: const Value(SourceType.kugou),
),
mode: InsertMode.insertOrReplace,
);
return KugouSourcedTrack(
@@ -171,8 +172,7 @@ class KugouSourcedTrack extends SourcedTrack {
@override
Future<SourcedTrack?> swapWithSibling(SourceInfo sibling) async {
if (sibling is! KugouSourceInfo) {
return (SourcedTrack.getTrackBySourceInfo(sibling) as SourcedTrack)
.swapWithSibling(sibling);
return reRoutineSwapSiblings(sibling);
}
if (sibling.id == sourceInfo.id) {

View File

@@ -105,6 +105,7 @@ class NeteaseSourcedTrack extends SourcedTrack {
sourceId: siblings.first.info.id,
sourceType: const Value(SourceType.netease),
),
mode: InsertMode.insertOrReplace,
);
return NeteaseSourcedTrack(
@@ -202,8 +203,7 @@ class NeteaseSourcedTrack extends SourcedTrack {
@override
Future<SourcedTrack?> swapWithSibling(SourceInfo sibling) async {
if (sibling is! NeteaseSourceInfo) {
return (SourcedTrack.getTrackBySourceInfo(sibling) as SourcedTrack)
.swapWithSibling(sibling);
return reRoutineSwapSiblings(sibling);
}
if (sibling.id == sourceInfo.id) {

View File

@@ -73,6 +73,7 @@ class PipedSourcedTrack extends SourcedTrack {
: SourceType.youtubeMusic,
),
),
mode: InsertMode.insertOrReplace,
);
return PipedSourcedTrack(
@@ -256,8 +257,7 @@ class PipedSourcedTrack extends SourcedTrack {
@override
Future<SourcedTrack?> swapWithSibling(SourceInfo sibling) async {
if (sibling is! PipedSourceInfo) {
return (SourcedTrack.getTrackBySourceInfo(sibling) as SourcedTrack)
.swapWithSibling(sibling);
return reRoutineSwapSiblings(sibling);
}
if (sibling.id == sourceInfo.id) {

View File

@@ -271,8 +271,7 @@ class YoutubeSourcedTrack extends SourcedTrack {
@override
Future<SourcedTrack?> swapWithSibling(SourceInfo sibling) async {
if (sibling is! YoutubeSourceInfo) {
return (SourcedTrack.getTrackBySourceInfo(sibling) as SourcedTrack)
.swapWithSibling(sibling);
return reRoutineSwapSiblings(sibling);
}
if (sibling.id == sourceInfo.id) {