diff --git a/app/src/main/java/foundation/e/apps/splitinstall/SplitInstallBinder.kt b/app/src/main/java/foundation/e/apps/splitinstall/SplitInstallBinder.kt index e024dbf9854a841405ac6a83710edffc679caf73..c6df4de3cce3f38566ce0e05a79549cd80eb914b 100644 --- a/app/src/main/java/foundation/e/apps/splitinstall/SplitInstallBinder.kt +++ b/app/src/main/java/foundation/e/apps/splitinstall/SplitInstallBinder.kt @@ -63,10 +63,12 @@ class SplitInstallBinder( private suspend fun downloadModule(packageName: String, moduleName: String) { withContext(Dispatchers.IO) { val versionCode = getPackageVersionCode(packageName) - val url = fusedAPIRepository.getOnDemandModule( - authData!!, packageName, moduleName, - versionCode, 1 - ) ?: return@withContext + val url = fetchModuleUrl(packageName, moduleName, versionCode) + + if (url == null) { + Timber.e("Could not find module name on the store: $moduleName") + return@withContext + } downloadManager.downloadFileInExternalStorage( url, packageName, "$packageName.split.$moduleName.apk" @@ -88,6 +90,26 @@ class SplitInstallBinder( return applicationInfo.versionCode } + private suspend fun fetchModuleUrl( + packageName: String, + moduleName: String, + versionCode: Int + ): String? { + var url = fusedAPIRepository.getOnDemandModule( + authData!!, packageName, moduleName, + versionCode, 1 + ) + + if (url == null) { + url = fusedAPIRepository.getOnDemandModule( + authData, packageName, "config.$moduleName", + versionCode, 1 + ) + } + + return url + } + private fun installPendingModules() { for (module in modulesToInstall.keys) { val packageName = modulesToInstall[module]