Loading app/src/main/java/foundation/e/apps/data/fdroid/FDroidRepository.kt +19 −3 Original line number Diff line number Diff line Loading @@ -5,7 +5,12 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.cleanapk.ApkSignatureManager import foundation.e.apps.data.enums.Source 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 retrofit2.Response import timber.log.Timber import java.io.IOException import javax.inject.Inject import javax.inject.Singleton Loading @@ -29,7 +34,7 @@ class FDroidRepository @Inject constructor( */ override suspend fun getFdroidInfo(packageName: String): FdroidEntity? { return fdroidDao.getFdroidEntityFromPackageName(packageName) ?: fdroidApi.getFdroidInfoForPackage(packageName).body()?.let { ?: getFdroidApiResponse(packageName)?.body()?.let { FdroidEntity(packageName, it.authorName).also { fdroidDao.saveFdroidEntity(it) } Loading @@ -37,7 +42,7 @@ class FDroidRepository @Inject constructor( } suspend fun getBuildVersionInfo(packageName: String): List<BuildInfo>? { return fdroidApi.getFdroidInfoForPackage(packageName).body()?.builds return getFdroidApiResponse(packageName)?.body()?.builds } override suspend fun getAuthorName(application: Application): String { Loading Loading @@ -69,6 +74,17 @@ class FDroidRepository @Inject constructor( } override suspend fun isFdroidApplication(packageName: String): Boolean { return fdroidApi.getFdroidInfoForPackage(packageName).isSuccessful return getFdroidApiResponse(packageName)?.isSuccessful == true } private suspend fun getFdroidApiResponse(packageName: String): Response<FdroidApiModel?>? { return try { fdroidApi.getFdroidInfoForPackage(packageName) } catch (exception: CancellationException) { throw exception } catch (exception: IOException) { Timber.w(exception, "Failed to fetch F-Droid metadata for %s", packageName) null } } } Loading
app/src/main/java/foundation/e/apps/data/fdroid/FDroidRepository.kt +19 −3 Original line number Diff line number Diff line Loading @@ -5,7 +5,12 @@ import foundation.e.apps.data.application.data.Application import foundation.e.apps.data.cleanapk.ApkSignatureManager import foundation.e.apps.data.enums.Source 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 retrofit2.Response import timber.log.Timber import java.io.IOException import javax.inject.Inject import javax.inject.Singleton Loading @@ -29,7 +34,7 @@ class FDroidRepository @Inject constructor( */ override suspend fun getFdroidInfo(packageName: String): FdroidEntity? { return fdroidDao.getFdroidEntityFromPackageName(packageName) ?: fdroidApi.getFdroidInfoForPackage(packageName).body()?.let { ?: getFdroidApiResponse(packageName)?.body()?.let { FdroidEntity(packageName, it.authorName).also { fdroidDao.saveFdroidEntity(it) } Loading @@ -37,7 +42,7 @@ class FDroidRepository @Inject constructor( } suspend fun getBuildVersionInfo(packageName: String): List<BuildInfo>? { return fdroidApi.getFdroidInfoForPackage(packageName).body()?.builds return getFdroidApiResponse(packageName)?.body()?.builds } override suspend fun getAuthorName(application: Application): String { Loading Loading @@ -69,6 +74,17 @@ class FDroidRepository @Inject constructor( } override suspend fun isFdroidApplication(packageName: String): Boolean { return fdroidApi.getFdroidInfoForPackage(packageName).isSuccessful return getFdroidApiResponse(packageName)?.isSuccessful == true } private suspend fun getFdroidApiResponse(packageName: String): Response<FdroidApiModel?>? { return try { fdroidApi.getFdroidInfoForPackage(packageName) } catch (exception: CancellationException) { throw exception } catch (exception: IOException) { Timber.w(exception, "Failed to fetch F-Droid metadata for %s", packageName) null } } }