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

Commit febd356c authored by Sayantan Roychowdhury's avatar Sayantan Roychowdhury
Browse files

feat: Add search filters

parent f1040b69
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import foundation.e.apps.data.application.search.GplaySearchResult
import foundation.e.apps.data.application.search.SearchApi
import foundation.e.apps.data.application.utils.CategoryType
import foundation.e.apps.data.fusedDownload.models.FusedDownload
import foundation.e.apps.ui.search.SearchResult
import javax.inject.Inject
import javax.inject.Singleton

@@ -119,7 +120,7 @@ class ApplicationRepository @Inject constructor(
    suspend fun getCleanApkSearchResults(
        query: String,
        authData: AuthData
    ): ResultSupreme<Pair<List<Application>, Boolean>> {
    ): SearchResult {
        return searchAPIImpl.getCleanApkSearchResults(query, authData)
    }

+2 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import com.aurora.gplayapi.data.models.AuthData
import com.aurora.gplayapi.data.models.SearchBundle
import foundation.e.apps.data.ResultSupreme
import foundation.e.apps.data.application.data.Application
import foundation.e.apps.ui.search.SearchResult

typealias GplaySearchResult = ResultSupreme<Pair<List<Application>, Set<SearchBundle.SubBundle>>>

@@ -45,7 +46,7 @@ interface SearchApi {
    suspend fun getCleanApkSearchResults(
        query: String,
        authData: AuthData
    ): ResultSupreme<Pair<List<Application>, Boolean>>
    ): SearchResult

    suspend fun getGplaySearchResult(
        query: String,
+6 −6
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import foundation.e.apps.data.enums.ResultStatus
import foundation.e.apps.data.handleNetworkResult
import foundation.e.apps.data.login.AuthObject
import foundation.e.apps.data.preference.AppLoungePreference
import foundation.e.apps.ui.search.SearchResult
import foundation.e.apps.utils.eventBus.AppEvent
import foundation.e.apps.utils.eventBus.EventBus
import kotlinx.coroutines.Deferred
@@ -85,9 +86,8 @@ class SearchApiImpl @Inject constructor(
    override suspend fun getCleanApkSearchResults(
        query: String,
        authData: AuthData
    ): ResultSupreme<Pair<List<Application>, Boolean>> {
        var finalSearchResult: ResultSupreme<Pair<List<Application>, Boolean>> =
            ResultSupreme.Error()
    ): SearchResult {
        var finalSearchResult: SearchResult = ResultSupreme.Error()

        val packageSpecificResults =
            fetchPackageSpecificResult(authData, query).data?.first ?: emptyList()
@@ -125,7 +125,7 @@ class SearchApiImpl @Inject constructor(
        query: String,
        searchResult: MutableList<Application>,
        packageSpecificResults: List<Application>
    ): ResultSupreme<Pair<List<Application>, Boolean>> {
    ): SearchResult {
        val pwaApps: MutableList<Application> = mutableListOf()
        val result = handleNetworkResult {
            val apps =
@@ -159,7 +159,7 @@ class SearchApiImpl @Inject constructor(
        query: String,
        searchResult: MutableList<Application>,
        packageSpecificResults: List<Application>
    ): ResultSupreme<Pair<List<Application>, Boolean>> {
    ): SearchResult {
        val cleanApkResults = mutableListOf<Application>()

        val result = handleNetworkResult {
@@ -187,7 +187,7 @@ class SearchApiImpl @Inject constructor(
    private suspend fun fetchPackageSpecificResult(
        authData: AuthData,
        query: String,
    ): ResultSupreme<Pair<List<Application>, Boolean>> {
    ): SearchResult {
        val packageSpecificResults: MutableList<Application> = mutableListOf()
        var gplayPackageResult: Application? = null
        var cleanapkPackageResult: Application? = null
+4 −0
Original line number Diff line number Diff line
@@ -29,6 +29,10 @@ class PrivacyInfoViewModel @Inject constructor(
        }
    }

    suspend fun getAppPrivacyInfo(application: Application): Result<AppPrivacyInfo> {
        return fetchEmitAppPrivacyInfo(application)
    }

    fun getSingularAppPrivacyInfoLiveData(application: Application?): LiveData<Result<AppPrivacyInfo>> {
        fetchPrivacyInfo(application)
        return singularAppPrivacyInfoLiveData
+3 −0
Original line number Diff line number Diff line
@@ -535,6 +535,9 @@ class ApplicationListRVAdapter(
        currentList.forEach {
            newList.find { item -> item._id == it._id }?.let { foundItem ->
                foundItem.privacyScore = it.privacyScore
                foundItem.trackers = it.trackers
                foundItem.perms = it.perms
                foundItem.permsFromExodus = it.permsFromExodus
            }
        }
        this.submitList(newList.map { it.copy() })
Loading