Skip to content

Instant Search + Paging 3 + Flow #374

Open
@GautierLouis

Description

@GautierLouis

Describe the bug 🐛
I'm implementing Instant Search on my android app using Paging 3 and flow to update the UI
I followed this article : https://www.algolia.com/doc/api-reference/widgets/multi-hits/android/#examples
This is quite simple but, for some reason either flow or live data are not updated when a query is typed.

To Reproduce 🔍
My entire ViewModel ->
```
private val searcher = MultiSearcher(
applicationID = ApplicationID("-----"),
apiKey = APIKey("----")
)
private val pagingConfig = PagingConfig(pageSize = 50)
private val indexProblem = IndexName(INDEX_PROBLEM)
private val indexArea = IndexName(INDEX_AREA)
private val problemSearcher = searcher.addHitsSearcher(indexName = indexProblem)
private val areaSearcher = searcher.addHitsSearcher(indexName = indexArea)
private val filterState = FilterState()
private val connection = ConnectionHandler()
private val problemPaginator = Paginator(
problemSearcher,
pagingConfig,
transformer = { hit -> hit.deserialize(ProblemRemote.serializer()) }
)
private val areaPaginator = Paginator(
areaSearcher,
pagingConfig,
transformer = { hit -> hit.deserialize(AreaRemote.serializer()) }
)

init {
    connection += filterState.connectPaginator(problemPaginator)
    connection += filterState.connectPaginator(areaPaginator)
}

val problems
    get() = problemPaginator.flow

val areas
    get() = areaPaginator.flow

fun search(query: String? = "") {
    searcher.setQuery(query)
    searcher.searchAsync()
}

override fun onCleared() {
    super.onCleared()
    searcher.cancel()
    connection.disconnect()
}

}


And in the onCreate of an activity
    searchViewModel.problems.onEach {
        println("RESULT PROBLEM $it")
        problemAdapter.submitData(it)
    }
    searchViewModel.areas.onEach {
        println("RESULT AREAS $it")
        areaAdapter.submitData(it)
    }

**Expected behavior 💭**
I expect that my flow are called when a type a query 

**Environment:**
 - OS: Mac M1 
 - Library Version 3.1.4

**Additional context**
Transformer (in Paginator) is never called, it's not just a flow/livedata issue 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions