Merge pull request #265 from Schnitzel5/fix/edge-cases

added some more error handling for edge cases
This commit is contained in:
Moustapha Kodjo Amadou 2024-09-26 13:13:05 +01:00 committed by GitHub
commit 4ab3802c09
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 44 additions and 15 deletions

View file

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

View file

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

View file

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