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 db5d1f8..f78ef77 100644 --- a/app/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt +++ b/app/src/main/java/im/angry/openeuicc/ui/EuiccManagementFragment.kt @@ -75,11 +75,8 @@ class EuiccManagementFragment : Fragment(), EuiccFragmentMarker, EuiccProfilesCh } } } -} -class EuiccProfileAdapter(var profiles: List>) : - RecyclerView.Adapter() { - data class ViewHolder(val binding: EuiccProfileBinding) : RecyclerView.ViewHolder(binding.root) { + inner class ViewHolder(private val binding: EuiccProfileBinding) : RecyclerView.ViewHolder(binding.root) { init { binding.iccid.setOnClickListener { if (binding.iccid.transformationMethod == null) { @@ -89,28 +86,37 @@ class EuiccProfileAdapter(var profiles: List>) : } } } + + private lateinit var profile: Map + + fun setProfile(profile: Map) { + this.profile = profile + // TODO: The library is not exposing the nicknames. Expose them so that we can do something here. + binding.name.text = profile["NAME"] + binding.state.setText( + if (profile["STATE"]?.lowercase() == "enabled") { + R.string.enabled + } else { + R.string.disabled + } + ) + binding.provider.text = profile["PROVIDER_NAME"] + binding.iccid.text = profile["ICCID"] + binding.iccid.transformationMethod = PasswordTransformationMethod.getInstance() + } } - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val binding = - EuiccProfileBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return ViewHolder(binding) - } + inner class EuiccProfileAdapter(var profiles: List>) : RecyclerView.Adapter() { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val binding = + EuiccProfileBinding.inflate(LayoutInflater.from(parent.context), parent, false) + return ViewHolder(binding) + } - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - // TODO: The library is not exposing the nicknames. Expose them so that we can do something here. - holder.binding.name.text = profiles[position]["NAME"] - holder.binding.state.setText( - if (profiles[position]["STATE"]?.lowercase() == "enabled") { - R.string.enabled - } else { - R.string.disabled - } - ) - holder.binding.provider.text = profiles[position]["PROVIDER_NAME"] - holder.binding.iccid.text = profiles[position]["ICCID"] - holder.binding.iccid.transformationMethod = PasswordTransformationMethod.getInstance() - } + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.setProfile(profiles[position]) + } - override fun getItemCount(): Int = profiles.size + override fun getItemCount(): Int = profiles.size + } } \ No newline at end of file