feature: Improved banners, made banner settings easier to understand. (#71)

Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
PartyDonut 2024-10-24 23:02:10 +02:00 committed by GitHub
parent 11e0e106d3
commit 476bdc130e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 916 additions and 666 deletions

View file

@ -36,8 +36,12 @@ mixin _$AccountModel {
ServerConfiguration? get serverConfiguration =>
throw _privateConstructorUsedError;
/// Serializes this AccountModel to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of AccountModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$AccountModelCopyWith<AccountModel> get copyWith =>
throw _privateConstructorUsedError;
}
@ -74,6 +78,8 @@ class _$AccountModelCopyWithImpl<$Res, $Val extends AccountModel>
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of AccountModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -175,6 +181,8 @@ class __$$AccountModelImplCopyWithImpl<$Res>
_$AccountModelImpl _value, $Res Function(_$AccountModelImpl) _then)
: super(_value, _then);
/// Create a copy of AccountModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -365,7 +373,7 @@ class _$AccountModelImpl extends _AccountModel with DiagnosticableTreeMixin {
other.serverConfiguration == serverConfiguration));
}
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(
runtimeType,
@ -382,7 +390,9 @@ class _$AccountModelImpl extends _AccountModel with DiagnosticableTreeMixin {
policy,
serverConfiguration);
@JsonKey(ignore: true)
/// Create a copy of AccountModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$AccountModelImplCopyWith<_$AccountModelImpl> get copyWith =>
@ -443,8 +453,11 @@ abstract class _AccountModel extends AccountModel {
@override
@JsonKey(includeFromJson: false, includeToJson: false)
ServerConfiguration? get serverConfiguration;
/// Create a copy of AccountModel
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
_$$AccountModelImplCopyWith<_$AccountModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View file

@ -23,8 +23,12 @@ mixin _$IntroOutSkipModel {
IntroSkipModel? get intro => throw _privateConstructorUsedError;
IntroSkipModel? get credits => throw _privateConstructorUsedError;
/// Serializes this IntroOutSkipModel to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of IntroOutSkipModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$IntroOutSkipModelCopyWith<IntroOutSkipModel> get copyWith =>
throw _privateConstructorUsedError;
}
@ -51,6 +55,8 @@ class _$IntroOutSkipModelCopyWithImpl<$Res, $Val extends IntroOutSkipModel>
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of IntroOutSkipModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -69,6 +75,8 @@ class _$IntroOutSkipModelCopyWithImpl<$Res, $Val extends IntroOutSkipModel>
) as $Val);
}
/// Create a copy of IntroOutSkipModel
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$IntroSkipModelCopyWith<$Res>? get intro {
@ -81,6 +89,8 @@ class _$IntroOutSkipModelCopyWithImpl<$Res, $Val extends IntroOutSkipModel>
});
}
/// Create a copy of IntroOutSkipModel
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$IntroSkipModelCopyWith<$Res>? get credits {
@ -118,6 +128,8 @@ class __$$IntroOutSkipModelImplCopyWithImpl<$Res>
$Res Function(_$IntroOutSkipModelImpl) _then)
: super(_value, _then);
/// Create a copy of IntroOutSkipModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -164,11 +176,13 @@ class _$IntroOutSkipModelImpl extends _IntroOutSkipModel {
(identical(other.credits, credits) || other.credits == credits));
}
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType, intro, credits);
@JsonKey(ignore: true)
/// Create a copy of IntroOutSkipModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$IntroOutSkipModelImplCopyWith<_$IntroOutSkipModelImpl> get copyWith =>
@ -196,8 +210,11 @@ abstract class _IntroOutSkipModel extends IntroOutSkipModel {
IntroSkipModel? get intro;
@override
IntroSkipModel? get credits;
/// Create a copy of IntroOutSkipModel
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
_$$IntroOutSkipModelImplCopyWith<_$IntroOutSkipModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}
@ -233,8 +250,12 @@ mixin _$IntroSkipModel {
toJson: _durationToMilliseconds)
Duration get hideTime => throw _privateConstructorUsedError;
/// Serializes this IntroSkipModel to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of IntroSkipModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$IntroSkipModelCopyWith<IntroSkipModel> get copyWith =>
throw _privateConstructorUsedError;
}
@ -280,6 +301,8 @@ class _$IntroSkipModelCopyWithImpl<$Res, $Val extends IntroSkipModel>
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of IntroSkipModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -360,6 +383,8 @@ class __$$IntroSkipModelImplCopyWithImpl<$Res>
_$IntroSkipModelImpl _value, $Res Function(_$IntroSkipModelImpl) _then)
: super(_value, _then);
/// Create a copy of IntroSkipModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -480,12 +505,14 @@ class _$IntroSkipModelImpl implements _IntroSkipModel {
other.hideTime == hideTime));
}
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode =>
Object.hash(runtimeType, id, valid, start, end, showTime, hideTime);
@JsonKey(ignore: true)
/// Create a copy of IntroSkipModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$IntroSkipModelImplCopyWith<_$IntroSkipModelImpl> get copyWith =>
@ -558,8 +585,11 @@ abstract class _IntroSkipModel implements IntroSkipModel {
fromJson: _durationFromMilliseconds,
toJson: _durationToMilliseconds)
Duration get hideTime;
/// Create a copy of IntroSkipModel
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
_$$IntroSkipModelImplCopyWith<_$IntroSkipModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View file

