Avoid showing duplicate entry dialog for same entry

Fixes #9772
This commit is contained in:
arkon 2023-07-29 12:07:13 -04:00
parent 3ad4f1114a
commit fd30c0adcd
6 changed files with 9 additions and 9 deletions

View File

@ -321,7 +321,7 @@ class BrowseSourceScreenModel(
}
suspend fun getDuplicateLibraryManga(manga: Manga): Manga? {
return getDuplicateLibraryManga.await(manga.title)
return getDuplicateLibraryManga.await(manga).getOrNull(0)
}
private fun moveMangaToCategories(manga: Manga, vararg categories: Category) {

View File

@ -284,7 +284,7 @@ class MangaScreenModel(
// Add to library
// First, check if duplicate exists if callback is provided
if (checkDuplicate) {
val duplicate = getDuplicateLibraryManga.await(manga.title)
val duplicate = getDuplicateLibraryManga.await(manga).getOrNull(0)
if (duplicate != null) {
updateSuccessState { it.copy(dialog = Dialog.DuplicateManga(manga, duplicate)) }

View File

@ -48,9 +48,9 @@ class MangaRepositoryImpl(
return handler.subscribeToList { mangasQueries.getFavoriteBySourceId(sourceId, mangaMapper) }
}
override suspend fun getDuplicateLibraryManga(title: String): Manga? {
return handler.awaitOneOrNull {
mangasQueries.getDuplicateLibraryManga(title, mangaMapper)
override suspend fun getDuplicateLibraryManga(id: Long, title: String): List<Manga> {
return handler.awaitList {
mangasQueries.getDuplicateLibraryManga(title, id, mangaMapper)
}
}

View File

@ -92,7 +92,7 @@ SELECT *
FROM mangas
WHERE favorite = 1
AND LOWER(title) = :title
LIMIT 1;
AND _id != :id;
resetViewerFlags:
UPDATE mangas

View File

@ -7,7 +7,7 @@ class GetDuplicateLibraryManga(
private val mangaRepository: MangaRepository,
) {
suspend fun await(title: String): Manga? {
return mangaRepository.getDuplicateLibraryManga(title.lowercase())
suspend fun await(manga: Manga): List<Manga> {
return mangaRepository.getDuplicateLibraryManga(manga.id, manga.title.lowercase())
}
}

View File

@ -23,7 +23,7 @@ interface MangaRepository {
fun getFavoritesBySourceId(sourceId: Long): Flow<List<Manga>>
suspend fun getDuplicateLibraryManga(title: String): Manga?
suspend fun getDuplicateLibraryManga(id: Long, title: String): List<Manga>
suspend fun resetViewerFlags(): Boolean