diff --git a/app/src/main/kotlin/com/aliucord/manager/patcher/util/ManifestPatcher.kt b/app/src/main/kotlin/com/aliucord/manager/patcher/util/ManifestPatcher.kt index f48e971..800325e 100644 --- a/app/src/main/kotlin/com/aliucord/manager/patcher/util/ManifestPatcher.kt +++ b/app/src/main/kotlin/com/aliucord/manager/patcher/util/ManifestPatcher.kt @@ -101,6 +101,7 @@ object ManifestPatcher { private var addLegacyStorage = true private var addUseEmbeddedDex = true private var addExtractNativeLibs = true + private var addMetadata = true override fun attr(ns: String?, name: String, resourceId: Int, type: Int, value: Any?) { if (name == NETWORK_SECURITY_CONFIG) return @@ -114,6 +115,15 @@ object ManifestPatcher { override fun child(ns: String?, name: String): NodeVisitor { val visitor = super.child(ns, name) + // Adds a tag to make multi-install detection by HomeScreen work + if (addMetadata) { + addMetadata = false + super.child(ANDROID_NAMESPACE, "meta-data").apply { + attr(ANDROID_NAMESPACE, "name", android.R.attr.name, TYPE_STRING, "isAliucord") + attr(ANDROID_NAMESPACE, "value", android.R.attr.value, TYPE_INT_BOOLEAN, 1) + } + } + return when (name) { "activity" -> ReplaceAttrsVisitor(visitor, mapOf("label" to appName)) "provider" -> object : NodeVisitor(visitor) { diff --git a/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeModel.kt b/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeModel.kt index d55ee64..4d5d268 100644 --- a/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeModel.kt +++ b/app/src/main/kotlin/com/aliucord/manager/ui/screens/home/HomeModel.kt @@ -103,7 +103,7 @@ class HomeModel( val aliucordPackages = installedPackages .asSequence() .filter { - val isAliucordPkg = it.packageName == "com.aliucord" + val isAliucordPkg = it.packageName == "com.aliucord" // Legacy installer builds do not have isAliucord metadata marker val hasAliucordMeta = it.applicationInfo?.metaData?.containsKey("isAliucord") == true isAliucordPkg || hasAliucordMeta }