Fixed Verify Server Certificates setting

This commit is contained in:
Juha Heinanen
2025-04-16 09:46:09 +03:00
parent 7ba07df7db
commit a2dc34641b
@@ -137,14 +137,15 @@ class ConfigActivity : ComponentActivity() {
private val certificateRequest = private val certificateRequest =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
val certPath = BaresipService.filesPath + "/cert.pem"
val certFile = File(certPath)
if (it.resultCode == RESULT_OK) { if (it.resultCode == RESULT_OK) {
it.data?.data?.also { uri -> it.data?.data?.also { uri ->
try { try {
val inputStream = val inputStream =
applicationContext.contentResolver.openInputStream(uri) applicationContext.contentResolver.openInputStream(uri)
as FileInputStream as FileInputStream
val certPath = BaresipService.filesPath + "/cert.pem" certFile.copyInputStreamToFile(inputStream)
File(certPath).copyInputStreamToFile(inputStream)
inputStream.close() inputStream.close()
Config.replaceVariable("sip_certificate", certPath) Config.replaceVariable("sip_certificate", certPath)
save = true save = true
@@ -156,14 +157,16 @@ class ConfigActivity : ComponentActivity() {
newTlsCertificateFile = false newTlsCertificateFile = false
} }
} }
} else {
newTlsCertificateFile = false
} }
else
newTlsCertificateFile = false
if (!newTlsCertificateFile)
Utils.deleteFile(certFile)
} }
private val caCertsFile = File(BaresipService.filesPath + "/ca_certs.crt")
private val caCertsRequest = private val caCertsRequest =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
val caCertsFile = File(BaresipService.filesPath + "/ca_certs.crt")
if (it.resultCode == RESULT_OK) if (it.resultCode == RESULT_OK)
it.data?.data?.also { uri -> it.data?.data?.also { uri ->
try { try {
@@ -182,7 +185,7 @@ class ConfigActivity : ComponentActivity() {
} }
else else
newCaFile = false newCaFile = false
if (!newCaFile && caCertsFile.exists()) if (!newCaFile)
caCertsFile.delete() caCertsFile.delete()
} }
@@ -227,7 +230,11 @@ class ConfigActivity : ComponentActivity() {
oldDnsServers = serverList.trimStart(',').trimStart(' ') oldDnsServers = serverList.trimStart(',').trimStart(' ')
} }
oldTlsCertificateFile = Config.variable("sip_certificate") != "" val certFile = File(BaresipService.filesPath + "/cert.pem")
oldTlsCertificateFile = certFile.exists()
oldVerifyServer = Config.variable("sip_verify_server") == "yes"
newVerifyServer = oldVerifyServer
val caCertsFile = File(BaresipService.filesPath + "/ca_certs.crt") val caCertsFile = File(BaresipService.filesPath + "/ca_certs.crt")
oldCaFile = caCertsFile.exists() oldCaFile = caCertsFile.exists()
@@ -235,6 +242,7 @@ class ConfigActivity : ComponentActivity() {
powerManager = getSystemService(POWER_SERVICE) as PowerManager powerManager = getSystemService(POWER_SERVICE) as PowerManager
oldBatteryOptimizations = powerManager oldBatteryOptimizations = powerManager
.isIgnoringBatteryOptimizations(packageName) == false .isIgnoringBatteryOptimizations(packageName) == false
newBatteryOptimizations = oldBatteryOptimizations
androidSettingsRequest = registerForActivityResult( androidSettingsRequest = registerForActivityResult(
ActivityResultContracts.StartActivityForResult() ActivityResultContracts.StartActivityForResult()
@@ -634,11 +642,12 @@ class ConfigActivity : ComponentActivity() {
else -> else ->
requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE) requestPermissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE)
} }
} else {
Utils.selectInputFile(certificateRequest)
} }
else
Utils.selectInputFile(certificateRequest)
else { else {
Config.removeVariable("sip_certificate") Config.removeVariable("sip_certificate")
Utils.deleteFile(File(BaresipService.filesPath + "/cert.pem"))
save = true save = true
restart = true restart = true
} }
@@ -724,7 +733,7 @@ class ConfigActivity : ComponentActivity() {
showAlert.value = true showAlert.value = true
return@Checkbox return@Checkbox
} }
caCertsFile.writeBytes(content) File(BaresipService.filesPath + "/ca_certs.crt").writeBytes(content)
caFile = true caFile = true
restart = true restart = true
} }
@@ -746,8 +755,7 @@ class ConfigActivity : ComponentActivity() {
Utils.selectInputFile(caCertsRequest) Utils.selectInputFile(caCertsRequest)
} }
else { else {
if (caCertsFile.exists()) Utils.deleteFile(File(BaresipService.filesPath + "/ca_certs.crt"))
caCertsFile.delete()
restart = true restart = true
} }
} }
@@ -1196,8 +1204,7 @@ class ConfigActivity : ComponentActivity() {
} }
if (oldVerifyServer != newVerifyServer) { if (oldVerifyServer != newVerifyServer) {
Config.replaceVariable("sip_verify_server", Config.replaceVariable("sip_verify_server", if (newVerifyServer) "yes" else "no")
if (newVerifyServer) "yes" else "no")
Api.config_verify_server_set(newVerifyServer) Api.config_verify_server_set(newVerifyServer)
save = true save = true
} }