diff --git a/app-unpriv/src/main/java/im/angry/openeuicc/ui/UnprivilegedEuiccManagementFragment.kt b/app-unpriv/src/main/java/im/angry/openeuicc/ui/UnprivilegedEuiccManagementFragment.kt index 95eb8b4..cd8a6aa 100644 --- a/app-unpriv/src/main/java/im/angry/openeuicc/ui/UnprivilegedEuiccManagementFragment.kt +++ b/app-unpriv/src/main/java/im/angry/openeuicc/ui/UnprivilegedEuiccManagementFragment.kt @@ -24,9 +24,8 @@ class UnprivilegedEuiccManagementFragment : EuiccManagementFragment() { super.onCreateOptionsMenu(menu, inflater) inflater.inflate(R.menu.fragment_sim_toolkit, menu) menu.findItem(R.id.open_sim_toolkit).apply { - val slot = stk[slotId] - if (slot == null) return@apply - isVisible = true + val slot = stk[slotId] ?: return@apply + isVisible = slot.available setOnMenuItemClickListener { slot.launch() } } } diff --git a/app-unpriv/src/main/java/im/angry/openeuicc/util/SIMToolkit.kt b/app-unpriv/src/main/java/im/angry/openeuicc/util/SIMToolkit.kt index ca3c0ad..254b31f 100644 --- a/app-unpriv/src/main/java/im/angry/openeuicc/util/SIMToolkit.kt +++ b/app-unpriv/src/main/java/im/angry/openeuicc/util/SIMToolkit.kt @@ -39,6 +39,9 @@ class SIMToolkit(private val context: Context) { get() = packageNames.flatMap(context.packageManager::getActivities) .filter { it.exported }.map { ComponentName(it.packageName, it.name) } + val available: Boolean + get() = getIntent() != null || getDisabledPackageName() != null + private fun getIntent(): Intent? { try { val component = components.find(activities::contains) ?: return launchIntent