Prevent un-necessary re-registration when checking out from account screen
Code styling improvements
This commit is contained in:
@@ -172,9 +172,7 @@ private fun AccountScreen(
|
|||||||
Column(modifier = Modifier.background(MaterialTheme.colorScheme.background)) {
|
Column(modifier = Modifier.background(MaterialTheme.colorScheme.background)) {
|
||||||
Spacer(Modifier.statusBarsPadding())
|
Spacer(Modifier.statusBarsPadding())
|
||||||
TopAppBar(
|
TopAppBar(
|
||||||
title = {
|
title = { Text(text = acc.text(), fontWeight = FontWeight.Bold) },
|
||||||
Text(text = acc.text(), fontWeight = FontWeight.Bold)
|
|
||||||
},
|
|
||||||
colors = TopAppBarDefaults.topAppBarColors(
|
colors = TopAppBarDefaults.topAppBarColors(
|
||||||
containerColor = MaterialTheme.colorScheme.primary,
|
containerColor = MaterialTheme.colorScheme.primary,
|
||||||
navigationIconContentColor = MaterialTheme.colorScheme.onPrimary,
|
navigationIconContentColor = MaterialTheme.colorScheme.onPrimary,
|
||||||
@@ -202,10 +200,7 @@ private fun AccountScreen(
|
|||||||
if (isAccountLoaded)
|
if (isAccountLoaded)
|
||||||
AccountContent(viewModel, navController, contentPadding, ua, resumeToggle)
|
AccountContent(viewModel, navController, contentPadding, ua, resumeToggle)
|
||||||
else
|
else
|
||||||
Box(
|
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
|
||||||
modifier = Modifier.fillMaxSize(),
|
|
||||||
contentAlignment = Alignment.Center
|
|
||||||
) {
|
|
||||||
CircularProgressIndicator()
|
CircularProgressIndicator()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -242,9 +237,7 @@ private fun AccountContent(
|
|||||||
onValueChange = {},
|
onValueChange = {},
|
||||||
modifier = Modifier.fillMaxWidth(),
|
modifier = Modifier.fillMaxWidth(),
|
||||||
textStyle = TextStyle(fontSize = 18.sp),
|
textStyle = TextStyle(fontSize = 18.sp),
|
||||||
label = {
|
label = { Text(text = label, fontWeight = FontWeight.Bold) },
|
||||||
Text(text = label, fontWeight = FontWeight.Bold)
|
|
||||||
},
|
|
||||||
colors = OutlinedTextFieldDefaults.colors(
|
colors = OutlinedTextFieldDefaults.colors(
|
||||||
disabledTextColor = MaterialTheme.colorScheme.onSurface,
|
disabledTextColor = MaterialTheme.colorScheme.onSurface,
|
||||||
disabledBorderColor = MaterialTheme.colorScheme.outline,
|
disabledBorderColor = MaterialTheme.colorScheme.outline,
|
||||||
@@ -261,7 +254,7 @@ private fun AccountContent(
|
|||||||
Modifier.fillMaxWidth().padding(top = 8.dp, end = 10.dp),
|
Modifier.fillMaxWidth().padding(top = 8.dp, end = 10.dp),
|
||||||
verticalArrangement = Arrangement.spacedBy(8.dp)
|
verticalArrangement = Arrangement.spacedBy(8.dp)
|
||||||
) {
|
) {
|
||||||
if (ua.account.isMobile && android.os.Build.VERSION.SDK_INT >= 29) {
|
if (ua.account.isMobile && Build.VERSION.SDK_INT >= 29) {
|
||||||
val voiceSubId = remember(toggle) { SubscriptionManager.getDefaultVoiceSubscriptionId() }
|
val voiceSubId = remember(toggle) { SubscriptionManager.getDefaultVoiceSubscriptionId() }
|
||||||
val smsSubId = remember(toggle) { SubscriptionManager.getDefaultSmsSubscriptionId() }
|
val smsSubId = remember(toggle) { SubscriptionManager.getDefaultSmsSubscriptionId() }
|
||||||
|
|
||||||
@@ -767,9 +760,7 @@ private fun AccountContent(
|
|||||||
}
|
}
|
||||||
DropdownMenu(
|
DropdownMenu(
|
||||||
expanded = isDropDownExpanded.value,
|
expanded = isDropDownExpanded.value,
|
||||||
onDismissRequest = {
|
onDismissRequest = { isDropDownExpanded.value = false }
|
||||||
isDropDownExpanded.value = false
|
|
||||||
}
|
|
||||||
) {
|
) {
|
||||||
var index = 0
|
var index = 0
|
||||||
mediaNatMap.forEach {
|
mediaNatMap.forEach {
|
||||||
@@ -989,9 +980,8 @@ private fun AccountContent(
|
|||||||
}
|
}
|
||||||
DropdownMenu(
|
DropdownMenu(
|
||||||
expanded = isDropDownExpanded.value,
|
expanded = isDropDownExpanded.value,
|
||||||
onDismissRequest = {
|
onDismissRequest = { isDropDownExpanded.value = false }
|
||||||
isDropDownExpanded.value = false
|
) {
|
||||||
}) {
|
|
||||||
var index = 0
|
var index = 0
|
||||||
dtmfModeMap.forEach {
|
dtmfModeMap.forEach {
|
||||||
DropdownMenuItem(text = { Text(text = it.value) },
|
DropdownMenuItem(text = { Text(text = it.value) },
|
||||||
@@ -1299,14 +1289,13 @@ private fun AccountContent(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showAlert.value) {
|
if (showAlert.value)
|
||||||
AlertDialog(
|
AlertDialog(
|
||||||
showDialog = showAlert,
|
showDialog = showAlert,
|
||||||
title = alertTitle.value,
|
title = alertTitle.value,
|
||||||
message = alertMessage.value,
|
message = alertMessage.value,
|
||||||
lastButtonText = stringResource(R.string.ok),
|
lastButtonText = stringResource(R.string.ok),
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|
||||||
keyboardController = LocalSoftwareKeyboardController.current
|
keyboardController = LocalSoftwareKeyboardController.current
|
||||||
|
|
||||||
@@ -1367,6 +1356,7 @@ private fun AccountContent(
|
|||||||
|
|
||||||
private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgent): Boolean {
|
private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgent): Boolean {
|
||||||
|
|
||||||
|
reRegister = false
|
||||||
val acc = ua.account
|
val acc = ua.account
|
||||||
val noticeTitle = ctx.getString(R.string.notice)
|
val noticeTitle = ctx.getString(R.string.notice)
|
||||||
|
|
||||||
@@ -1398,9 +1388,9 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
if (Api.account_set_display_name(acc.accp, dn) == 0) {
|
if (Api.account_set_display_name(acc.accp, dn) == 0) {
|
||||||
acc.displayName = Api.account_display_name(acc.accp)
|
acc.displayName = Api.account_display_name(acc.accp)
|
||||||
Log.d(TAG, "New display name is ${acc.displayName}")
|
Log.d(TAG, "New display name is ${acc.displayName}")
|
||||||
} else {
|
|
||||||
Log.e(TAG, "Setting of display name failed")
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
Log.e(TAG, "Setting of display name failed")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alertTitle.value = noticeTitle
|
alertTitle.value = noticeTitle
|
||||||
@@ -1419,9 +1409,8 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
if (acc.regint > 0)
|
if (acc.regint > 0)
|
||||||
reRegister = true
|
reRegister = true
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
Log.e(TAG, "Setting of auth user failed")
|
Log.e(TAG, "Setting of auth user failed")
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alertTitle.value = noticeTitle
|
alertTitle.value = noticeTitle
|
||||||
@@ -1467,9 +1456,8 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
if (ob1 != "") {
|
if (ob1 != "") {
|
||||||
if (!ob1.startsWith("sip:"))
|
if (!ob1.startsWith("sip:"))
|
||||||
ob1 = "sip:$ob1"
|
ob1 = "sip:$ob1"
|
||||||
if (checkOutboundUri(ob1)) {
|
if (checkOutboundUri(ob1))
|
||||||
ob.add(ob1)
|
ob.add(ob1)
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
alertTitle.value = noticeTitle
|
alertTitle.value = noticeTitle
|
||||||
alertMessage.value = String.format(ctx.getString(R.string.invalid_proxy_server_uri), ob1)
|
alertMessage.value = String.format(ctx.getString(R.string.invalid_proxy_server_uri), ob1)
|
||||||
@@ -1523,10 +1511,9 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
val reReg = (viewModel.register.value != acc.regint > 0) ||
|
val reReg = (viewModel.register.value != acc.regint > 0) ||
|
||||||
(viewModel.register.value && regInt != acc.configuredRegInt)
|
(viewModel.register.value && regInt != acc.configuredRegInt)
|
||||||
if (reReg) {
|
if (reReg) {
|
||||||
if (Api.account_set_regint(acc.accp,
|
if (Api.account_set_regint(acc.accp, if (viewModel.register.value) regInt else 0) != 0)
|
||||||
if (viewModel.register.value) regInt else 0) != 0) {
|
|
||||||
Log.e(TAG, "Setting of regint failed")
|
Log.e(TAG, "Setting of regint failed")
|
||||||
} else {
|
else {
|
||||||
acc.regint = Api.account_regint(acc.accp)
|
acc.regint = Api.account_regint(acc.accp)
|
||||||
acc.configuredRegInt = regInt
|
acc.configuredRegInt = regInt
|
||||||
Log.d(TAG, "New regint is ${acc.regint}")
|
Log.d(TAG, "New regint is ${acc.regint}")
|
||||||
@@ -1584,9 +1571,9 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
if (Api.account_set_stun_uri(acc.accp, newStunServer) == 0) {
|
if (Api.account_set_stun_uri(acc.accp, newStunServer) == 0) {
|
||||||
acc.stunServer = Api.account_stun_uri(acc.accp)
|
acc.stunServer = Api.account_stun_uri(acc.accp)
|
||||||
Log.d(TAG, "New STUN/TURN server URI is '${acc.stunServer}'")
|
Log.d(TAG, "New STUN/TURN server URI is '${acc.stunServer}'")
|
||||||
} else {
|
|
||||||
Log.e(TAG, "Setting of STUN/TURN URI server $newStunServer failed")
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
Log.e(TAG, "Setting of STUN/TURN URI server $newStunServer failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
val newStunUser = viewModel.stunUser.value.trim()
|
val newStunUser = viewModel.stunUser.value.trim()
|
||||||
@@ -1630,9 +1617,9 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
if (Api.account_set_rtcp_mux(acc.accp, newRtcpMux) == 0) {
|
if (Api.account_set_rtcp_mux(acc.accp, newRtcpMux) == 0) {
|
||||||
acc.rtcpMux = Api.account_rtcp_mux(acc.accp)
|
acc.rtcpMux = Api.account_rtcp_mux(acc.accp)
|
||||||
Log.d(TAG, "New rtcpMux is ${acc.rtcpMux}")
|
Log.d(TAG, "New rtcpMux is ${acc.rtcpMux}")
|
||||||
} else {
|
|
||||||
Log.e(TAG, "Setting of account_rtc_mux $newRtcpMux failed")
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
Log.e(TAG, "Setting of account_rtc_mux $newRtcpMux failed")
|
||||||
|
|
||||||
val new100Rel = viewModel.rel100.value
|
val new100Rel = viewModel.rel100.value
|
||||||
if (new100Rel != (acc.rel100Mode == Api.REL100_ENABLED)) {
|
if (new100Rel != (acc.rel100Mode == Api.REL100_ENABLED)) {
|
||||||
@@ -1641,9 +1628,9 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
acc.rel100Mode = Api.account_rel100_mode(acc.accp)
|
acc.rel100Mode = Api.account_rel100_mode(acc.accp)
|
||||||
Api.ua_update_account(ua.uap)
|
Api.ua_update_account(ua.uap)
|
||||||
Log.d(TAG, "New rel100Mode is ${acc.rel100Mode}")
|
Log.d(TAG, "New rel100Mode is ${acc.rel100Mode}")
|
||||||
} else {
|
|
||||||
Log.e(TAG, "Setting of account_rel100Mode $mode failed")
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
Log.e(TAG, "Setting of account_rel100Mode $mode failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
val newDtmfMode = viewModel.dtmfMode.value
|
val newDtmfMode = viewModel.dtmfMode.value
|
||||||
@@ -1651,9 +1638,9 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
if (Api.account_set_dtmfmode(acc.accp, newDtmfMode) == 0) {
|
if (Api.account_set_dtmfmode(acc.accp, newDtmfMode) == 0) {
|
||||||
acc.dtmfMode = Api.account_dtmfmode(acc.accp)
|
acc.dtmfMode = Api.account_dtmfmode(acc.accp)
|
||||||
Log.d(TAG, "New dtmfMode is ${acc.dtmfMode}")
|
Log.d(TAG, "New dtmfMode is ${acc.dtmfMode}")
|
||||||
} else {
|
|
||||||
Log.e(TAG, "Setting of dtmfMode $newDtmfMode failed")
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
Log.e(TAG, "Setting of dtmfMode $newDtmfMode failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
val newAnswerMode = viewModel.answerMode.value
|
val newAnswerMode = viewModel.answerMode.value
|
||||||
@@ -1661,9 +1648,9 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
if (Api.account_set_answermode(acc.accp, newAnswerMode) == 0) {
|
if (Api.account_set_answermode(acc.accp, newAnswerMode) == 0) {
|
||||||
acc.answerMode = Api.account_answermode(acc.accp)
|
acc.answerMode = Api.account_answermode(acc.accp)
|
||||||
Log.d(TAG, "New answerMode is ${acc.answerMode}")
|
Log.d(TAG, "New answerMode is ${acc.answerMode}")
|
||||||
} else {
|
|
||||||
Log.e(TAG, "Setting of answerMode $newAnswerMode failed")
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
Log.e(TAG, "Setting of answerMode $newAnswerMode failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
val newAutoRedirect = viewModel.autoRedirect.value
|
val newAutoRedirect = viewModel.autoRedirect.value
|
||||||
@@ -1710,10 +1697,7 @@ private fun checkOnClick(ctx: Context, viewModel: AccountViewModel, ua: UserAgen
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!Utils.checkUri(newVmUri))
|
if (!Utils.checkUri(newVmUri))
|
||||||
error = String.format(
|
error = String.format(ctx.getString(R.string.invalid_sip_or_tel_uri), newVmUri)
|
||||||
ctx.getString(R.string.invalid_sip_or_tel_uri),
|
|
||||||
newVmUri
|
|
||||||
)
|
|
||||||
if (error != "") {
|
if (error != "") {
|
||||||
alertTitle.value = noticeTitle
|
alertTitle.value = noticeTitle
|
||||||
alertMessage.value = error
|
alertMessage.value = error
|
||||||
|
|||||||
Reference in New Issue
Block a user