mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-04-20 15:02:07 +00:00
Combine two identical classes
Combine MangasSetIsReadState and MangasSetUnReadState to reduce code duplication.
This commit is contained in:
parent
36a2232461
commit
ae1d158264
7 changed files with 41 additions and 192 deletions
|
|
@ -618,6 +618,7 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
|
|||
.read(
|
||||
mangasSetIsReadStateProvider(
|
||||
mangaIds: mangaIds,
|
||||
markAsRead: true,
|
||||
).notifier,
|
||||
)
|
||||
.set();
|
||||
|
|
@ -649,8 +650,9 @@ class _LibraryScreenState extends ConsumerState<LibraryScreen>
|
|||
onPressed: () {
|
||||
ref
|
||||
.read(
|
||||
mangasSetUnReadStateProvider(
|
||||
mangasSetIsReadStateProvider(
|
||||
mangaIds: mangaIds,
|
||||
markAsRead: false,
|
||||
).notifier,
|
||||
)
|
||||
.set();
|
||||
|
|
|
|||
|
|
@ -829,50 +829,21 @@ class IsLongPressedMangaState extends _$IsLongPressedMangaState {
|
|||
@riverpod
|
||||
class MangasSetIsReadState extends _$MangasSetIsReadState {
|
||||
@override
|
||||
void build({required List<int> mangaIds}) {}
|
||||
void build({required List<int> mangaIds, required bool markAsRead}) {}
|
||||
|
||||
void set() {
|
||||
final allChapters = <Chapter>[];
|
||||
final allMangas = <Manga>[];
|
||||
final now = DateTime.now().millisecondsSinceEpoch;
|
||||
for (var mangaid in mangaIds) {
|
||||
final manga = isar.mangas.getSync(mangaid)!;
|
||||
final chapters = manga.chapters;
|
||||
if (chapters.isNotEmpty) {
|
||||
chapters.last.updateTrackChapterRead(ref);
|
||||
for (var chapter in chapters) {
|
||||
chapter.isRead = true;
|
||||
chapter.lastPageRead = "1";
|
||||
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
|
||||
chapter.manga.value = manga;
|
||||
allChapters.add(chapter);
|
||||
}
|
||||
allMangas.add(manga);
|
||||
}
|
||||
}
|
||||
|
||||
isar.writeTxnSync(() {
|
||||
isar.chapters.putAllSync(allChapters);
|
||||
isar.mangas.putAllSync(allMangas);
|
||||
});
|
||||
|
||||
ref.read(isLongPressedMangaStateProvider.notifier).update(false);
|
||||
ref.read(mangasListStateProvider.notifier).clear();
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class MangasSetUnReadState extends _$MangasSetUnReadState {
|
||||
@override
|
||||
void build({required List<int> mangaIds}) {}
|
||||
|
||||
void set() {
|
||||
final allChapters = <Chapter>[];
|
||||
final allMangas = <Manga>[];
|
||||
for (var mangaid in mangaIds) {
|
||||
final manga = isar.mangas.getSync(mangaid)!;
|
||||
for (var chapter in manga.chapters) {
|
||||
chapter.isRead = false;
|
||||
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
|
||||
if (chapters.isEmpty) continue;
|
||||
if (markAsRead) chapters.last.updateTrackChapterRead(ref);
|
||||
for (var chapter in chapters) {
|
||||
chapter.isRead = markAsRead;
|
||||
if (markAsRead) chapter.lastPageRead = "1";
|
||||
chapter.updatedAt = now;
|
||||
chapter.manga.value = manga;
|
||||
allChapters.add(chapter);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2551,14 +2551,16 @@ final isLongPressedMangaStateProvider =
|
|||
|
||||
typedef _$IsLongPressedMangaState = AutoDisposeNotifier<bool>;
|
||||
String _$mangasSetIsReadStateHash() =>
|
||||
r'8f4f7f22ea8e82cf2370fb997033e1a4ec03168f';
|
||||
r'0bc11e49fd33d7c76e86b005e6d30d7ac39bb5e2';
|
||||
|
||||
abstract class _$MangasSetIsReadState
|
||||
extends BuildlessAutoDisposeNotifier<void> {
|
||||
late final List<int> mangaIds;
|
||||
late final bool markAsRead;
|
||||
|
||||
void build({
|
||||
required List<int> mangaIds,
|
||||
required bool markAsRead,
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -2574,9 +2576,11 @@ class MangasSetIsReadStateFamily extends Family<void> {
|
|||
/// See also [MangasSetIsReadState].
|
||||
MangasSetIsReadStateProvider call({
|
||||
required List<int> mangaIds,
|
||||
required bool markAsRead,
|
||||
}) {
|
||||
return MangasSetIsReadStateProvider(
|
||||
mangaIds: mangaIds,
|
||||
markAsRead: markAsRead,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -2586,6 +2590,7 @@ class MangasSetIsReadStateFamily extends Family<void> {
|
|||
) {
|
||||
return call(
|
||||
mangaIds: provider.mangaIds,
|
||||
markAsRead: provider.markAsRead,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -2610,8 +2615,11 @@ class MangasSetIsReadStateProvider
|
|||
/// See also [MangasSetIsReadState].
|
||||
MangasSetIsReadStateProvider({
|
||||
required List<int> mangaIds,
|
||||
required bool markAsRead,
|
||||
}) : this._internal(
|
||||
() => MangasSetIsReadState()..mangaIds = mangaIds,
|
||||
() => MangasSetIsReadState()
|
||||
..mangaIds = mangaIds
|
||||
..markAsRead = markAsRead,
|
||||
from: mangasSetIsReadStateProvider,
|
||||
name: r'mangasSetIsReadStateProvider',
|
||||
debugGetCreateSourceHash:
|
||||
|
|
@ -2622,6 +2630,7 @@ class MangasSetIsReadStateProvider
|
|||
allTransitiveDependencies:
|
||||
MangasSetIsReadStateFamily._allTransitiveDependencies,
|
||||
mangaIds: mangaIds,
|
||||
markAsRead: markAsRead,
|
||||
);
|
||||
|
||||
MangasSetIsReadStateProvider._internal(
|
||||
|
|
@ -2632,9 +2641,11 @@ class MangasSetIsReadStateProvider
|
|||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.mangaIds,
|
||||
required this.markAsRead,
|
||||
}) : super.internal();
|
||||
|
||||
final List<int> mangaIds;
|
||||
final bool markAsRead;
|
||||
|
||||
@override
|
||||
void runNotifierBuild(
|
||||
|
|
@ -2642,6 +2653,7 @@ class MangasSetIsReadStateProvider
|
|||
) {
|
||||
return notifier.build(
|
||||
mangaIds: mangaIds,
|
||||
markAsRead: markAsRead,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -2650,13 +2662,16 @@ class MangasSetIsReadStateProvider
|
|||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: MangasSetIsReadStateProvider._internal(
|
||||
() => create()..mangaIds = mangaIds,
|
||||
() => create()
|
||||
..mangaIds = mangaIds
|
||||
..markAsRead = markAsRead,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
mangaIds: mangaIds,
|
||||
markAsRead: markAsRead,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
@ -2669,13 +2684,16 @@ class MangasSetIsReadStateProvider
|
|||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is MangasSetIsReadStateProvider && other.mangaIds == mangaIds;
|
||||
return other is MangasSetIsReadStateProvider &&
|
||||
other.mangaIds == mangaIds &&
|
||||
other.markAsRead == markAsRead;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, mangaIds.hashCode);
|
||||
hash = _SystemHash.combine(hash, markAsRead.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
|
|
@ -2686,6 +2704,9 @@ class MangasSetIsReadStateProvider
|
|||
mixin MangasSetIsReadStateRef on AutoDisposeNotifierProviderRef<void> {
|
||||
/// The parameter `mangaIds` of this provider.
|
||||
List<int> get mangaIds;
|
||||
|
||||
/// The parameter `markAsRead` of this provider.
|
||||
bool get markAsRead;
|
||||
}
|
||||
|
||||
class _MangasSetIsReadStateProviderElement
|
||||
|
|
@ -2695,153 +2716,8 @@ class _MangasSetIsReadStateProviderElement
|
|||
|
||||
@override
|
||||
List<int> get mangaIds => (origin as MangasSetIsReadStateProvider).mangaIds;
|
||||
}
|
||||
|
||||
String _$mangasSetUnReadStateHash() =>
|
||||
r'09ddd287b110fd76494f9f56bd5cf76f58936f1f';
|
||||
|
||||
abstract class _$MangasSetUnReadState
|
||||
extends BuildlessAutoDisposeNotifier<void> {
|
||||
late final List<int> mangaIds;
|
||||
|
||||
void build({
|
||||
required List<int> mangaIds,
|
||||
});
|
||||
}
|
||||
|
||||
/// See also [MangasSetUnReadState].
|
||||
@ProviderFor(MangasSetUnReadState)
|
||||
const mangasSetUnReadStateProvider = MangasSetUnReadStateFamily();
|
||||
|
||||
/// See also [MangasSetUnReadState].
|
||||
class MangasSetUnReadStateFamily extends Family<void> {
|
||||
/// See also [MangasSetUnReadState].
|
||||
const MangasSetUnReadStateFamily();
|
||||
|
||||
/// See also [MangasSetUnReadState].
|
||||
MangasSetUnReadStateProvider call({
|
||||
required List<int> mangaIds,
|
||||
}) {
|
||||
return MangasSetUnReadStateProvider(
|
||||
mangaIds: mangaIds,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
MangasSetUnReadStateProvider getProviderOverride(
|
||||
covariant MangasSetUnReadStateProvider provider,
|
||||
) {
|
||||
return call(
|
||||
mangaIds: provider.mangaIds,
|
||||
);
|
||||
}
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _dependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get dependencies => _dependencies;
|
||||
|
||||
static const Iterable<ProviderOrFamily>? _allTransitiveDependencies = null;
|
||||
|
||||
@override
|
||||
Iterable<ProviderOrFamily>? get allTransitiveDependencies =>
|
||||
_allTransitiveDependencies;
|
||||
|
||||
@override
|
||||
String? get name => r'mangasSetUnReadStateProvider';
|
||||
}
|
||||
|
||||
/// See also [MangasSetUnReadState].
|
||||
class MangasSetUnReadStateProvider
|
||||
extends AutoDisposeNotifierProviderImpl<MangasSetUnReadState, void> {
|
||||
/// See also [MangasSetUnReadState].
|
||||
MangasSetUnReadStateProvider({
|
||||
required List<int> mangaIds,
|
||||
}) : this._internal(
|
||||
() => MangasSetUnReadState()..mangaIds = mangaIds,
|
||||
from: mangasSetUnReadStateProvider,
|
||||
name: r'mangasSetUnReadStateProvider',
|
||||
debugGetCreateSourceHash:
|
||||
const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$mangasSetUnReadStateHash,
|
||||
dependencies: MangasSetUnReadStateFamily._dependencies,
|
||||
allTransitiveDependencies:
|
||||
MangasSetUnReadStateFamily._allTransitiveDependencies,
|
||||
mangaIds: mangaIds,
|
||||
);
|
||||
|
||||
MangasSetUnReadStateProvider._internal(
|
||||
super._createNotifier, {
|
||||
required super.name,
|
||||
required super.dependencies,
|
||||
required super.allTransitiveDependencies,
|
||||
required super.debugGetCreateSourceHash,
|
||||
required super.from,
|
||||
required this.mangaIds,
|
||||
}) : super.internal();
|
||||
|
||||
final List<int> mangaIds;
|
||||
|
||||
@override
|
||||
void runNotifierBuild(
|
||||
covariant MangasSetUnReadState notifier,
|
||||
) {
|
||||
return notifier.build(
|
||||
mangaIds: mangaIds,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Override overrideWith(MangasSetUnReadState Function() create) {
|
||||
return ProviderOverride(
|
||||
origin: this,
|
||||
override: MangasSetUnReadStateProvider._internal(
|
||||
() => create()..mangaIds = mangaIds,
|
||||
from: from,
|
||||
name: null,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
debugGetCreateSourceHash: null,
|
||||
mangaIds: mangaIds,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
AutoDisposeNotifierProviderElement<MangasSetUnReadState, void>
|
||||
createElement() {
|
||||
return _MangasSetUnReadStateProviderElement(this);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(Object other) {
|
||||
return other is MangasSetUnReadStateProvider && other.mangaIds == mangaIds;
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
var hash = _SystemHash.combine(0, runtimeType.hashCode);
|
||||
hash = _SystemHash.combine(hash, mangaIds.hashCode);
|
||||
|
||||
return _SystemHash.finish(hash);
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated('Will be removed in 3.0. Use Ref instead')
|
||||
// ignore: unused_element
|
||||
mixin MangasSetUnReadStateRef on AutoDisposeNotifierProviderRef<void> {
|
||||
/// The parameter `mangaIds` of this provider.
|
||||
List<int> get mangaIds;
|
||||
}
|
||||
|
||||
class _MangasSetUnReadStateProviderElement
|
||||
extends AutoDisposeNotifierProviderElement<MangasSetUnReadState, void>
|
||||
with MangasSetUnReadStateRef {
|
||||
_MangasSetUnReadStateProviderElement(super.provider);
|
||||
|
||||
@override
|
||||
List<int> get mangaIds => (origin as MangasSetUnReadStateProvider).mangaIds;
|
||||
bool get markAsRead => (origin as MangasSetIsReadStateProvider).markAsRead;
|
||||
}
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'aniskip.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$aniSkipHash() => r'2e5d19b025a2207ff64da7bf7908450ea9e5ff8c';
|
||||
String _$aniSkipHash() => r'887869b54e2e151633efd46da83bde845e14f421';
|
||||
|
||||
/// See also [AniSkip].
|
||||
@ProviderFor(AniSkip)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'sync_server.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$syncServerHash() => r'97a778696e0cc8b8e4c706de50d60464bb7b2f03';
|
||||
String _$syncServerHash() => r'141ba3be28182e05480e06fbf3f1de68f868cb8e';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'anilist.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$anilistHash() => r'fafb964252b3a5741e981cb8c2f0f2090b3b86ae';
|
||||
String _$anilistHash() => r'c786a526fdacc875e4a7e00886b2bda546eafeae';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'myanimelist.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$myAnimeListHash() => r'a612e9ce814268ac79dc86d810ca6bd3671812e6';
|
||||
String _$myAnimeListHash() => r'4391ad9446d14b1fb1ffdfbc5323ef04db5140f7';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
Loading…
Reference in a new issue