@ -19,7 +19,9 @@ mixin _$ItemPropertiesModel {
bool get canDelete => throw _privateConstructorUsedError;
bool get canDownload => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of ItemPropertiesModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$ItemPropertiesModelCopyWith<ItemPropertiesModel> get copyWith =>
throw _privateConstructorUsedError;
}
@ -43,6 +45,8 @@ class _$ItemPropertiesModelCopyWithImpl<$Res, $Val extends ItemPropertiesModel>
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of ItemPropertiesModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -81,6 +85,8 @@ class __$$ItemPropertiesModelImplCopyWithImpl<$Res>
$Res Function(_$ItemPropertiesModelImpl) _then)
: super(_value, _then);
/// Create a copy of ItemPropertiesModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -131,7 +137,9 @@ class _$ItemPropertiesModelImpl extends _ItemPropertiesModel {
@override
int get hashCode => Object.hash(runtimeType, canDelete, canDownload);
@JsonKey(ignore: true)
/// Create a copy of ItemPropertiesModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$ItemPropertiesModelImplCopyWith<_$ItemPropertiesModelImpl> get copyWith =>
@ -149,8 +157,11 @@ abstract class _ItemPropertiesModel extends ItemPropertiesModel {
bool get canDelete;
@override
bool get canDownload;
/// Create a copy of ItemPropertiesModel
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
_$$ItemPropertiesModelImplCopyWith<_$ItemPropertiesModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View file

@ -28,8 +28,12 @@ mixin _$TrickPlayModel {
Duration get interval => throw _privateConstructorUsedError;
List<String> get images => throw _privateConstructorUsedError;
/// Serializes this TrickPlayModel to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of TrickPlayModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$TrickPlayModelCopyWith<TrickPlayModel> get copyWith =>
throw _privateConstructorUsedError;
}
@ -60,6 +64,8 @@ class _$TrickPlayModelCopyWithImpl<$Res, $Val extends TrickPlayModel>
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of TrickPlayModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -130,6 +136,8 @@ class __$$TrickPlayModelImplCopyWithImpl<$Res>
_$TrickPlayModelImpl _value, $Res Function(_$TrickPlayModelImpl) _then)
: super(_value, _then);
/// Create a copy of TrickPlayModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -235,7 +243,7 @@ class _$TrickPlayModelImpl extends _TrickPlayModel {
const DeepCollectionEquality().equals(other._images, _images));
}
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(
runtimeType,
@ -247,7 +255,9 @@ class _$TrickPlayModelImpl extends _TrickPlayModel {
interval,
const DeepCollectionEquality().hash(_images));
@JsonKey(ignore: true)
/// Create a copy of TrickPlayModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$TrickPlayModelImplCopyWith<_$TrickPlayModelImpl> get copyWith =>
@ -290,8 +300,11 @@ abstract class _TrickPlayModel extends TrickPlayModel {
Duration get interval;
@override
List<String> get images;
/// Create a copy of TrickPlayModel
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
_$$TrickPlayModelImplCopyWith<_$TrickPlayModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View file

@ -7,7 +7,6 @@ import 'package:flutter/material.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:fladder/util/custom_color_themes.dart';
import 'package:fladder/util/localization_helper.dart';
part 'client_settings_model.freezed.dart';
part 'client_settings_model.g.dart';
@ -23,7 +22,6 @@ class ClientSettingsModel with _$ClientSettingsModel {
Duration? nextUpDateCutoff,
@Default(ThemeMode.system) ThemeMode themeMode,
ColorThemes? themeColor,
@Default(HomeBanner.carousel) HomeBanner homeBanner,
@Default(false) bool amoledBlack,
@Default(false) bool blurPlaceHolders,
@Default(false) bool blurUpcomingEpisodes,
@ -73,18 +71,6 @@ class LocaleConvert implements JsonConverter<Locale?, String?> {
}
}
enum HomeBanner {
carousel,
banner;
const HomeBanner();
String label(BuildContext context) => switch (this) {
HomeBanner.carousel => context.localized.homeBannerCarousel,
HomeBanner.banner => context.localized.homeBannerBanner,
};
}
class Vector2 {
final double x;
final double y;

View file

@ -27,7 +27,6 @@ mixin _$ClientSettingsModel {
Duration? get nextUpDateCutoff => throw _privateConstructorUsedError;
ThemeMode get themeMode => throw _privateConstructorUsedError;
ColorThemes? get themeColor => throw _privateConstructorUsedError;
HomeBanner get homeBanner => throw _privateConstructorUsedError;
bool get amoledBlack => throw _privateConstructorUsedError;
bool get blurPlaceHolders => throw _privateConstructorUsedError;
bool get blurUpcomingEpisodes => throw _privateConstructorUsedError;
@ -63,7 +62,6 @@ abstract class $ClientSettingsModelCopyWith<$Res> {
Duration? nextUpDateCutoff,
ThemeMode themeMode,
ColorThemes? themeColor,
HomeBanner homeBanner,
bool amoledBlack,
bool blurPlaceHolders,
bool blurUpcomingEpisodes,
@ -97,7 +95,6 @@ class _$ClientSettingsModelCopyWithImpl<$Res, $Val extends ClientSettingsModel>
Object? nextUpDateCutoff = freezed,
Object? themeMode = null,
Object? themeColor = freezed,
Object? homeBanner = null,
Object? amoledBlack = null,
Object? blurPlaceHolders = null,
Object? blurUpcomingEpisodes = null,
@ -137,10 +134,6 @@ class _$ClientSettingsModelCopyWithImpl<$Res, $Val extends ClientSettingsModel>
? _value.themeColor
: themeColor // ignore: cast_nullable_to_non_nullable
as ColorThemes?,
homeBanner: null == homeBanner
? _value.homeBanner
: homeBanner // ignore: cast_nullable_to_non_nullable
as HomeBanner,
amoledBlack: null == amoledBlack
? _value.amoledBlack
: amoledBlack // ignore: cast_nullable_to_non_nullable
@ -197,7 +190,6 @@ abstract class _$$ClientSettingsModelImplCopyWith<$Res>
Duration? nextUpDateCutoff,
ThemeMode themeMode,
ColorThemes? themeColor,
HomeBanner homeBanner,
bool amoledBlack,
bool blurPlaceHolders,
bool blurUpcomingEpisodes,
@ -229,7 +221,6 @@ class __$$ClientSettingsModelImplCopyWithImpl<$Res>
Object? nextUpDateCutoff = freezed,
Object? themeMode = null,
Object? themeColor = freezed,
Object? homeBanner = null,
Object? amoledBlack = null,
Object? blurPlaceHolders = null,
Object? blurUpcomingEpisodes = null,
@ -269,10 +260,6 @@ class __$$ClientSettingsModelImplCopyWithImpl<$Res>
? _value.themeColor
: themeColor // ignore: cast_nullable_to_non_nullable
as ColorThemes?,
homeBanner: null == homeBanner
? _value.homeBanner
: homeBanner // ignore: cast_nullable_to_non_nullable
as HomeBanner,
amoledBlack: null == amoledBlack
? _value.amoledBlack
: amoledBlack // ignore: cast_nullable_to_non_nullable
@ -325,7 +312,6 @@ class _$ClientSettingsModelImpl extends _ClientSettingsModel
this.nextUpDateCutoff,
this.themeMode = ThemeMode.system,
this.themeColor,
this.homeBanner = HomeBanner.carousel,
this.amoledBlack = false,
this.blurPlaceHolders = false,
this.blurUpcomingEpisodes = false,
@ -360,9 +346,6 @@ class _$ClientSettingsModelImpl extends _ClientSettingsModel
final ColorThemes? themeColor;
@override
@JsonKey()
final HomeBanner homeBanner;
@override
@JsonKey()
final bool amoledBlack;
@override
@JsonKey()
@ -390,7 +373,7 @@ class _$ClientSettingsModelImpl extends _ClientSettingsModel
@override
String toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) {
return 'ClientSettingsModel(syncPath: $syncPath, position: $position, size: $size, timeOut: $timeOut, nextUpDateCutoff: $nextUpDateCutoff, themeMode: $themeMode, themeColor: $themeColor, homeBanner: $homeBanner, amoledBlack: $amoledBlack, blurPlaceHolders: $blurPlaceHolders, blurUpcomingEpisodes: $blurUpcomingEpisodes, selectedLocale: $selectedLocale, enableMediaKeys: $enableMediaKeys, posterSize: $posterSize, pinchPosterZoom: $pinchPosterZoom, mouseDragSupport: $mouseDragSupport, libraryPageSize: $libraryPageSize)';
return 'ClientSettingsModel(syncPath: $syncPath, position: $position, size: $size, timeOut: $timeOut, nextUpDateCutoff: $nextUpDateCutoff, themeMode: $themeMode, themeColor: $themeColor, amoledBlack: $amoledBlack, blurPlaceHolders: $blurPlaceHolders, blurUpcomingEpisodes: $blurUpcomingEpisodes, selectedLocale: $selectedLocale, enableMediaKeys: $enableMediaKeys, posterSize: $posterSize, pinchPosterZoom: $pinchPosterZoom, mouseDragSupport: $mouseDragSupport, libraryPageSize: $libraryPageSize)';
}
@override
@ -405,7 +388,6 @@ class _$ClientSettingsModelImpl extends _ClientSettingsModel
..add(DiagnosticsProperty('nextUpDateCutoff', nextUpDateCutoff))
..add(DiagnosticsProperty('themeMode', themeMode))
..add(DiagnosticsProperty('themeColor', themeColor))
..add(DiagnosticsProperty('homeBanner', homeBanner))
..add(DiagnosticsProperty('amoledBlack', amoledBlack))
..add(DiagnosticsProperty('blurPlaceHolders', blurPlaceHolders))
..add(DiagnosticsProperty('blurUpcomingEpisodes', blurUpcomingEpisodes))
@ -434,8 +416,6 @@ class _$ClientSettingsModelImpl extends _ClientSettingsModel
other.themeMode == themeMode) &&
(identical(other.themeColor, themeColor) ||
other.themeColor == themeColor) &&
(identical(other.homeBanner, homeBanner) ||
other.homeBanner == homeBanner) &&
(identical(other.amoledBlack, amoledBlack) ||
other.amoledBlack == amoledBlack) &&
(identical(other.blurPlaceHolders, blurPlaceHolders) ||
@ -467,7 +447,6 @@ class _$ClientSettingsModelImpl extends _ClientSettingsModel
nextUpDateCutoff,
themeMode,
themeColor,
homeBanner,
amoledBlack,
blurPlaceHolders,
blurUpcomingEpisodes,
@ -504,7 +483,6 @@ abstract class _ClientSettingsModel extends ClientSettingsModel {
final Duration? nextUpDateCutoff,
final ThemeMode themeMode,
final ColorThemes? themeColor,
final HomeBanner homeBanner,
final bool amoledBlack,
final bool blurPlaceHolders,
final bool blurUpcomingEpisodes,
@ -534,8 +512,6 @@ abstract class _ClientSettingsModel extends ClientSettingsModel {
@override
ColorThemes? get themeColor;
@override
HomeBanner get homeBanner;
@override
bool get amoledBlack;
@override
bool get blurPlaceHolders;

View file

@ -25,9 +25,6 @@ _$ClientSettingsModelImpl _$$ClientSettingsModelImplFromJson(
themeMode: $enumDecodeNullable(_$ThemeModeEnumMap, json['themeMode']) ??
ThemeMode.system,
themeColor: $enumDecodeNullable(_$ColorThemesEnumMap, json['themeColor']),
homeBanner:
$enumDecodeNullable(_$HomeBannerEnumMap, json['homeBanner']) ??
HomeBanner.carousel,
amoledBlack: json['amoledBlack'] as bool? ?? false,
blurPlaceHolders: json['blurPlaceHolders'] as bool? ?? false,
blurUpcomingEpisodes: json['blurUpcomingEpisodes'] as bool? ?? false,
@ -50,7 +47,6 @@ Map<String, dynamic> _$$ClientSettingsModelImplToJson(
'nextUpDateCutoff': instance.nextUpDateCutoff?.inMicroseconds,
'themeMode': _$ThemeModeEnumMap[instance.themeMode]!,
'themeColor': _$ColorThemesEnumMap[instance.themeColor],
'homeBanner': _$HomeBannerEnumMap[instance.homeBanner]!,
'amoledBlack': instance.amoledBlack,
'blurPlaceHolders': instance.blurPlaceHolders,
'blurUpcomingEpisodes': instance.blurUpcomingEpisodes,
@ -85,8 +81,3 @@ const _$ColorThemesEnumMap = {
ColorThemes.deepPurple: 'deepPurple',
ColorThemes.blueGrey: 'blueGrey',
};
const _$HomeBannerEnumMap = {
HomeBanner.carousel: 'carousel',
HomeBanner.banner: 'banner',
};

View file

@ -1,11 +1,38 @@
import 'dart:convert';
import 'package:collection/collection.dart';
import 'package:fladder/util/localization_helper.dart';
import 'package:flutter/material.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:fladder/util/localization_helper.dart';
part 'home_settings_model.freezed.dart';
part 'home_settings_model.g.dart';
@freezed
class HomeSettingsModel with _$HomeSettingsModel {
factory HomeSettingsModel({
@Default(HomeBanner.carousel) HomeBanner homeBanner,
@Default(HomeCarouselSettings.combined) HomeCarouselSettings carouselSettings,
@Default(HomeNextUp.separate) HomeNextUp nextUp,
}) = _HomeSettingsModel;
factory HomeSettingsModel.fromJson(Map<String, dynamic> json) => _$HomeSettingsModelFromJson(json);
}
enum HomeBanner {
hide,
carousel,
banner;
const HomeBanner();
String label(BuildContext context) => switch (this) {
HomeBanner.hide => context.localized.hide,
HomeBanner.carousel => context.localized.homeBannerCarousel,
HomeBanner.banner => context.localized.homeBannerBanner,
};
}
enum HomeCarouselSettings {
off,
nextUp,
cont,
combined,
@ -14,20 +41,10 @@ enum HomeCarouselSettings {
const HomeCarouselSettings();
String label(BuildContext context) => switch (this) {
HomeCarouselSettings.off => context.localized.hide,
HomeCarouselSettings.nextUp => context.localized.nextUp,
HomeCarouselSettings.cont => context.localized.settingsContinue,
HomeCarouselSettings.combined => context.localized.combined,
};
String toMap() {
return toString();
}
static HomeCarouselSettings fromMap(String value) {
return HomeCarouselSettings.values.firstWhereOrNull((element) => element.name == value) ??
HomeCarouselSettings.combined;
}
}
enum HomeNextUp {
@ -47,62 +64,4 @@ enum HomeNextUp {
HomeNextUp.combined => context.localized.combined,
HomeNextUp.separate => context.localized.separate,
};
String toMap() {
return toString();
}
static HomeNextUp fromMap(String value) {
return HomeNextUp.values.firstWhereOrNull((element) => element.name == value) ?? HomeNextUp.separate;
}
}
class HomeSettingsModel {
final HomeCarouselSettings carouselSettings;
final HomeNextUp nextUp;
HomeSettingsModel({
this.carouselSettings = HomeCarouselSettings.combined,
this.nextUp = HomeNextUp.separate,
});
HomeSettingsModel copyWith({
HomeCarouselSettings? carouselSettings,
HomeNextUp? nextUp,
}) {
return HomeSettingsModel(
carouselSettings: carouselSettings ?? this.carouselSettings,
nextUp: nextUp ?? this.nextUp,
);
}
Map<String, dynamic> toMap() {
return {
'carouselSettings': carouselSettings.toMap(),
'nextUp': nextUp.toMap(),
};
}
factory HomeSettingsModel.fromMap(Map<String, dynamic> map) {
return HomeSettingsModel(
carouselSettings: HomeCarouselSettings.fromMap(map['carouselSettings']),
nextUp: HomeNextUp.fromMap(map['nextUp']),
);
}
String toJson() => json.encode(toMap());
factory HomeSettingsModel.fromJson(String source) => HomeSettingsModel.fromMap(json.decode(source));
@override
String toString() => 'HomeSettingsModel(carouselSettings: $carouselSettings, nextUp: $nextUp)';
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is HomeSettingsModel && other.carouselSettings == carouselSettings && other.nextUp == nextUp;
}
@override
int get hashCode => carouselSettings.hashCode ^ nextUp.hashCode;
}

View file

@ -0,0 +1,216 @@
// 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 'home_settings_model.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');
HomeSettingsModel _$HomeSettingsModelFromJson(Map<String, dynamic> json) {
return _HomeSettingsModel.fromJson(json);
}
/// @nodoc
mixin _$HomeSettingsModel {
HomeBanner get homeBanner => throw _privateConstructorUsedError;
HomeCarouselSettings get carouselSettings =>
throw _privateConstructorUsedError;
HomeNextUp get nextUp => throw _privateConstructorUsedError;
/// Serializes this HomeSettingsModel to a JSON map.
Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
/// Create a copy of HomeSettingsModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$HomeSettingsModelCopyWith<HomeSettingsModel> get copyWith =>
throw _privateConstructorUsedError;
}
/// @nodoc
abstract class $HomeSettingsModelCopyWith<$Res> {
factory $HomeSettingsModelCopyWith(
HomeSettingsModel value, $Res Function(HomeSettingsModel) then) =
_$HomeSettingsModelCopyWithImpl<$Res, HomeSettingsModel>;
@useResult
$Res call(
{HomeBanner homeBanner,
HomeCarouselSettings carouselSettings,
HomeNextUp nextUp});
}
/// @nodoc
class _$HomeSettingsModelCopyWithImpl<$Res, $Val extends HomeSettingsModel>
implements $HomeSettingsModelCopyWith<$Res> {
_$HomeSettingsModelCopyWithImpl(this._value, this._then);
// ignore: unused_field
final $Val _value;
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of HomeSettingsModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
Object? homeBanner = null,
Object? carouselSettings = null,
Object? nextUp = null,
}) {
return _then(_value.copyWith(
homeBanner: null == homeBanner
? _value.homeBanner
: homeBanner // ignore: cast_nullable_to_non_nullable
as HomeBanner,
carouselSettings: null == carouselSettings
? _value.carouselSettings
: carouselSettings // ignore: cast_nullable_to_non_nullable
as HomeCarouselSettings,
nextUp: null == nextUp
? _value.nextUp
: nextUp // ignore: cast_nullable_to_non_nullable
as HomeNextUp,
) as $Val);
}
}
/// @nodoc
abstract class _$$HomeSettingsModelImplCopyWith<$Res>
implements $HomeSettingsModelCopyWith<$Res> {
factory _$$HomeSettingsModelImplCopyWith(_$HomeSettingsModelImpl value,
$Res Function(_$HomeSettingsModelImpl) then) =
__$$HomeSettingsModelImplCopyWithImpl<$Res>;
@override
@useResult
$Res call(
{HomeBanner homeBanner,
HomeCarouselSettings carouselSettings,
HomeNextUp nextUp});
}
/// @nodoc
class __$$HomeSettingsModelImplCopyWithImpl<$Res>
extends _$HomeSettingsModelCopyWithImpl<$Res, _$HomeSettingsModelImpl>
implements _$$HomeSettingsModelImplCopyWith<$Res> {
__$$HomeSettingsModelImplCopyWithImpl(_$HomeSettingsModelImpl _value,
$Res Function(_$HomeSettingsModelImpl) _then)
: super(_value, _then);
/// Create a copy of HomeSettingsModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
Object? homeBanner = null,
Object? carouselSettings = null,
Object? nextUp = null,
}) {
return _then(_$HomeSettingsModelImpl(
homeBanner: null == homeBanner
? _value.homeBanner
: homeBanner // ignore: cast_nullable_to_non_nullable
as HomeBanner,
carouselSettings: null == carouselSettings
? _value.carouselSettings
: carouselSettings // ignore: cast_nullable_to_non_nullable
as HomeCarouselSettings,
nextUp: null == nextUp
? _value.nextUp
: nextUp // ignore: cast_nullable_to_non_nullable
as HomeNextUp,
));
}
}
/// @nodoc
@JsonSerializable()
class _$HomeSettingsModelImpl implements _HomeSettingsModel {
_$HomeSettingsModelImpl(
{this.homeBanner = HomeBanner.carousel,
this.carouselSettings = HomeCarouselSettings.combined,
this.nextUp = HomeNextUp.separate});
factory _$HomeSettingsModelImpl.fromJson(Map<String, dynamic> json) =>
_$$HomeSettingsModelImplFromJson(json);
@override
@JsonKey()
final HomeBanner homeBanner;
@override
@JsonKey()
final HomeCarouselSettings carouselSettings;
@override
@JsonKey()
final HomeNextUp nextUp;
@override
String toString() {
return 'HomeSettingsModel(homeBanner: $homeBanner, carouselSettings: $carouselSettings, nextUp: $nextUp)';
}
@override
bool operator ==(Object other) {
return identical(this, other) ||
(other.runtimeType == runtimeType &&
other is _$HomeSettingsModelImpl &&
(identical(other.homeBanner, homeBanner) ||
other.homeBanner == homeBanner) &&
(identical(other.carouselSettings, carouselSettings) ||
other.carouselSettings == carouselSettings) &&
(identical(other.nextUp, nextUp) || other.nextUp == nextUp));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode =>
Object.hash(runtimeType, homeBanner, carouselSettings, nextUp);
/// Create a copy of HomeSettingsModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$HomeSettingsModelImplCopyWith<_$HomeSettingsModelImpl> get copyWith =>
__$$HomeSettingsModelImplCopyWithImpl<_$HomeSettingsModelImpl>(
this, _$identity);
@override
Map<String, dynamic> toJson() {
return _$$HomeSettingsModelImplToJson(
this,
);
}
}
abstract class _HomeSettingsModel implements HomeSettingsModel {
factory _HomeSettingsModel(
{final HomeBanner homeBanner,
final HomeCarouselSettings carouselSettings,
final HomeNextUp nextUp}) = _$HomeSettingsModelImpl;
factory _HomeSettingsModel.fromJson(Map<String, dynamic> json) =
_$HomeSettingsModelImpl.fromJson;
@override
HomeBanner get homeBanner;
@override
HomeCarouselSettings get carouselSettings;
@override
HomeNextUp get nextUp;
/// Create a copy of HomeSettingsModel
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(includeFromJson: false, includeToJson: false)
_$$HomeSettingsModelImplCopyWith<_$HomeSettingsModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View file

@ -0,0 +1,49 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'home_settings_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
_$HomeSettingsModelImpl _$$HomeSettingsModelImplFromJson(
Map<String, dynamic> json) =>
_$HomeSettingsModelImpl(
homeBanner:
$enumDecodeNullable(_$HomeBannerEnumMap, json['homeBanner']) ??
HomeBanner.carousel,
carouselSettings: $enumDecodeNullable(
_$HomeCarouselSettingsEnumMap, json['carouselSettings']) ??
HomeCarouselSettings.combined,
nextUp: $enumDecodeNullable(_$HomeNextUpEnumMap, json['nextUp']) ??
HomeNextUp.separate,
);
Map<String, dynamic> _$$HomeSettingsModelImplToJson(
_$HomeSettingsModelImpl instance) =>
<String, dynamic>{
'homeBanner': _$HomeBannerEnumMap[instance.homeBanner]!,
'carouselSettings':
_$HomeCarouselSettingsEnumMap[instance.carouselSettings]!,
'nextUp': _$HomeNextUpEnumMap[instance.nextUp]!,
};
const _$HomeBannerEnumMap = {
HomeBanner.hide: 'hide',
HomeBanner.carousel: 'carousel',
HomeBanner.banner: 'banner',
};
const _$HomeCarouselSettingsEnumMap = {
HomeCarouselSettings.nextUp: 'nextUp',
HomeCarouselSettings.cont: 'cont',
HomeCarouselSettings.combined: 'combined',
};
const _$HomeNextUpEnumMap = {
HomeNextUp.off: 'off',
HomeNextUp.nextUp: 'nextUp',
HomeNextUp.cont: 'cont',
HomeNextUp.combined: 'combined',
HomeNextUp.separate: 'separate',
};

View file

@ -33,7 +33,9 @@ mixin _$SyncedItem {
@UserDataJsonSerializer()
UserData? get userData => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of SyncedItem
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$SyncedItemCopyWith<SyncedItem> get copyWith =>
throw _privateConstructorUsedError;
}
@ -74,6 +76,8 @@ class _$SyncedItemCopyWithImpl<$Res, $Val extends SyncedItem>
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of SyncedItem
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -152,6 +156,8 @@ class _$SyncedItemCopyWithImpl<$Res, $Val extends SyncedItem>
) as $Val);
}
/// Create a copy of SyncedItem
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$IntroOutSkipModelCopyWith<$Res>? get introOutSkipModel {
@ -164,6 +170,8 @@ class _$SyncedItemCopyWithImpl<$Res, $Val extends SyncedItem>
});
}
/// Create a copy of SyncedItem
/// with the given fields replaced by the non-null parameter values.
@override
@pragma('vm:prefer-inline')
$TrickPlayModelCopyWith<$Res>? get fTrickPlayModel {
@ -215,6 +223,8 @@ class __$$SyncItemImplCopyWithImpl<$Res>
_$SyncItemImpl _value, $Res Function(_$SyncItemImpl) _then)
: super(_value, _then);
/// Create a copy of SyncedItem
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -415,7 +425,9 @@ class _$SyncItemImpl extends _SyncItem {
const DeepCollectionEquality().hash(_subtitles),
userData);
@JsonKey(ignore: true)
/// Create a copy of SyncedItem
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$SyncItemImplCopyWith<_$SyncItemImpl> get copyWith =>
@ -469,8 +481,11 @@ abstract class _SyncItem extends SyncedItem {
@override
@UserDataJsonSerializer()
UserData? get userData;
/// Create a copy of SyncedItem
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
_$$SyncItemImplCopyWith<_$SyncItemImpl> get copyWith =>
throw _privateConstructorUsedError;
}

View file

@ -18,7 +18,9 @@ final _privateConstructorUsedError = UnsupportedError(
mixin _$SyncSettingsModel {
List<SyncedItem> get items => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
/// Create a copy of SyncSettingsModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
$SyncSettingsModelCopyWith<SyncSettingsModel> get copyWith =>
throw _privateConstructorUsedError;
}
@ -42,6 +44,8 @@ class _$SyncSettingsModelCopyWithImpl<$Res, $Val extends SyncSettingsModel>
// ignore: unused_field
final $Res Function($Val) _then;
/// Create a copy of SyncSettingsModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -75,6 +79,8 @@ class __$$SyncSettignsModelImplCopyWithImpl<$Res>
$Res Function(_$SyncSettignsModelImpl) _then)
: super(_value, _then);
/// Create a copy of SyncSettingsModel
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({
@ -122,7 +128,9 @@ class _$SyncSettignsModelImpl extends _SyncSettignsModel {
int get hashCode =>
Object.hash(runtimeType, const DeepCollectionEquality().hash(_items));
@JsonKey(ignore: true)
/// Create a copy of SyncSettingsModel
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$SyncSettignsModelImplCopyWith<_$SyncSettignsModelImpl> get copyWith =>
@ -137,8 +145,11 @@ abstract class _SyncSettignsModel extends SyncSettingsModel {
@override
List<SyncedItem> get items;
/// Create a copy of SyncSettingsModel
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(ignore: true)
@JsonKey(includeFromJson: false, includeToJson: false)
_$$SyncSettignsModelImplCopyWith<_$SyncSettignsModelImpl> get copyWith =>
throw _privateConstructorUsedError;
}