From fb1f6983980a2852ea2659e9118c822770f1f9d7 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 2 May 2022 21:29:21 -0400 Subject: [PATCH 1/2] Make TelephonyManager and EuiccChannelManager lazy --- .../main/java/im/angry/openeuicc/OpenEUICCApplication.kt | 9 ++++++++- .../im/angry/openeuicc/ui/EuiccChannelFragmentUtils.kt | 4 ++-- app/src/main/java/im/angry/openeuicc/ui/MainActivity.kt | 6 +++--- app/src/main/java/im/angry/openeuicc/util/UiUtils.kt | 9 +++++++++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/im/angry/openeuicc/OpenEUICCApplication.kt b/app/src/main/java/im/angry/openeuicc/OpenEUICCApplication.kt index 0ae3505..a67f055 100644 --- a/app/src/main/java/im/angry/openeuicc/OpenEUICCApplication.kt +++ b/app/src/main/java/im/angry/openeuicc/OpenEUICCApplication.kt @@ -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) + } } \ No newline at end of file diff --git a/app/src/main/java/im/angry/openeuicc/ui/EuiccChannelFragmentUtils.kt b/app/src/main/java/im/angry/openeuicc/ui/EuiccChannelFragmentUtils.kt index 74d98ad..1201d60 100644 --- a/app/src/main/java/im/angry/openeuicc/ui/EuiccChannelFragmentUtils.kt +++ b/app/src/main/java/im/angry/openeuicc/ui/EuiccChannelFragmentUtils.kt @@ -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.slotId: Int where T: Fragment, T: EuiccFragmentMarker get() = requireArguments().getInt("slotId") val T.euiccChannelManager: EuiccChannelManager where T: Fragment, T: EuiccFragmentMarker - get() = (requireActivity().application as OpenEUICCApplication).euiccChannelManager + get() = openEuiccApplication.euiccChannelManager val T.channel: EuiccChannel where T: Fragment, T: EuiccFragmentMarker get() = diff --git a/app/src/main/java/im/angry/openeuicc/ui/MainActivity.kt b/app/src/main/java/im/angry/openeuicc/ui/MainActivity.kt index 503fac4..94598ea 100644 --- a/app/src/main/java/im/angry/openeuicc/ui/MainActivity.kt +++ b/app/src/main/java/im/angry/openeuicc/ui/MainActivity.kt @@ -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(this, android.R.layout.simple_spinner_item) diff --git a/app/src/main/java/im/angry/openeuicc/util/UiUtils.kt b/app/src/main/java/im/angry/openeuicc/util/UiUtils.kt index 24c1ad8..26411f1 100644 --- a/app/src/main/java/im/angry/openeuicc/util/UiUtils.kt +++ b/app/src/main/java/im/angry/openeuicc/util/UiUtils.kt @@ -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: /** From e8eeb9e53da93ad5cbd42f8f57635e22fe5ab65c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 2 May 2022 21:30:13 -0400 Subject: [PATCH 2/2] Make naming consistent --- app/src/main/AndroidManifest.xml | 2 +- .../{OpenEUICCApplication.kt => OpenEuiccApplication.kt} | 2 +- app/src/main/java/im/angry/openeuicc/util/UiUtils.kt | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) rename app/src/main/java/im/angry/openeuicc/{OpenEUICCApplication.kt => OpenEuiccApplication.kt} (88%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2f0a06d..f1e4c8d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,7 +11,7 @@