Loading app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +23 −13 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ import foundation.e.apps.data.handleNetworkResult import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.domain.model.install.Status import foundation.e.apps.ui.applicationlist.ApplicationDiffUtil import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject class AppsApiImpl @Inject constructor( Loading @@ -40,9 +42,11 @@ class AppsApiImpl @Inject constructor( override suspend fun getCleanapkAppDetails(packageName: String): Pair<Application, ResultStatus> { var application = Application() val result = handleNetworkResult { application = enabledStoreRepositoryProvider.awaitStore(Source.OPEN_SOURCE) application = withContext(Dispatchers.IO) { enabledStoreRepositoryProvider.awaitStore(Source.OPEN_SOURCE) ?.getAppDetails(packageName) ?: Application() } application.source = Source.OPEN_SOURCE application.updateType() application.updateFilterLevel() Loading Loading @@ -92,15 +96,17 @@ class AppsApiImpl @Inject constructor( packageNameList: List<String>, ): Pair<List<Application>, ResultStatus> { val status = ResultStatus.OK val applicationList = mutableListOf<Application>() val applicationList = withContext(Dispatchers.IO) { val list = mutableListOf<Application>() for (packageName in packageNameList) { applicationList.add( list.add( enabledStoreRepositoryProvider.awaitStore(Source.OPEN_SOURCE) ?.getAppDetails(packageName) ?: Application() ) } list } return Pair(applicationList, status) } Loading @@ -112,8 +118,10 @@ class AppsApiImpl @Inject constructor( val playStore = enabledStoreRepositoryProvider.awaitStore(Source.PLAY_STORE) as? PlayStoreRepository val response = handleNetworkResult { withContext(Dispatchers.IO) { playStore?.getAppsDetails(packageNameList).orEmpty() } } val apps = response.data ?: emptyList() for (app in apps) { handleFilteredApps(app, applicationList) Loading Loading @@ -151,7 +159,9 @@ class AppsApiImpl @Inject constructor( val store = enabledStoreRepositoryProvider.awaitStore(source) ?: throw IllegalStateException("Could not get store") application = store.getAppDetails(packageName) application = withContext(Dispatchers.IO) { store.getAppDetails(packageName) } application.let { applicationDataManager.updateStatus(it) it.source = source Loading app/src/main/java/foundation/e/apps/data/application/downloadInfo/DownloadInfoApiImpl.kt +6 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import foundation.e.apps.data.cleanapk.CleanApkDownloadInfoFetcher import foundation.e.apps.data.enums.Source import foundation.e.apps.data.handleNetworkResult import foundation.e.apps.data.installation.model.AppInstall import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject class DownloadInfoApiImpl @Inject constructor( Loading Loading @@ -127,6 +129,8 @@ class DownloadInfoApiImpl @Inject constructor( } override suspend fun getOSSDownloadInfo(id: String, version: String?) = withContext(Dispatchers.IO) { (appSources.cleanApkAppsRepo as CleanApkDownloadInfoFetcher) .getDownloadInfo(id, version) } } app/src/main/java/foundation/e/apps/data/fdroid/FDroidRepository.kt +5 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ import foundation.e.apps.data.fdroid.models.BuildInfo import foundation.e.apps.data.fdroid.models.FdroidApiModel import foundation.e.apps.data.fdroid.models.FdroidEntity import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import retrofit2.Response import timber.log.Timber import java.io.IOException Loading Loading @@ -42,7 +44,9 @@ class FDroidRepository @Inject constructor( } suspend fun getBuildVersionInfo(packageName: String): List<BuildInfo> { return getFdroidApiResponse(packageName)?.body()?.builds ?: emptyList() return withContext(Dispatchers.IO) { getFdroidApiResponse(packageName)?.body()?.builds ?: emptyList() } } override suspend fun getAuthorName(application: Application): String { Loading Loading
app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +23 −13 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ import foundation.e.apps.data.handleNetworkResult import foundation.e.apps.data.playstore.PlayStoreRepository import foundation.e.apps.domain.model.install.Status import foundation.e.apps.ui.applicationlist.ApplicationDiffUtil import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject class AppsApiImpl @Inject constructor( Loading @@ -40,9 +42,11 @@ class AppsApiImpl @Inject constructor( override suspend fun getCleanapkAppDetails(packageName: String): Pair<Application, ResultStatus> { var application = Application() val result = handleNetworkResult { application = enabledStoreRepositoryProvider.awaitStore(Source.OPEN_SOURCE) application = withContext(Dispatchers.IO) { enabledStoreRepositoryProvider.awaitStore(Source.OPEN_SOURCE) ?.getAppDetails(packageName) ?: Application() } application.source = Source.OPEN_SOURCE application.updateType() application.updateFilterLevel() Loading Loading @@ -92,15 +96,17 @@ class AppsApiImpl @Inject constructor( packageNameList: List<String>, ): Pair<List<Application>, ResultStatus> { val status = ResultStatus.OK val applicationList = mutableListOf<Application>() val applicationList = withContext(Dispatchers.IO) { val list = mutableListOf<Application>() for (packageName in packageNameList) { applicationList.add( list.add( enabledStoreRepositoryProvider.awaitStore(Source.OPEN_SOURCE) ?.getAppDetails(packageName) ?: Application() ) } list } return Pair(applicationList, status) } Loading @@ -112,8 +118,10 @@ class AppsApiImpl @Inject constructor( val playStore = enabledStoreRepositoryProvider.awaitStore(Source.PLAY_STORE) as? PlayStoreRepository val response = handleNetworkResult { withContext(Dispatchers.IO) { playStore?.getAppsDetails(packageNameList).orEmpty() } } val apps = response.data ?: emptyList() for (app in apps) { handleFilteredApps(app, applicationList) Loading Loading @@ -151,7 +159,9 @@ class AppsApiImpl @Inject constructor( val store = enabledStoreRepositoryProvider.awaitStore(source) ?: throw IllegalStateException("Could not get store") application = store.getAppDetails(packageName) application = withContext(Dispatchers.IO) { store.getAppDetails(packageName) } application.let { applicationDataManager.updateStatus(it) it.source = source Loading
app/src/main/java/foundation/e/apps/data/application/downloadInfo/DownloadInfoApiImpl.kt +6 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import foundation.e.apps.data.cleanapk.CleanApkDownloadInfoFetcher import foundation.e.apps.data.enums.Source import foundation.e.apps.data.handleNetworkResult import foundation.e.apps.data.installation.model.AppInstall import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import javax.inject.Inject class DownloadInfoApiImpl @Inject constructor( Loading Loading @@ -127,6 +129,8 @@ class DownloadInfoApiImpl @Inject constructor( } override suspend fun getOSSDownloadInfo(id: String, version: String?) = withContext(Dispatchers.IO) { (appSources.cleanApkAppsRepo as CleanApkDownloadInfoFetcher) .getDownloadInfo(id, version) } }
app/src/main/java/foundation/e/apps/data/fdroid/FDroidRepository.kt +5 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ import foundation.e.apps.data.fdroid.models.BuildInfo import foundation.e.apps.data.fdroid.models.FdroidApiModel import foundation.e.apps.data.fdroid.models.FdroidEntity import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import retrofit2.Response import timber.log.Timber import java.io.IOException Loading Loading @@ -42,7 +44,9 @@ class FDroidRepository @Inject constructor( } suspend fun getBuildVersionInfo(packageName: String): List<BuildInfo> { return getFdroidApiResponse(packageName)?.body()?.builds ?: emptyList() return withContext(Dispatchers.IO) { getFdroidApiResponse(packageName)?.body()?.builds ?: emptyList() } } override suspend fun getAuthorName(application: Application): String { Loading