Make TelephonyManager and EuiccChannelManager lazy
This commit is contained in:
parent
6451e0a0d6
commit
fb1f698398
|
@ -1,8 +1,15 @@
|
|||
package im.angry.openeuicc
|
||||
|
||||
import android.app.Application
|
||||
import android.telephony.TelephonyManager
|
||||
import im.angry.openeuicc.core.EuiccChannelManager
|
||||
|
||||
class OpenEUICCApplication : Application() {
|
||||
val euiccChannelManager = EuiccChannelManager(this)
|
||||
val telephonyManager by lazy {
|
||||
getSystemService(TelephonyManager::class.java)!!
|
||||
}
|
||||
|
||||
val euiccChannelManager by lazy {
|
||||
EuiccChannelManager(this)
|
||||
}
|
||||
}
|
|
@ -2,9 +2,9 @@ package im.angry.openeuicc.ui
|
|||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import im.angry.openeuicc.OpenEUICCApplication
|
||||
import im.angry.openeuicc.core.EuiccChannel
|
||||
import im.angry.openeuicc.core.EuiccChannelManager
|
||||
import im.angry.openeuicc.util.openEuiccApplication
|
||||
|
||||
interface EuiccFragmentMarker
|
||||
|
||||
|
@ -20,7 +20,7 @@ val <T> T.slotId: Int where T: Fragment, T: EuiccFragmentMarker
|
|||
get() = requireArguments().getInt("slotId")
|
||||
|
||||
val <T> T.euiccChannelManager: EuiccChannelManager where T: Fragment, T: EuiccFragmentMarker
|
||||
get() = (requireActivity().application as OpenEUICCApplication).euiccChannelManager
|
||||
get() = openEuiccApplication.euiccChannelManager
|
||||
|
||||
val <T> T.channel: EuiccChannel where T: Fragment, T: EuiccFragmentMarker
|
||||
get() =
|
||||
|
|
|
@ -12,11 +12,11 @@ import android.widget.Spinner
|
|||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import im.angry.openeuicc.OpenEUICCApplication
|
||||
import im.angry.openeuicc.R
|
||||
import im.angry.openeuicc.core.EuiccChannelManager
|
||||
import im.angry.openeuicc.databinding.ActivityMainBinding
|
||||
import im.angry.openeuicc.util.dsdsEnabled
|
||||
import im.angry.openeuicc.util.openEuiccApplication
|
||||
import im.angry.openeuicc.util.supportsDSDS
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
@ -43,9 +43,9 @@ class MainActivity : AppCompatActivity() {
|
|||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
tm = getSystemService(TelephonyManager::class.java)
|
||||
tm = openEuiccApplication.telephonyManager
|
||||
|
||||
manager = (application as OpenEUICCApplication).euiccChannelManager
|
||||
manager = openEuiccApplication.euiccChannelManager
|
||||
|
||||
spinnerAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item)
|
||||
|
||||
|
|
|
@ -1,9 +1,18 @@
|
|||
package im.angry.openeuicc.util
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.res.Resources
|
||||
import android.graphics.Rect
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.Fragment
|
||||
import im.angry.openeuicc.OpenEUICCApplication
|
||||
|
||||
val Activity.openEuiccApplication: OpenEUICCApplication
|
||||
get() = application as OpenEUICCApplication
|
||||
|
||||
val Fragment.openEuiccApplication: OpenEUICCApplication
|
||||
get() = requireActivity().openEuiccApplication
|
||||
|
||||
// Source: <https://stackoverflow.com/questions/12478520/how-to-set-dialogfragments-width-and-height>
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue