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"> diff --git a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt index 437a0a3..b7ef47b 100644 --- a/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt +++ b/libs/lpac-jni/src/main/java/net/typeblog/lpac_jni/EuiccConfiguredAddresses.kt @@ -16,10 +16,8 @@ class EuiccConfiguredAddresses(defaultDPAddress: String?, rootDSAddress: String? get() = !defaultDPAddress.isNullOrBlank() || !rootDSAddress.isNullOrBlank() } -private fun isInvalidDPAddress(address: String?): Boolean { - if (address.isNullOrBlank()) return true - return !Patterns.DOMAIN_NAME.matcher(address).matches() -} +private fun isInvalidDPAddress(address: String?) = address.isNullOrBlank() || + !Patterns.DOMAIN_NAME.matcher(address).matches() private fun isInvalidDSAddress(address: String?): Boolean { if (address.isNullOrBlank()) return true