diff --git a/composeApp/src/iosMain/kotlin/org/ooni/probe/SetupDependencies.kt b/composeApp/src/iosMain/kotlin/org/ooni/probe/SetupDependencies.kt index f0d33179b..b412ea3dd 100644 --- a/composeApp/src/iosMain/kotlin/org/ooni/probe/SetupDependencies.kt +++ b/composeApp/src/iosMain/kotlin/org/ooni/probe/SetupDependencies.kt @@ -70,7 +70,7 @@ class SetupDependencies( launchUrl = ::launchUrl, startSingleRunInner = ::startSingleRun, configureAutoRun = ::configureAutoRun, - openVpnSettings = { false }, + openVpnSettings = ::openVpnSettings, ) fun startSingleRun(spec: RunSpecification) { @@ -235,4 +235,17 @@ class SetupDependencies( operation.completionBlock = { task.setTaskCompletedWithSuccess(!operation.isCancelled()) } operationQueue.addOperation(operation) } + + private fun openVpnSettings(): Boolean { + val url = "App-prefs:General&path=ManagedConfigurationList" + return NSURL.URLWithString(url)?.let { + if (UIApplication.sharedApplication.canOpenURL(it)) { + UIApplication.sharedApplication.openURL(it) + return@let true + } else { + Logger.e { "Cannot open URL: $url" } + return@let false + } + } ?: false + } }