diff --git a/lib/src/main/java/at/bitfire/cert4android/CustomCertManager.kt b/lib/src/main/java/at/bitfire/cert4android/CustomCertManager.kt index 8cbbcda..98be18d 100644 --- a/lib/src/main/java/at/bitfire/cert4android/CustomCertManager.kt +++ b/lib/src/main/java/at/bitfire/cert4android/CustomCertManager.kt @@ -24,8 +24,8 @@ import javax.net.ssl.X509TrustManager @SuppressLint("CustomX509TrustManager") class CustomCertManager @JvmOverloads constructor( context: Context, - private val scope: CoroutineScope, val trustSystemCerts: Boolean = true, + private val scope: CoroutineScope, private val getUserDecision: suspend (X509Certificate) -> Boolean ): X509TrustManager { diff --git a/lib/src/main/java/at/bitfire/cert4android/UserDecisionRegistry.kt b/lib/src/main/java/at/bitfire/cert4android/UserDecisionRegistry.kt index 4b0d5c8..b4ed536 100644 --- a/lib/src/main/java/at/bitfire/cert4android/UserDecisionRegistry.kt +++ b/lib/src/main/java/at/bitfire/cert4android/UserDecisionRegistry.kt @@ -67,12 +67,11 @@ class UserDecisionRegistry private constructor( } } - if (requestDecision) { + if (requestDecision) scope.launch { val userDecision = getUserDecision(cert) // Suspends until user decision is made onUserDecision(cert, userDecision) } - } } fun onUserDecision(cert: X509Certificate, trusted: Boolean) { diff --git a/sample-app/src/main/java/at/bitfire/cert4android/demo/MainActivity.kt b/sample-app/src/main/java/at/bitfire/cert4android/demo/MainActivity.kt index deb45c9..6f4e43f 100644 --- a/sample-app/src/main/java/at/bitfire/cert4android/demo/MainActivity.kt +++ b/sample-app/src/main/java/at/bitfire/cert4android/demo/MainActivity.kt @@ -205,8 +205,8 @@ class MainActivity : ComponentActivity() { // set cert4android TrustManager and HostnameVerifier val certMgr = CustomCertManager( getApplication(), - viewModelScope, trustSystemCerts = trustSystemCerts, + viewModelScope, getUserDecision = { cert -> // Reset user decision userDecision = CompletableDeferred()