Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
d860936010 | |||
873ad1cf8c | |||
e0c9edad78 |
@ -5,6 +5,7 @@ import 'package:rhythm_box/providers/database.dart';
|
||||
import 'package:rhythm_box/providers/error_notifier.dart';
|
||||
import 'package:rhythm_box/providers/user_preferences.dart';
|
||||
import 'package:rhythm_box/services/database/database.dart';
|
||||
import 'package:rhythm_box/services/server/active_sourced_track.dart';
|
||||
import 'package:rhythm_box/services/sourced_track/sources/kugou.dart';
|
||||
import 'package:rhythm_box/services/sourced_track/sources/netease.dart';
|
||||
import 'package:rhythm_box/services/utils.dart';
|
||||
@ -81,14 +82,16 @@ abstract class SourcedTrack extends Track {
|
||||
};
|
||||
}
|
||||
|
||||
static Type getTrackBySourceInfo(SourceInfo info) {
|
||||
Future<SourcedTrack?> reRoutineSwapSiblings(SourceInfo info) {
|
||||
final sourceInfoTrackMap = {
|
||||
YoutubeSourceInfo: YoutubeSourcedTrack,
|
||||
PipedSourceInfo: PipedSourcedTrack,
|
||||
NeteaseSourceInfo: NeteaseSourcedTrack,
|
||||
KugouSourceInfo: KugouSourcedTrack,
|
||||
YoutubeSourceInfo: YoutubeSourcedTrack.fetchFromTrack,
|
||||
PipedSourceInfo: PipedSourcedTrack.fetchFromTrack,
|
||||
NeteaseSourceInfo: NeteaseSourcedTrack.fetchFromTrack,
|
||||
KugouSourceInfo: KugouSourcedTrack.fetchFromTrack,
|
||||
};
|
||||
return sourceInfoTrackMap[info.runtimeType]!;
|
||||
return sourceInfoTrackMap[info.runtimeType]!(
|
||||
track: Get.find<ActiveSourcedTrackProvider>().state.value!,
|
||||
);
|
||||
}
|
||||
|
||||
static String getSearchTerm(Track track) {
|
||||
@ -170,7 +173,7 @@ abstract class SourcedTrack extends Track {
|
||||
|
||||
return switch (audioSource) {
|
||||
AudioSource.netease =>
|
||||
await fetchFromTrack(track: track, fallbackTo: AudioSource.kugou),
|
||||
await fetchFromTrack(track: track, fallbackTo: AudioSource.youtube),
|
||||
AudioSource.kugou =>
|
||||
await fetchFromTrack(track: track, fallbackTo: AudioSource.youtube),
|
||||
_ =>
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
version: 1.0.0+15
|
||||
version: 1.0.0+17
|
||||
|
||||
environment:
|
||||
sdk: ^3.5.0
|
||||
@ -180,4 +180,3 @@ flutter_native_splash:
|
||||
color: "#fef8f5"
|
||||
color_dark: "#18120d"
|
||||
image: assets/icon-w-shadow.png
|
||||
|
||||
|
Reference in New Issue
Block a user