From 60d449f1bc7f10297803621f220171303a2be336 Mon Sep 17 00:00:00 2001 From: Jonathan Klee Date: Fri, 7 Oct 2022 08:33:53 +0200 Subject: [PATCH] Fix "config." prefixed split modules For languages for instance, module name is prefixed with "config." --- .../e/apps/splitinstall/SplitInstallBinder.kt | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) 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 e024dbf98..c6df4de3c 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] -- GitLab