Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5510b8c3 authored by Nihar Thakkar's avatar Nihar Thakkar
Browse files

Fix search suggestions

parent 7f8b77e0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ class SearchFragment : Fragment(), SearchView.OnQueryTextListener, SearchView.On

    override fun onQueryTextChange(newText: String?): Boolean {
        searchView.query?.let {
            searchViewModel.onSearchQueryChanged(it.toString())
            searchViewModel.onSearchQueryChanged(context!!, it.toString())
        }
        return true
    }
+5 −3
Original line number Diff line number Diff line
@@ -28,9 +28,11 @@ class SearchModel : SearchModelInterface {
        this.installManager = installManager
    }

    override fun searchSuggestions(searchQuery: String) {
        val suggestions = arrayListOf(searchQuery, searchQuery + "a", searchQuery + "b", searchQuery + "c")
        onSearchSuggestionsRetrieved(suggestions)
    override fun searchSuggestions(context: Context, searchQuery: String) {
        if (Common.isNetworkAvailable(context)) {
            SearchSuggestionsTask(searchQuery, installManager!!, this)
                    .executeOnExecutor(Common.EXECUTOR, context)
        }
    }

    override fun onSearchSuggestionsRetrieved(suggestionsList: ArrayList<String>) {
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ import io.eelo.appinstaller.application.model.InstallManager
interface SearchModelInterface {
    fun initialise(installManager: InstallManager)

    fun searchSuggestions(searchQuery: String)
    fun searchSuggestions(context: Context, searchQuery: String)

    fun onSearchSuggestionsRetrieved(suggestionsList: ArrayList<String>)

+28 −0
Original line number Diff line number Diff line
package io.eelo.appinstaller.search.model

import android.content.Context
import android.os.AsyncTask
import io.eelo.appinstaller.api.SearchRequest
import io.eelo.appinstaller.application.model.InstallManager
import io.eelo.appinstaller.utils.Constants

class SearchSuggestionsTask(private val searchQuery: String,
                            private val installManager: InstallManager,
                            private val callback: SearchModelInterface)
    : AsyncTask<Context, Void, ArrayList<String>>() {

    override fun doInBackground(vararg context: Context): ArrayList<String> {
        val searchRequest = SearchRequest(searchQuery, 1, Constants.SUGGESTIONS_RESULTS)
                .request()
        val applications = searchRequest.getApplications(installManager, context[0])
        val searchSuggestions = ArrayList<String>()
        applications.forEach {
            searchSuggestions.add(it.basicData!!.name)
        }
        return searchSuggestions
    }

    override fun onPostExecute(result: ArrayList<String>) {
        callback.onSearchSuggestionsRetrieved(result)
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -27,8 +27,8 @@ class SearchViewModel : ViewModel(), SearchViewModelInterface {
        return searchModel.screenError
    }

    override fun onSearchQueryChanged(searchQuery: String) {
        searchModel.searchSuggestions(searchQuery)
    override fun onSearchQueryChanged(context: Context, searchQuery: String) {
        searchModel.searchSuggestions(context, searchQuery)
    }

    override fun onSearchQuerySubmitted(context: Context, searchQuery: String) {
Loading