added some more error handling for edge cases

This commit is contained in:
Schnitzel5 2024-09-25 18:52:26 +02:00
parent 6c715dcfb9
commit 531e69cf44
3 changed files with 44 additions and 15 deletions

View file

@ -86,7 +86,11 @@ class SortChapterState extends _$SortChapterState {
.sortChapterList!
.where((element) => element.mangaId == mangaId)
.toList()
.first;
.firstOrNull ?? SortChapter(
mangaId: mangaId,
index: 1,
reverse: false,
);
}
void update(bool reverse, int index) {
@ -128,12 +132,15 @@ class ChapterFilterDownloadedState extends _$ChapterFilterDownloadedState {
}
int getType() {
return isar.settings
return (isar.settings
.getSync(227)!
.chapterFilterDownloadedList!
.where((element) => element.mangaId == mangaId)
.toList()
.first
.firstOrNull ?? ChapterFilterDownloaded(
mangaId: mangaId,
type: 0,
))
.type!;
}
@ -177,12 +184,15 @@ class ChapterFilterUnreadState extends _$ChapterFilterUnreadState {
}
int getType() {
return isar.settings
return (isar.settings
.getSync(227)!
.chapterFilterUnreadList!
.where((element) => element.mangaId == mangaId)
.toList()
.first
.firstOrNull ?? ChapterFilterUnread(
mangaId: mangaId,
type: 0,
))
.type!;
}
@ -225,12 +235,15 @@ class ChapterFilterBookmarkedState extends _$ChapterFilterBookmarkedState {
}
int getType() {
return isar.settings
return (isar.settings
.getSync(227)!
.chapterFilterBookmarkedList!
.where((element) => element.mangaId == mangaId)
.toList()
.first
.firstOrNull ?? ChapterFilterBookmarked(
mangaId: mangaId,
type: 0,
))
.type!;
}

View file

@ -417,35 +417,48 @@ extension ChapterExtensions on Chapter {
extension MangaExtensions on Manga {
List<Chapter> getFilteredChapterList() {
final data = this.chapters.toList().reversed.toList();
final filterUnread = isar.settings
final filterUnread = (isar.settings
.getSync(227)!
.chapterFilterUnreadList!
.where((element) => element.mangaId == id)
.toList()
.first
.firstOrNull ?? ChapterFilterUnread(
mangaId: id,
type: 0,
))
.type!;
final filterBookmarked = isar.settings
final filterBookmarked = (isar.settings
.getSync(227)!
.chapterFilterBookmarkedList!
.where((element) => element.mangaId == id)
.toList()
.first
.firstOrNull ?? ChapterFilterBookmarked(
mangaId: id,
type: 0,
))
.type!;
final filterDownloaded = isar.settings
final filterDownloaded = (isar.settings
.getSync(227)!
.chapterFilterDownloadedList!
.where((element) => element.mangaId == id)
.toList()
.first
.firstOrNull ?? ChapterFilterDownloaded(
mangaId: id,
type: 0,
))
.type!;
final sortChapter = isar.settings
final sortChapter = (isar.settings
.getSync(227)!
.sortChapterList!
.where((element) => element.mangaId == id)
.toList()
.first
.firstOrNull ?? SortChapter(
mangaId: id,
index: 1,
reverse: false,
))
.index;
final filterScanlator = _getFilterScanlator(this) ?? [];
List<Chapter>? chapterList;

View file

@ -488,6 +488,9 @@ class SyncServer extends _$SyncServer {
if (settings != null) {
isar.settings.putAllSync(settings);
}
if (isar.settings.getSync(227) == null) {
isar.settings.putSync(Settings(id: 227));
}
isar.settings.putSync(
isar.settings.getSync(227)!..syncAfterReading = syncAfterReading);
isar.settings.putSync(