Do not leave Settings in case of input error
This commit is contained in:
@@ -102,11 +102,12 @@ fun NavGraphBuilder.settingsScreenRoute(
|
|||||||
settingsViewModel = viewModel,
|
settingsViewModel = viewModel,
|
||||||
onBack = { navController.popBackStack() },
|
onBack = { navController.popBackStack() },
|
||||||
checkOnClick = {
|
checkOnClick = {
|
||||||
checkOnClick(ctx, viewModel)
|
if (checkOnClick(ctx, viewModel)) {
|
||||||
if (restart)
|
if (restart)
|
||||||
showRestartDialog.value = true
|
showRestartDialog.value = true
|
||||||
else
|
else
|
||||||
navController.popBackStack()
|
navController.popBackStack()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onRestartApp = onRestartApp
|
onRestartApp = onRestartApp
|
||||||
)
|
)
|
||||||
@@ -1282,7 +1283,7 @@ private fun SettingsContent(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkOnClick(ctx: Context, viewModel: SettingsViewModel) {
|
private fun checkOnClick(ctx: Context, viewModel: SettingsViewModel): Boolean {
|
||||||
|
|
||||||
if ((Config.variable("auto_start") == "yes") != viewModel.autoStart.value) {
|
if ((Config.variable("auto_start") == "yes") != viewModel.autoStart.value) {
|
||||||
Config.replaceVariable(
|
Config.replaceVariable(
|
||||||
@@ -1298,7 +1299,7 @@ private fun checkOnClick(ctx: Context, viewModel: SettingsViewModel) {
|
|||||||
alertTitle.value = ctx.getString(R.string.notice)
|
alertTitle.value = ctx.getString(R.string.notice)
|
||||||
alertMessage.value = "${ctx.getString(R.string.invalid_listen_address)}: $listenAddr"
|
alertMessage.value = "${ctx.getString(R.string.invalid_listen_address)}: $listenAddr"
|
||||||
showAlert.value = true
|
showAlert.value = true
|
||||||
return
|
return false
|
||||||
}
|
}
|
||||||
Config.replaceVariable("sip_listen", listenAddr)
|
Config.replaceVariable("sip_listen", listenAddr)
|
||||||
save = true
|
save = true
|
||||||
@@ -1318,7 +1319,7 @@ private fun checkOnClick(ctx: Context, viewModel: SettingsViewModel) {
|
|||||||
alertTitle.value = ctx.getString(R.string.notice)
|
alertTitle.value = ctx.getString(R.string.notice)
|
||||||
alertMessage.value = "${ctx.getString(R.string.invalid_dns_servers)}: $dnsServers"
|
alertMessage.value = "${ctx.getString(R.string.invalid_dns_servers)}: $dnsServers"
|
||||||
showAlert.value = true
|
showAlert.value = true
|
||||||
return
|
return false
|
||||||
}
|
}
|
||||||
Config.removeVariable("dns_server")
|
Config.removeVariable("dns_server")
|
||||||
if (dnsServers.isNotEmpty()) {
|
if (dnsServers.isNotEmpty()) {
|
||||||
@@ -1329,7 +1330,7 @@ private fun checkOnClick(ctx: Context, viewModel: SettingsViewModel) {
|
|||||||
alertTitle.value = ctx.getString(R.string.notice)
|
alertTitle.value = ctx.getString(R.string.notice)
|
||||||
alertMessage.value = "${ctx.getString(R.string.failed_to_set_dns_servers)}: $dnsServers"
|
alertMessage.value = "${ctx.getString(R.string.failed_to_set_dns_servers)}: $dnsServers"
|
||||||
showAlert.value = true
|
showAlert.value = true
|
||||||
return
|
return false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Config.replaceVariable("dyn_dns", "yes")
|
Config.replaceVariable("dyn_dns", "yes")
|
||||||
@@ -1353,7 +1354,7 @@ private fun checkOnClick(ctx: Context, viewModel: SettingsViewModel) {
|
|||||||
alertMessage.value = "${ctx.getString(R.string.invalid_user_agent)}: " +
|
alertMessage.value = "${ctx.getString(R.string.invalid_user_agent)}: " +
|
||||||
userAgent
|
userAgent
|
||||||
showAlert.value = true
|
showAlert.value = true
|
||||||
return
|
return false
|
||||||
}
|
}
|
||||||
if (userAgent != "")
|
if (userAgent != "")
|
||||||
Config.replaceVariable("user_agent", userAgent)
|
Config.replaceVariable("user_agent", userAgent)
|
||||||
@@ -1456,6 +1457,8 @@ private fun checkOnClick(ctx: Context, viewModel: SettingsViewModel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (save) Config.save()
|
if (save) Config.save()
|
||||||
|
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isAppearOnTopPermissionGranted(ctx: Context): Boolean {
|
private fun isAppearOnTopPermissionGranted(ctx: Context): Boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user