diff --git a/app-common/src/main/res/xml/pref_settings.xml b/app-common/src/main/res/xml/pref_settings.xml
index bbdb50a..f719ef5 100644
--- a/app-common/src/main/res/xml/pref_settings.xml
+++ b/app-common/src/main/res/xml/pref_settings.xml
@@ -77,6 +77,7 @@
diff --git a/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt b/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt
index 6dccda9..2044c02 100644
--- a/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt
+++ b/app/src/main/java/im/angry/openeuicc/core/PrivilegedEuiccChannelFactory.kt
@@ -8,8 +8,7 @@ import im.angry.openeuicc.util.*
import kotlinx.coroutines.flow.first
import java.lang.IllegalArgumentException
-class PrivilegedEuiccChannelFactory(context: Context) : DefaultEuiccChannelFactory(context),
- PrivilegedEuiccContextMarker {
+class PrivilegedEuiccChannelFactory(context: Context) : DefaultEuiccChannelFactory(context) {
private val tm by lazy {
(context.applicationContext as OpenEuiccApplication).appContainer.telephonyManager
}
@@ -23,7 +22,7 @@ class PrivilegedEuiccChannelFactory(context: Context) : DefaultEuiccChannelFacto
super.tryOpenEuiccChannel(port)?.let { return it }
}
- if (port.card.isEuicc || preferenceRepository.removableTelephonyManagerFlow.first()) {
+ if (port.card.isEuicc || (context.preferenceRepository as PrivilegedPreferenceRepository).removableTelephonyManagerFlow.first()) {
Log.i(
DefaultEuiccChannelManager.TAG,
"Trying TelephonyManager for slot ${port.card.physicalSlotIndex} port ${port.portIndex}"
diff --git a/app/src/main/java/im/angry/openeuicc/ui/PrivilegedSettingsFragment.kt b/app/src/main/java/im/angry/openeuicc/ui/PrivilegedSettingsFragment.kt
index c67d880..7229688 100644
--- a/app/src/main/java/im/angry/openeuicc/ui/PrivilegedSettingsFragment.kt
+++ b/app/src/main/java/im/angry/openeuicc/ui/PrivilegedSettingsFragment.kt
@@ -6,7 +6,7 @@ import androidx.preference.Preference
import im.angry.openeuicc.R
import im.angry.openeuicc.util.*
-class PrivilegedSettingsFragment : SettingsFragment(), PrivilegedEuiccContextMarker {
+class PrivilegedSettingsFragment : SettingsFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
super.onCreatePreferences(savedInstanceState, rootKey)
addPreferencesFromResource(R.xml.pref_privileged_settings)
@@ -21,7 +21,7 @@ class PrivilegedSettingsFragment : SettingsFragment(), PrivilegedEuiccContextMar
requirePreference("pref_advanced_language").isVisible = false
// Force use TelephonyManager API
- requirePreference("pref_developer_removable_telephony_manager")
- .bindBooleanFlow(preferenceRepository.removableTelephonyManagerFlow)
+ requirePreference("pref_developer_tmapi_removable")
+ .bindBooleanFlow((preferenceRepository as PrivilegedPreferenceRepository).removableTelephonyManagerFlow)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/im/angry/openeuicc/util/PrivilegedUtils.kt b/app/src/main/java/im/angry/openeuicc/util/PrivilegedUtils.kt
index 21c8002..e295f26 100644
--- a/app/src/main/java/im/angry/openeuicc/util/PrivilegedUtils.kt
+++ b/app/src/main/java/im/angry/openeuicc/util/PrivilegedUtils.kt
@@ -5,23 +5,10 @@ import android.content.Context
import android.content.Intent
import android.content.ServiceConnection
import android.os.IBinder
-import androidx.fragment.app.Fragment
import java.util.concurrent.Executors
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
-interface PrivilegedEuiccContextMarker {
- val privilegedEuiccMarkerContext: Context
- get() = when (this) {
- is Context -> this
- is Fragment -> requireContext()
- else -> throw RuntimeException("PrivilegedEuiccContextMarker shall only be used on Fragments or UI types that derive from Context")
- }
-
- val preferenceRepository: PrivilegedPreferenceRepository
- get() = privilegedEuiccMarkerContext.preferenceRepository as PrivilegedPreferenceRepository
-}
-
suspend fun Context.bindServiceSuspended(intent: Intent, flags: Int): Pair Unit> =
suspendCoroutine { cont ->
var binder: IBinder?
diff --git a/app/src/main/res/xml/pref_privileged_settings.xml b/app/src/main/res/xml/pref_privileged_settings.xml
index 5279126..339233b 100644
--- a/app/src/main/res/xml/pref_privileged_settings.xml
+++ b/app/src/main/res/xml/pref_privileged_settings.xml
@@ -5,7 +5,7 @@
app:key="pref_developer_overlay">