Merge pull request #507 from NBA2K1/fix-read/unread

Fix "Read" and "Unread" button [based on PR #506]
This commit is contained in:
Moustapha Kodjo Amadou 2025-07-06 17:29:47 +01:00 committed by GitHub
commit bb8b460352
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 33 additions and 22 deletions

View file

@ -806,23 +806,29 @@ class MangasSetIsReadState extends _$MangasSetIsReadState {
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)!;
final chapters = manga.chapters;
if (chapters.isNotEmpty) {
chapters.last.updateTrackChapterRead(ref);
isar.writeTxnSync(() {
for (var chapter in chapters) {
chapter.isRead = true;
chapter.lastPageRead = "1";
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
isar.chapters.putSync(chapter..manga.value = manga);
chapter.manga.saveSync();
}
});
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();
}
@ -834,19 +840,24 @@ class MangasSetUnReadState extends _$MangasSetUnReadState {
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)!;
final chapters = manga.chapters;
isar.writeTxnSync(() {
for (var chapter in chapters) {
chapter.isRead = false;
chapter.updatedAt = DateTime.now().millisecondsSinceEpoch;
isar.chapters.putSync(chapter..manga.value = manga);
chapter.manga.saveSync();
}
});
for (var chapter in manga.chapters) {
chapter.isRead = false;
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();
}

View file

@ -2551,7 +2551,7 @@ final isLongPressedMangaStateProvider =
typedef _$IsLongPressedMangaState = AutoDisposeNotifier<bool>;
String _$mangasSetIsReadStateHash() =>
r'a973367ebc8a41ae36c1c5fc012755b13de81dc6';
r'8f4f7f22ea8e82cf2370fb997033e1a4ec03168f';
abstract class _$MangasSetIsReadState
extends BuildlessAutoDisposeNotifier<void> {
@ -2698,7 +2698,7 @@ class _MangasSetIsReadStateProviderElement
}
String _$mangasSetUnReadStateHash() =>
r'2e8f4f0eaf916c2e51013be08a943999fa554ae6';
r'09ddd287b110fd76494f9f56bd5cf76f58936f1f';
abstract class _$MangasSetUnReadState
extends BuildlessAutoDisposeNotifier<void> {

View file

@ -6,7 +6,7 @@ part of 'aniskip.dart';
// RiverpodGenerator
// **************************************************************************
String _$aniSkipHash() => r'2e5d19b025a2207ff64da7bf7908450ea9e5ff8c';
String _$aniSkipHash() => r'887869b54e2e151633efd46da83bde845e14f421';
/// See also [AniSkip].
@ProviderFor(AniSkip)

View file

@ -6,7 +6,7 @@ part of 'anilist.dart';
// RiverpodGenerator
// **************************************************************************
String _$anilistHash() => r'179af3d1b13b4a03d5009e5519195fee1f8ec0f7';
String _$anilistHash() => r'8cd0495c613bbb8c86a61e990f1755b58b983d79';
/// Copied from Dart SDK
class _SystemHash {