From 89b30bd8d8e6b16f9640ff1fe183dd8207777a3c Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Mon, 26 Sep 2022 14:00:15 -0400 Subject: [PATCH] Probably fix random source crashes --- .../main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt | 5 +++++ .../java/eu/kanade/tachiyomi/ui/browse/feed/FeedPresenter.kt | 1 - .../tachiyomi/ui/browse/source/feed/SourceFeedPresenter.kt | 1 - app/src/main/sqldelight/data/mangas.sq | 5 +++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt b/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt index d6dae150d..e9a450521 100644 --- a/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt +++ b/app/src/main/java/eu/kanade/data/manga/MangaRepositoryImpl.kt @@ -79,6 +79,11 @@ class MangaRepositoryImpl( override suspend fun insert(manga: Manga): Long? { return handler.awaitOneOrNull(true) { + // SY --> + if (mangasQueries.getIdByUrlAndSource(manga.url, manga.source).executeAsOneOrNull() != null) { + return@awaitOneOrNull mangasQueries.getIdByUrlAndSource(manga.url, manga.source) + } + // SY <-- mangasQueries.insert( source = manga.source, url = manga.url, diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedPresenter.kt index f36359022..70af6bbba 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedPresenter.kt @@ -260,7 +260,6 @@ open class FeedPresenter( * @param sManga the manga from the source. * @return a manga from the database. */ - @Synchronized private fun networkToLocalManga(sManga: SManga, sourceId: Long): Manga { var localManga = runBlocking { getManga.await(sManga.url, sourceId) } if (localManga == null) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedPresenter.kt index b5d94178c..22a2902e8 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/feed/SourceFeedPresenter.kt @@ -219,7 +219,6 @@ open class SourceFeedPresenter( * @param sManga the manga from the source. * @return a manga from the database. */ - @Synchronized private fun networkToLocalManga(sManga: SManga, sourceId: Long): Manga { var localManga = runBlocking { getManga.await(sManga.url, sourceId) } if (localManga == null) { diff --git a/app/src/main/sqldelight/data/mangas.sq b/app/src/main/sqldelight/data/mangas.sq index e101feecc..55fbc571e 100644 --- a/app/src/main/sqldelight/data/mangas.sq +++ b/app/src/main/sqldelight/data/mangas.sq @@ -206,3 +206,8 @@ selectLastInsertRow: SELECT * FROM mangas WHERE _id = last_insert_rowid(); + +getIdByUrlAndSource: +SELECT _id +FROM mangas +WHERE url = :url AND source = :source;