From 4aff768b8efe2daa03c08dd45de6d6bdee7ce629 Mon Sep 17 00:00:00 2001 From: NerdNumber9 Date: Fri, 19 Apr 2019 17:53:41 -0400 Subject: [PATCH] Fix multi-select operations crashing when selection is too large --- .../data/database/queries/MangaCategoryQueries.kt | 8 ++++++-- .../java/exh/metadata/sql/queries/SearchTagQueries.kt | 4 +++- .../java/exh/metadata/sql/queries/SearchTitleQueries.kt | 4 +++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt index 7ad7f937e..a9cb40c4e 100755 --- a/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaCategoryQueries.kt @@ -24,8 +24,12 @@ interface MangaCategoryQueries : DbProvider { fun setMangaCategories(mangasCategories: List, mangas: List) { db.inTransaction { - deleteOldMangasCategories(mangas).executeAsBlocking() - insertMangasCategories(mangasCategories).executeAsBlocking() + mangas.chunked(100) { chunk -> + deleteOldMangasCategories(chunk).executeAsBlocking() + } + mangasCategories.chunked(100) { chunk -> + insertMangasCategories(chunk).executeAsBlocking() + } } } diff --git a/app/src/main/java/exh/metadata/sql/queries/SearchTagQueries.kt b/app/src/main/java/exh/metadata/sql/queries/SearchTagQueries.kt index ebd98528b..0459cc1ac 100755 --- a/app/src/main/java/exh/metadata/sql/queries/SearchTagQueries.kt +++ b/app/src/main/java/exh/metadata/sql/queries/SearchTagQueries.kt @@ -39,7 +39,9 @@ interface SearchTagQueries : DbProvider { fun setSearchTagsForManga(mangaId: Long, tags: List) { db.inTransaction { deleteSearchTagsForManga(mangaId).executeAsBlocking() - insertSearchTags(tags).executeAsBlocking() + tags.chunked(100) { chunk -> + insertSearchTags(chunk).executeAsBlocking() + } } } } \ No newline at end of file diff --git a/app/src/main/java/exh/metadata/sql/queries/SearchTitleQueries.kt b/app/src/main/java/exh/metadata/sql/queries/SearchTitleQueries.kt index dc1c2ae25..291abdc76 100755 --- a/app/src/main/java/exh/metadata/sql/queries/SearchTitleQueries.kt +++ b/app/src/main/java/exh/metadata/sql/queries/SearchTitleQueries.kt @@ -41,7 +41,9 @@ interface SearchTitleQueries : DbProvider { fun setSearchTitlesForManga(mangaId: Long, titles: List) { db.inTransaction { deleteSearchTitlesForManga(mangaId).executeAsBlocking() - insertSearchTitles(titles).executeAsBlocking() + titles.chunked(100) { chunk -> + insertSearchTitles(chunk).executeAsBlocking() + } } } } \ No newline at end of file