From 31aea1cdbf90699f35371271f381d3bd7c124c2f Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sun, 5 May 2024 01:58:44 +0800 Subject: [PATCH] Fix duplicate key in search suggestions --- app/src/main/kotlin/com/hippo/ehviewer/dao/SearchDao.kt | 8 ++++---- .../com/hippo/ehviewer/ui/screen/SearchBarScreen.kt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/dao/SearchDao.kt b/app/src/main/kotlin/com/hippo/ehviewer/dao/SearchDao.kt index bb33b6b76..149b339b9 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/dao/SearchDao.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/dao/SearchDao.kt @@ -12,11 +12,11 @@ interface SearchDao { @Query("DELETE FROM suggestions WHERE `query` = :query") suspend fun deleteQuery(query: String) - @Query("SELECT * FROM suggestions WHERE `query` LIKE :prefix || '%' ORDER BY date DESC LIMIT :limit") - suspend fun rawSuggestions(prefix: String, limit: Int): Array + @Query("SELECT DISTINCT `query` FROM suggestions WHERE `query` LIKE :prefix || '%' ORDER BY date DESC LIMIT :limit") + suspend fun rawSuggestions(prefix: String, limit: Int): List - @Query("SELECT * FROM suggestions ORDER BY date DESC LIMIT :limit") - suspend fun list(limit: Int): Array + @Query("SELECT DISTINCT `query` FROM suggestions ORDER BY date DESC LIMIT :limit") + suspend fun list(limit: Int): List @Insert suspend fun insert(search: Search) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt index db433aaef..2e51db37e 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/screen/SearchBarScreen.kt @@ -97,7 +97,7 @@ abstract class Suggestion { } suspend fun SearchDao.suggestions(prefix: String, limit: Int) = - (if (prefix.isBlank()) list(limit) else rawSuggestions(prefix, limit)).map { it.query } + (if (prefix.isBlank()) list(limit) else rawSuggestions(prefix, limit)) @Composable fun SearchBarScreen(