Compare commits
2 commits
6451e0a0d6
...
e8eeb9e53d
Author | SHA1 | Date | |
---|---|---|---|
e8eeb9e53d | |||
fb1f698398 |
6 changed files with 30 additions and 14 deletions
|
@ -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"
|
||||||
|
|
|
@ -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)
|
|
||||||
}
|
|
15
app/src/main/java/im/angry/openeuicc/OpenEuiccApplication.kt
Normal file
15
app/src/main/java/im/angry/openeuicc/OpenEuiccApplication.kt
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
|
@ -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() =
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue