diff --git a/app/src/main/java/im/angry/openeuicc/service/OpenEuiccService.kt b/app/src/main/java/im/angry/openeuicc/service/OpenEuiccService.kt index 6ef9863..1fc8d6c 100644 --- a/app/src/main/java/im/angry/openeuicc/service/OpenEuiccService.kt +++ b/app/src/main/java/im/angry/openeuicc/service/OpenEuiccService.kt @@ -52,8 +52,9 @@ class OpenEuiccService : EuiccService() { } override fun onGetEuiccProfileInfoList(slotId: Int): GetEuiccProfileInfoListResult? { - val profiles = (findChannel(slotId) ?: return null).lpa.profiles.filter { - it.profileClass != LocalProfileInfo.Clazz.Testing + val channel = findChannel(slotId) ?: return null + val profiles = channel.lpa.profiles.filter { + it.profileClass == LocalProfileInfo.Clazz.Operational }.map { EuiccProfileInfo.Builder(it.iccidLittleEndian).apply { setProfileName(it.name) @@ -75,8 +76,7 @@ class OpenEuiccService : EuiccService() { }.build() } - // TODO: Does isRemovable matter? Will Android even query us for removable SIMs? - return GetEuiccProfileInfoListResult(RESULT_OK, profiles.toTypedArray(), false) + return GetEuiccProfileInfoListResult(RESULT_OK, profiles.toTypedArray(), channel.removable) } override fun onGetEuiccInfo(slotId: Int): EuiccInfo { diff --git a/app/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt b/app/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt index c6f2dc3..cda8d38 100644 --- a/app/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt +++ b/app/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt @@ -81,7 +81,7 @@ class EuiccManagementFragment : Fragment(), EuiccFragmentMarker, EuiccProfilesCh } withContext(Dispatchers.Main) { - adapter.profiles = profiles.filter { it.profileClass != LocalProfileInfo.Clazz.Testing } + adapter.profiles = profiles.filter { it.profileClass == LocalProfileInfo.Clazz.Operational } adapter.notifyDataSetChanged() binding.swipeRefresh.isRefreshing = false }