Loading app/src/main/java/foundation/e/apps/data/application/ApplicationRepository.kt +0 −4 Original line number Diff line number Diff line Loading @@ -78,10 +78,6 @@ class ApplicationRepository @Inject constructor( return appsApi.getApplicationDetails(id, packageName, source) } suspend fun getCleanapkAppDetails(packageName: String): Pair<Application, ResultStatus> { return appsApi.getCleanapkAppDetails(packageName) } suspend fun updateFusedDownloadWithDownloadingInfo( source: Source, appInstall: AppInstall Loading app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +12 −60 Original line number Diff line number Diff line Loading @@ -18,15 +18,9 @@ package foundation.e.apps.data.application.apps import android.content.Context import com.aurora.gplayapi.data.models.App import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.Stores import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.application.utils.toApplication import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status Loading @@ -38,30 +32,17 @@ import javax.inject.Inject import foundation.e.apps.data.enums.Source class AppsApiImpl @Inject constructor( @ApplicationContext private val context: Context, private val appLoungePreference: AppLoungePreference, private val appSources: AppSourcesContainer, private val stores: Stores, private val applicationDataManager: ApplicationDataManager ) : AppsApi { companion object { private const val KEY_SEARCH_PACKAGE_NAME = "package_name" } override suspend fun getCleanapkAppDetails(packageName: String): Pair<Application, ResultStatus> { var application = Application() val result = handleNetworkResult { val result = appSources.cleanApkAppsRepo.getSearchResult( packageName, KEY_SEARCH_PACKAGE_NAME ).body() if (result?.hasSingleResult() == true) { application = appSources.cleanApkAppsRepo.getAppDetails(result.apps[0]._id) } application = stores.getStores()[Source.OPEN_SOURCE]?.getAppDetails(packageName) ?: Application() application.source = Source.OPEN_SOURCE application.updateType() application.updateFilterLevel() } Loading Loading @@ -107,13 +88,11 @@ class AppsApiImpl @Inject constructor( private suspend fun getAppDetailsListFromCleanApk( packageNameList: List<String>, ): Pair<List<Application>, ResultStatus> { var status = ResultStatus.OK val status = ResultStatus.OK val applicationList = mutableListOf<Application>() for (packageName in packageNameList) { getCleanApkSearchResultByPackageName(packageName).data?.run { handleCleanApkSearch(applicationList) } applicationList.add(stores.getStores()[Source.OPEN_SOURCE]?.getAppDetails(packageName) ?: Application()) } return Pair(applicationList, status) Loading @@ -124,13 +103,12 @@ class AppsApiImpl @Inject constructor( ): Pair<List<Application>, ResultStatus> { val applicationList = mutableListOf<Application>() val result = handleNetworkResult { appSources.gplayRepo.getAppsDetails(packageNameList).forEach { app -> for (packageName in packageNameList) { val app = stores.getStores()[Source.PLAY_STORE]?.getAppDetails(packageName) ?: Application() handleFilteredApps(app, applicationList) } } return Pair(applicationList, result.getResultStatus()) return Pair(applicationList, ResultStatus.OK) } /* Loading @@ -140,44 +118,19 @@ class AppsApiImpl @Inject constructor( * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5174 */ private fun handleFilteredApps( app: App, app: Application, applicationList: MutableList<Application> ) { val application = app.toApplication(context) val filter = applicationDataManager.getAppFilterLevel(application) val filter = applicationDataManager.getAppFilterLevel(app) if (filter.isUnFiltered()) { applicationList.add( application.apply { app.apply { filterLevel = filter } ) } } private suspend fun getCleanApkSearchResultByPackageName( packageName: String, ) = handleNetworkResult { appSources.cleanApkAppsRepo.getSearchResult( packageName, KEY_SEARCH_PACKAGE_NAME ).body() } private fun Search.handleCleanApkSearch( applicationList: MutableList<Application> ) { if (hasSingleResult()) { applicationList.add( apps[0].apply { updateFilterLevel() } ) } } private fun Search.hasSingleResult() = apps.isNotEmpty() && numberOfResults == 1 override suspend fun getApplicationDetails( id: String, packageName: String, Loading @@ -191,7 +144,6 @@ class AppsApiImpl @Inject constructor( ?: throw IllegalStateException("Could not get store") application = store.getAppDetails(packageName) application.let { applicationDataManager.updateStatus(it) it.source = source Loading app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepository.kt +0 −11 Original line number Diff line number Diff line Loading @@ -57,17 +57,6 @@ class CleanApkAppsRepository @Inject constructor( return list } override suspend fun getSearchResult(query: String, searchBy: String?): Response<Search> { return cleanApkRetrofit.searchApps( query, CleanApkRetrofit.APP_SOURCE_FOSS, CleanApkRetrofit.APP_TYPE_ANY, NUMBER_OF_ITEMS, NUMBER_OF_PAGES, searchBy ) } override suspend fun getAppsByCategory( category: String, paginationParameter: Any? Loading app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkPwaRepository.kt +0 −11 Original line number Diff line number Diff line Loading @@ -58,17 +58,6 @@ class CleanApkPwaRepository @Inject constructor( return list } override suspend fun getSearchResult(query: String, searchBy: String?): Response<Search> { return cleanApkRetrofit.searchApps( query, CleanApkRetrofit.APP_SOURCE_ANY, CleanApkRetrofit.APP_TYPE_PWA, 20, 1, searchBy ) } override suspend fun getAppsByCategory(category: String, paginationParameter: Any?): Response<Search> { return cleanApkRetrofit.listApps( category, Loading app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkRepository.kt +0 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ const val NUMBER_OF_ITEMS = 20 const val NUMBER_OF_PAGES = 1 interface CleanApkRepository : StoreRepository { suspend fun getSearchResult(query: String, searchBy: String? = null): Response<Search> suspend fun getAppsByCategory(category: String, paginationParameter: Any? = null): Response<Search> suspend fun getCategories(): Response<Categories> suspend fun checkAvailablePackages(packageNames: List<String>): Response<Search> Loading Loading
app/src/main/java/foundation/e/apps/data/application/ApplicationRepository.kt +0 −4 Original line number Diff line number Diff line Loading @@ -78,10 +78,6 @@ class ApplicationRepository @Inject constructor( return appsApi.getApplicationDetails(id, packageName, source) } suspend fun getCleanapkAppDetails(packageName: String): Pair<Application, ResultStatus> { return appsApi.getCleanapkAppDetails(packageName) } suspend fun updateFusedDownloadWithDownloadingInfo( source: Source, appInstall: AppInstall Loading
app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +12 −60 Original line number Diff line number Diff line Loading @@ -18,15 +18,9 @@ package foundation.e.apps.data.application.apps import android.content.Context import com.aurora.gplayapi.data.models.App import dagger.hilt.android.qualifiers.ApplicationContext import foundation.e.apps.data.AppSourcesContainer import foundation.e.apps.data.Stores import foundation.e.apps.data.application.ApplicationDataManager import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.application.utils.toApplication import foundation.e.apps.data.cleanapk.data.search.Search import foundation.e.apps.data.enums.FilterLevel import foundation.e.apps.data.enums.ResultStatus import foundation.e.apps.data.enums.Status Loading @@ -38,30 +32,17 @@ import javax.inject.Inject import foundation.e.apps.data.enums.Source class AppsApiImpl @Inject constructor( @ApplicationContext private val context: Context, private val appLoungePreference: AppLoungePreference, private val appSources: AppSourcesContainer, private val stores: Stores, private val applicationDataManager: ApplicationDataManager ) : AppsApi { companion object { private const val KEY_SEARCH_PACKAGE_NAME = "package_name" } override suspend fun getCleanapkAppDetails(packageName: String): Pair<Application, ResultStatus> { var application = Application() val result = handleNetworkResult { val result = appSources.cleanApkAppsRepo.getSearchResult( packageName, KEY_SEARCH_PACKAGE_NAME ).body() if (result?.hasSingleResult() == true) { application = appSources.cleanApkAppsRepo.getAppDetails(result.apps[0]._id) } application = stores.getStores()[Source.OPEN_SOURCE]?.getAppDetails(packageName) ?: Application() application.source = Source.OPEN_SOURCE application.updateType() application.updateFilterLevel() } Loading Loading @@ -107,13 +88,11 @@ class AppsApiImpl @Inject constructor( private suspend fun getAppDetailsListFromCleanApk( packageNameList: List<String>, ): Pair<List<Application>, ResultStatus> { var status = ResultStatus.OK val status = ResultStatus.OK val applicationList = mutableListOf<Application>() for (packageName in packageNameList) { getCleanApkSearchResultByPackageName(packageName).data?.run { handleCleanApkSearch(applicationList) } applicationList.add(stores.getStores()[Source.OPEN_SOURCE]?.getAppDetails(packageName) ?: Application()) } return Pair(applicationList, status) Loading @@ -124,13 +103,12 @@ class AppsApiImpl @Inject constructor( ): Pair<List<Application>, ResultStatus> { val applicationList = mutableListOf<Application>() val result = handleNetworkResult { appSources.gplayRepo.getAppsDetails(packageNameList).forEach { app -> for (packageName in packageNameList) { val app = stores.getStores()[Source.PLAY_STORE]?.getAppDetails(packageName) ?: Application() handleFilteredApps(app, applicationList) } } return Pair(applicationList, result.getResultStatus()) return Pair(applicationList, ResultStatus.OK) } /* Loading @@ -140,44 +118,19 @@ class AppsApiImpl @Inject constructor( * Issue: https://gitlab.e.foundation/e/backlog/-/issues/5174 */ private fun handleFilteredApps( app: App, app: Application, applicationList: MutableList<Application> ) { val application = app.toApplication(context) val filter = applicationDataManager.getAppFilterLevel(application) val filter = applicationDataManager.getAppFilterLevel(app) if (filter.isUnFiltered()) { applicationList.add( application.apply { app.apply { filterLevel = filter } ) } } private suspend fun getCleanApkSearchResultByPackageName( packageName: String, ) = handleNetworkResult { appSources.cleanApkAppsRepo.getSearchResult( packageName, KEY_SEARCH_PACKAGE_NAME ).body() } private fun Search.handleCleanApkSearch( applicationList: MutableList<Application> ) { if (hasSingleResult()) { applicationList.add( apps[0].apply { updateFilterLevel() } ) } } private fun Search.hasSingleResult() = apps.isNotEmpty() && numberOfResults == 1 override suspend fun getApplicationDetails( id: String, packageName: String, Loading @@ -191,7 +144,6 @@ class AppsApiImpl @Inject constructor( ?: throw IllegalStateException("Could not get store") application = store.getAppDetails(packageName) application.let { applicationDataManager.updateStatus(it) it.source = source Loading
app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkAppsRepository.kt +0 −11 Original line number Diff line number Diff line Loading @@ -57,17 +57,6 @@ class CleanApkAppsRepository @Inject constructor( return list } override suspend fun getSearchResult(query: String, searchBy: String?): Response<Search> { return cleanApkRetrofit.searchApps( query, CleanApkRetrofit.APP_SOURCE_FOSS, CleanApkRetrofit.APP_TYPE_ANY, NUMBER_OF_ITEMS, NUMBER_OF_PAGES, searchBy ) } override suspend fun getAppsByCategory( category: String, paginationParameter: Any? Loading
app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkPwaRepository.kt +0 −11 Original line number Diff line number Diff line Loading @@ -58,17 +58,6 @@ class CleanApkPwaRepository @Inject constructor( return list } override suspend fun getSearchResult(query: String, searchBy: String?): Response<Search> { return cleanApkRetrofit.searchApps( query, CleanApkRetrofit.APP_SOURCE_ANY, CleanApkRetrofit.APP_TYPE_PWA, 20, 1, searchBy ) } override suspend fun getAppsByCategory(category: String, paginationParameter: Any?): Response<Search> { return cleanApkRetrofit.listApps( category, Loading
app/src/main/java/foundation/e/apps/data/cleanapk/repositories/CleanApkRepository.kt +0 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,6 @@ const val NUMBER_OF_ITEMS = 20 const val NUMBER_OF_PAGES = 1 interface CleanApkRepository : StoreRepository { suspend fun getSearchResult(query: String, searchBy: String? = null): Response<Search> suspend fun getAppsByCategory(category: String, paginationParameter: Any? = null): Response<Search> suspend fun getCategories(): Response<Categories> suspend fun checkAvailablePackages(packageNames: List<String>): Response<Search> Loading