chore: improve stk menu handling
This commit is contained in:
parent
99d9200c28
commit
35959608f6
2 changed files with 21 additions and 14 deletions
|
@ -4,6 +4,7 @@ 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
|
||||
|
@ -26,22 +27,29 @@ class UnprivilegedEuiccManagementFragment : EuiccManagementFragment() {
|
|||
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 {
|
||||
val slot = stk[slotId] ?: return@apply
|
||||
isVisible = slot.intent != null
|
||||
setOnMenuItemClickListener {
|
||||
val intent = slot.intent ?: return@setOnMenuItemClickListener false
|
||||
if (intent.action == Settings.ACTION_APPLICATION_DETAILS_SETTINGS) {
|
||||
val packageName = intent.data!!.schemeSpecificPart
|
||||
val label = requireContext().packageManager.getApplicationLabel(packageName)
|
||||
val message = requireContext().getString(R.string.toast_prompt_to_enable_sim_toolkit, label)
|
||||
Toast.makeText(context, message, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
startActivity(intent)
|
||||
true
|
||||
}
|
||||
intent = stk[slotId]?.intent
|
||||
isVisible = intent != null
|
||||
}
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
if (item.itemId == R.id.open_sim_toolkit) {
|
||||
val intent = item.intent ?: return false
|
||||
if (intent.action == Settings.ACTION_APPLICATION_DETAILS_SETTINGS) {
|
||||
val packageName = intent.data!!.schemeSpecificPart
|
||||
val label = requireContext().packageManager.getApplicationLabel(packageName)
|
||||
val message = getString(R.string.toast_prompt_to_enable_sim_toolkit, label)
|
||||
Toast.makeText(context, message, Toast.LENGTH_LONG).show()
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
return super.onOptionsItemSelected(item)
|
||||
}
|
||||
}
|
||||
|
||||
private fun PackageManager.getApplicationLabel(packageName: String): CharSequence =
|
||||
|
|
|
@ -7,7 +7,6 @@ import android.content.pm.ActivityInfo
|
|||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import android.provider.Settings
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.ArrayRes
|
||||
import im.angry.easyeuicc.R
|
||||
import im.angry.openeuicc.core.EuiccChannelManager
|
||||
|
|
Loading…
Add table
Reference in a new issue