Ask non-existing authentication password already in accounts activity

This commit is contained in:
Juha Heinanen
2025-04-04 13:33:00 +03:00
parent 1db0977acc
commit 3bff286888
3 changed files with 178 additions and 36 deletions
@@ -3,6 +3,7 @@ package com.tutpro.baresip
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
@@ -13,27 +14,35 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.imePadding
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.safeDrawingPadding import androidx.compose.foundation.layout.safeDrawingPadding
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Check
import androidx.compose.material3.AlertDialogDefaults
import androidx.compose.material3.BasicAlertDialog
import androidx.compose.material3.DropdownMenu import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.OutlinedTextFieldDefaults
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBar
import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@@ -44,11 +53,16 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.platform.SoftwareKeyboardController
import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.KeyboardType
@@ -116,6 +130,9 @@ class AccountActivity : ComponentActivity() {
private var oldDefaultAccount = false private var oldDefaultAccount = false
private var newDefaultAccount = false private var newDefaultAccount = false
private var arrowTint = Color.Unspecified private var arrowTint = Color.Unspecified
private var showPasswordDialog = mutableStateOf(false)
private var keyboardController: SoftwareKeyboardController? = null
private val onBackPressedCallback = object : OnBackPressedCallback(true) { private val onBackPressedCallback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() { override fun handleOnBackPressed() {
@@ -153,6 +170,7 @@ class AccountActivity : ComponentActivity() {
setContent { setContent {
AppTheme { AppTheme {
keyboardController = LocalSoftwareKeyboardController.current
Surface( Surface(
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
color = LocalCustomColors.current.background color = LocalCustomColors.current.background
@@ -283,6 +301,7 @@ class AccountActivity : ComponentActivity() {
CountryCode(ctx) CountryCode(ctx)
TelProvider(ctx) TelProvider(ctx)
DefaultAccount() DefaultAccount()
AskPassword(ctx)
} }
} }
@@ -298,7 +317,7 @@ class AccountActivity : ComponentActivity() {
enabled = false, enabled = false,
onValueChange = {}, onValueChange = {},
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, fontSize = 18.sp,
color = LocalCustomColors.current.itemText color = LocalCustomColors.current.itemText
), ),
@@ -327,7 +346,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.nickname), Utils.alertView(ctx, getString(R.string.nickname),
getString(R.string.account_nickname_help)) }, getString(R.string.account_nickname_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.nickname)) }, label = { Text(stringResource(R.string.nickname)) },
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
@@ -357,7 +376,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.display_name), Utils.alertView(ctx, getString(R.string.display_name),
getString(R.string.display_name_help)) }, getString(R.string.display_name_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.display_name)) }, label = { Text(stringResource(R.string.display_name)) },
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
@@ -387,7 +406,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.authentication_username), Utils.alertView(ctx, getString(R.string.authentication_username),
getString(R.string.authentication_username_help)) }, getString(R.string.authentication_username_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.authentication_username)) }, label = { Text(stringResource(R.string.authentication_username)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -436,7 +455,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.authentication_password), Utils.alertView(ctx, getString(R.string.authentication_password),
getString(R.string.authentication_password_help)) }, getString(R.string.authentication_password_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.authentication_password)) }, label = { Text(stringResource(R.string.authentication_password)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -476,7 +495,7 @@ class AccountActivity : ComponentActivity() {
}, },
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
singleLine = true, singleLine = true,
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.sip_uri_of_proxy_server)) }, label = { Text(stringResource(R.string.sip_uri_of_proxy_server)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -498,7 +517,7 @@ class AccountActivity : ComponentActivity() {
}, },
modifier = Modifier.fillMaxWidth(), modifier = Modifier.fillMaxWidth(),
singleLine = true, singleLine = true,
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.sip_uri_of_another_proxy_server)) }, label = { Text(stringResource(R.string.sip_uri_of_another_proxy_server)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -553,7 +572,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.reg_int), Utils.alertView(ctx, getString(R.string.reg_int),
getString(R.string.reg_int_help)) }, getString(R.string.reg_int_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.reg_int)) }, label = { Text(stringResource(R.string.reg_int)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Number)
@@ -727,7 +746,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.stun_server), Utils.alertView(ctx, getString(R.string.stun_server),
getString(R.string.stun_server_help)) }, getString(R.string.stun_server_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.stun_server)) }, label = { Text(stringResource(R.string.stun_server)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -755,7 +774,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.stun_username), Utils.alertView(ctx, getString(R.string.stun_username),
getString(R.string.stun_username_help)) }, getString(R.string.stun_username_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.stun_username)) }, label = { Text(stringResource(R.string.stun_username)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -808,7 +827,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.stun_password), Utils.alertView(ctx, getString(R.string.stun_password),
getString(R.string.stun_password_help)) }, getString(R.string.stun_password_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.stun_password)) }, label = { Text(stringResource(R.string.stun_password)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -1058,7 +1077,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.voicemail_uri), Utils.alertView(ctx, getString(R.string.voicemail_uri),
getString(R.string.voicemain_uri_help)) }, getString(R.string.voicemain_uri_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.voicemail_uri)) }, label = { Text(stringResource(R.string.voicemail_uri)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -1086,7 +1105,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.country_code), Utils.alertView(ctx, getString(R.string.country_code),
getString(R.string.country_code_help)) }, getString(R.string.country_code_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.country_code)) }, label = { Text(stringResource(R.string.country_code)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -1114,7 +1133,7 @@ class AccountActivity : ComponentActivity() {
.clickable { .clickable {
Utils.alertView(ctx, getString(R.string.telephony_provider), Utils.alertView(ctx, getString(R.string.telephony_provider),
getString(R.string.telephony_provider_help)) }, getString(R.string.telephony_provider_help)) },
textStyle = androidx.compose.ui.text.TextStyle( textStyle = TextStyle(
fontSize = 18.sp, color = LocalCustomColors.current.itemText), fontSize = 18.sp, color = LocalCustomColors.current.itemText),
label = { Text(stringResource(R.string.telephony_provider)) }, label = { Text(stringResource(R.string.telephony_provider)) },
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text) keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
@@ -1144,6 +1163,142 @@ class AccountActivity : ComponentActivity() {
} }
} }
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AskPassword(ctx: Context) {
if (showPasswordDialog.value) {
val showPassword = remember { mutableStateOf(false) }
BasicAlertDialog(
onDismissRequest = {
keyboardController?.hide()
showPasswordDialog.value = false
}
) {
Surface(
modifier = Modifier
.wrapContentWidth()
.wrapContentHeight(),
color = LocalCustomColors.current.background,
shape = MaterialTheme.shapes.large,
tonalElevation = AlertDialogDefaults.TonalElevation
) {
Column(modifier = Modifier.padding(16.dp)) {
CustomElements.Text(
text = getString(R.string.authentication_password),
fontSize = 20.sp,
modifier = Modifier.padding(top = 16.dp, bottom = 16.dp),
color = LocalCustomColors.current.alert,
)
val message = getString(R.string.account) + " " + Utils.plainAor(acc.aor)
CustomElements.Text(
text = message,
fontSize = 16.sp,
modifier = Modifier.padding(16.dp),
color = LocalCustomColors.current.itemText,
)
var password by remember { mutableStateOf("") }
val focusRequester = remember { FocusRequester() }
OutlinedTextField(
value = password,
singleLine = true,
colors = OutlinedTextFieldDefaults.colors(
focusedContainerColor = LocalCustomColors.current.textFieldBackground,
unfocusedContainerColor = LocalCustomColors.current.textFieldBackground,
cursorColor = LocalCustomColors.current.primary,
),
onValueChange = {
password = it
},
visualTransformation = if (showPassword.value)
VisualTransformation.None
else
PasswordVisualTransformation(),
trailingIcon = {
IconButton(onClick = {
showPassword.value = !showPassword.value
}) {
Icon(
if (showPassword.value)
ImageVector.vectorResource(R.drawable.visibility)
else
ImageVector.vectorResource(R.drawable.visibility_off),
contentDescription = "Visibility",
tint = LocalCustomColors.current.grayDark
)
}
},
modifier = Modifier
.fillMaxWidth()
.padding(
start = 4.dp,
end = 4.dp,
top = 12.dp,
bottom = 2.dp
)
.focusRequester(focusRequester),
textStyle = TextStyle(
fontSize = 18.sp,
color = LocalCustomColors.current.dark
),
keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Text)
)
Row(
horizontalArrangement = Arrangement.Start
) {
TextButton(
onClick = {
keyboardController?.hide()
showPasswordDialog.value = false
reRegister = true
finishActivity()
},
modifier = Modifier.padding(8.dp),
) {
CustomElements.Text(
text = stringResource(R.string.cancel),
color = LocalCustomColors.current.gray
)
}
Spacer(modifier = Modifier.weight(1f))
TextButton(
onClick = {
keyboardController?.hide()
showPasswordDialog.value = false
password = password.trim()
if (!Account.checkAuthPass(password)) {
Toast.makeText(
ctx,
String.format(
getString(R.string.invalid_authentication_password),
password
),
Toast.LENGTH_SHORT
).show()
password = ""
showPasswordDialog.value = true
}
else {
BaresipService.aorPasswords[acc.aor] = password
Api.account_set_auth_pass(acc.accp, password)
reRegister = true
finishActivity()
}
},
modifier = Modifier.padding(8.dp),
) {
CustomElements.Text(
text = stringResource(R.string.ok),
color = LocalCustomColors.current.alert
)
}
}
}
}
}
}
}
private fun updateAccount() { private fun updateAccount() {
if (BaresipService.activities.indexOf("account,$aor") == -1) if (BaresipService.activities.indexOf("account,$aor") == -1)
@@ -1218,7 +1373,8 @@ class AccountActivity : ComponentActivity() {
String.format(getString(R.string.invalid_authentication_password), ap)) String.format(getString(R.string.invalid_authentication_password), ap))
return return
} }
} else { }
else {
BaresipService.aorPasswords.remove(acc.aor) BaresipService.aorPasswords.remove(acc.aor)
} }
} else { // ap == "" } else { // ap == ""
@@ -1465,6 +1621,13 @@ class AccountActivity : ComponentActivity() {
AccountsActivity.saveAccounts() AccountsActivity.saveAccounts()
if (acc.authUser != "" && BaresipService.aorPasswords[aor] == NO_AUTH_PASS)
showPasswordDialog.value = true
else
finishActivity()
}
private fun finishActivity() {
if (reRegister) { if (reRegister) {
ua.status = R.drawable.circle_yellow ua.status = R.drawable.circle_yellow
if (acc.regint == 0) if (acc.regint == 0)
@@ -1472,7 +1635,6 @@ class AccountActivity : ComponentActivity() {
else else
Api.ua_register(ua.uap) Api.ua_register(ua.uap)
} }
BaresipService.activities.remove("account,$aor") BaresipService.activities.remove("account,$aor")
returnResult(RESULT_OK) returnResult(RESULT_OK)
} }
@@ -1,6 +1,5 @@
package com.tutpro.baresip package com.tutpro.baresip
import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap
import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.tween import androidx.compose.animation.core.tween
@@ -14,18 +13,11 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.layout.wrapContentWidth
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.AlertDialogDefaults
import androidx.compose.material3.BasicAlertDialog
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.Card import androidx.compose.material3.Card
import androidx.compose.material3.Checkbox import androidx.compose.material3.Checkbox
@@ -34,8 +26,6 @@ import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.TextButton import androidx.compose.material3.TextButton
import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults.Indicator import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults.Indicator
import androidx.compose.material3.pulltorefresh.pullToRefresh import androidx.compose.material3.pulltorefresh.pullToRefresh
@@ -65,8 +55,6 @@ import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.Dialog
import androidx.core.content.ContextCompat.getString
import com.tutpro.baresip.CustomElements.Text
import com.tutpro.baresip.CustomElements.ThreeButtonAlertDialog import com.tutpro.baresip.CustomElements.ThreeButtonAlertDialog
object CustomElements { object CustomElements {
@@ -314,14 +314,6 @@ class MainActivity : ComponentActivity() {
spinToAor(activityAor) spinToAor(activityAor)
val ua = UserAgent.ofAor(viewModel.selectedAor.value)!! val ua = UserAgent.ofAor(viewModel.selectedAor.value)!!
updateIcons(ua.account) updateIcons(ua.account)
if (it.resultCode == RESULT_OK)
if (BaresipService.aorPasswords[activityAor] == NO_AUTH_PASS) {
passwordAccounts = String(
Utils.getFileContents(filesDir.absolutePath + "/accounts")!!,
Charsets.UTF_8
).lines().toMutableList()
showPasswordsDialog.value = true
}
} }
contactsRequest = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { contactsRequest = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {