Compare commits

...

1 commit

Author SHA1 Message Date
45e443a622
refactor: improve partner customization 2025-07-14 22:08:13 +08:00

View file

@ -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<String, Int>()
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)
}