diff --git a/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt b/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt index 1ada969bf02495c39070450aeca2c0f98fbe4ac2..92ee10913a062a21dbb6478e76ebd02c9c513bd0 100644 --- a/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt +++ b/app/src/main/java/foundation/e/apps/api/fused/FusedAPIImpl.kt @@ -244,7 +244,16 @@ class FusedAPIImpl @Inject constructor( query, searchResult, packageSpecificResults - )?.let { emit(it) } + ).let { emit(it) } + } + + if (preferenceManagerModule.isPWASelected()) { + fetchPWASearchResult( + this@FusedAPIImpl, + query, + searchResult, + packageSpecificResults + ).let { emit(it) } } if (preferenceManagerModule.isGplaySelected()) { @@ -257,15 +266,6 @@ class FusedAPIImpl @Inject constructor( ) ) } - - if (preferenceManagerModule.isPWASelected()) { - fetchPWASearchResult( - this@FusedAPIImpl, - query, - searchResult, - packageSpecificResults - )?.let { emit(it) } - } } } @@ -274,7 +274,7 @@ class FusedAPIImpl @Inject constructor( query: String, searchResult: MutableList, packageSpecificResults: ArrayList - ): ResultSupreme, Boolean>>? { + ): ResultSupreme, Boolean>> { val pwaApps: MutableList = mutableListOf() val status = fusedAPIImpl.runCodeBlockWithTimeout({ getCleanAPKSearchResults( @@ -290,19 +290,19 @@ class FusedAPIImpl @Inject constructor( if (pwaApps.isNotEmpty() || status != ResultStatus.OK) { searchResult.addAll(pwaApps) - return ResultSupreme.create( - status, - Pair( - filterWithKeywordSearch( - searchResult, - packageSpecificResults, - query - ), - false - ) - ) } - return null + + return ResultSupreme.create( + status, + Pair( + filterWithKeywordSearch( + searchResult, + packageSpecificResults, + query + ), + preferenceManagerModule.isGplaySelected() + ) + ) } private fun fetchGplaySearchResults( @@ -333,26 +333,26 @@ class FusedAPIImpl @Inject constructor( query: String, searchResult: MutableList, packageSpecificResults: ArrayList - ): ResultSupreme, Boolean>>? { + ): ResultSupreme, Boolean>> { val status = fusedAPIImpl.runCodeBlockWithTimeout({ cleanApkResults.addAll(getCleanAPKSearchResults(query)) }) - if (cleanApkResults.isNotEmpty() || status != ResultStatus.OK) { + if (cleanApkResults.isNotEmpty()) { searchResult.addAll(cleanApkResults) - return ResultSupreme.create( - status, - Pair( - filterWithKeywordSearch( - searchResult, - packageSpecificResults, - query - ), - preferenceManagerModule.isGplaySelected() || preferenceManagerModule.isPWASelected() - ) - ) } - return null + + return ResultSupreme.create( + status, + Pair( + filterWithKeywordSearch( + searchResult, + packageSpecificResults, + query + ), + preferenceManagerModule.isGplaySelected() || preferenceManagerModule.isPWASelected() + ) + ) } private suspend fun fetchPackageSpecificResult( diff --git a/app/src/main/java/foundation/e/apps/search/SearchFragment.kt b/app/src/main/java/foundation/e/apps/search/SearchFragment.kt index 90a95147d25d6c3e88d748dfca5dd1038d6e296b..58aa1075a4804f8063a6424070d0be8c5f25bb26 100644 --- a/app/src/main/java/foundation/e/apps/search/SearchFragment.kt +++ b/app/src/main/java/foundation/e/apps/search/SearchFragment.kt @@ -131,7 +131,7 @@ class SearchFragment : private fun observeSearchResult(listAdapter: ApplicationListRVAdapter?) { searchViewModel.searchResult.observe(viewLifecycleOwner) { - if (it.data?.first.isNullOrEmpty()) { + if (it.data?.first.isNullOrEmpty() && it.data?.second == false) { noAppsFoundLayout?.visibility = View.VISIBLE } else { if (!updateSearchResult(listAdapter, it)) return@observe