mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00

* feat: add one additional library folder This folder just doesn't get downloaded to. I think I'm going to rework it so that it can be multiple folders, but I'm going to commit my progress so far anyway. Signed-off-by: Blake Leonard <me@blakes.dev> * chore: update dependencies so that it builds I'm not sure if this breaks CI or something, but I couldn't build it locally to test my changes, so I made these changes and it builds again. Signed-off-by: Blake Leonard <me@blakes.dev> * feat: index multiple folders of local music If you used a previous commit from this branch, this is a breaking change, because it changes the type of a configuration field. but since this is still in development, it should be fine. Signed-off-by: Blake Leonard <me@blakes.dev> * refactor: manage local library in local tracks tab This also refactors the list to use slivers instead. That's the easiest way to have multiple scrolling lists here... The console keeps getting spammed with some intermediate layout error but I can't hold it long enough to figure out what's causing it. Signed-off-by: Blake Leonard <me@blakes.dev> * refactor: use folder add/remove icons in library Signed-off-by: Blake Leonard <me@blakes.dev> * refactor: remove redundant settings page Signed-off-by: Blake Leonard <me@blakes.dev> * refactor: rename "Local Tracks" to just "Local" Not sure if this would be the recommended way to do it... Signed-off-by: Blake Leonard <me@blakes.dev> * fix: console spam about useless Expanded Signed-off-by: Blake Leonard <me@blakes.dev> * chore: remove completed TODO Signed-off-by: Blake Leonard <me@blakes.dev> * chore: use new Platform constants; regenerate plugins Signed-off-by: Blake Leonard <me@blakes.dev> * refactor: put local libraries on separate pages Signed-off-by: Blake Leonard <me@blakes.dev> --------- Signed-off-by: Blake Leonard <me@blakes.dev>
752 lines
28 KiB
Dart
752 lines
28 KiB
Dart
// coverage:ignore-file
|
|
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
// ignore_for_file: type=lint
|
|
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
|
|
|
part of 'user_preferences_state.dart';
|
|
|
|
// **************************************************************************
|
|
// FreezedGenerator
|
|
// **************************************************************************
|
|
|
|
T _$identity<T>(T value) => value;
|
|
|
|
final _privateConstructorUsedError = UnsupportedError(
|
|
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models');
|
|
|
|
UserPreferences _$UserPreferencesFromJson(Map<String, dynamic> json) {
|
|
return _UserPreferences.fromJson(json);
|
|
}
|
|
|
|
/// @nodoc
|
|
mixin _$UserPreferences {
|
|
SourceQualities get audioQuality => throw _privateConstructorUsedError;
|
|
bool get albumColorSync => throw _privateConstructorUsedError;
|
|
bool get amoledDarkTheme => throw _privateConstructorUsedError;
|
|
bool get checkUpdate => throw _privateConstructorUsedError;
|
|
bool get normalizeAudio => throw _privateConstructorUsedError;
|
|
bool get showSystemTrayIcon => throw _privateConstructorUsedError;
|
|
bool get skipNonMusic => throw _privateConstructorUsedError;
|
|
bool get systemTitleBar => throw _privateConstructorUsedError;
|
|
CloseBehavior get closeBehavior => throw _privateConstructorUsedError;
|
|
@JsonKey(
|
|
fromJson: UserPreferences._accentColorSchemeFromJson,
|
|
toJson: UserPreferences._accentColorSchemeToJson,
|
|
readValue: UserPreferences._accentColorSchemeReadValue)
|
|
SpotubeColor get accentColorScheme => throw _privateConstructorUsedError;
|
|
LayoutMode get layoutMode => throw _privateConstructorUsedError;
|
|
@JsonKey(
|
|
fromJson: UserPreferences._localeFromJson,
|
|
toJson: UserPreferences._localeToJson,
|
|
readValue: UserPreferences._localeReadValue)
|
|
Locale get locale => throw _privateConstructorUsedError;
|
|
Market get recommendationMarket => throw _privateConstructorUsedError;
|
|
SearchMode get searchMode => throw _privateConstructorUsedError;
|
|
String get downloadLocation => throw _privateConstructorUsedError;
|
|
List<String> get localLibraryLocation => throw _privateConstructorUsedError;
|
|
String get pipedInstance => throw _privateConstructorUsedError;
|
|
ThemeMode get themeMode => throw _privateConstructorUsedError;
|
|
AudioSource get audioSource => throw _privateConstructorUsedError;
|
|
SourceCodecs get streamMusicCodec => throw _privateConstructorUsedError;
|
|
SourceCodecs get downloadMusicCodec => throw _privateConstructorUsedError;
|
|
bool get discordPresence => throw _privateConstructorUsedError;
|
|
bool get endlessPlayback => throw _privateConstructorUsedError;
|
|
bool get enableConnect => throw _privateConstructorUsedError;
|
|
|
|
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
|
|
@JsonKey(ignore: true)
|
|
$UserPreferencesCopyWith<UserPreferences> get copyWith =>
|
|
throw _privateConstructorUsedError;
|
|
}
|
|
|
|
/// @nodoc
|
|
abstract class $UserPreferencesCopyWith<$Res> {
|
|
factory $UserPreferencesCopyWith(
|
|
UserPreferences value, $Res Function(UserPreferences) then) =
|
|
_$UserPreferencesCopyWithImpl<$Res, UserPreferences>;
|
|
@useResult
|
|
$Res call(
|
|
{SourceQualities audioQuality,
|
|
bool albumColorSync,
|
|
bool amoledDarkTheme,
|
|
bool checkUpdate,
|
|
bool normalizeAudio,
|
|
bool showSystemTrayIcon,
|
|
bool skipNonMusic,
|
|
bool systemTitleBar,
|
|
CloseBehavior closeBehavior,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._accentColorSchemeFromJson,
|
|
toJson: UserPreferences._accentColorSchemeToJson,
|
|
readValue: UserPreferences._accentColorSchemeReadValue)
|
|
SpotubeColor accentColorScheme,
|
|
LayoutMode layoutMode,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._localeFromJson,
|
|
toJson: UserPreferences._localeToJson,
|
|
readValue: UserPreferences._localeReadValue)
|
|
Locale locale,
|
|
Market recommendationMarket,
|
|
SearchMode searchMode,
|
|
String downloadLocation,
|
|
List<String> localLibraryLocation,
|
|
String pipedInstance,
|
|
ThemeMode themeMode,
|
|
AudioSource audioSource,
|
|
SourceCodecs streamMusicCodec,
|
|
SourceCodecs downloadMusicCodec,
|
|
bool discordPresence,
|
|
bool endlessPlayback,
|
|
bool enableConnect});
|
|
}
|
|
|
|
/// @nodoc
|
|
class _$UserPreferencesCopyWithImpl<$Res, $Val extends UserPreferences>
|
|
implements $UserPreferencesCopyWith<$Res> {
|
|
_$UserPreferencesCopyWithImpl(this._value, this._then);
|
|
|
|
// ignore: unused_field
|
|
final $Val _value;
|
|
// ignore: unused_field
|
|
final $Res Function($Val) _then;
|
|
|
|
@pragma('vm:prefer-inline')
|
|
@override
|
|
$Res call({
|
|
Object? audioQuality = null,
|
|
Object? albumColorSync = null,
|
|
Object? amoledDarkTheme = null,
|
|
Object? checkUpdate = null,
|
|
Object? normalizeAudio = null,
|
|
Object? showSystemTrayIcon = null,
|
|
Object? skipNonMusic = null,
|
|
Object? systemTitleBar = null,
|
|
Object? closeBehavior = null,
|
|
Object? accentColorScheme = null,
|
|
Object? layoutMode = null,
|
|
Object? locale = null,
|
|
Object? recommendationMarket = null,
|
|
Object? searchMode = null,
|
|
Object? downloadLocation = null,
|
|
Object? localLibraryLocation = null,
|
|
Object? pipedInstance = null,
|
|
Object? themeMode = null,
|
|
Object? audioSource = null,
|
|
Object? streamMusicCodec = null,
|
|
Object? downloadMusicCodec = null,
|
|
Object? discordPresence = null,
|
|
Object? endlessPlayback = null,
|
|
Object? enableConnect = null,
|
|
}) {
|
|
return _then(_value.copyWith(
|
|
audioQuality: null == audioQuality
|
|
? _value.audioQuality
|
|
: audioQuality // ignore: cast_nullable_to_non_nullable
|
|
as SourceQualities,
|
|
albumColorSync: null == albumColorSync
|
|
? _value.albumColorSync
|
|
: albumColorSync // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
amoledDarkTheme: null == amoledDarkTheme
|
|
? _value.amoledDarkTheme
|
|
: amoledDarkTheme // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
checkUpdate: null == checkUpdate
|
|
? _value.checkUpdate
|
|
: checkUpdate // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
normalizeAudio: null == normalizeAudio
|
|
? _value.normalizeAudio
|
|
: normalizeAudio // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
showSystemTrayIcon: null == showSystemTrayIcon
|
|
? _value.showSystemTrayIcon
|
|
: showSystemTrayIcon // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
skipNonMusic: null == skipNonMusic
|
|
? _value.skipNonMusic
|
|
: skipNonMusic // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
systemTitleBar: null == systemTitleBar
|
|
? _value.systemTitleBar
|
|
: systemTitleBar // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
closeBehavior: null == closeBehavior
|
|
? _value.closeBehavior
|
|
: closeBehavior // ignore: cast_nullable_to_non_nullable
|
|
as CloseBehavior,
|
|
accentColorScheme: null == accentColorScheme
|
|
? _value.accentColorScheme
|
|
: accentColorScheme // ignore: cast_nullable_to_non_nullable
|
|
as SpotubeColor,
|
|
layoutMode: null == layoutMode
|
|
? _value.layoutMode
|
|
: layoutMode // ignore: cast_nullable_to_non_nullable
|
|
as LayoutMode,
|
|
locale: null == locale
|
|
? _value.locale
|
|
: locale // ignore: cast_nullable_to_non_nullable
|
|
as Locale,
|
|
recommendationMarket: null == recommendationMarket
|
|
? _value.recommendationMarket
|
|
: recommendationMarket // ignore: cast_nullable_to_non_nullable
|
|
as Market,
|
|
searchMode: null == searchMode
|
|
? _value.searchMode
|
|
: searchMode // ignore: cast_nullable_to_non_nullable
|
|
as SearchMode,
|
|
downloadLocation: null == downloadLocation
|
|
? _value.downloadLocation
|
|
: downloadLocation // ignore: cast_nullable_to_non_nullable
|
|
as String,
|
|
localLibraryLocation: null == localLibraryLocation
|
|
? _value.localLibraryLocation
|
|
: localLibraryLocation // ignore: cast_nullable_to_non_nullable
|
|
as List<String>,
|
|
pipedInstance: null == pipedInstance
|
|
? _value.pipedInstance
|
|
: pipedInstance // ignore: cast_nullable_to_non_nullable
|
|
as String,
|
|
themeMode: null == themeMode
|
|
? _value.themeMode
|
|
: themeMode // ignore: cast_nullable_to_non_nullable
|
|
as ThemeMode,
|
|
audioSource: null == audioSource
|
|
? _value.audioSource
|
|
: audioSource // ignore: cast_nullable_to_non_nullable
|
|
as AudioSource,
|
|
streamMusicCodec: null == streamMusicCodec
|
|
? _value.streamMusicCodec
|
|
: streamMusicCodec // ignore: cast_nullable_to_non_nullable
|
|
as SourceCodecs,
|
|
downloadMusicCodec: null == downloadMusicCodec
|
|
? _value.downloadMusicCodec
|
|
: downloadMusicCodec // ignore: cast_nullable_to_non_nullable
|
|
as SourceCodecs,
|
|
discordPresence: null == discordPresence
|
|
? _value.discordPresence
|
|
: discordPresence // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
endlessPlayback: null == endlessPlayback
|
|
? _value.endlessPlayback
|
|
: endlessPlayback // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
enableConnect: null == enableConnect
|
|
? _value.enableConnect
|
|
: enableConnect // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
) as $Val);
|
|
}
|
|
}
|
|
|
|
/// @nodoc
|
|
abstract class _$$UserPreferencesImplCopyWith<$Res>
|
|
implements $UserPreferencesCopyWith<$Res> {
|
|
factory _$$UserPreferencesImplCopyWith(_$UserPreferencesImpl value,
|
|
$Res Function(_$UserPreferencesImpl) then) =
|
|
__$$UserPreferencesImplCopyWithImpl<$Res>;
|
|
@override
|
|
@useResult
|
|
$Res call(
|
|
{SourceQualities audioQuality,
|
|
bool albumColorSync,
|
|
bool amoledDarkTheme,
|
|
bool checkUpdate,
|
|
bool normalizeAudio,
|
|
bool showSystemTrayIcon,
|
|
bool skipNonMusic,
|
|
bool systemTitleBar,
|
|
CloseBehavior closeBehavior,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._accentColorSchemeFromJson,
|
|
toJson: UserPreferences._accentColorSchemeToJson,
|
|
readValue: UserPreferences._accentColorSchemeReadValue)
|
|
SpotubeColor accentColorScheme,
|
|
LayoutMode layoutMode,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._localeFromJson,
|
|
toJson: UserPreferences._localeToJson,
|
|
readValue: UserPreferences._localeReadValue)
|
|
Locale locale,
|
|
Market recommendationMarket,
|
|
SearchMode searchMode,
|
|
String downloadLocation,
|
|
List<String> localLibraryLocation,
|
|
String pipedInstance,
|
|
ThemeMode themeMode,
|
|
AudioSource audioSource,
|
|
SourceCodecs streamMusicCodec,
|
|
SourceCodecs downloadMusicCodec,
|
|
bool discordPresence,
|
|
bool endlessPlayback,
|
|
bool enableConnect});
|
|
}
|
|
|
|
/// @nodoc
|
|
class __$$UserPreferencesImplCopyWithImpl<$Res>
|
|
extends _$UserPreferencesCopyWithImpl<$Res, _$UserPreferencesImpl>
|
|
implements _$$UserPreferencesImplCopyWith<$Res> {
|
|
__$$UserPreferencesImplCopyWithImpl(
|
|
_$UserPreferencesImpl _value, $Res Function(_$UserPreferencesImpl) _then)
|
|
: super(_value, _then);
|
|
|
|
@pragma('vm:prefer-inline')
|
|
@override
|
|
$Res call({
|
|
Object? audioQuality = null,
|
|
Object? albumColorSync = null,
|
|
Object? amoledDarkTheme = null,
|
|
Object? checkUpdate = null,
|
|
Object? normalizeAudio = null,
|
|
Object? showSystemTrayIcon = null,
|
|
Object? skipNonMusic = null,
|
|
Object? systemTitleBar = null,
|
|
Object? closeBehavior = null,
|
|
Object? accentColorScheme = null,
|
|
Object? layoutMode = null,
|
|
Object? locale = null,
|
|
Object? recommendationMarket = null,
|
|
Object? searchMode = null,
|
|
Object? downloadLocation = null,
|
|
Object? localLibraryLocation = null,
|
|
Object? pipedInstance = null,
|
|
Object? themeMode = null,
|
|
Object? audioSource = null,
|
|
Object? streamMusicCodec = null,
|
|
Object? downloadMusicCodec = null,
|
|
Object? discordPresence = null,
|
|
Object? endlessPlayback = null,
|
|
Object? enableConnect = null,
|
|
}) {
|
|
return _then(_$UserPreferencesImpl(
|
|
audioQuality: null == audioQuality
|
|
? _value.audioQuality
|
|
: audioQuality // ignore: cast_nullable_to_non_nullable
|
|
as SourceQualities,
|
|
albumColorSync: null == albumColorSync
|
|
? _value.albumColorSync
|
|
: albumColorSync // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
amoledDarkTheme: null == amoledDarkTheme
|
|
? _value.amoledDarkTheme
|
|
: amoledDarkTheme // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
checkUpdate: null == checkUpdate
|
|
? _value.checkUpdate
|
|
: checkUpdate // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
normalizeAudio: null == normalizeAudio
|
|
? _value.normalizeAudio
|
|
: normalizeAudio // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
showSystemTrayIcon: null == showSystemTrayIcon
|
|
? _value.showSystemTrayIcon
|
|
: showSystemTrayIcon // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
skipNonMusic: null == skipNonMusic
|
|
? _value.skipNonMusic
|
|
: skipNonMusic // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
systemTitleBar: null == systemTitleBar
|
|
? _value.systemTitleBar
|
|
: systemTitleBar // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
closeBehavior: null == closeBehavior
|
|
? _value.closeBehavior
|
|
: closeBehavior // ignore: cast_nullable_to_non_nullable
|
|
as CloseBehavior,
|
|
accentColorScheme: null == accentColorScheme
|
|
? _value.accentColorScheme
|
|
: accentColorScheme // ignore: cast_nullable_to_non_nullable
|
|
as SpotubeColor,
|
|
layoutMode: null == layoutMode
|
|
? _value.layoutMode
|
|
: layoutMode // ignore: cast_nullable_to_non_nullable
|
|
as LayoutMode,
|
|
locale: null == locale
|
|
? _value.locale
|
|
: locale // ignore: cast_nullable_to_non_nullable
|
|
as Locale,
|
|
recommendationMarket: null == recommendationMarket
|
|
? _value.recommendationMarket
|
|
: recommendationMarket // ignore: cast_nullable_to_non_nullable
|
|
as Market,
|
|
searchMode: null == searchMode
|
|
? _value.searchMode
|
|
: searchMode // ignore: cast_nullable_to_non_nullable
|
|
as SearchMode,
|
|
downloadLocation: null == downloadLocation
|
|
? _value.downloadLocation
|
|
: downloadLocation // ignore: cast_nullable_to_non_nullable
|
|
as String,
|
|
localLibraryLocation: null == localLibraryLocation
|
|
? _value._localLibraryLocation
|
|
: localLibraryLocation // ignore: cast_nullable_to_non_nullable
|
|
as List<String>,
|
|
pipedInstance: null == pipedInstance
|
|
? _value.pipedInstance
|
|
: pipedInstance // ignore: cast_nullable_to_non_nullable
|
|
as String,
|
|
themeMode: null == themeMode
|
|
? _value.themeMode
|
|
: themeMode // ignore: cast_nullable_to_non_nullable
|
|
as ThemeMode,
|
|
audioSource: null == audioSource
|
|
? _value.audioSource
|
|
: audioSource // ignore: cast_nullable_to_non_nullable
|
|
as AudioSource,
|
|
streamMusicCodec: null == streamMusicCodec
|
|
? _value.streamMusicCodec
|
|
: streamMusicCodec // ignore: cast_nullable_to_non_nullable
|
|
as SourceCodecs,
|
|
downloadMusicCodec: null == downloadMusicCodec
|
|
? _value.downloadMusicCodec
|
|
: downloadMusicCodec // ignore: cast_nullable_to_non_nullable
|
|
as SourceCodecs,
|
|
discordPresence: null == discordPresence
|
|
? _value.discordPresence
|
|
: discordPresence // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
endlessPlayback: null == endlessPlayback
|
|
? _value.endlessPlayback
|
|
: endlessPlayback // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
enableConnect: null == enableConnect
|
|
? _value.enableConnect
|
|
: enableConnect // ignore: cast_nullable_to_non_nullable
|
|
as bool,
|
|
));
|
|
}
|
|
}
|
|
|
|
/// @nodoc
|
|
@JsonSerializable()
|
|
class _$UserPreferencesImpl implements _UserPreferences {
|
|
const _$UserPreferencesImpl(
|
|
{this.audioQuality = SourceQualities.high,
|
|
this.albumColorSync = true,
|
|
this.amoledDarkTheme = false,
|
|
this.checkUpdate = true,
|
|
this.normalizeAudio = false,
|
|
this.showSystemTrayIcon = false,
|
|
this.skipNonMusic = false,
|
|
this.systemTitleBar = false,
|
|
this.closeBehavior = CloseBehavior.close,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._accentColorSchemeFromJson,
|
|
toJson: UserPreferences._accentColorSchemeToJson,
|
|
readValue: UserPreferences._accentColorSchemeReadValue)
|
|
this.accentColorScheme = const SpotubeColor(0xFF2196F3, name: "Blue"),
|
|
this.layoutMode = LayoutMode.adaptive,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._localeFromJson,
|
|
toJson: UserPreferences._localeToJson,
|
|
readValue: UserPreferences._localeReadValue)
|
|
this.locale = const Locale("system", "system"),
|
|
this.recommendationMarket = Market.US,
|
|
this.searchMode = SearchMode.youtube,
|
|
this.downloadLocation = "",
|
|
final List<String> localLibraryLocation = const [],
|
|
this.pipedInstance = "https://pipedapi.kavin.rocks",
|
|
this.themeMode = ThemeMode.system,
|
|
this.audioSource = AudioSource.youtube,
|
|
this.streamMusicCodec = SourceCodecs.weba,
|
|
this.downloadMusicCodec = SourceCodecs.m4a,
|
|
this.discordPresence = true,
|
|
this.endlessPlayback = true,
|
|
this.enableConnect = false})
|
|
: _localLibraryLocation = localLibraryLocation;
|
|
|
|
factory _$UserPreferencesImpl.fromJson(Map<String, dynamic> json) =>
|
|
_$$UserPreferencesImplFromJson(json);
|
|
|
|
@override
|
|
@JsonKey()
|
|
final SourceQualities audioQuality;
|
|
@override
|
|
@JsonKey()
|
|
final bool albumColorSync;
|
|
@override
|
|
@JsonKey()
|
|
final bool amoledDarkTheme;
|
|
@override
|
|
@JsonKey()
|
|
final bool checkUpdate;
|
|
@override
|
|
@JsonKey()
|
|
final bool normalizeAudio;
|
|
@override
|
|
@JsonKey()
|
|
final bool showSystemTrayIcon;
|
|
@override
|
|
@JsonKey()
|
|
final bool skipNonMusic;
|
|
@override
|
|
@JsonKey()
|
|
final bool systemTitleBar;
|
|
@override
|
|
@JsonKey()
|
|
final CloseBehavior closeBehavior;
|
|
@override
|
|
@JsonKey(
|
|
fromJson: UserPreferences._accentColorSchemeFromJson,
|
|
toJson: UserPreferences._accentColorSchemeToJson,
|
|
readValue: UserPreferences._accentColorSchemeReadValue)
|
|
final SpotubeColor accentColorScheme;
|
|
@override
|
|
@JsonKey()
|
|
final LayoutMode layoutMode;
|
|
@override
|
|
@JsonKey(
|
|
fromJson: UserPreferences._localeFromJson,
|
|
toJson: UserPreferences._localeToJson,
|
|
readValue: UserPreferences._localeReadValue)
|
|
final Locale locale;
|
|
@override
|
|
@JsonKey()
|
|
final Market recommendationMarket;
|
|
@override
|
|
@JsonKey()
|
|
final SearchMode searchMode;
|
|
@override
|
|
@JsonKey()
|
|
final String downloadLocation;
|
|
final List<String> _localLibraryLocation;
|
|
@override
|
|
@JsonKey()
|
|
List<String> get localLibraryLocation {
|
|
if (_localLibraryLocation is EqualUnmodifiableListView)
|
|
return _localLibraryLocation;
|
|
// ignore: implicit_dynamic_type
|
|
return EqualUnmodifiableListView(_localLibraryLocation);
|
|
}
|
|
|
|
@override
|
|
@JsonKey()
|
|
final String pipedInstance;
|
|
@override
|
|
@JsonKey()
|
|
final ThemeMode themeMode;
|
|
@override
|
|
@JsonKey()
|
|
final AudioSource audioSource;
|
|
@override
|
|
@JsonKey()
|
|
final SourceCodecs streamMusicCodec;
|
|
@override
|
|
@JsonKey()
|
|
final SourceCodecs downloadMusicCodec;
|
|
@override
|
|
@JsonKey()
|
|
final bool discordPresence;
|
|
@override
|
|
@JsonKey()
|
|
final bool endlessPlayback;
|
|
@override
|
|
@JsonKey()
|
|
final bool enableConnect;
|
|
|
|
@override
|
|
String toString() {
|
|
return 'UserPreferences(audioQuality: $audioQuality, albumColorSync: $albumColorSync, amoledDarkTheme: $amoledDarkTheme, checkUpdate: $checkUpdate, normalizeAudio: $normalizeAudio, showSystemTrayIcon: $showSystemTrayIcon, skipNonMusic: $skipNonMusic, systemTitleBar: $systemTitleBar, closeBehavior: $closeBehavior, accentColorScheme: $accentColorScheme, layoutMode: $layoutMode, locale: $locale, recommendationMarket: $recommendationMarket, searchMode: $searchMode, downloadLocation: $downloadLocation, localLibraryLocation: $localLibraryLocation, pipedInstance: $pipedInstance, themeMode: $themeMode, audioSource: $audioSource, streamMusicCodec: $streamMusicCodec, downloadMusicCodec: $downloadMusicCodec, discordPresence: $discordPresence, endlessPlayback: $endlessPlayback, enableConnect: $enableConnect)';
|
|
}
|
|
|
|
@override
|
|
bool operator ==(Object other) {
|
|
return identical(this, other) ||
|
|
(other.runtimeType == runtimeType &&
|
|
other is _$UserPreferencesImpl &&
|
|
(identical(other.audioQuality, audioQuality) ||
|
|
other.audioQuality == audioQuality) &&
|
|
(identical(other.albumColorSync, albumColorSync) ||
|
|
other.albumColorSync == albumColorSync) &&
|
|
(identical(other.amoledDarkTheme, amoledDarkTheme) ||
|
|
other.amoledDarkTheme == amoledDarkTheme) &&
|
|
(identical(other.checkUpdate, checkUpdate) ||
|
|
other.checkUpdate == checkUpdate) &&
|
|
(identical(other.normalizeAudio, normalizeAudio) ||
|
|
other.normalizeAudio == normalizeAudio) &&
|
|
(identical(other.showSystemTrayIcon, showSystemTrayIcon) ||
|
|
other.showSystemTrayIcon == showSystemTrayIcon) &&
|
|
(identical(other.skipNonMusic, skipNonMusic) ||
|
|
other.skipNonMusic == skipNonMusic) &&
|
|
(identical(other.systemTitleBar, systemTitleBar) ||
|
|
other.systemTitleBar == systemTitleBar) &&
|
|
(identical(other.closeBehavior, closeBehavior) ||
|
|
other.closeBehavior == closeBehavior) &&
|
|
(identical(other.accentColorScheme, accentColorScheme) ||
|
|
other.accentColorScheme == accentColorScheme) &&
|
|
(identical(other.layoutMode, layoutMode) ||
|
|
other.layoutMode == layoutMode) &&
|
|
(identical(other.locale, locale) || other.locale == locale) &&
|
|
(identical(other.recommendationMarket, recommendationMarket) ||
|
|
other.recommendationMarket == recommendationMarket) &&
|
|
(identical(other.searchMode, searchMode) ||
|
|
other.searchMode == searchMode) &&
|
|
(identical(other.downloadLocation, downloadLocation) ||
|
|
other.downloadLocation == downloadLocation) &&
|
|
const DeepCollectionEquality()
|
|
.equals(other._localLibraryLocation, _localLibraryLocation) &&
|
|
(identical(other.pipedInstance, pipedInstance) ||
|
|
other.pipedInstance == pipedInstance) &&
|
|
(identical(other.themeMode, themeMode) ||
|
|
other.themeMode == themeMode) &&
|
|
(identical(other.audioSource, audioSource) ||
|
|
other.audioSource == audioSource) &&
|
|
(identical(other.streamMusicCodec, streamMusicCodec) ||
|
|
other.streamMusicCodec == streamMusicCodec) &&
|
|
(identical(other.downloadMusicCodec, downloadMusicCodec) ||
|
|
other.downloadMusicCodec == downloadMusicCodec) &&
|
|
(identical(other.discordPresence, discordPresence) ||
|
|
other.discordPresence == discordPresence) &&
|
|
(identical(other.endlessPlayback, endlessPlayback) ||
|
|
other.endlessPlayback == endlessPlayback) &&
|
|
(identical(other.enableConnect, enableConnect) ||
|
|
other.enableConnect == enableConnect));
|
|
}
|
|
|
|
@JsonKey(ignore: true)
|
|
@override
|
|
int get hashCode => Object.hashAll([
|
|
runtimeType,
|
|
audioQuality,
|
|
albumColorSync,
|
|
amoledDarkTheme,
|
|
checkUpdate,
|
|
normalizeAudio,
|
|
showSystemTrayIcon,
|
|
skipNonMusic,
|
|
systemTitleBar,
|
|
closeBehavior,
|
|
accentColorScheme,
|
|
layoutMode,
|
|
locale,
|
|
recommendationMarket,
|
|
searchMode,
|
|
downloadLocation,
|
|
const DeepCollectionEquality().hash(_localLibraryLocation),
|
|
pipedInstance,
|
|
themeMode,
|
|
audioSource,
|
|
streamMusicCodec,
|
|
downloadMusicCodec,
|
|
discordPresence,
|
|
endlessPlayback,
|
|
enableConnect
|
|
]);
|
|
|
|
@JsonKey(ignore: true)
|
|
@override
|
|
@pragma('vm:prefer-inline')
|
|
_$$UserPreferencesImplCopyWith<_$UserPreferencesImpl> get copyWith =>
|
|
__$$UserPreferencesImplCopyWithImpl<_$UserPreferencesImpl>(
|
|
this, _$identity);
|
|
|
|
@override
|
|
Map<String, dynamic> toJson() {
|
|
return _$$UserPreferencesImplToJson(
|
|
this,
|
|
);
|
|
}
|
|
}
|
|
|
|
abstract class _UserPreferences implements UserPreferences {
|
|
const factory _UserPreferences(
|
|
{final SourceQualities audioQuality,
|
|
final bool albumColorSync,
|
|
final bool amoledDarkTheme,
|
|
final bool checkUpdate,
|
|
final bool normalizeAudio,
|
|
final bool showSystemTrayIcon,
|
|
final bool skipNonMusic,
|
|
final bool systemTitleBar,
|
|
final CloseBehavior closeBehavior,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._accentColorSchemeFromJson,
|
|
toJson: UserPreferences._accentColorSchemeToJson,
|
|
readValue: UserPreferences._accentColorSchemeReadValue)
|
|
final SpotubeColor accentColorScheme,
|
|
final LayoutMode layoutMode,
|
|
@JsonKey(
|
|
fromJson: UserPreferences._localeFromJson,
|
|
toJson: UserPreferences._localeToJson,
|
|
readValue: UserPreferences._localeReadValue)
|
|
final Locale locale,
|
|
final Market recommendationMarket,
|
|
final SearchMode searchMode,
|
|
final String downloadLocation,
|
|
final List<String> localLibraryLocation,
|
|
final String pipedInstance,
|
|
final ThemeMode themeMode,
|
|
final AudioSource audioSource,
|
|
final SourceCodecs streamMusicCodec,
|
|
final SourceCodecs downloadMusicCodec,
|
|
final bool discordPresence,
|
|
final bool endlessPlayback,
|
|
final bool enableConnect}) = _$UserPreferencesImpl;
|
|
|
|
factory _UserPreferences.fromJson(Map<String, dynamic> json) =
|
|
_$UserPreferencesImpl.fromJson;
|
|
|
|
@override
|
|
SourceQualities get audioQuality;
|
|
@override
|
|
bool get albumColorSync;
|
|
@override
|
|
bool get amoledDarkTheme;
|
|
@override
|
|
bool get checkUpdate;
|
|
@override
|
|
bool get normalizeAudio;
|
|
@override
|
|
bool get showSystemTrayIcon;
|
|
@override
|
|
bool get skipNonMusic;
|
|
@override
|
|
bool get systemTitleBar;
|
|
@override
|
|
CloseBehavior get closeBehavior;
|
|
@override
|
|
@JsonKey(
|
|
fromJson: UserPreferences._accentColorSchemeFromJson,
|
|
toJson: UserPreferences._accentColorSchemeToJson,
|
|
readValue: UserPreferences._accentColorSchemeReadValue)
|
|
SpotubeColor get accentColorScheme;
|
|
@override
|
|
LayoutMode get layoutMode;
|
|
@override
|
|
@JsonKey(
|
|
fromJson: UserPreferences._localeFromJson,
|
|
toJson: UserPreferences._localeToJson,
|
|
readValue: UserPreferences._localeReadValue)
|
|
Locale get locale;
|
|
@override
|
|
Market get recommendationMarket;
|
|
@override
|
|
SearchMode get searchMode;
|
|
@override
|
|
String get downloadLocation;
|
|
@override
|
|
List<String> get localLibraryLocation;
|
|
@override
|
|
String get pipedInstance;
|
|
@override
|
|
ThemeMode get themeMode;
|
|
@override
|
|
AudioSource get audioSource;
|
|
@override
|
|
SourceCodecs get streamMusicCodec;
|
|
@override
|
|
SourceCodecs get downloadMusicCodec;
|
|
@override
|
|
bool get discordPresence;
|
|
@override
|
|
bool get endlessPlayback;
|
|
@override
|
|
bool get enableConnect;
|
|
@override
|
|
@JsonKey(ignore: true)
|
|
_$$UserPreferencesImplCopyWith<_$UserPreferencesImpl> get copyWith =>
|
|
throw _privateConstructorUsedError;
|
|
}
|