Compare commits

...

2 commits

Author SHA1 Message Date
e8eeb9e53d Make naming consistent 2022-05-02 21:30:13 -04:00
fb1f698398 Make TelephonyManager and EuiccChannelManager lazy 2022-05-02 21:29:21 -04:00
6 changed files with 30 additions and 14 deletions

View file

@ -11,7 +11,7 @@
<uses-permission android:name="android.permission.SECURE_ELEMENT_PRIVILEGED_OPERATION" /> <uses-permission android:name="android.permission.SECURE_ELEMENT_PRIVILEGED_OPERATION" />
<application <application
android:name=".OpenEUICCApplication" android:name=".OpenEuiccApplication"
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"

View file

@ -1,8 +0,0 @@
package im.angry.openeuicc
import android.app.Application
import im.angry.openeuicc.core.EuiccChannelManager
class OpenEUICCApplication : Application() {
val euiccChannelManager = EuiccChannelManager(this)
}

View file

@ -0,0 +1,15 @@
package im.angry.openeuicc
import android.app.Application
import android.telephony.TelephonyManager
import im.angry.openeuicc.core.EuiccChannelManager
class OpenEuiccApplication : Application() {
val telephonyManager by lazy {
getSystemService(TelephonyManager::class.java)!!
}
val euiccChannelManager by lazy {
EuiccChannelManager(this)
}
}

View file

@ -2,9 +2,9 @@ package im.angry.openeuicc.ui
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import im.angry.openeuicc.OpenEUICCApplication
import im.angry.openeuicc.core.EuiccChannel import im.angry.openeuicc.core.EuiccChannel
import im.angry.openeuicc.core.EuiccChannelManager import im.angry.openeuicc.core.EuiccChannelManager
import im.angry.openeuicc.util.openEuiccApplication
interface EuiccFragmentMarker interface EuiccFragmentMarker
@ -20,7 +20,7 @@ val <T> T.slotId: Int where T: Fragment, T: EuiccFragmentMarker
get() = requireArguments().getInt("slotId") get() = requireArguments().getInt("slotId")
val <T> T.euiccChannelManager: EuiccChannelManager where T: Fragment, T: EuiccFragmentMarker 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 val <T> T.channel: EuiccChannel where T: Fragment, T: EuiccFragmentMarker
get() = get() =

View file

@ -12,11 +12,11 @@ import android.widget.Spinner
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import im.angry.openeuicc.OpenEUICCApplication
import im.angry.openeuicc.R import im.angry.openeuicc.R
import im.angry.openeuicc.core.EuiccChannelManager import im.angry.openeuicc.core.EuiccChannelManager
import im.angry.openeuicc.databinding.ActivityMainBinding import im.angry.openeuicc.databinding.ActivityMainBinding
import im.angry.openeuicc.util.dsdsEnabled import im.angry.openeuicc.util.dsdsEnabled
import im.angry.openeuicc.util.openEuiccApplication
import im.angry.openeuicc.util.supportsDSDS import im.angry.openeuicc.util.supportsDSDS
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -43,9 +43,9 @@ class MainActivity : AppCompatActivity() {
binding = ActivityMainBinding.inflate(layoutInflater) binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root) 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) spinnerAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item)

View file

@ -1,9 +1,18 @@
package im.angry.openeuicc.util package im.angry.openeuicc.util
import android.app.Activity
import android.content.res.Resources import android.content.res.Resources
import android.graphics.Rect import android.graphics.Rect
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.DialogFragment 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> // Source: <https://stackoverflow.com/questions/12478520/how-to-set-dialogfragments-width-and-height>
/** /**