diff --git a/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt b/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt index b2ed05a49fd8efa1e5fb1f576d419b19978c7113..537471aa3a21062e87a597eae9922808654bc4dc 100644 --- a/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt +++ b/app/src/main/java/foundation/e/apps/data/application/apps/AppsApiImpl.kt @@ -104,12 +104,14 @@ class AppsApiImpl @Inject constructor( val applicationList = mutableListOf() val playStore = stores.getStore(Source.PLAY_STORE) as? PlayStoreRepository - val apps = playStore?.getAppsDetails(packageNameList).orEmpty() + val response = handleNetworkResult { + playStore?.getAppsDetails(packageNameList).orEmpty() + } + val apps = response.data ?: emptyList() for (app in apps) { handleFilteredApps(app, applicationList) } - - return Pair(applicationList, ResultStatus.OK) + return Pair(applicationList, response.getResultStatus()) } /* diff --git a/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt b/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt index 69986c036980ff675e9bd569c8e738a50354017e..3df55edda647bd7013ea9ca0fc718b1bc0446618 100644 --- a/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt +++ b/app/src/main/java/foundation/e/apps/data/playstore/PlayStoreRepository.kt @@ -159,7 +159,7 @@ class PlayStoreRepository @Inject constructor( withContext(Dispatchers.IO) { var appDetails: List = getAppDetailsHelper().getAppByPackageName(packageNames) - if (!isEmulator() && appDetails.any { it.versionCode == 0L } && isAnonymousUser()) { + if (!isEmulator() && appDetails.all { it.versionCode == 0L } && isAnonymousUser()) { // Google Play returns limited result ( i.e. version code being 0) with a stale token, // so we need to refresh authentication to get a new token. Timber.i("Version code is 0.") @@ -168,13 +168,13 @@ class PlayStoreRepository @Inject constructor( appDetails = getAppDetailsHelper().getAppByPackageName(packageNames) - if (appDetails.any { it.versionCode == 0L }) { - Timber.w("After refreshing auth, version code is still 0. Giving up installation.") - throw IllegalStateException("App version code cannot be 0") + if (appDetails.all { it.versionCode == 0L }) { + Timber.w("After refreshing auth, version code is still 0.") } } - appDetails.map { it.toApplication(context) } + appDetails.filterNot { it.packageName.isBlank() || it.versionCode == 0L } + .map { it.toApplication(context) } } override suspend fun getAppDetails(packageName: String): Application =