OpenEuiccApplication.kt 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package im.angry.openeuicc
  2. import android.app.Application
  3. import android.telephony.SubscriptionManager
  4. import android.telephony.TelephonyManager
  5. import im.angry.openeuicc.core.EuiccChannelManager
  6. import im.angry.openeuicc.util.*
  7. import java.lang.Exception
  8. class OpenEuiccApplication : Application() {
  9. val telephonyManager by lazy {
  10. getSystemService(TelephonyManager::class.java)!!
  11. }
  12. val euiccChannelManager by lazy {
  13. EuiccChannelManager(this)
  14. }
  15. val subscriptionManager by lazy {
  16. getSystemService(SubscriptionManager::class.java)!!
  17. }
  18. override fun onCreate() {
  19. super.onCreate()
  20. // Clean up channels left open in TelephonyManager
  21. // due to a (potentially) forced restart
  22. for (slotId in 0 until EuiccChannelManager.MAX_SIMS) {
  23. for (channel in 0 until 10) {
  24. try {
  25. telephonyManager.iccCloseLogicalChannelBySlot(slotId, channel)
  26. } catch (_: Exception) {
  27. // We do not care
  28. }
  29. }
  30. }
  31. }
  32. }