From 779a05af774533f419003317da8a7a0b024fcb7f Mon Sep 17 00:00:00 2001 From: Dmitry Muhomor Date: Fri, 5 May 2023 16:23:56 +0300 Subject: [PATCH] do not require dependencies of disabled package to be enabled See https://github.com/GrapheneOS/Apps/issues/296 --- .../java/app/grapheneos/apps/core/Dependenies.kt | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/grapheneos/apps/core/Dependenies.kt b/app/src/main/java/app/grapheneos/apps/core/Dependenies.kt index 0cd5b7b6..02ffc722 100644 --- a/app/src/main/java/app/grapheneos/apps/core/Dependenies.kt +++ b/app/src/main/java/app/grapheneos/apps/core/Dependenies.kt @@ -44,16 +44,26 @@ private fun getDependencies(pkg: RPackage, skipPresent: Boolean, forUpdate: Bool return emptyList() } + var requireEnabled = true + if (forUpdate) { + val maybePkgState = PackageStates.maybeGetPackageState(pkg.packageName) + if (maybePkgState?.osPackageInfo?.applicationInfo?.enabled == false) { + // allow dependencies of disabled package to be disabled too + requireEnabled = false + } + } + val visited = ArraySet() visited.add(pkg.packageName) val result = ArrayList() - collectDependencies(pkg.packageName, deps, skipPresent, forUpdate, visited, result) + collectDependencies(pkg.packageName, deps, skipPresent, forUpdate, requireEnabled, visited, result) return result } private fun collectDependencies(dependant: String, dependencies: Array, skipPresent: Boolean, forUpdate: Boolean, + requireEnabled: Boolean, visited: ArraySet, result: ArrayList) { for (dep in dependencies) { @@ -82,7 +92,7 @@ private fun collectDependencies(dependant: String, dependencies: Array