From 45e443a622e85f7bd4ead469c1bea8416e7a7581 Mon Sep 17 00:00:00 2001 From: septs Date: Mon, 14 Jul 2025 22:08:13 +0800 Subject: [PATCH] refactor: improve partner customization --- .../main/java/im/angry/openeuicc/util/Partner.kt | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/im/angry/openeuicc/util/Partner.kt b/app/src/main/java/im/angry/openeuicc/util/Partner.kt index dc60cda..4a58985 100644 --- a/app/src/main/java/im/angry/openeuicc/util/Partner.kt +++ b/app/src/main/java/im/angry/openeuicc/util/Partner.kt @@ -9,15 +9,15 @@ import im.angry.openeuicc.BuildConfig class Partner { companion object { - private val intent = Intent("com.google.android.euicc.action.PARTNER_CUSTOMIZATION") + private const val ACTION = "com.google.android.euicc.action.PARTNER_CUSTOMIZATION" - fun getInstance(context: Context): Partner? { + fun getInstance(context: Context, action: String = ACTION): Partner? { var flags = if (BuildConfig.DEBUG) PackageManager.MATCH_UNINSTALLED_PACKAGES else PackageManager.MATCH_SYSTEM_ONLY flags = flags or PackageManager.MATCH_DISABLED_COMPONENTS val apps = context.packageManager - .queryBroadcastReceivers(intent, flags) + .queryBroadcastReceivers(Intent(action), flags) .mapNotNull { it.activityInfo?.applicationInfo } for (app in apps) { try { @@ -32,17 +32,15 @@ class Partner { } private val resources: Resources - private val ids = mutableMapOf() private constructor(resources: Resources) { this.resources = resources } - private fun getIdentifier(name: String) = ids.getOrPut(name) { - resources.getIdentifier(name, null, null) - } + private fun getIdentifier(name: String) = + resources.getIdentifier(name, null, null).takeIf { it != 0 } - fun getString(name: String) = getIdentifier(name).let(resources::getString) + fun getString(name: String) = getIdentifier(name)?.let(resources::getString) - fun getBoolean(name: String) = getIdentifier(name).let(resources::getBoolean) + fun getBoolean(name: String) = getIdentifier(name)?.let(resources::getBoolean) } \ No newline at end of file