| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package im.angry.openeuicc.ui
- import android.content.pm.PackageManager
- import android.provider.Settings
- import android.view.Menu
- import android.view.MenuInflater
- import android.view.MenuItem
- import android.widget.Toast
- import im.angry.easyeuicc.R
- import im.angry.openeuicc.util.SIMToolkit
- import im.angry.openeuicc.util.newInstanceEuicc
- import im.angry.openeuicc.util.slotId
- class UnprivilegedEuiccManagementFragment : EuiccManagementFragment() {
- companion object {
- const val TAG = "UnprivilegedEuiccManagementFragment"
- fun newInstance(slotId: Int, portId: Int): EuiccManagementFragment =
- newInstanceEuicc(UnprivilegedEuiccManagementFragment::class.java, slotId, portId)
- }
- private val stk by lazy {
- SIMToolkit(requireContext())
- }
- override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
- super.onCreateOptionsMenu(menu, inflater)
- inflater.inflate(R.menu.fragment_sim_toolkit, menu)
- }
- override fun onPrepareOptionsMenu(menu: Menu) {
- super.onPrepareOptionsMenu(menu)
- menu.findItem(R.id.open_sim_toolkit).apply {
- intent = stk[slotId]?.intent
- isVisible = intent != null
- }
- }
- override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
- R.id.open_sim_toolkit -> {
- SIMToolkit.getDisabledPackageName(item.intent)?.also { packageName ->
- val label = requireContext().packageManager.getApplicationLabel(packageName)
- val message = getString(R.string.toast_prompt_to_enable_sim_toolkit, label)
- Toast.makeText(requireContext(), message, Toast.LENGTH_LONG).show()
- }
- super.onOptionsItemSelected(item) // handling intent
- }
- else -> super.onOptionsItemSelected(item)
- }
- }
- private fun PackageManager.getApplicationLabel(packageName: String): CharSequence =
- getApplicationLabel(getApplicationInfo(packageName, 0))
|