Skip to content

Commit

Permalink
Limit items in each section
Browse files Browse the repository at this point in the history
  • Loading branch information
CrisBarreiro committed Apr 3, 2024
1 parent ae7e07b commit 1cd3d22
Showing 1 changed file with 10 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ import io.reactivex.Observable
import javax.inject.Inject
import org.jetbrains.annotations.VisibleForTesting

const val maximumNumberOfSuggestions = 12
const val maximumNumberOfTopHits = 2
const val minimumNumberInSuggestionGroup = 5

interface AutoComplete {
fun autoComplete(query: String): Observable<AutoCompleteResult>

Expand Down Expand Up @@ -111,13 +115,16 @@ class AutoCompleteApi @Inject constructor(
is AutoCompleteBookmarkSuggestion -> it.isAllowedInTopHits
else -> false
}
}.take(2)
}.take(maximumNumberOfTopHits)

val filteredSearchResults = searchResults.filterNot { bookmarksResults.any { bookmark -> it.phrase == bookmark.phrase } }
val maxBottomSection = maximumNumberOfSuggestions - (topHits.size + minimumNumberInSuggestionGroup)
val filteredBookmarks = bookmarksResults.filterNot { it in topHits }.distinctBy { it.phrase }.take(maxBottomSection)
val maxSearchResults = maximumNumberOfSuggestions - (topHits.size + filteredBookmarks.size)
val filteredSearchResults = searchResults.take(maxSearchResults)

AutoCompleteResult(
query = query,
suggestions = (topHits + filteredSearchResults + bookmarksResults.subtract(topHits.toSet())).distinctBy { it.phrase },
suggestions = (topHits + filteredSearchResults + filteredBookmarks).distinctBy { it.phrase }
)
}
}
Expand Down

0 comments on commit 1cd3d22

Please sign in to comment.