diff --git a/lib/modules/manga/detail/providers/state_providers.dart b/lib/modules/manga/detail/providers/state_providers.dart index 28db4dd..6d2630f 100644 --- a/lib/modules/manga/detail/providers/state_providers.dart +++ b/lib/modules/manga/detail/providers/state_providers.dart @@ -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!; } diff --git a/lib/modules/manga/reader/providers/reader_controller_provider.dart b/lib/modules/manga/reader/providers/reader_controller_provider.dart index 708bdd4..1754680 100644 --- a/lib/modules/manga/reader/providers/reader_controller_provider.dart +++ b/lib/modules/manga/reader/providers/reader_controller_provider.dart @@ -417,35 +417,48 @@ extension ChapterExtensions on Chapter { extension MangaExtensions on Manga { List 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? chapterList; diff --git a/lib/services/sync_server.dart b/lib/services/sync_server.dart index f8ff15f..f026457 100644 --- a/lib/services/sync_server.dart +++ b/lib/services/sync_server.dart @@ -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(