mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-12-06 15:39:41 +00:00
Compare commits
2 Commits
cb84494ed1
...
fbb9afc8c3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbb9afc8c3 | ||
|
|
66848c78c7 |
BIN
assets/images/logos/dab-music.png
Normal file
BIN
assets/images/logos/dab-music.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
@ -1,3 +1,5 @@
|
|||||||
|
// dart format width=80
|
||||||
|
|
||||||
/// GENERATED CODE - DO NOT MODIFY BY HAND
|
/// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
/// *****************************************************
|
/// *****************************************************
|
||||||
/// FlutterGen
|
/// FlutterGen
|
||||||
@ -5,7 +7,7 @@
|
|||||||
|
|
||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
// ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use
|
// ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import
|
||||||
|
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
|
|
||||||
@ -67,6 +69,10 @@ class $AssetsImagesGen {
|
|||||||
class $AssetsImagesLogosGen {
|
class $AssetsImagesLogosGen {
|
||||||
const $AssetsImagesLogosGen();
|
const $AssetsImagesLogosGen();
|
||||||
|
|
||||||
|
/// File path: assets/images/logos/dab-music.png
|
||||||
|
AssetGenImage get dabMusic =>
|
||||||
|
const AssetGenImage('assets/images/logos/dab-music.png');
|
||||||
|
|
||||||
/// File path: assets/images/logos/invidious.jpg
|
/// File path: assets/images/logos/invidious.jpg
|
||||||
AssetGenImage get invidious =>
|
AssetGenImage get invidious =>
|
||||||
const AssetGenImage('assets/images/logos/invidious.jpg');
|
const AssetGenImage('assets/images/logos/invidious.jpg');
|
||||||
@ -80,11 +86,12 @@ class $AssetsImagesLogosGen {
|
|||||||
const AssetGenImage('assets/images/logos/songlink-transparent.png');
|
const AssetGenImage('assets/images/logos/songlink-transparent.png');
|
||||||
|
|
||||||
/// List of all assets
|
/// List of all assets
|
||||||
List<AssetGenImage> get values => [invidious, jiosaavn, songlinkTransparent];
|
List<AssetGenImage> get values =>
|
||||||
|
[dabMusic, invidious, jiosaavn, songlinkTransparent];
|
||||||
}
|
}
|
||||||
|
|
||||||
class Assets {
|
class Assets {
|
||||||
Assets._();
|
const Assets._();
|
||||||
|
|
||||||
static const String license = 'LICENSE';
|
static const String license = 'LICENSE';
|
||||||
static const $AssetsBrandingGen branding = $AssetsBrandingGen();
|
static const $AssetsBrandingGen branding = $AssetsBrandingGen();
|
||||||
@ -99,12 +106,14 @@ class AssetGenImage {
|
|||||||
this._assetName, {
|
this._assetName, {
|
||||||
this.size,
|
this.size,
|
||||||
this.flavors = const {},
|
this.flavors = const {},
|
||||||
|
this.animation,
|
||||||
});
|
});
|
||||||
|
|
||||||
final String _assetName;
|
final String _assetName;
|
||||||
|
|
||||||
final Size? size;
|
final Size? size;
|
||||||
final Set<String> flavors;
|
final Set<String> flavors;
|
||||||
|
final AssetGenImageAnimation? animation;
|
||||||
|
|
||||||
Image image({
|
Image image({
|
||||||
Key? key,
|
Key? key,
|
||||||
@ -127,7 +136,7 @@ class AssetGenImage {
|
|||||||
bool gaplessPlayback = true,
|
bool gaplessPlayback = true,
|
||||||
bool isAntiAlias = false,
|
bool isAntiAlias = false,
|
||||||
String? package,
|
String? package,
|
||||||
FilterQuality filterQuality = FilterQuality.low,
|
FilterQuality filterQuality = FilterQuality.medium,
|
||||||
int? cacheWidth,
|
int? cacheWidth,
|
||||||
int? cacheHeight,
|
int? cacheHeight,
|
||||||
}) {
|
}) {
|
||||||
@ -174,3 +183,15 @@ class AssetGenImage {
|
|||||||
|
|
||||||
String get keyName => _assetName;
|
String get keyName => _assetName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class AssetGenImageAnimation {
|
||||||
|
const AssetGenImageAnimation({
|
||||||
|
required this.isAnimation,
|
||||||
|
required this.duration,
|
||||||
|
required this.frames,
|
||||||
|
});
|
||||||
|
|
||||||
|
final bool isAnimation;
|
||||||
|
final Duration duration;
|
||||||
|
final int frames;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
// dart format width=80
|
||||||
/// GENERATED CODE - DO NOT MODIFY BY HAND
|
/// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
/// *****************************************************
|
/// *****************************************************
|
||||||
/// FlutterGen
|
/// FlutterGen
|
||||||
@ -5,7 +6,7 @@
|
|||||||
|
|
||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
// ignore_for_file: type=lint
|
// ignore_for_file: type=lint
|
||||||
// ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use
|
// ignore_for_file: deprecated_member_use,directives_ordering,implicit_dynamic_list_literal,unnecessary_import
|
||||||
|
|
||||||
class FontFamily {
|
class FontFamily {
|
||||||
FontFamily._();
|
FontFamily._();
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
// dart format width=80
|
||||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||||
|
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
@ -59,10 +60,7 @@ import 'package:spotube/pages/track/track.dart' as _i35;
|
|||||||
/// [_i1.AboutSpotubePage]
|
/// [_i1.AboutSpotubePage]
|
||||||
class AboutSpotubeRoute extends _i41.PageRouteInfo<void> {
|
class AboutSpotubeRoute extends _i41.PageRouteInfo<void> {
|
||||||
const AboutSpotubeRoute({List<_i41.PageRouteInfo>? children})
|
const AboutSpotubeRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(AboutSpotubeRoute.name, initialChildren: children);
|
||||||
AboutSpotubeRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'AboutSpotubeRoute';
|
static const String name = 'AboutSpotubeRoute';
|
||||||
|
|
||||||
@ -84,11 +82,7 @@ class AlbumRoute extends _i41.PageRouteInfo<AlbumRouteArgs> {
|
|||||||
List<_i41.PageRouteInfo>? children,
|
List<_i41.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
AlbumRoute.name,
|
AlbumRoute.name,
|
||||||
args: AlbumRouteArgs(
|
args: AlbumRouteArgs(key: key, id: id, album: album),
|
||||||
key: key,
|
|
||||||
id: id,
|
|
||||||
album: album,
|
|
||||||
),
|
|
||||||
rawPathParams: {'id': id},
|
rawPathParams: {'id': id},
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
);
|
);
|
||||||
@ -99,21 +93,13 @@ class AlbumRoute extends _i41.PageRouteInfo<AlbumRouteArgs> {
|
|||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final args = data.argsAs<AlbumRouteArgs>();
|
final args = data.argsAs<AlbumRouteArgs>();
|
||||||
return _i2.AlbumPage(
|
return _i2.AlbumPage(key: args.key, id: args.id, album: args.album);
|
||||||
key: args.key,
|
|
||||||
id: args.id,
|
|
||||||
album: args.album,
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class AlbumRouteArgs {
|
class AlbumRouteArgs {
|
||||||
const AlbumRouteArgs({
|
const AlbumRouteArgs({this.key, required this.id, required this.album});
|
||||||
this.key,
|
|
||||||
required this.id,
|
|
||||||
required this.album,
|
|
||||||
});
|
|
||||||
|
|
||||||
final _i42.Key? key;
|
final _i42.Key? key;
|
||||||
|
|
||||||
@ -136,10 +122,7 @@ class ArtistRoute extends _i41.PageRouteInfo<ArtistRouteArgs> {
|
|||||||
List<_i41.PageRouteInfo>? children,
|
List<_i41.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
ArtistRoute.name,
|
ArtistRoute.name,
|
||||||
args: ArtistRouteArgs(
|
args: ArtistRouteArgs(artistId: artistId, key: key),
|
||||||
artistId: artistId,
|
|
||||||
key: key,
|
|
||||||
),
|
|
||||||
rawPathParams: {'id': artistId},
|
rawPathParams: {'id': artistId},
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
);
|
);
|
||||||
@ -151,20 +134,15 @@ class ArtistRoute extends _i41.PageRouteInfo<ArtistRouteArgs> {
|
|||||||
builder: (data) {
|
builder: (data) {
|
||||||
final pathParams = data.inheritedPathParams;
|
final pathParams = data.inheritedPathParams;
|
||||||
final args = data.argsAs<ArtistRouteArgs>(
|
final args = data.argsAs<ArtistRouteArgs>(
|
||||||
orElse: () => ArtistRouteArgs(artistId: pathParams.getString('id')));
|
orElse: () => ArtistRouteArgs(artistId: pathParams.getString('id')),
|
||||||
return _i3.ArtistPage(
|
|
||||||
args.artistId,
|
|
||||||
key: args.key,
|
|
||||||
);
|
);
|
||||||
|
return _i3.ArtistPage(args.artistId, key: args.key);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class ArtistRouteArgs {
|
class ArtistRouteArgs {
|
||||||
const ArtistRouteArgs({
|
const ArtistRouteArgs({required this.artistId, this.key});
|
||||||
required this.artistId,
|
|
||||||
this.key,
|
|
||||||
});
|
|
||||||
|
|
||||||
final String artistId;
|
final String artistId;
|
||||||
|
|
||||||
@ -180,10 +158,7 @@ class ArtistRouteArgs {
|
|||||||
/// [_i4.BlackListPage]
|
/// [_i4.BlackListPage]
|
||||||
class BlackListRoute extends _i41.PageRouteInfo<void> {
|
class BlackListRoute extends _i41.PageRouteInfo<void> {
|
||||||
const BlackListRoute({List<_i41.PageRouteInfo>? children})
|
const BlackListRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(BlackListRoute.name, initialChildren: children);
|
||||||
BlackListRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'BlackListRoute';
|
static const String name = 'BlackListRoute';
|
||||||
|
|
||||||
@ -199,10 +174,7 @@ class BlackListRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i5.ConnectControlPage]
|
/// [_i5.ConnectControlPage]
|
||||||
class ConnectControlRoute extends _i41.PageRouteInfo<void> {
|
class ConnectControlRoute extends _i41.PageRouteInfo<void> {
|
||||||
const ConnectControlRoute({List<_i41.PageRouteInfo>? children})
|
const ConnectControlRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(ConnectControlRoute.name, initialChildren: children);
|
||||||
ConnectControlRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'ConnectControlRoute';
|
static const String name = 'ConnectControlRoute';
|
||||||
|
|
||||||
@ -218,10 +190,7 @@ class ConnectControlRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i6.ConnectPage]
|
/// [_i6.ConnectPage]
|
||||||
class ConnectRoute extends _i41.PageRouteInfo<void> {
|
class ConnectRoute extends _i41.PageRouteInfo<void> {
|
||||||
const ConnectRoute({List<_i41.PageRouteInfo>? children})
|
const ConnectRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(ConnectRoute.name, initialChildren: children);
|
||||||
ConnectRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'ConnectRoute';
|
static const String name = 'ConnectRoute';
|
||||||
|
|
||||||
@ -237,10 +206,7 @@ class ConnectRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i7.GettingStartedPage]
|
/// [_i7.GettingStartedPage]
|
||||||
class GettingStartedRoute extends _i41.PageRouteInfo<void> {
|
class GettingStartedRoute extends _i41.PageRouteInfo<void> {
|
||||||
const GettingStartedRoute({List<_i41.PageRouteInfo>? children})
|
const GettingStartedRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(GettingStartedRoute.name, initialChildren: children);
|
||||||
GettingStartedRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'GettingStartedRoute';
|
static const String name = 'GettingStartedRoute';
|
||||||
|
|
||||||
@ -310,10 +276,7 @@ class HomeBrowseSectionItemsRouteArgs {
|
|||||||
/// [_i9.HomePage]
|
/// [_i9.HomePage]
|
||||||
class HomeRoute extends _i41.PageRouteInfo<void> {
|
class HomeRoute extends _i41.PageRouteInfo<void> {
|
||||||
const HomeRoute({List<_i41.PageRouteInfo>? children})
|
const HomeRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(HomeRoute.name, initialChildren: children);
|
||||||
HomeRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'HomeRoute';
|
static const String name = 'HomeRoute';
|
||||||
|
|
||||||
@ -329,10 +292,7 @@ class HomeRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i10.LastFMLoginPage]
|
/// [_i10.LastFMLoginPage]
|
||||||
class LastFMLoginRoute extends _i41.PageRouteInfo<void> {
|
class LastFMLoginRoute extends _i41.PageRouteInfo<void> {
|
||||||
const LastFMLoginRoute({List<_i41.PageRouteInfo>? children})
|
const LastFMLoginRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(LastFMLoginRoute.name, initialChildren: children);
|
||||||
LastFMLoginRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'LastFMLoginRoute';
|
static const String name = 'LastFMLoginRoute';
|
||||||
|
|
||||||
@ -348,10 +308,7 @@ class LastFMLoginRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i11.LibraryPage]
|
/// [_i11.LibraryPage]
|
||||||
class LibraryRoute extends _i41.PageRouteInfo<void> {
|
class LibraryRoute extends _i41.PageRouteInfo<void> {
|
||||||
const LibraryRoute({List<_i41.PageRouteInfo>? children})
|
const LibraryRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(LibraryRoute.name, initialChildren: children);
|
||||||
LibraryRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'LibraryRoute';
|
static const String name = 'LibraryRoute';
|
||||||
|
|
||||||
@ -372,10 +329,7 @@ class LikedPlaylistRoute extends _i41.PageRouteInfo<LikedPlaylistRouteArgs> {
|
|||||||
List<_i41.PageRouteInfo>? children,
|
List<_i41.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
LikedPlaylistRoute.name,
|
LikedPlaylistRoute.name,
|
||||||
args: LikedPlaylistRouteArgs(
|
args: LikedPlaylistRouteArgs(key: key, playlist: playlist),
|
||||||
key: key,
|
|
||||||
playlist: playlist,
|
|
||||||
),
|
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -385,19 +339,13 @@ class LikedPlaylistRoute extends _i41.PageRouteInfo<LikedPlaylistRouteArgs> {
|
|||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final args = data.argsAs<LikedPlaylistRouteArgs>();
|
final args = data.argsAs<LikedPlaylistRouteArgs>();
|
||||||
return _i12.LikedPlaylistPage(
|
return _i12.LikedPlaylistPage(key: args.key, playlist: args.playlist);
|
||||||
key: args.key,
|
|
||||||
playlist: args.playlist,
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class LikedPlaylistRouteArgs {
|
class LikedPlaylistRouteArgs {
|
||||||
const LikedPlaylistRouteArgs({
|
const LikedPlaylistRouteArgs({this.key, required this.playlist});
|
||||||
this.key,
|
|
||||||
required this.playlist,
|
|
||||||
});
|
|
||||||
|
|
||||||
final _i42.Key? key;
|
final _i42.Key? key;
|
||||||
|
|
||||||
@ -471,10 +419,7 @@ class LocalLibraryRouteArgs {
|
|||||||
/// [_i14.LogsPage]
|
/// [_i14.LogsPage]
|
||||||
class LogsRoute extends _i41.PageRouteInfo<void> {
|
class LogsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const LogsRoute({List<_i41.PageRouteInfo>? children})
|
const LogsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(LogsRoute.name, initialChildren: children);
|
||||||
LogsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'LogsRoute';
|
static const String name = 'LogsRoute';
|
||||||
|
|
||||||
@ -490,10 +435,7 @@ class LogsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i15.LyricsPage]
|
/// [_i15.LyricsPage]
|
||||||
class LyricsRoute extends _i41.PageRouteInfo<void> {
|
class LyricsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const LyricsRoute({List<_i41.PageRouteInfo>? children})
|
const LyricsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(LyricsRoute.name, initialChildren: children);
|
||||||
LyricsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'LyricsRoute';
|
static const String name = 'LyricsRoute';
|
||||||
|
|
||||||
@ -514,10 +456,7 @@ class MiniLyricsRoute extends _i41.PageRouteInfo<MiniLyricsRouteArgs> {
|
|||||||
List<_i41.PageRouteInfo>? children,
|
List<_i41.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
MiniLyricsRoute.name,
|
MiniLyricsRoute.name,
|
||||||
args: MiniLyricsRouteArgs(
|
args: MiniLyricsRouteArgs(key: key, prevSize: prevSize),
|
||||||
key: key,
|
|
||||||
prevSize: prevSize,
|
|
||||||
),
|
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -527,19 +466,13 @@ class MiniLyricsRoute extends _i41.PageRouteInfo<MiniLyricsRouteArgs> {
|
|||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final args = data.argsAs<MiniLyricsRouteArgs>();
|
final args = data.argsAs<MiniLyricsRouteArgs>();
|
||||||
return _i16.MiniLyricsPage(
|
return _i16.MiniLyricsPage(key: args.key, prevSize: args.prevSize);
|
||||||
key: args.key,
|
|
||||||
prevSize: args.prevSize,
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class MiniLyricsRouteArgs {
|
class MiniLyricsRouteArgs {
|
||||||
const MiniLyricsRouteArgs({
|
const MiniLyricsRouteArgs({this.key, required this.prevSize});
|
||||||
this.key,
|
|
||||||
required this.prevSize,
|
|
||||||
});
|
|
||||||
|
|
||||||
final _i44.Key? key;
|
final _i44.Key? key;
|
||||||
|
|
||||||
@ -555,10 +488,7 @@ class MiniLyricsRouteArgs {
|
|||||||
/// [_i17.PlayerLyricsPage]
|
/// [_i17.PlayerLyricsPage]
|
||||||
class PlayerLyricsRoute extends _i41.PageRouteInfo<void> {
|
class PlayerLyricsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const PlayerLyricsRoute({List<_i41.PageRouteInfo>? children})
|
const PlayerLyricsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(PlayerLyricsRoute.name, initialChildren: children);
|
||||||
PlayerLyricsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'PlayerLyricsRoute';
|
static const String name = 'PlayerLyricsRoute';
|
||||||
|
|
||||||
@ -574,10 +504,7 @@ class PlayerLyricsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i18.PlayerQueuePage]
|
/// [_i18.PlayerQueuePage]
|
||||||
class PlayerQueueRoute extends _i41.PageRouteInfo<void> {
|
class PlayerQueueRoute extends _i41.PageRouteInfo<void> {
|
||||||
const PlayerQueueRoute({List<_i41.PageRouteInfo>? children})
|
const PlayerQueueRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(PlayerQueueRoute.name, initialChildren: children);
|
||||||
PlayerQueueRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'PlayerQueueRoute';
|
static const String name = 'PlayerQueueRoute';
|
||||||
|
|
||||||
@ -593,10 +520,7 @@ class PlayerQueueRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i19.PlayerTrackSourcesPage]
|
/// [_i19.PlayerTrackSourcesPage]
|
||||||
class PlayerTrackSourcesRoute extends _i41.PageRouteInfo<void> {
|
class PlayerTrackSourcesRoute extends _i41.PageRouteInfo<void> {
|
||||||
const PlayerTrackSourcesRoute({List<_i41.PageRouteInfo>? children})
|
const PlayerTrackSourcesRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(PlayerTrackSourcesRoute.name, initialChildren: children);
|
||||||
PlayerTrackSourcesRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'PlayerTrackSourcesRoute';
|
static const String name = 'PlayerTrackSourcesRoute';
|
||||||
|
|
||||||
@ -618,11 +542,7 @@ class PlaylistRoute extends _i41.PageRouteInfo<PlaylistRouteArgs> {
|
|||||||
List<_i41.PageRouteInfo>? children,
|
List<_i41.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
PlaylistRoute.name,
|
PlaylistRoute.name,
|
||||||
args: PlaylistRouteArgs(
|
args: PlaylistRouteArgs(key: key, id: id, playlist: playlist),
|
||||||
key: key,
|
|
||||||
id: id,
|
|
||||||
playlist: playlist,
|
|
||||||
),
|
|
||||||
rawPathParams: {'id': id},
|
rawPathParams: {'id': id},
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
);
|
);
|
||||||
@ -643,11 +563,7 @@ class PlaylistRoute extends _i41.PageRouteInfo<PlaylistRouteArgs> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class PlaylistRouteArgs {
|
class PlaylistRouteArgs {
|
||||||
const PlaylistRouteArgs({
|
const PlaylistRouteArgs({this.key, required this.id, required this.playlist});
|
||||||
this.key,
|
|
||||||
required this.id,
|
|
||||||
required this.playlist,
|
|
||||||
});
|
|
||||||
|
|
||||||
final _i42.Key? key;
|
final _i42.Key? key;
|
||||||
|
|
||||||
@ -665,10 +581,7 @@ class PlaylistRouteArgs {
|
|||||||
/// [_i21.ProfilePage]
|
/// [_i21.ProfilePage]
|
||||||
class ProfileRoute extends _i41.PageRouteInfo<void> {
|
class ProfileRoute extends _i41.PageRouteInfo<void> {
|
||||||
const ProfileRoute({List<_i41.PageRouteInfo>? children})
|
const ProfileRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(ProfileRoute.name, initialChildren: children);
|
||||||
ProfileRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'ProfileRoute';
|
static const String name = 'ProfileRoute';
|
||||||
|
|
||||||
@ -684,10 +597,7 @@ class ProfileRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i22.RootAppPage]
|
/// [_i22.RootAppPage]
|
||||||
class RootAppRoute extends _i41.PageRouteInfo<void> {
|
class RootAppRoute extends _i41.PageRouteInfo<void> {
|
||||||
const RootAppRoute({List<_i41.PageRouteInfo>? children})
|
const RootAppRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(RootAppRoute.name, initialChildren: children);
|
||||||
RootAppRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'RootAppRoute';
|
static const String name = 'RootAppRoute';
|
||||||
|
|
||||||
@ -703,10 +613,7 @@ class RootAppRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i23.SearchPage]
|
/// [_i23.SearchPage]
|
||||||
class SearchRoute extends _i41.PageRouteInfo<void> {
|
class SearchRoute extends _i41.PageRouteInfo<void> {
|
||||||
const SearchRoute({List<_i41.PageRouteInfo>? children})
|
const SearchRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(SearchRoute.name, initialChildren: children);
|
||||||
SearchRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'SearchRoute';
|
static const String name = 'SearchRoute';
|
||||||
|
|
||||||
@ -775,10 +682,7 @@ class SettingsMetadataProviderFormRouteArgs {
|
|||||||
/// [_i25.SettingsMetadataProviderPage]
|
/// [_i25.SettingsMetadataProviderPage]
|
||||||
class SettingsMetadataProviderRoute extends _i41.PageRouteInfo<void> {
|
class SettingsMetadataProviderRoute extends _i41.PageRouteInfo<void> {
|
||||||
const SettingsMetadataProviderRoute({List<_i41.PageRouteInfo>? children})
|
const SettingsMetadataProviderRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(SettingsMetadataProviderRoute.name, initialChildren: children);
|
||||||
SettingsMetadataProviderRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'SettingsMetadataProviderRoute';
|
static const String name = 'SettingsMetadataProviderRoute';
|
||||||
|
|
||||||
@ -794,10 +698,7 @@ class SettingsMetadataProviderRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i26.SettingsPage]
|
/// [_i26.SettingsPage]
|
||||||
class SettingsRoute extends _i41.PageRouteInfo<void> {
|
class SettingsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const SettingsRoute({List<_i41.PageRouteInfo>? children})
|
const SettingsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(SettingsRoute.name, initialChildren: children);
|
||||||
SettingsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'SettingsRoute';
|
static const String name = 'SettingsRoute';
|
||||||
|
|
||||||
@ -813,10 +714,7 @@ class SettingsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i27.SettingsScrobblingPage]
|
/// [_i27.SettingsScrobblingPage]
|
||||||
class SettingsScrobblingRoute extends _i41.PageRouteInfo<void> {
|
class SettingsScrobblingRoute extends _i41.PageRouteInfo<void> {
|
||||||
const SettingsScrobblingRoute({List<_i41.PageRouteInfo>? children})
|
const SettingsScrobblingRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(SettingsScrobblingRoute.name, initialChildren: children);
|
||||||
SettingsScrobblingRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'SettingsScrobblingRoute';
|
static const String name = 'SettingsScrobblingRoute';
|
||||||
|
|
||||||
@ -832,10 +730,7 @@ class SettingsScrobblingRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i28.StatsAlbumsPage]
|
/// [_i28.StatsAlbumsPage]
|
||||||
class StatsAlbumsRoute extends _i41.PageRouteInfo<void> {
|
class StatsAlbumsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const StatsAlbumsRoute({List<_i41.PageRouteInfo>? children})
|
const StatsAlbumsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(StatsAlbumsRoute.name, initialChildren: children);
|
||||||
StatsAlbumsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'StatsAlbumsRoute';
|
static const String name = 'StatsAlbumsRoute';
|
||||||
|
|
||||||
@ -851,10 +746,7 @@ class StatsAlbumsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i29.StatsArtistsPage]
|
/// [_i29.StatsArtistsPage]
|
||||||
class StatsArtistsRoute extends _i41.PageRouteInfo<void> {
|
class StatsArtistsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const StatsArtistsRoute({List<_i41.PageRouteInfo>? children})
|
const StatsArtistsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(StatsArtistsRoute.name, initialChildren: children);
|
||||||
StatsArtistsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'StatsArtistsRoute';
|
static const String name = 'StatsArtistsRoute';
|
||||||
|
|
||||||
@ -870,10 +762,7 @@ class StatsArtistsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i30.StatsMinutesPage]
|
/// [_i30.StatsMinutesPage]
|
||||||
class StatsMinutesRoute extends _i41.PageRouteInfo<void> {
|
class StatsMinutesRoute extends _i41.PageRouteInfo<void> {
|
||||||
const StatsMinutesRoute({List<_i41.PageRouteInfo>? children})
|
const StatsMinutesRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(StatsMinutesRoute.name, initialChildren: children);
|
||||||
StatsMinutesRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'StatsMinutesRoute';
|
static const String name = 'StatsMinutesRoute';
|
||||||
|
|
||||||
@ -889,10 +778,7 @@ class StatsMinutesRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i31.StatsPage]
|
/// [_i31.StatsPage]
|
||||||
class StatsRoute extends _i41.PageRouteInfo<void> {
|
class StatsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const StatsRoute({List<_i41.PageRouteInfo>? children})
|
const StatsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(StatsRoute.name, initialChildren: children);
|
||||||
StatsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'StatsRoute';
|
static const String name = 'StatsRoute';
|
||||||
|
|
||||||
@ -908,10 +794,7 @@ class StatsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i32.StatsPlaylistsPage]
|
/// [_i32.StatsPlaylistsPage]
|
||||||
class StatsPlaylistsRoute extends _i41.PageRouteInfo<void> {
|
class StatsPlaylistsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const StatsPlaylistsRoute({List<_i41.PageRouteInfo>? children})
|
const StatsPlaylistsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(StatsPlaylistsRoute.name, initialChildren: children);
|
||||||
StatsPlaylistsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'StatsPlaylistsRoute';
|
static const String name = 'StatsPlaylistsRoute';
|
||||||
|
|
||||||
@ -927,10 +810,7 @@ class StatsPlaylistsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i33.StatsStreamFeesPage]
|
/// [_i33.StatsStreamFeesPage]
|
||||||
class StatsStreamFeesRoute extends _i41.PageRouteInfo<void> {
|
class StatsStreamFeesRoute extends _i41.PageRouteInfo<void> {
|
||||||
const StatsStreamFeesRoute({List<_i41.PageRouteInfo>? children})
|
const StatsStreamFeesRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(StatsStreamFeesRoute.name, initialChildren: children);
|
||||||
StatsStreamFeesRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'StatsStreamFeesRoute';
|
static const String name = 'StatsStreamFeesRoute';
|
||||||
|
|
||||||
@ -946,10 +826,7 @@ class StatsStreamFeesRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i34.StatsStreamsPage]
|
/// [_i34.StatsStreamsPage]
|
||||||
class StatsStreamsRoute extends _i41.PageRouteInfo<void> {
|
class StatsStreamsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const StatsStreamsRoute({List<_i41.PageRouteInfo>? children})
|
const StatsStreamsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(StatsStreamsRoute.name, initialChildren: children);
|
||||||
StatsStreamsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'StatsStreamsRoute';
|
static const String name = 'StatsStreamsRoute';
|
||||||
|
|
||||||
@ -970,10 +847,7 @@ class TrackRoute extends _i41.PageRouteInfo<TrackRouteArgs> {
|
|||||||
List<_i41.PageRouteInfo>? children,
|
List<_i41.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
TrackRoute.name,
|
TrackRoute.name,
|
||||||
args: TrackRouteArgs(
|
args: TrackRouteArgs(key: key, trackId: trackId),
|
||||||
key: key,
|
|
||||||
trackId: trackId,
|
|
||||||
),
|
|
||||||
rawPathParams: {'id': trackId},
|
rawPathParams: {'id': trackId},
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
);
|
);
|
||||||
@ -985,20 +859,15 @@ class TrackRoute extends _i41.PageRouteInfo<TrackRouteArgs> {
|
|||||||
builder: (data) {
|
builder: (data) {
|
||||||
final pathParams = data.inheritedPathParams;
|
final pathParams = data.inheritedPathParams;
|
||||||
final args = data.argsAs<TrackRouteArgs>(
|
final args = data.argsAs<TrackRouteArgs>(
|
||||||
orElse: () => TrackRouteArgs(trackId: pathParams.getString('id')));
|
orElse: () => TrackRouteArgs(trackId: pathParams.getString('id')),
|
||||||
return _i35.TrackPage(
|
|
||||||
key: args.key,
|
|
||||||
trackId: args.trackId,
|
|
||||||
);
|
);
|
||||||
|
return _i35.TrackPage(key: args.key, trackId: args.trackId);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
class TrackRouteArgs {
|
class TrackRouteArgs {
|
||||||
const TrackRouteArgs({
|
const TrackRouteArgs({this.key, required this.trackId});
|
||||||
this.key,
|
|
||||||
required this.trackId,
|
|
||||||
});
|
|
||||||
|
|
||||||
final _i44.Key? key;
|
final _i44.Key? key;
|
||||||
|
|
||||||
@ -1014,10 +883,7 @@ class TrackRouteArgs {
|
|||||||
/// [_i36.UserAlbumsPage]
|
/// [_i36.UserAlbumsPage]
|
||||||
class UserAlbumsRoute extends _i41.PageRouteInfo<void> {
|
class UserAlbumsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const UserAlbumsRoute({List<_i41.PageRouteInfo>? children})
|
const UserAlbumsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(UserAlbumsRoute.name, initialChildren: children);
|
||||||
UserAlbumsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'UserAlbumsRoute';
|
static const String name = 'UserAlbumsRoute';
|
||||||
|
|
||||||
@ -1033,10 +899,7 @@ class UserAlbumsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i37.UserArtistsPage]
|
/// [_i37.UserArtistsPage]
|
||||||
class UserArtistsRoute extends _i41.PageRouteInfo<void> {
|
class UserArtistsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const UserArtistsRoute({List<_i41.PageRouteInfo>? children})
|
const UserArtistsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(UserArtistsRoute.name, initialChildren: children);
|
||||||
UserArtistsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'UserArtistsRoute';
|
static const String name = 'UserArtistsRoute';
|
||||||
|
|
||||||
@ -1052,10 +915,7 @@ class UserArtistsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i38.UserDownloadsPage]
|
/// [_i38.UserDownloadsPage]
|
||||||
class UserDownloadsRoute extends _i41.PageRouteInfo<void> {
|
class UserDownloadsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const UserDownloadsRoute({List<_i41.PageRouteInfo>? children})
|
const UserDownloadsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(UserDownloadsRoute.name, initialChildren: children);
|
||||||
UserDownloadsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'UserDownloadsRoute';
|
static const String name = 'UserDownloadsRoute';
|
||||||
|
|
||||||
@ -1071,10 +931,7 @@ class UserDownloadsRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i39.UserLocalLibraryPage]
|
/// [_i39.UserLocalLibraryPage]
|
||||||
class UserLocalLibraryRoute extends _i41.PageRouteInfo<void> {
|
class UserLocalLibraryRoute extends _i41.PageRouteInfo<void> {
|
||||||
const UserLocalLibraryRoute({List<_i41.PageRouteInfo>? children})
|
const UserLocalLibraryRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(UserLocalLibraryRoute.name, initialChildren: children);
|
||||||
UserLocalLibraryRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'UserLocalLibraryRoute';
|
static const String name = 'UserLocalLibraryRoute';
|
||||||
|
|
||||||
@ -1090,10 +947,7 @@ class UserLocalLibraryRoute extends _i41.PageRouteInfo<void> {
|
|||||||
/// [_i40.UserPlaylistsPage]
|
/// [_i40.UserPlaylistsPage]
|
||||||
class UserPlaylistsRoute extends _i41.PageRouteInfo<void> {
|
class UserPlaylistsRoute extends _i41.PageRouteInfo<void> {
|
||||||
const UserPlaylistsRoute({List<_i41.PageRouteInfo>? children})
|
const UserPlaylistsRoute({List<_i41.PageRouteInfo>? children})
|
||||||
: super(
|
: super(UserPlaylistsRoute.name, initialChildren: children);
|
||||||
UserPlaylistsRoute.name,
|
|
||||||
initialChildren: children,
|
|
||||||
);
|
|
||||||
|
|
||||||
static const String name = 'UserPlaylistsRoute';
|
static const String name = 'UserPlaylistsRoute';
|
||||||
|
|
||||||
|
|||||||
@ -80,6 +80,7 @@ abstract class SpotubeIcons {
|
|||||||
static const hoverOff = Icons.back_hand_outlined;
|
static const hoverOff = Icons.back_hand_outlined;
|
||||||
static const dragHandle = Icons.drag_indicator;
|
static const dragHandle = Icons.drag_indicator;
|
||||||
static const lightning = Icons.flash_on_rounded;
|
static const lightning = Icons.flash_on_rounded;
|
||||||
|
static const lightningOutlined = FeatherIcons.zap;
|
||||||
static const colorSync = FeatherIcons.activity;
|
static const colorSync = FeatherIcons.activity;
|
||||||
static const language = FeatherIcons.globe;
|
static const language = FeatherIcons.globe;
|
||||||
static const error = FeatherIcons.alertTriangle;
|
static const error = FeatherIcons.alertTriangle;
|
||||||
|
|||||||
@ -463,5 +463,6 @@
|
|||||||
"audio_scrobblers": "Audio Scrobblers",
|
"audio_scrobblers": "Audio Scrobblers",
|
||||||
"scrobbling": "Scrobbling",
|
"scrobbling": "Scrobbling",
|
||||||
"source": "Source: ",
|
"source": "Source: ",
|
||||||
"uncompressed": "Uncompressed"
|
"uncompressed": "Uncompressed",
|
||||||
|
"dab_music_source_description": "For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching."
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2942,6 +2942,12 @@ abstract class AppLocalizations {
|
|||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Uncompressed'**
|
/// **'Uncompressed'**
|
||||||
String get uncompressed;
|
String get uncompressed;
|
||||||
|
|
||||||
|
/// No description provided for @dab_music_source_description.
|
||||||
|
///
|
||||||
|
/// In en, this message translates to:
|
||||||
|
/// **'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.'**
|
||||||
|
String get dab_music_source_description;
|
||||||
}
|
}
|
||||||
|
|
||||||
class _AppLocalizationsDelegate
|
class _AppLocalizationsDelegate
|
||||||
|
|||||||
@ -1543,4 +1543,8 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1544,4 +1544,8 @@ class AppLocalizationsBn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1554,4 +1554,8 @@ class AppLocalizationsCa extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1544,4 +1544,8 @@ class AppLocalizationsCs extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1556,4 +1556,8 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1542,4 +1542,8 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1557,4 +1557,8 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1554,4 +1554,8 @@ class AppLocalizationsEu extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1542,4 +1542,8 @@ class AppLocalizationsFa extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1542,4 +1542,8 @@ class AppLocalizationsFi extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1562,4 +1562,8 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1548,4 +1548,8 @@ class AppLocalizationsHi extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1550,4 +1550,8 @@ class AppLocalizationsId extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1549,4 +1549,8 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1513,4 +1513,8 @@ class AppLocalizationsJa extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1551,4 +1551,8 @@ class AppLocalizationsKa extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1517,4 +1517,8 @@ class AppLocalizationsKo extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1554,4 +1554,8 @@ class AppLocalizationsNe extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1548,4 +1548,8 @@ class AppLocalizationsNl extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1550,4 +1550,8 @@ class AppLocalizationsPl extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1547,4 +1547,8 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1550,4 +1550,8 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1556,4 +1556,8 @@ class AppLocalizationsTa extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1539,4 +1539,8 @@ class AppLocalizationsTh extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1557,4 +1557,8 @@ class AppLocalizationsTl extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1550,4 +1550,8 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1546,4 +1546,8 @@ class AppLocalizationsUk extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1552,4 +1552,8 @@ class AppLocalizationsVi extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1506,6 +1506,10 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get uncompressed => 'Uncompressed';
|
String get uncompressed => 'Uncompressed';
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get dab_music_source_description =>
|
||||||
|
'For audiophiles. Provides high-quality/lossless audio streams. Accurate ISRC based track matching.';
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
/// The translations for Chinese, as used in Taiwan (`zh_TW`).
|
||||||
|
|||||||
@ -112,8 +112,13 @@ mixin _$WebSocketLoadEventData {
|
|||||||
required TResult orElse(),
|
required TResult orElse(),
|
||||||
}) =>
|
}) =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Serializes this WebSocketLoadEventData to a JSON map.
|
||||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||||
@JsonKey(ignore: true)
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$WebSocketLoadEventDataCopyWith<WebSocketLoadEventData> get copyWith =>
|
$WebSocketLoadEventDataCopyWith<WebSocketLoadEventData> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -142,6 +147,8 @@ class _$WebSocketLoadEventDataCopyWithImpl<$Res,
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -190,6 +197,8 @@ class __$$WebSocketLoadEventDataPlaylistImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$WebSocketLoadEventDataPlaylistImpl) _then)
|
$Res Function(_$WebSocketLoadEventDataPlaylistImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -213,6 +222,8 @@ class __$$WebSocketLoadEventDataPlaylistImplCopyWithImpl<$Res>
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
$SpotubeSimplePlaylistObjectCopyWith<$Res>? get collection {
|
$SpotubeSimplePlaylistObjectCopyWith<$Res>? get collection {
|
||||||
@ -281,12 +292,14 @@ class _$WebSocketLoadEventDataPlaylistImpl
|
|||||||
other.initialIndex == initialIndex));
|
other.initialIndex == initialIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(runtimeType,
|
int get hashCode => Object.hash(runtimeType,
|
||||||
const DeepCollectionEquality().hash(_tracks), collection, initialIndex);
|
const DeepCollectionEquality().hash(_tracks), collection, initialIndex);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$WebSocketLoadEventDataPlaylistImplCopyWith<
|
_$$WebSocketLoadEventDataPlaylistImplCopyWith<
|
||||||
@ -420,8 +433,11 @@ abstract class WebSocketLoadEventDataPlaylist extends WebSocketLoadEventData {
|
|||||||
SpotubeSimplePlaylistObject? get collection;
|
SpotubeSimplePlaylistObject? get collection;
|
||||||
@override
|
@override
|
||||||
int? get initialIndex;
|
int? get initialIndex;
|
||||||
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$WebSocketLoadEventDataPlaylistImplCopyWith<
|
_$$WebSocketLoadEventDataPlaylistImplCopyWith<
|
||||||
_$WebSocketLoadEventDataPlaylistImpl>
|
_$WebSocketLoadEventDataPlaylistImpl>
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
get copyWith => throw _privateConstructorUsedError;
|
||||||
@ -456,6 +472,8 @@ class __$$WebSocketLoadEventDataAlbumImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$WebSocketLoadEventDataAlbumImpl) _then)
|
$Res Function(_$WebSocketLoadEventDataAlbumImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -479,6 +497,8 @@ class __$$WebSocketLoadEventDataAlbumImplCopyWithImpl<$Res>
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
$SpotubeSimpleAlbumObjectCopyWith<$Res>? get collection {
|
$SpotubeSimpleAlbumObjectCopyWith<$Res>? get collection {
|
||||||
@ -545,12 +565,14 @@ class _$WebSocketLoadEventDataAlbumImpl extends WebSocketLoadEventDataAlbum {
|
|||||||
other.initialIndex == initialIndex));
|
other.initialIndex == initialIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(runtimeType,
|
int get hashCode => Object.hash(runtimeType,
|
||||||
const DeepCollectionEquality().hash(_tracks), collection, initialIndex);
|
const DeepCollectionEquality().hash(_tracks), collection, initialIndex);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl>
|
_$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl>
|
||||||
@ -683,8 +705,11 @@ abstract class WebSocketLoadEventDataAlbum extends WebSocketLoadEventData {
|
|||||||
SpotubeSimpleAlbumObject? get collection;
|
SpotubeSimpleAlbumObject? get collection;
|
||||||
@override
|
@override
|
||||||
int? get initialIndex;
|
int? get initialIndex;
|
||||||
|
|
||||||
|
/// Create a copy of WebSocketLoadEventData
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl>
|
_$$WebSocketLoadEventDataAlbumImplCopyWith<_$WebSocketLoadEventDataAlbumImpl>
|
||||||
get copyWith => throw _privateConstructorUsedError;
|
get copyWith => throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,15 +18,12 @@ class $AuthenticationTableTable extends AuthenticationTable
|
|||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
defaultConstraints:
|
defaultConstraints:
|
||||||
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
|
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
|
||||||
static const VerificationMeta _cookieMeta = const VerificationMeta('cookie');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<DecryptedText, String> cookie =
|
late final GeneratedColumnWithTypeConverter<DecryptedText, String> cookie =
|
||||||
GeneratedColumn<String>('cookie', aliasedName, false,
|
GeneratedColumn<String>('cookie', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true)
|
type: DriftSqlType.string, requiredDuringInsert: true)
|
||||||
.withConverter<DecryptedText>(
|
.withConverter<DecryptedText>(
|
||||||
$AuthenticationTableTable.$convertercookie);
|
$AuthenticationTableTable.$convertercookie);
|
||||||
static const VerificationMeta _accessTokenMeta =
|
|
||||||
const VerificationMeta('accessToken');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<DecryptedText, String>
|
late final GeneratedColumnWithTypeConverter<DecryptedText, String>
|
||||||
accessToken = GeneratedColumn<String>('access_token', aliasedName, false,
|
accessToken = GeneratedColumn<String>('access_token', aliasedName, false,
|
||||||
@ -55,8 +52,6 @@ class $AuthenticationTableTable extends AuthenticationTable
|
|||||||
if (data.containsKey('id')) {
|
if (data.containsKey('id')) {
|
||||||
context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta));
|
context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta));
|
||||||
}
|
}
|
||||||
context.handle(_cookieMeta, const VerificationResult.success());
|
|
||||||
context.handle(_accessTokenMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('expiration')) {
|
if (data.containsKey('expiration')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_expirationMeta,
|
_expirationMeta,
|
||||||
@ -301,8 +296,6 @@ class $BlacklistTableTable extends BlacklistTable
|
|||||||
late final GeneratedColumn<String> name = GeneratedColumn<String>(
|
late final GeneratedColumn<String> name = GeneratedColumn<String>(
|
||||||
'name', aliasedName, false,
|
'name', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true);
|
type: DriftSqlType.string, requiredDuringInsert: true);
|
||||||
static const VerificationMeta _elementTypeMeta =
|
|
||||||
const VerificationMeta('elementType');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<BlacklistedType, String>
|
late final GeneratedColumnWithTypeConverter<BlacklistedType, String>
|
||||||
elementType = GeneratedColumn<String>('element_type', aliasedName, false,
|
elementType = GeneratedColumn<String>('element_type', aliasedName, false,
|
||||||
@ -336,7 +329,6 @@ class $BlacklistTableTable extends BlacklistTable
|
|||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_nameMeta);
|
context.missing(_nameMeta);
|
||||||
}
|
}
|
||||||
context.handle(_elementTypeMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('element_id')) {
|
if (data.containsKey('element_id')) {
|
||||||
context.handle(_elementIdMeta,
|
context.handle(_elementIdMeta,
|
||||||
elementId.isAcceptableOrUnknown(data['element_id']!, _elementIdMeta));
|
elementId.isAcceptableOrUnknown(data['element_id']!, _elementIdMeta));
|
||||||
@ -566,8 +558,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
defaultConstraints:
|
defaultConstraints:
|
||||||
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
|
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
|
||||||
static const VerificationMeta _audioQualityMeta =
|
|
||||||
const VerificationMeta('audioQuality');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<SourceQualities, String>
|
late final GeneratedColumnWithTypeConverter<SourceQualities, String>
|
||||||
audioQuality = GeneratedColumn<String>(
|
audioQuality = GeneratedColumn<String>(
|
||||||
@ -647,8 +637,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
defaultConstraints: GeneratedColumn.constraintIsAlways(
|
||||||
'CHECK ("skip_non_music" IN (0, 1))'),
|
'CHECK ("skip_non_music" IN (0, 1))'),
|
||||||
defaultValue: const Constant(false));
|
defaultValue: const Constant(false));
|
||||||
static const VerificationMeta _closeBehaviorMeta =
|
|
||||||
const VerificationMeta('closeBehavior');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<CloseBehavior, String>
|
late final GeneratedColumnWithTypeConverter<CloseBehavior, String>
|
||||||
closeBehavior = GeneratedColumn<String>(
|
closeBehavior = GeneratedColumn<String>(
|
||||||
@ -658,8 +646,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultValue: Constant(CloseBehavior.close.name))
|
defaultValue: Constant(CloseBehavior.close.name))
|
||||||
.withConverter<CloseBehavior>(
|
.withConverter<CloseBehavior>(
|
||||||
$PreferencesTableTable.$convertercloseBehavior);
|
$PreferencesTableTable.$convertercloseBehavior);
|
||||||
static const VerificationMeta _accentColorSchemeMeta =
|
|
||||||
const VerificationMeta('accentColorScheme');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<SpotubeColor, String>
|
late final GeneratedColumnWithTypeConverter<SpotubeColor, String>
|
||||||
accentColorScheme = GeneratedColumn<String>(
|
accentColorScheme = GeneratedColumn<String>(
|
||||||
@ -669,8 +655,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultValue: const Constant("Slate:0xff64748b"))
|
defaultValue: const Constant("Slate:0xff64748b"))
|
||||||
.withConverter<SpotubeColor>(
|
.withConverter<SpotubeColor>(
|
||||||
$PreferencesTableTable.$converteraccentColorScheme);
|
$PreferencesTableTable.$converteraccentColorScheme);
|
||||||
static const VerificationMeta _layoutModeMeta =
|
|
||||||
const VerificationMeta('layoutMode');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<LayoutMode, String> layoutMode =
|
late final GeneratedColumnWithTypeConverter<LayoutMode, String> layoutMode =
|
||||||
GeneratedColumn<String>('layout_mode', aliasedName, false,
|
GeneratedColumn<String>('layout_mode', aliasedName, false,
|
||||||
@ -679,7 +663,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultValue: Constant(LayoutMode.adaptive.name))
|
defaultValue: Constant(LayoutMode.adaptive.name))
|
||||||
.withConverter<LayoutMode>(
|
.withConverter<LayoutMode>(
|
||||||
$PreferencesTableTable.$converterlayoutMode);
|
$PreferencesTableTable.$converterlayoutMode);
|
||||||
static const VerificationMeta _localeMeta = const VerificationMeta('locale');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<Locale, String> locale =
|
late final GeneratedColumnWithTypeConverter<Locale, String> locale =
|
||||||
GeneratedColumn<String>('locale', aliasedName, false,
|
GeneratedColumn<String>('locale', aliasedName, false,
|
||||||
@ -688,7 +671,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultValue: const Constant(
|
defaultValue: const Constant(
|
||||||
'{"languageCode":"system","countryCode":"system"}'))
|
'{"languageCode":"system","countryCode":"system"}'))
|
||||||
.withConverter<Locale>($PreferencesTableTable.$converterlocale);
|
.withConverter<Locale>($PreferencesTableTable.$converterlocale);
|
||||||
static const VerificationMeta _marketMeta = const VerificationMeta('market');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<Market, String> market =
|
late final GeneratedColumnWithTypeConverter<Market, String> market =
|
||||||
GeneratedColumn<String>('market', aliasedName, false,
|
GeneratedColumn<String>('market', aliasedName, false,
|
||||||
@ -696,8 +678,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
defaultValue: Constant(Market.US.name))
|
defaultValue: Constant(Market.US.name))
|
||||||
.withConverter<Market>($PreferencesTableTable.$convertermarket);
|
.withConverter<Market>($PreferencesTableTable.$convertermarket);
|
||||||
static const VerificationMeta _searchModeMeta =
|
|
||||||
const VerificationMeta('searchMode');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<SearchMode, String> searchMode =
|
late final GeneratedColumnWithTypeConverter<SearchMode, String> searchMode =
|
||||||
GeneratedColumn<String>('search_mode', aliasedName, false,
|
GeneratedColumn<String>('search_mode', aliasedName, false,
|
||||||
@ -714,8 +694,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
type: DriftSqlType.string,
|
type: DriftSqlType.string,
|
||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
defaultValue: const Constant(""));
|
defaultValue: const Constant(""));
|
||||||
static const VerificationMeta _localLibraryLocationMeta =
|
|
||||||
const VerificationMeta('localLibraryLocation');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<List<String>, String>
|
late final GeneratedColumnWithTypeConverter<List<String>, String>
|
||||||
localLibraryLocation = GeneratedColumn<String>(
|
localLibraryLocation = GeneratedColumn<String>(
|
||||||
@ -741,8 +719,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
type: DriftSqlType.string,
|
type: DriftSqlType.string,
|
||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
defaultValue: const Constant("https://inv.nadeko.net"));
|
defaultValue: const Constant("https://inv.nadeko.net"));
|
||||||
static const VerificationMeta _themeModeMeta =
|
|
||||||
const VerificationMeta('themeMode');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<ThemeMode, String> themeMode =
|
late final GeneratedColumnWithTypeConverter<ThemeMode, String> themeMode =
|
||||||
GeneratedColumn<String>('theme_mode', aliasedName, false,
|
GeneratedColumn<String>('theme_mode', aliasedName, false,
|
||||||
@ -750,8 +726,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
defaultValue: Constant(ThemeMode.system.name))
|
defaultValue: Constant(ThemeMode.system.name))
|
||||||
.withConverter<ThemeMode>($PreferencesTableTable.$converterthemeMode);
|
.withConverter<ThemeMode>($PreferencesTableTable.$converterthemeMode);
|
||||||
static const VerificationMeta _audioSourceMeta =
|
|
||||||
const VerificationMeta('audioSource');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<AudioSource, String> audioSource =
|
late final GeneratedColumnWithTypeConverter<AudioSource, String> audioSource =
|
||||||
GeneratedColumn<String>('audio_source', aliasedName, false,
|
GeneratedColumn<String>('audio_source', aliasedName, false,
|
||||||
@ -760,8 +734,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultValue: Constant(AudioSource.youtube.name))
|
defaultValue: Constant(AudioSource.youtube.name))
|
||||||
.withConverter<AudioSource>(
|
.withConverter<AudioSource>(
|
||||||
$PreferencesTableTable.$converteraudioSource);
|
$PreferencesTableTable.$converteraudioSource);
|
||||||
static const VerificationMeta _youtubeClientEngineMeta =
|
|
||||||
const VerificationMeta('youtubeClientEngine');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<YoutubeClientEngine, String>
|
late final GeneratedColumnWithTypeConverter<YoutubeClientEngine, String>
|
||||||
youtubeClientEngine = GeneratedColumn<String>(
|
youtubeClientEngine = GeneratedColumn<String>(
|
||||||
@ -771,8 +743,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultValue: Constant(YoutubeClientEngine.youtubeExplode.name))
|
defaultValue: Constant(YoutubeClientEngine.youtubeExplode.name))
|
||||||
.withConverter<YoutubeClientEngine>(
|
.withConverter<YoutubeClientEngine>(
|
||||||
$PreferencesTableTable.$converteryoutubeClientEngine);
|
$PreferencesTableTable.$converteryoutubeClientEngine);
|
||||||
static const VerificationMeta _streamMusicCodecMeta =
|
|
||||||
const VerificationMeta('streamMusicCodec');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<SourceCodecs, String>
|
late final GeneratedColumnWithTypeConverter<SourceCodecs, String>
|
||||||
streamMusicCodec = GeneratedColumn<String>(
|
streamMusicCodec = GeneratedColumn<String>(
|
||||||
@ -782,8 +752,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
defaultValue: Constant(SourceCodecs.weba.name))
|
defaultValue: Constant(SourceCodecs.weba.name))
|
||||||
.withConverter<SourceCodecs>(
|
.withConverter<SourceCodecs>(
|
||||||
$PreferencesTableTable.$converterstreamMusicCodec);
|
$PreferencesTableTable.$converterstreamMusicCodec);
|
||||||
static const VerificationMeta _downloadMusicCodecMeta =
|
|
||||||
const VerificationMeta('downloadMusicCodec');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<SourceCodecs, String>
|
late final GeneratedColumnWithTypeConverter<SourceCodecs, String>
|
||||||
downloadMusicCodec = GeneratedColumn<String>(
|
downloadMusicCodec = GeneratedColumn<String>(
|
||||||
@ -887,7 +855,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
if (data.containsKey('id')) {
|
if (data.containsKey('id')) {
|
||||||
context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta));
|
context.handle(_idMeta, id.isAcceptableOrUnknown(data['id']!, _idMeta));
|
||||||
}
|
}
|
||||||
context.handle(_audioQualityMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('album_color_sync')) {
|
if (data.containsKey('album_color_sync')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_albumColorSyncMeta,
|
_albumColorSyncMeta,
|
||||||
@ -930,20 +897,12 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
skipNonMusic.isAcceptableOrUnknown(
|
skipNonMusic.isAcceptableOrUnknown(
|
||||||
data['skip_non_music']!, _skipNonMusicMeta));
|
data['skip_non_music']!, _skipNonMusicMeta));
|
||||||
}
|
}
|
||||||
context.handle(_closeBehaviorMeta, const VerificationResult.success());
|
|
||||||
context.handle(_accentColorSchemeMeta, const VerificationResult.success());
|
|
||||||
context.handle(_layoutModeMeta, const VerificationResult.success());
|
|
||||||
context.handle(_localeMeta, const VerificationResult.success());
|
|
||||||
context.handle(_marketMeta, const VerificationResult.success());
|
|
||||||
context.handle(_searchModeMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('download_location')) {
|
if (data.containsKey('download_location')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_downloadLocationMeta,
|
_downloadLocationMeta,
|
||||||
downloadLocation.isAcceptableOrUnknown(
|
downloadLocation.isAcceptableOrUnknown(
|
||||||
data['download_location']!, _downloadLocationMeta));
|
data['download_location']!, _downloadLocationMeta));
|
||||||
}
|
}
|
||||||
context.handle(
|
|
||||||
_localLibraryLocationMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('piped_instance')) {
|
if (data.containsKey('piped_instance')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_pipedInstanceMeta,
|
_pipedInstanceMeta,
|
||||||
@ -956,12 +915,6 @@ class $PreferencesTableTable extends PreferencesTable
|
|||||||
invidiousInstance.isAcceptableOrUnknown(
|
invidiousInstance.isAcceptableOrUnknown(
|
||||||
data['invidious_instance']!, _invidiousInstanceMeta));
|
data['invidious_instance']!, _invidiousInstanceMeta));
|
||||||
}
|
}
|
||||||
context.handle(_themeModeMeta, const VerificationResult.success());
|
|
||||||
context.handle(_audioSourceMeta, const VerificationResult.success());
|
|
||||||
context.handle(
|
|
||||||
_youtubeClientEngineMeta, const VerificationResult.success());
|
|
||||||
context.handle(_streamMusicCodecMeta, const VerificationResult.success());
|
|
||||||
context.handle(_downloadMusicCodecMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('discord_presence')) {
|
if (data.containsKey('discord_presence')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_discordPresenceMeta,
|
_discordPresenceMeta,
|
||||||
@ -2030,8 +1983,6 @@ class $ScrobblerTableTable extends ScrobblerTable
|
|||||||
late final GeneratedColumn<String> username = GeneratedColumn<String>(
|
late final GeneratedColumn<String> username = GeneratedColumn<String>(
|
||||||
'username', aliasedName, false,
|
'username', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true);
|
type: DriftSqlType.string, requiredDuringInsert: true);
|
||||||
static const VerificationMeta _passwordHashMeta =
|
|
||||||
const VerificationMeta('passwordHash');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<DecryptedText, String>
|
late final GeneratedColumnWithTypeConverter<DecryptedText, String>
|
||||||
passwordHash = GeneratedColumn<String>(
|
passwordHash = GeneratedColumn<String>(
|
||||||
@ -2064,7 +2015,6 @@ class $ScrobblerTableTable extends ScrobblerTable
|
|||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_usernameMeta);
|
context.missing(_usernameMeta);
|
||||||
}
|
}
|
||||||
context.handle(_passwordHashMeta, const VerificationResult.success());
|
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2595,8 +2545,6 @@ class $SourceMatchTableTable extends SourceMatchTable
|
|||||||
late final GeneratedColumn<String> sourceId = GeneratedColumn<String>(
|
late final GeneratedColumn<String> sourceId = GeneratedColumn<String>(
|
||||||
'source_id', aliasedName, false,
|
'source_id', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true);
|
type: DriftSqlType.string, requiredDuringInsert: true);
|
||||||
static const VerificationMeta _sourceTypeMeta =
|
|
||||||
const VerificationMeta('sourceType');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<SourceType, String> sourceType =
|
late final GeneratedColumnWithTypeConverter<SourceType, String> sourceType =
|
||||||
GeneratedColumn<String>('source_type', aliasedName, false,
|
GeneratedColumn<String>('source_type', aliasedName, false,
|
||||||
@ -2642,7 +2590,6 @@ class $SourceMatchTableTable extends SourceMatchTable
|
|||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_sourceIdMeta);
|
context.missing(_sourceIdMeta);
|
||||||
}
|
}
|
||||||
context.handle(_sourceTypeMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('created_at')) {
|
if (data.containsKey('created_at')) {
|
||||||
context.handle(_createdAtMeta,
|
context.handle(_createdAtMeta,
|
||||||
createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta));
|
createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta));
|
||||||
@ -2901,8 +2848,6 @@ class $AudioPlayerStateTableTable extends AudioPlayerStateTable
|
|||||||
requiredDuringInsert: true,
|
requiredDuringInsert: true,
|
||||||
defaultConstraints:
|
defaultConstraints:
|
||||||
GeneratedColumn.constraintIsAlways('CHECK ("playing" IN (0, 1))'));
|
GeneratedColumn.constraintIsAlways('CHECK ("playing" IN (0, 1))'));
|
||||||
static const VerificationMeta _loopModeMeta =
|
|
||||||
const VerificationMeta('loopMode');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<PlaylistMode, String> loopMode =
|
late final GeneratedColumnWithTypeConverter<PlaylistMode, String> loopMode =
|
||||||
GeneratedColumn<String>('loop_mode', aliasedName, false,
|
GeneratedColumn<String>('loop_mode', aliasedName, false,
|
||||||
@ -2918,15 +2863,12 @@ class $AudioPlayerStateTableTable extends AudioPlayerStateTable
|
|||||||
requiredDuringInsert: true,
|
requiredDuringInsert: true,
|
||||||
defaultConstraints:
|
defaultConstraints:
|
||||||
GeneratedColumn.constraintIsAlways('CHECK ("shuffled" IN (0, 1))'));
|
GeneratedColumn.constraintIsAlways('CHECK ("shuffled" IN (0, 1))'));
|
||||||
static const VerificationMeta _collectionsMeta =
|
|
||||||
const VerificationMeta('collections');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<List<String>, String>
|
late final GeneratedColumnWithTypeConverter<List<String>, String>
|
||||||
collections = GeneratedColumn<String>('collections', aliasedName, false,
|
collections = GeneratedColumn<String>('collections', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true)
|
type: DriftSqlType.string, requiredDuringInsert: true)
|
||||||
.withConverter<List<String>>(
|
.withConverter<List<String>>(
|
||||||
$AudioPlayerStateTableTable.$convertercollections);
|
$AudioPlayerStateTableTable.$convertercollections);
|
||||||
static const VerificationMeta _tracksMeta = const VerificationMeta('tracks');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<List<SpotubeTrackObject>, String>
|
late final GeneratedColumnWithTypeConverter<List<SpotubeTrackObject>, String>
|
||||||
tracks = GeneratedColumn<String>('tracks', aliasedName, false,
|
tracks = GeneratedColumn<String>('tracks', aliasedName, false,
|
||||||
@ -2966,15 +2908,12 @@ class $AudioPlayerStateTableTable extends AudioPlayerStateTable
|
|||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_playingMeta);
|
context.missing(_playingMeta);
|
||||||
}
|
}
|
||||||
context.handle(_loopModeMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('shuffled')) {
|
if (data.containsKey('shuffled')) {
|
||||||
context.handle(_shuffledMeta,
|
context.handle(_shuffledMeta,
|
||||||
shuffled.isAcceptableOrUnknown(data['shuffled']!, _shuffledMeta));
|
shuffled.isAcceptableOrUnknown(data['shuffled']!, _shuffledMeta));
|
||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_shuffledMeta);
|
context.missing(_shuffledMeta);
|
||||||
}
|
}
|
||||||
context.handle(_collectionsMeta, const VerificationResult.success());
|
|
||||||
context.handle(_tracksMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('current_index')) {
|
if (data.containsKey('current_index')) {
|
||||||
context.handle(
|
context.handle(
|
||||||
_currentIndexMeta,
|
_currentIndexMeta,
|
||||||
@ -3305,7 +3244,6 @@ class $HistoryTableTable extends HistoryTable
|
|||||||
type: DriftSqlType.dateTime,
|
type: DriftSqlType.dateTime,
|
||||||
requiredDuringInsert: false,
|
requiredDuringInsert: false,
|
||||||
defaultValue: currentDateAndTime);
|
defaultValue: currentDateAndTime);
|
||||||
static const VerificationMeta _typeMeta = const VerificationMeta('type');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<HistoryEntryType, String> type =
|
late final GeneratedColumnWithTypeConverter<HistoryEntryType, String> type =
|
||||||
GeneratedColumn<String>('type', aliasedName, false,
|
GeneratedColumn<String>('type', aliasedName, false,
|
||||||
@ -3316,7 +3254,6 @@ class $HistoryTableTable extends HistoryTable
|
|||||||
late final GeneratedColumn<String> itemId = GeneratedColumn<String>(
|
late final GeneratedColumn<String> itemId = GeneratedColumn<String>(
|
||||||
'item_id', aliasedName, false,
|
'item_id', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true);
|
type: DriftSqlType.string, requiredDuringInsert: true);
|
||||||
static const VerificationMeta _dataMeta = const VerificationMeta('data');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<Map<String, dynamic>, String>
|
late final GeneratedColumnWithTypeConverter<Map<String, dynamic>, String>
|
||||||
data = GeneratedColumn<String>('data', aliasedName, false,
|
data = GeneratedColumn<String>('data', aliasedName, false,
|
||||||
@ -3342,14 +3279,12 @@ class $HistoryTableTable extends HistoryTable
|
|||||||
context.handle(_createdAtMeta,
|
context.handle(_createdAtMeta,
|
||||||
createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta));
|
createdAt.isAcceptableOrUnknown(data['created_at']!, _createdAtMeta));
|
||||||
}
|
}
|
||||||
context.handle(_typeMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('item_id')) {
|
if (data.containsKey('item_id')) {
|
||||||
context.handle(_itemIdMeta,
|
context.handle(_itemIdMeta,
|
||||||
itemId.isAcceptableOrUnknown(data['item_id']!, _itemIdMeta));
|
itemId.isAcceptableOrUnknown(data['item_id']!, _itemIdMeta));
|
||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_itemIdMeta);
|
context.missing(_itemIdMeta);
|
||||||
}
|
}
|
||||||
context.handle(_dataMeta, const VerificationResult.success());
|
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3608,7 +3543,6 @@ class $LyricsTableTable extends LyricsTable
|
|||||||
late final GeneratedColumn<String> trackId = GeneratedColumn<String>(
|
late final GeneratedColumn<String> trackId = GeneratedColumn<String>(
|
||||||
'track_id', aliasedName, false,
|
'track_id', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true);
|
type: DriftSqlType.string, requiredDuringInsert: true);
|
||||||
static const VerificationMeta _dataMeta = const VerificationMeta('data');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<SubtitleSimple, String> data =
|
late final GeneratedColumnWithTypeConverter<SubtitleSimple, String> data =
|
||||||
GeneratedColumn<String>('data', aliasedName, false,
|
GeneratedColumn<String>('data', aliasedName, false,
|
||||||
@ -3635,7 +3569,6 @@ class $LyricsTableTable extends LyricsTable
|
|||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_trackIdMeta);
|
context.missing(_trackIdMeta);
|
||||||
}
|
}
|
||||||
context.handle(_dataMeta, const VerificationResult.success());
|
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3853,15 +3786,12 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable
|
|||||||
late final GeneratedColumn<String> entryPoint = GeneratedColumn<String>(
|
late final GeneratedColumn<String> entryPoint = GeneratedColumn<String>(
|
||||||
'entry_point', aliasedName, false,
|
'entry_point', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true);
|
type: DriftSqlType.string, requiredDuringInsert: true);
|
||||||
static const VerificationMeta _apisMeta = const VerificationMeta('apis');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<List<String>, String> apis =
|
late final GeneratedColumnWithTypeConverter<List<String>, String> apis =
|
||||||
GeneratedColumn<String>('apis', aliasedName, false,
|
GeneratedColumn<String>('apis', aliasedName, false,
|
||||||
type: DriftSqlType.string, requiredDuringInsert: true)
|
type: DriftSqlType.string, requiredDuringInsert: true)
|
||||||
.withConverter<List<String>>(
|
.withConverter<List<String>>(
|
||||||
$MetadataPluginsTableTable.$converterapis);
|
$MetadataPluginsTableTable.$converterapis);
|
||||||
static const VerificationMeta _abilitiesMeta =
|
|
||||||
const VerificationMeta('abilities');
|
|
||||||
@override
|
@override
|
||||||
late final GeneratedColumnWithTypeConverter<List<String>, String> abilities =
|
late final GeneratedColumnWithTypeConverter<List<String>, String> abilities =
|
||||||
GeneratedColumn<String>('abilities', aliasedName, false,
|
GeneratedColumn<String>('abilities', aliasedName, false,
|
||||||
@ -3954,8 +3884,6 @@ class $MetadataPluginsTableTable extends MetadataPluginsTable
|
|||||||
} else if (isInserting) {
|
} else if (isInserting) {
|
||||||
context.missing(_entryPointMeta);
|
context.missing(_entryPointMeta);
|
||||||
}
|
}
|
||||||
context.handle(_apisMeta, const VerificationResult.success());
|
|
||||||
context.handle(_abilitiesMeta, const VerificationResult.success());
|
|
||||||
if (data.containsKey('selected')) {
|
if (data.containsKey('selected')) {
|
||||||
context.handle(_selectedMeta,
|
context.handle(_selectedMeta,
|
||||||
selected.isAcceptableOrUnknown(data['selected']!, _selectedMeta));
|
selected.isAcceptableOrUnknown(data['selected']!, _selectedMeta));
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -103,6 +103,7 @@ class TrackSource with _$TrackSource {
|
|||||||
required SourceQualities quality,
|
required SourceQualities quality,
|
||||||
required SourceCodecs codec,
|
required SourceCodecs codec,
|
||||||
required String bitrate,
|
required String bitrate,
|
||||||
|
required String qualityLabel,
|
||||||
}) = _TrackSource;
|
}) = _TrackSource;
|
||||||
|
|
||||||
factory TrackSource.fromJson(Map<String, dynamic> json) =>
|
factory TrackSource.fromJson(Map<String, dynamic> json) =>
|
||||||
|
|||||||
@ -28,8 +28,12 @@ mixin _$TrackSourceQuery {
|
|||||||
String get isrc => throw _privateConstructorUsedError;
|
String get isrc => throw _privateConstructorUsedError;
|
||||||
bool get explicit => throw _privateConstructorUsedError;
|
bool get explicit => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Serializes this TrackSourceQuery to a JSON map.
|
||||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||||
@JsonKey(ignore: true)
|
|
||||||
|
/// Create a copy of TrackSourceQuery
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$TrackSourceQueryCopyWith<TrackSourceQuery> get copyWith =>
|
$TrackSourceQueryCopyWith<TrackSourceQuery> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -60,6 +64,8 @@ class _$TrackSourceQueryCopyWithImpl<$Res, $Val extends TrackSourceQuery>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of TrackSourceQuery
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -130,6 +136,8 @@ class __$$TrackSourceQueryImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$TrackSourceQueryImpl) _then)
|
$Res Function(_$TrackSourceQueryImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of TrackSourceQuery
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -233,7 +241,7 @@ class _$TrackSourceQueryImpl extends _TrackSourceQuery {
|
|||||||
other.explicit == explicit));
|
other.explicit == explicit));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(
|
int get hashCode => Object.hash(
|
||||||
runtimeType,
|
runtimeType,
|
||||||
@ -245,7 +253,9 @@ class _$TrackSourceQueryImpl extends _TrackSourceQuery {
|
|||||||
isrc,
|
isrc,
|
||||||
explicit);
|
explicit);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of TrackSourceQuery
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith =>
|
_$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith =>
|
||||||
@ -288,8 +298,11 @@ abstract class _TrackSourceQuery extends TrackSourceQuery {
|
|||||||
String get isrc;
|
String get isrc;
|
||||||
@override
|
@override
|
||||||
bool get explicit;
|
bool get explicit;
|
||||||
|
|
||||||
|
/// Create a copy of TrackSourceQuery
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith =>
|
_$$TrackSourceQueryImplCopyWith<_$TrackSourceQueryImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -307,8 +320,12 @@ mixin _$TrackSourceInfo {
|
|||||||
String get pageUrl => throw _privateConstructorUsedError;
|
String get pageUrl => throw _privateConstructorUsedError;
|
||||||
int get durationMs => throw _privateConstructorUsedError;
|
int get durationMs => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Serializes this TrackSourceInfo to a JSON map.
|
||||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||||
@JsonKey(ignore: true)
|
|
||||||
|
/// Create a copy of TrackSourceInfo
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$TrackSourceInfoCopyWith<TrackSourceInfo> get copyWith =>
|
$TrackSourceInfoCopyWith<TrackSourceInfo> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -338,6 +355,8 @@ class _$TrackSourceInfoCopyWithImpl<$Res, $Val extends TrackSourceInfo>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of TrackSourceInfo
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -402,6 +421,8 @@ class __$$TrackSourceInfoImplCopyWithImpl<$Res>
|
|||||||
_$TrackSourceInfoImpl _value, $Res Function(_$TrackSourceInfoImpl) _then)
|
_$TrackSourceInfoImpl _value, $Res Function(_$TrackSourceInfoImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of TrackSourceInfo
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -488,12 +509,14 @@ class _$TrackSourceInfoImpl implements _TrackSourceInfo {
|
|||||||
other.durationMs == durationMs));
|
other.durationMs == durationMs));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(
|
int get hashCode => Object.hash(
|
||||||
runtimeType, id, title, artists, thumbnail, pageUrl, durationMs);
|
runtimeType, id, title, artists, thumbnail, pageUrl, durationMs);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of TrackSourceInfo
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith =>
|
_$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith =>
|
||||||
@ -532,8 +555,11 @@ abstract class _TrackSourceInfo implements TrackSourceInfo {
|
|||||||
String get pageUrl;
|
String get pageUrl;
|
||||||
@override
|
@override
|
||||||
int get durationMs;
|
int get durationMs;
|
||||||
|
|
||||||
|
/// Create a copy of TrackSourceInfo
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith =>
|
_$$TrackSourceInfoImplCopyWith<_$TrackSourceInfoImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -548,9 +574,14 @@ mixin _$TrackSource {
|
|||||||
SourceQualities get quality => throw _privateConstructorUsedError;
|
SourceQualities get quality => throw _privateConstructorUsedError;
|
||||||
SourceCodecs get codec => throw _privateConstructorUsedError;
|
SourceCodecs get codec => throw _privateConstructorUsedError;
|
||||||
String get bitrate => throw _privateConstructorUsedError;
|
String get bitrate => throw _privateConstructorUsedError;
|
||||||
|
String get qualityLabel => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Serializes this TrackSource to a JSON map.
|
||||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||||
@JsonKey(ignore: true)
|
|
||||||
|
/// Create a copy of TrackSource
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$TrackSourceCopyWith<TrackSource> get copyWith =>
|
$TrackSourceCopyWith<TrackSource> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -565,7 +596,8 @@ abstract class $TrackSourceCopyWith<$Res> {
|
|||||||
{String url,
|
{String url,
|
||||||
SourceQualities quality,
|
SourceQualities quality,
|
||||||
SourceCodecs codec,
|
SourceCodecs codec,
|
||||||
String bitrate});
|
String bitrate,
|
||||||
|
String qualityLabel});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
@ -578,6 +610,8 @@ class _$TrackSourceCopyWithImpl<$Res, $Val extends TrackSource>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of TrackSource
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -585,6 +619,7 @@ class _$TrackSourceCopyWithImpl<$Res, $Val extends TrackSource>
|
|||||||
Object? quality = null,
|
Object? quality = null,
|
||||||
Object? codec = null,
|
Object? codec = null,
|
||||||
Object? bitrate = null,
|
Object? bitrate = null,
|
||||||
|
Object? qualityLabel = null,
|
||||||
}) {
|
}) {
|
||||||
return _then(_value.copyWith(
|
return _then(_value.copyWith(
|
||||||
url: null == url
|
url: null == url
|
||||||
@ -603,6 +638,10 @@ class _$TrackSourceCopyWithImpl<$Res, $Val extends TrackSource>
|
|||||||
? _value.bitrate
|
? _value.bitrate
|
||||||
: bitrate // ignore: cast_nullable_to_non_nullable
|
: bitrate // ignore: cast_nullable_to_non_nullable
|
||||||
as String,
|
as String,
|
||||||
|
qualityLabel: null == qualityLabel
|
||||||
|
? _value.qualityLabel
|
||||||
|
: qualityLabel // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
) as $Val);
|
) as $Val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -619,7 +658,8 @@ abstract class _$$TrackSourceImplCopyWith<$Res>
|
|||||||
{String url,
|
{String url,
|
||||||
SourceQualities quality,
|
SourceQualities quality,
|
||||||
SourceCodecs codec,
|
SourceCodecs codec,
|
||||||
String bitrate});
|
String bitrate,
|
||||||
|
String qualityLabel});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// @nodoc
|
/// @nodoc
|
||||||
@ -630,6 +670,8 @@ class __$$TrackSourceImplCopyWithImpl<$Res>
|
|||||||
_$TrackSourceImpl _value, $Res Function(_$TrackSourceImpl) _then)
|
_$TrackSourceImpl _value, $Res Function(_$TrackSourceImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of TrackSource
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -637,6 +679,7 @@ class __$$TrackSourceImplCopyWithImpl<$Res>
|
|||||||
Object? quality = null,
|
Object? quality = null,
|
||||||
Object? codec = null,
|
Object? codec = null,
|
||||||
Object? bitrate = null,
|
Object? bitrate = null,
|
||||||
|
Object? qualityLabel = null,
|
||||||
}) {
|
}) {
|
||||||
return _then(_$TrackSourceImpl(
|
return _then(_$TrackSourceImpl(
|
||||||
url: null == url
|
url: null == url
|
||||||
@ -655,6 +698,10 @@ class __$$TrackSourceImplCopyWithImpl<$Res>
|
|||||||
? _value.bitrate
|
? _value.bitrate
|
||||||
: bitrate // ignore: cast_nullable_to_non_nullable
|
: bitrate // ignore: cast_nullable_to_non_nullable
|
||||||
as String,
|
as String,
|
||||||
|
qualityLabel: null == qualityLabel
|
||||||
|
? _value.qualityLabel
|
||||||
|
: qualityLabel // ignore: cast_nullable_to_non_nullable
|
||||||
|
as String,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -666,7 +713,8 @@ class _$TrackSourceImpl implements _TrackSource {
|
|||||||
{required this.url,
|
{required this.url,
|
||||||
required this.quality,
|
required this.quality,
|
||||||
required this.codec,
|
required this.codec,
|
||||||
required this.bitrate});
|
required this.bitrate,
|
||||||
|
required this.qualityLabel});
|
||||||
|
|
||||||
factory _$TrackSourceImpl.fromJson(Map<String, dynamic> json) =>
|
factory _$TrackSourceImpl.fromJson(Map<String, dynamic> json) =>
|
||||||
_$$TrackSourceImplFromJson(json);
|
_$$TrackSourceImplFromJson(json);
|
||||||
@ -679,10 +727,12 @@ class _$TrackSourceImpl implements _TrackSource {
|
|||||||
final SourceCodecs codec;
|
final SourceCodecs codec;
|
||||||
@override
|
@override
|
||||||
final String bitrate;
|
final String bitrate;
|
||||||
|
@override
|
||||||
|
final String qualityLabel;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return 'TrackSource(url: $url, quality: $quality, codec: $codec, bitrate: $bitrate)';
|
return 'TrackSource(url: $url, quality: $quality, codec: $codec, bitrate: $bitrate, qualityLabel: $qualityLabel)';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -693,14 +743,19 @@ class _$TrackSourceImpl implements _TrackSource {
|
|||||||
(identical(other.url, url) || other.url == url) &&
|
(identical(other.url, url) || other.url == url) &&
|
||||||
(identical(other.quality, quality) || other.quality == quality) &&
|
(identical(other.quality, quality) || other.quality == quality) &&
|
||||||
(identical(other.codec, codec) || other.codec == codec) &&
|
(identical(other.codec, codec) || other.codec == codec) &&
|
||||||
(identical(other.bitrate, bitrate) || other.bitrate == bitrate));
|
(identical(other.bitrate, bitrate) || other.bitrate == bitrate) &&
|
||||||
|
(identical(other.qualityLabel, qualityLabel) ||
|
||||||
|
other.qualityLabel == qualityLabel));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(runtimeType, url, quality, codec, bitrate);
|
int get hashCode =>
|
||||||
|
Object.hash(runtimeType, url, quality, codec, bitrate, qualityLabel);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of TrackSource
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith =>
|
_$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith =>
|
||||||
@ -719,7 +774,8 @@ abstract class _TrackSource implements TrackSource {
|
|||||||
{required final String url,
|
{required final String url,
|
||||||
required final SourceQualities quality,
|
required final SourceQualities quality,
|
||||||
required final SourceCodecs codec,
|
required final SourceCodecs codec,
|
||||||
required final String bitrate}) = _$TrackSourceImpl;
|
required final String bitrate,
|
||||||
|
required final String qualityLabel}) = _$TrackSourceImpl;
|
||||||
|
|
||||||
factory _TrackSource.fromJson(Map<String, dynamic> json) =
|
factory _TrackSource.fromJson(Map<String, dynamic> json) =
|
||||||
_$TrackSourceImpl.fromJson;
|
_$TrackSourceImpl.fromJson;
|
||||||
@ -733,7 +789,12 @@ abstract class _TrackSource implements TrackSource {
|
|||||||
@override
|
@override
|
||||||
String get bitrate;
|
String get bitrate;
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
String get qualityLabel;
|
||||||
|
|
||||||
|
/// Create a copy of TrackSource
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@override
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith =>
|
_$$TrackSourceImplCopyWith<_$TrackSourceImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -36,6 +36,7 @@ const _$AudioSourceEnumMap = {
|
|||||||
AudioSource.piped: 'piped',
|
AudioSource.piped: 'piped',
|
||||||
AudioSource.jiosaavn: 'jiosaavn',
|
AudioSource.jiosaavn: 'jiosaavn',
|
||||||
AudioSource.invidious: 'invidious',
|
AudioSource.invidious: 'invidious',
|
||||||
|
AudioSource.dabMusic: 'dabMusic',
|
||||||
};
|
};
|
||||||
|
|
||||||
_$TrackSourceQueryImpl _$$TrackSourceQueryImplFromJson(Map json) =>
|
_$TrackSourceQueryImpl _$$TrackSourceQueryImplFromJson(Map json) =>
|
||||||
@ -88,6 +89,7 @@ _$TrackSourceImpl _$$TrackSourceImplFromJson(Map json) => _$TrackSourceImpl(
|
|||||||
quality: $enumDecode(_$SourceQualitiesEnumMap, json['quality']),
|
quality: $enumDecode(_$SourceQualitiesEnumMap, json['quality']),
|
||||||
codec: $enumDecode(_$SourceCodecsEnumMap, json['codec']),
|
codec: $enumDecode(_$SourceCodecsEnumMap, json['codec']),
|
||||||
bitrate: json['bitrate'] as String,
|
bitrate: json['bitrate'] as String,
|
||||||
|
qualityLabel: json['qualityLabel'] as String,
|
||||||
);
|
);
|
||||||
|
|
||||||
Map<String, dynamic> _$$TrackSourceImplToJson(_$TrackSourceImpl instance) =>
|
Map<String, dynamic> _$$TrackSourceImplToJson(_$TrackSourceImpl instance) =>
|
||||||
@ -96,9 +98,11 @@ Map<String, dynamic> _$$TrackSourceImplToJson(_$TrackSourceImpl instance) =>
|
|||||||
'quality': _$SourceQualitiesEnumMap[instance.quality]!,
|
'quality': _$SourceQualitiesEnumMap[instance.quality]!,
|
||||||
'codec': _$SourceCodecsEnumMap[instance.codec]!,
|
'codec': _$SourceCodecsEnumMap[instance.codec]!,
|
||||||
'bitrate': instance.bitrate,
|
'bitrate': instance.bitrate,
|
||||||
|
'qualityLabel': instance.qualityLabel,
|
||||||
};
|
};
|
||||||
|
|
||||||
const _$SourceQualitiesEnumMap = {
|
const _$SourceQualitiesEnumMap = {
|
||||||
|
SourceQualities.uncompressed: 'uncompressed',
|
||||||
SourceQualities.high: 'high',
|
SourceQualities.high: 'high',
|
||||||
SourceQualities.medium: 'medium',
|
SourceQualities.medium: 'medium',
|
||||||
SourceQualities.low: 'low',
|
SourceQualities.low: 'low',
|
||||||
@ -107,4 +111,6 @@ const _$SourceQualitiesEnumMap = {
|
|||||||
const _$SourceCodecsEnumMap = {
|
const _$SourceCodecsEnumMap = {
|
||||||
SourceCodecs.m4a: 'm4a',
|
SourceCodecs.m4a: 'm4a',
|
||||||
SourceCodecs.weba: 'weba',
|
SourceCodecs.weba: 'weba',
|
||||||
|
SourceCodecs.mp3: 'mp3',
|
||||||
|
SourceCodecs.flac: 'flac',
|
||||||
};
|
};
|
||||||
|
|||||||
@ -91,10 +91,27 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
|
|||||||
)
|
)
|
||||||
else ...[
|
else ...[
|
||||||
Text(context.l10n.author_name(plugin.author)),
|
Text(context.l10n.author_name(plugin.author)),
|
||||||
DestructiveBadge(
|
Container(
|
||||||
leading: const Icon(SpotubeIcons.warning),
|
padding: const EdgeInsets.symmetric(
|
||||||
child: Text(context.l10n.third_party),
|
horizontal: 6,
|
||||||
)
|
vertical: 2,
|
||||||
|
),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.blue,
|
||||||
|
borderRadius: BorderRadius.circular(6),
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
spacing: 4,
|
||||||
|
children: [
|
||||||
|
const Icon(SpotubeIcons.warning, size: 14),
|
||||||
|
Text(
|
||||||
|
context.l10n.third_party,
|
||||||
|
style: const TextStyle(color: Colors.white),
|
||||||
|
).xSmall
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
SecondaryBadge(
|
SecondaryBadge(
|
||||||
leading: const Icon(SpotubeIcons.connect),
|
leading: const Icon(SpotubeIcons.connect),
|
||||||
|
|||||||
@ -65,8 +65,9 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
.join("\n\n");
|
.join("\n\n");
|
||||||
|
|
||||||
return AlertDialog(
|
return AlertDialog(
|
||||||
title: Text(context
|
title: Text(
|
||||||
.l10n.do_you_want_to_install_this_plugin),
|
context.l10n.do_you_want_to_install_this_plugin,
|
||||||
|
),
|
||||||
content: Column(
|
content: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
@ -185,9 +186,26 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
|
|||||||
context.l10n.author_name(pluginRepo.owner),
|
context.l10n.author_name(pluginRepo.owner),
|
||||||
style: context.theme.typography.xSmall,
|
style: context.theme.typography.xSmall,
|
||||||
),
|
),
|
||||||
DestructiveBadge(
|
Container(
|
||||||
leading: const Icon(SpotubeIcons.warning),
|
padding: const EdgeInsets.symmetric(
|
||||||
child: Text(context.l10n.third_party),
|
horizontal: 6,
|
||||||
|
vertical: 2,
|
||||||
|
),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Colors.blue,
|
||||||
|
borderRadius: BorderRadius.circular(6),
|
||||||
|
),
|
||||||
|
child: Row(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
spacing: 4,
|
||||||
|
children: [
|
||||||
|
const Icon(SpotubeIcons.warning, size: 14),
|
||||||
|
Text(
|
||||||
|
context.l10n.third_party,
|
||||||
|
style: const TextStyle(color: Colors.white),
|
||||||
|
).xSmall
|
||||||
|
],
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
SecondaryBadge(
|
SecondaryBadge(
|
||||||
|
|||||||
@ -46,6 +46,14 @@ class PlayerView extends HookConsumerWidget {
|
|||||||
final isLocalTrack = currentActiveTrack is SpotubeLocalTrackObject;
|
final isLocalTrack = currentActiveTrack is SpotubeLocalTrackObject;
|
||||||
final mediaQuery = MediaQuery.sizeOf(context);
|
final mediaQuery = MediaQuery.sizeOf(context);
|
||||||
|
|
||||||
|
final activeSourceCodec = useMemoized(
|
||||||
|
() {
|
||||||
|
return currentActiveTrackSource
|
||||||
|
?.getSourceOfCodec(currentActiveTrackSource.codec);
|
||||||
|
},
|
||||||
|
[currentActiveTrackSource?.sources, currentActiveTrackSource?.codec],
|
||||||
|
);
|
||||||
|
|
||||||
final shouldHide = useState(true);
|
final shouldHide = useState(true);
|
||||||
|
|
||||||
ref.listen(navigationPanelHeight, (_, height) {
|
ref.listen(navigationPanelHeight, (_, height) {
|
||||||
@ -267,6 +275,21 @@ class PlayerView extends HookConsumerWidget {
|
|||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
|
const Gap(25),
|
||||||
|
if (activeSourceCodec != null)
|
||||||
|
OutlineBadge(
|
||||||
|
style: const ButtonStyle.outline(
|
||||||
|
size: ButtonSize.normal,
|
||||||
|
density: ButtonDensity.dense,
|
||||||
|
shape: ButtonShape.rectangle,
|
||||||
|
).copyWith(
|
||||||
|
textStyle: (context, states, value) {
|
||||||
|
return value.copyWith(fontWeight: FontWeight.w500);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
leading: const Icon(SpotubeIcons.lightningOutlined),
|
||||||
|
child: Text(activeSourceCodec.qualityLabel),
|
||||||
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@ -7,7 +7,6 @@ import 'package:spotube/components/ui/button_tile.dart';
|
|||||||
import 'package:spotube/models/database/database.dart';
|
import 'package:spotube/models/database/database.dart';
|
||||||
import 'package:spotube/modules/getting_started/blur_card.dart';
|
import 'package:spotube/modules/getting_started/blur_card.dart';
|
||||||
import 'package:spotube/extensions/context.dart';
|
import 'package:spotube/extensions/context.dart';
|
||||||
import 'package:spotube/extensions/string.dart';
|
|
||||||
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
||||||
|
|
||||||
final audioSourceToIconMap = {
|
final audioSourceToIconMap = {
|
||||||
@ -23,6 +22,8 @@ final audioSourceToIconMap = {
|
|||||||
),
|
),
|
||||||
AudioSource.jiosaavn:
|
AudioSource.jiosaavn:
|
||||||
Assets.images.logos.jiosaavn.image(width: 20, height: 20),
|
Assets.images.logos.jiosaavn.image(width: 20, height: 20),
|
||||||
|
AudioSource.dabMusic:
|
||||||
|
Assets.images.logos.dabMusic.image(width: 20, height: 20),
|
||||||
};
|
};
|
||||||
|
|
||||||
class GettingStartedPagePlaybackSection extends HookConsumerWidget {
|
class GettingStartedPagePlaybackSection extends HookConsumerWidget {
|
||||||
@ -47,8 +48,10 @@ class GettingStartedPagePlaybackSection extends HookConsumerWidget {
|
|||||||
AudioSource.piped: context.l10n.piped_source_description,
|
AudioSource.piped: context.l10n.piped_source_description,
|
||||||
AudioSource.jiosaavn:
|
AudioSource.jiosaavn:
|
||||||
"${context.l10n.jiosaavn_source_description}\n"
|
"${context.l10n.jiosaavn_source_description}\n"
|
||||||
"${context.l10n.highest_quality("320kbps mp")}",
|
"${context.l10n.highest_quality("320kbps mp4")}",
|
||||||
AudioSource.invidious: context.l10n.invidious_source_description,
|
AudioSource.invidious: context.l10n.invidious_source_description,
|
||||||
|
AudioSource.dabMusic: "${context.l10n.dab_music_source_description}\n"
|
||||||
|
"${context.l10n.highest_quality("320kbps mp3, HI-RES 24bit 44.1kHz-96kHz flac")}",
|
||||||
},
|
},
|
||||||
[]);
|
[]);
|
||||||
|
|
||||||
@ -70,43 +73,28 @@ class GettingStartedPagePlaybackSection extends HookConsumerWidget {
|
|||||||
child: Text(context.l10n.select_audio_source).semiBold().large(),
|
child: Text(context.l10n.select_audio_source).semiBold().large(),
|
||||||
),
|
),
|
||||||
const Gap(16),
|
const Gap(16),
|
||||||
Select<AudioSource>(
|
RadioGroup<AudioSource>(
|
||||||
value: preferences.audioSource,
|
value: preferences.audioSource,
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
if (value == null) return;
|
|
||||||
preferencesNotifier.setAudioSource(value);
|
preferencesNotifier.setAudioSource(value);
|
||||||
},
|
},
|
||||||
placeholder: Text(preferences.audioSource.name.capitalize()),
|
child: Wrap(
|
||||||
itemBuilder: (context, value) => Row(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
spacing: 6,
|
spacing: 6,
|
||||||
|
runSpacing: 6,
|
||||||
children: [
|
children: [
|
||||||
audioSourceToIconMap[value]!,
|
for (final source in AudioSource.values)
|
||||||
Text(value.name.capitalize()),
|
RadioCard(
|
||||||
],
|
|
||||||
),
|
|
||||||
popup: (context) {
|
|
||||||
return SelectPopup(
|
|
||||||
items: SelectItemBuilder(
|
|
||||||
childCount: AudioSource.values.length,
|
|
||||||
builder: (context, index) {
|
|
||||||
final source = AudioSource.values[index];
|
|
||||||
|
|
||||||
return SelectItemButton(
|
|
||||||
value: source,
|
value: source,
|
||||||
child: Row(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
spacing: 6,
|
|
||||||
children: [
|
children: [
|
||||||
audioSourceToIconMap[source]!,
|
audioSourceToIconMap[source]!,
|
||||||
Text(source.name.capitalize()),
|
Text(source.label),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
);
|
],
|
||||||
},
|
),
|
||||||
),
|
),
|
||||||
const Gap(16),
|
const Gap(16),
|
||||||
Text(
|
Text(
|
||||||
|
|||||||
@ -53,6 +53,7 @@ class SettingsPlaybackSection extends HookConsumerWidget {
|
|||||||
value: SourceQualities.high,
|
value: SourceQualities.high,
|
||||||
child: Text(context.l10n.high),
|
child: Text(context.l10n.high),
|
||||||
),
|
),
|
||||||
|
if (preferences.audioSource != AudioSource.dabMusic) ...[
|
||||||
SelectItemButton(
|
SelectItemButton(
|
||||||
value: SourceQualities.medium,
|
value: SourceQualities.medium,
|
||||||
child: Text(context.l10n.medium),
|
child: Text(context.l10n.medium),
|
||||||
@ -61,6 +62,7 @@ class SettingsPlaybackSection extends HookConsumerWidget {
|
|||||||
value: SourceQualities.low,
|
value: SourceQualities.low,
|
||||||
child: Text(context.l10n.low),
|
child: Text(context.l10n.low),
|
||||||
),
|
),
|
||||||
|
]
|
||||||
],
|
],
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
|
|||||||
@ -27,8 +27,12 @@ mixin _$AudioPlayerState {
|
|||||||
int get currentIndex => throw _privateConstructorUsedError;
|
int get currentIndex => throw _privateConstructorUsedError;
|
||||||
List<SpotubeTrackObject> get tracks => throw _privateConstructorUsedError;
|
List<SpotubeTrackObject> get tracks => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Serializes this AudioPlayerState to a JSON map.
|
||||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||||
@JsonKey(ignore: true)
|
|
||||||
|
/// Create a copy of AudioPlayerState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$AudioPlayerStateCopyWith<AudioPlayerState> get copyWith =>
|
$AudioPlayerStateCopyWith<AudioPlayerState> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -58,6 +62,8 @@ class _$AudioPlayerStateCopyWithImpl<$Res, $Val extends AudioPlayerState>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of AudioPlayerState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -122,6 +128,8 @@ class __$$AudioPlayerStateImplCopyWithImpl<$Res>
|
|||||||
$Res Function(_$AudioPlayerStateImpl) _then)
|
$Res Function(_$AudioPlayerStateImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of AudioPlayerState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -226,7 +234,7 @@ class _$AudioPlayerStateImpl extends _AudioPlayerState {
|
|||||||
const DeepCollectionEquality().equals(other._tracks, _tracks));
|
const DeepCollectionEquality().equals(other._tracks, _tracks));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(
|
int get hashCode => Object.hash(
|
||||||
runtimeType,
|
runtimeType,
|
||||||
@ -237,7 +245,9 @@ class _$AudioPlayerStateImpl extends _AudioPlayerState {
|
|||||||
currentIndex,
|
currentIndex,
|
||||||
const DeepCollectionEquality().hash(_tracks));
|
const DeepCollectionEquality().hash(_tracks));
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of AudioPlayerState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith =>
|
_$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith =>
|
||||||
@ -277,8 +287,11 @@ abstract class _AudioPlayerState extends AudioPlayerState {
|
|||||||
int get currentIndex;
|
int get currentIndex;
|
||||||
@override
|
@override
|
||||||
List<SpotubeTrackObject> get tracks;
|
List<SpotubeTrackObject> get tracks;
|
||||||
|
|
||||||
|
/// Create a copy of AudioPlayerState
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith =>
|
_$$AudioPlayerStateImplCopyWith<_$AudioPlayerStateImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -224,11 +224,23 @@ class UserPreferencesNotifier extends Notifier<PreferencesTableData> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setAudioSource(AudioSource type) {
|
void setAudioSource(AudioSource type) {
|
||||||
// Only allow uncompressed quality for DAB Music
|
switch ((type, state.audioQuality)) {
|
||||||
if (type != AudioSource.dabMusic &&
|
// DAB music only supports high quality/uncompressed streams
|
||||||
state.audioQuality == SourceQualities.uncompressed) {
|
case (
|
||||||
|
AudioSource.dabMusic,
|
||||||
|
SourceQualities.low || SourceQualities.medium
|
||||||
|
):
|
||||||
setAudioQuality(SourceQualities.high);
|
setAudioQuality(SourceQualities.high);
|
||||||
|
break;
|
||||||
|
// If the user switches from DAB music to other sources and has
|
||||||
|
// uncompressed quality selected, downgrade to high quality
|
||||||
|
case (!= AudioSource.dabMusic, SourceQualities.uncompressed):
|
||||||
|
setAudioQuality(SourceQualities.high);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
setData(PreferencesTableCompanion(audioSource: Value(type)));
|
setData(PreferencesTableCompanion(audioSource: Value(type)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -30,8 +30,12 @@ mixin _$SongLink {
|
|||||||
String? get nativeAppUriMobile => throw _privateConstructorUsedError;
|
String? get nativeAppUriMobile => throw _privateConstructorUsedError;
|
||||||
String? get nativeAppUriDesktop => throw _privateConstructorUsedError;
|
String? get nativeAppUriDesktop => throw _privateConstructorUsedError;
|
||||||
|
|
||||||
|
/// Serializes this SongLink to a JSON map.
|
||||||
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
||||||
@JsonKey(ignore: true)
|
|
||||||
|
/// Create a copy of SongLink
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
$SongLinkCopyWith<SongLink> get copyWith =>
|
$SongLinkCopyWith<SongLink> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
@ -63,6 +67,8 @@ class _$SongLinkCopyWithImpl<$Res, $Val extends SongLink>
|
|||||||
// ignore: unused_field
|
// ignore: unused_field
|
||||||
final $Res Function($Val) _then;
|
final $Res Function($Val) _then;
|
||||||
|
|
||||||
|
/// Create a copy of SongLink
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -145,6 +151,8 @@ class __$$SongLinkImplCopyWithImpl<$Res>
|
|||||||
_$SongLinkImpl _value, $Res Function(_$SongLinkImpl) _then)
|
_$SongLinkImpl _value, $Res Function(_$SongLinkImpl) _then)
|
||||||
: super(_value, _then);
|
: super(_value, _then);
|
||||||
|
|
||||||
|
/// Create a copy of SongLink
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
@override
|
@override
|
||||||
$Res call({
|
$Res call({
|
||||||
@ -261,12 +269,14 @@ class _$SongLinkImpl implements _SongLink {
|
|||||||
other.nativeAppUriDesktop == nativeAppUriDesktop));
|
other.nativeAppUriDesktop == nativeAppUriDesktop));
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(runtimeType, displayName, linkId, platform,
|
int get hashCode => Object.hash(runtimeType, displayName, linkId, platform,
|
||||||
show, uniqueId, country, url, nativeAppUriMobile, nativeAppUriDesktop);
|
show, uniqueId, country, url, nativeAppUriMobile, nativeAppUriDesktop);
|
||||||
|
|
||||||
@JsonKey(ignore: true)
|
/// Create a copy of SongLink
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
@override
|
@override
|
||||||
@pragma('vm:prefer-inline')
|
@pragma('vm:prefer-inline')
|
||||||
_$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith =>
|
_$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith =>
|
||||||
@ -313,8 +323,11 @@ abstract class _SongLink implements SongLink {
|
|||||||
String? get nativeAppUriMobile;
|
String? get nativeAppUriMobile;
|
||||||
@override
|
@override
|
||||||
String? get nativeAppUriDesktop;
|
String? get nativeAppUriDesktop;
|
||||||
|
|
||||||
|
/// Create a copy of SongLink
|
||||||
|
/// with the given fields replaced by the non-null parameter values.
|
||||||
@override
|
@override
|
||||||
@JsonKey(ignore: true)
|
@JsonKey(includeFromJson: false, includeToJson: false)
|
||||||
_$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith =>
|
_$$SongLinkImplCopyWith<_$SongLinkImpl> get copyWith =>
|
||||||
throw _privateConstructorUsedError;
|
throw _privateConstructorUsedError;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -170,7 +170,7 @@ abstract class SourcedTrack extends BasicSourcedTrack {
|
|||||||
///
|
///
|
||||||
/// If no sources match the codec, it will return the first or last source
|
/// If no sources match the codec, it will return the first or last source
|
||||||
/// based on the user's audio quality preference.
|
/// based on the user's audio quality preference.
|
||||||
String? getUrlOfCodec(SourceCodecs codec) {
|
TrackSource? getSourceOfCodec(SourceCodecs codec) {
|
||||||
final preferences = ref.read(userPreferencesProvider);
|
final preferences = ref.read(userPreferencesProvider);
|
||||||
|
|
||||||
final exactMatch = sources.firstWhereOrNull(
|
final exactMatch = sources.firstWhereOrNull(
|
||||||
@ -179,7 +179,7 @@ abstract class SourcedTrack extends BasicSourcedTrack {
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (exactMatch != null) {
|
if (exactMatch != null) {
|
||||||
return exactMatch.url;
|
return exactMatch;
|
||||||
}
|
}
|
||||||
|
|
||||||
final sameCodecSources = sources
|
final sameCodecSources = sources
|
||||||
@ -193,8 +193,8 @@ abstract class SourcedTrack extends BasicSourcedTrack {
|
|||||||
|
|
||||||
if (sameCodecSources.isNotEmpty) {
|
if (sameCodecSources.isNotEmpty) {
|
||||||
return preferences.audioQuality > SourceQualities.low
|
return preferences.audioQuality > SourceQualities.low
|
||||||
? sameCodecSources.first.url
|
? sameCodecSources.first
|
||||||
: sameCodecSources.last.url;
|
: sameCodecSources.last;
|
||||||
}
|
}
|
||||||
|
|
||||||
final fallbackSource = sources.sorted((a, b) {
|
final fallbackSource = sources.sorted((a, b) {
|
||||||
@ -204,8 +204,12 @@ abstract class SourcedTrack extends BasicSourcedTrack {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return preferences.audioQuality > SourceQualities.low
|
return preferences.audioQuality > SourceQualities.low
|
||||||
? fallbackSource.firstOrNull?.url
|
? fallbackSource.firstOrNull
|
||||||
: fallbackSource.lastOrNull?.url;
|
: fallbackSource.lastOrNull;
|
||||||
|
}
|
||||||
|
|
||||||
|
String? getUrlOfCodec(SourceCodecs codec) {
|
||||||
|
return getSourceOfCodec(codec)?.url;
|
||||||
}
|
}
|
||||||
|
|
||||||
SourceCodecs get codec {
|
SourceCodecs get codec {
|
||||||
@ -220,12 +224,4 @@ abstract class SourcedTrack extends BasicSourcedTrack {
|
|||||||
_ => preferences.streamMusicCodec
|
_ => preferences.streamMusicCodec
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
TrackSource get activeTrackSource {
|
|
||||||
final audioQuality = ref.read(userPreferencesProvider).audioQuality;
|
|
||||||
return sources.firstWhereOrNull(
|
|
||||||
(source) => source.codec == codec && source.quality == audioQuality,
|
|
||||||
) ??
|
|
||||||
sources.first;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,6 +54,7 @@ class DABMusicSourcedTrack extends SourcedTrack {
|
|||||||
static Future<List<TrackSource>> fetchSources(
|
static Future<List<TrackSource>> fetchSources(
|
||||||
String id,
|
String id,
|
||||||
SourceQualities quality,
|
SourceQualities quality,
|
||||||
|
AudioQuality trackMaximumQuality,
|
||||||
) async {
|
) async {
|
||||||
try {
|
try {
|
||||||
final isUncompressed = quality == SourceQualities.uncompressed;
|
final isUncompressed = quality == SourceQualities.uncompressed;
|
||||||
@ -64,14 +65,26 @@ class DABMusicSourcedTrack extends SourcedTrack {
|
|||||||
if (streamResponse.url == null) {
|
if (streamResponse.url == null) {
|
||||||
throw Exception("No stream URL found for track ID: $id");
|
throw Exception("No stream URL found for track ID: $id");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// kbps = (bitDepth * sampleRate * channels) / 1000
|
||||||
|
final uncompressedBitrate = !isUncompressed
|
||||||
|
? 0
|
||||||
|
: ((trackMaximumQuality.maximumBitDepth ?? 0) *
|
||||||
|
((trackMaximumQuality.maximumSamplingRate ?? 0) * 1000) *
|
||||||
|
2) /
|
||||||
|
1000;
|
||||||
return [
|
return [
|
||||||
TrackSource(
|
TrackSource(
|
||||||
url: streamResponse.url!,
|
url: streamResponse.url!,
|
||||||
quality: isUncompressed
|
quality: isUncompressed
|
||||||
? SourceQualities.uncompressed
|
? SourceQualities.uncompressed
|
||||||
: SourceQualities.high,
|
: SourceQualities.high,
|
||||||
bitrate: isUncompressed ? "2998kbps" : "320kbps",
|
bitrate:
|
||||||
|
isUncompressed ? "${uncompressedBitrate.floor()}kbps" : "320kbps",
|
||||||
codec: isUncompressed ? SourceCodecs.flac : SourceCodecs.mp3,
|
codec: isUncompressed ? SourceCodecs.flac : SourceCodecs.mp3,
|
||||||
|
qualityLabel: isUncompressed
|
||||||
|
? "${trackMaximumQuality.maximumBitDepth}bit • ${trackMaximumQuality.maximumSamplingRate}kHz • FLAC • Stereo"
|
||||||
|
: "MP3 • 320kbps • mp3 • Stereo",
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
} catch (e, stackTrace) {
|
} catch (e, stackTrace) {
|
||||||
@ -91,6 +104,7 @@ class DABMusicSourcedTrack extends SourcedTrack {
|
|||||||
source = await fetchSources(
|
source = await fetchSources(
|
||||||
result.id.toString(),
|
result.id.toString(),
|
||||||
ref.read(userPreferencesProvider).audioQuality,
|
ref.read(userPreferencesProvider).audioQuality,
|
||||||
|
result.audioQuality!,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,6 +200,11 @@ class DABMusicSourcedTrack extends SourcedTrack {
|
|||||||
final source = await fetchSources(
|
final source = await fetchSources(
|
||||||
sibling.id,
|
sibling.id,
|
||||||
ref.read(userPreferencesProvider).audioQuality,
|
ref.read(userPreferencesProvider).audioQuality,
|
||||||
|
const AudioQuality(
|
||||||
|
isHiRes: true,
|
||||||
|
maximumBitDepth: 16,
|
||||||
|
maximumSamplingRate: 44.1,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
return DABMusicSourcedTrack(
|
return DABMusicSourcedTrack(
|
||||||
|
|||||||
@ -94,6 +94,7 @@ class InvidiousSourcedTrack extends SourcedTrack {
|
|||||||
|
|
||||||
static List<TrackSource> toSources(InvidiousVideoResponse manifest) {
|
static List<TrackSource> toSources(InvidiousVideoResponse manifest) {
|
||||||
return manifest.adaptiveFormats.map((stream) {
|
return manifest.adaptiveFormats.map((stream) {
|
||||||
|
var isWebm = stream.type.contains("audio/webm");
|
||||||
return TrackSource(
|
return TrackSource(
|
||||||
url: stream.url.toString(),
|
url: stream.url.toString(),
|
||||||
quality: switch (stream.qualityLabel) {
|
quality: switch (stream.qualityLabel) {
|
||||||
@ -101,10 +102,11 @@ class InvidiousSourcedTrack extends SourcedTrack {
|
|||||||
"medium" => SourceQualities.medium,
|
"medium" => SourceQualities.medium,
|
||||||
_ => SourceQualities.low,
|
_ => SourceQualities.low,
|
||||||
},
|
},
|
||||||
codec: stream.type.contains("audio/webm")
|
codec: isWebm ? SourceCodecs.weba : SourceCodecs.m4a,
|
||||||
? SourceCodecs.weba
|
|
||||||
: SourceCodecs.m4a,
|
|
||||||
bitrate: stream.bitrate,
|
bitrate: stream.bitrate,
|
||||||
|
qualityLabel:
|
||||||
|
"${isWebm ? "Opus" : "AAC"} • ${stream.bitrate.replaceAll("kbps", "")}kbps "
|
||||||
|
"• ${isWebm ? "weba" : "m4a"} • Stereo",
|
||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,6 +104,7 @@ class JioSaavnSourcedTrack extends SourcedTrack {
|
|||||||
: SourceQualities.low,
|
: SourceQualities.low,
|
||||||
codec: SourceCodecs.m4a,
|
codec: SourceCodecs.m4a,
|
||||||
bitrate: link.quality,
|
bitrate: link.quality,
|
||||||
|
qualityLabel: "AAC • ${link.quality} • MP4 • Stereo",
|
||||||
);
|
);
|
||||||
}).toList()
|
}).toList()
|
||||||
);
|
);
|
||||||
|
|||||||
@ -98,6 +98,7 @@ class PipedSourcedTrack extends SourcedTrack {
|
|||||||
|
|
||||||
static List<TrackSource> toSources(PipedStreamResponse manifest) {
|
static List<TrackSource> toSources(PipedStreamResponse manifest) {
|
||||||
return manifest.audioStreams.map((audio) {
|
return manifest.audioStreams.map((audio) {
|
||||||
|
final isMp4 = audio.format == PipedAudioStreamFormat.m4a;
|
||||||
return TrackSource(
|
return TrackSource(
|
||||||
url: audio.url.toString(),
|
url: audio.url.toString(),
|
||||||
quality: switch (audio.quality) {
|
quality: switch (audio.quality) {
|
||||||
@ -105,10 +106,11 @@ class PipedSourcedTrack extends SourcedTrack {
|
|||||||
"medium" => SourceQualities.medium,
|
"medium" => SourceQualities.medium,
|
||||||
_ => SourceQualities.low,
|
_ => SourceQualities.low,
|
||||||
},
|
},
|
||||||
codec: audio.format == PipedAudioStreamFormat.m4a
|
codec: isMp4 ? SourceCodecs.m4a : SourceCodecs.weba,
|
||||||
? SourceCodecs.m4a
|
|
||||||
: SourceCodecs.weba,
|
|
||||||
bitrate: audio.bitrate.toString(),
|
bitrate: audio.bitrate.toString(),
|
||||||
|
qualityLabel:
|
||||||
|
"${isMp4 ? "AAC" : "Opus"} • ${(audio.bitrate / 1000).floor()}kbps "
|
||||||
|
"• ${isMp4 ? "m4a" : "weba"} • Stereo",
|
||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,6 +98,7 @@ class YoutubeSourcedTrack extends SourcedTrack {
|
|||||||
|
|
||||||
static List<TrackSource> toTrackSources(StreamManifest manifest) {
|
static List<TrackSource> toTrackSources(StreamManifest manifest) {
|
||||||
return manifest.audioOnly.map((streamInfo) {
|
return manifest.audioOnly.map((streamInfo) {
|
||||||
|
var isWebm = streamInfo.codec.mimeType == "audio/webm";
|
||||||
return TrackSource(
|
return TrackSource(
|
||||||
url: streamInfo.url.toString(),
|
url: streamInfo.url.toString(),
|
||||||
quality: switch (streamInfo.qualityLabel) {
|
quality: switch (streamInfo.qualityLabel) {
|
||||||
@ -106,10 +107,11 @@ class YoutubeSourcedTrack extends SourcedTrack {
|
|||||||
"low" => SourceQualities.low,
|
"low" => SourceQualities.low,
|
||||||
_ => SourceQualities.high,
|
_ => SourceQualities.high,
|
||||||
},
|
},
|
||||||
codec: streamInfo.codec.mimeType == "audio/webm"
|
codec: isWebm ? SourceCodecs.weba : SourceCodecs.m4a,
|
||||||
? SourceCodecs.weba
|
|
||||||
: SourceCodecs.m4a,
|
|
||||||
bitrate: streamInfo.bitrate.bitsPerSecond.toString(),
|
bitrate: streamInfo.bitrate.bitsPerSecond.toString(),
|
||||||
|
qualityLabel:
|
||||||
|
"${isWebm ? "Opus" : "AAC"} • ${(streamInfo.bitrate.kiloBitsPerSecond).floor()}kbps "
|
||||||
|
"• ${isWebm ? "weba" : "m4a"} • Stereo",
|
||||||
);
|
);
|
||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,147 +1,176 @@
|
|||||||
{
|
{
|
||||||
"ar": [
|
"ar": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"bn": [
|
"bn": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"ca": [
|
"ca": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"cs": [
|
"cs": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"de": [
|
"de": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"es": [
|
"es": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"eu": [
|
"eu": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"fa": [
|
"fa": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"fi": [
|
"fi": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"fr": [
|
"fr": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"hi": [
|
"hi": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"id": [
|
"id": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"it": [
|
"it": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"ja": [
|
"ja": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"ka": [
|
"ka": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"ko": [
|
"ko": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"ne": [
|
"ne": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"nl": [
|
"nl": [
|
||||||
"audio_source",
|
"audio_source",
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"pl": [
|
"pl": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"pt": [
|
"pt": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"ru": [
|
"ru": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"ta": [
|
"ta": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"th": [
|
"th": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"tl": [
|
"tl": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"tr": [
|
"tr": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"uk": [
|
"uk": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"vi": [
|
"vi": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"zh": [
|
"zh": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
],
|
],
|
||||||
|
|
||||||
"zh_TW": [
|
"zh_TW": [
|
||||||
"source",
|
"source",
|
||||||
"uncompressed"
|
"uncompressed",
|
||||||
|
"dab_music_source_description"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user