Use switch instead of checkbox
This commit is contained in:
@ -17,13 +17,12 @@ import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxHeight
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.imePadding
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.safeDrawingPadding
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
@ -39,6 +38,7 @@ import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
@ -67,7 +67,6 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.tutpro.baresip.BaresipService.Companion.uas
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import com.tutpro.baresip.CustomElements.Checkbox
|
||||
import com.tutpro.baresip.CustomElements.LabelText
|
||||
import com.tutpro.baresip.CustomElements.verticalScrollbar
|
||||
|
||||
@ -189,33 +188,57 @@ class AccountActivity : ComponentActivity() {
|
||||
true to getString(R.string.auto))
|
||||
|
||||
oldNickname = acc.nickName.value
|
||||
newNickname = oldNickname
|
||||
oldDisplayname = acc.displayName
|
||||
newDisplayname = oldDisplayname
|
||||
oldAuthUser = acc.authUser
|
||||
newAuthUser = oldAuthUser
|
||||
if (BaresipService.aorPasswords[aor] == null && // check if OK
|
||||
acc.authPass != NO_AUTH_PASS)
|
||||
acc.authPass != NO_AUTH_PASS) {
|
||||
oldAuthPass = acc.authPass
|
||||
newAuthPass = oldAuthPass
|
||||
}
|
||||
if (acc.outbound.isNotEmpty()) {
|
||||
oldOutbound1 = acc.outbound[0]
|
||||
if (acc.outbound.size > 1)
|
||||
newOutbound1 = oldOutbound1
|
||||
if (acc.outbound.size > 1) {
|
||||
oldOutbound2 = acc.outbound[1]
|
||||
newOutbound2 = oldOutbound2
|
||||
}
|
||||
}
|
||||
oldRegister = acc.regint > 0
|
||||
newRegister = oldRegister
|
||||
oldRegInt = acc.configuredRegInt.toString()
|
||||
newRegInt = oldRegInt
|
||||
oldMediaEnc = acc.mediaEnc
|
||||
newMediaEnc = oldMediaEnc
|
||||
oldMediaNat = acc.mediaNat
|
||||
newMediaNat = oldMediaNat
|
||||
showStun.value = oldMediaNat != ""
|
||||
oldStunServer = acc.stunServer
|
||||
newStunServer = oldStunServer
|
||||
oldStunUser = acc.stunUser
|
||||
newStunUser = oldStunUser
|
||||
oldStunPass = acc.stunPass
|
||||
newStunPass = oldStunPass
|
||||
oldRtcpMux = acc.rtcpMux
|
||||
newRtcpMux = oldRtcpMux
|
||||
old100Rel = acc.rel100Mode == Api.REL100_ENABLED
|
||||
new100Rel = old100Rel
|
||||
oldDtmfMode = acc.dtmfMode
|
||||
newDtmfMode = oldDtmfMode
|
||||
oldAnswerMode = acc.answerMode
|
||||
newAnswerMode = oldAnswerMode
|
||||
oldAutoRedirect = acc.autoRedirect
|
||||
newAutoRedirect = oldAutoRedirect
|
||||
oldVmUri = acc.vmUri
|
||||
newVmUri = oldVmUri
|
||||
oldCountryCode = acc.countryCode
|
||||
newCountryCode = oldCountryCode
|
||||
oldTelProvider = acc.telProvider
|
||||
newTelProvider = oldTelProvider
|
||||
oldDefaultAccount = UserAgent.findAorIndex(aor)!! == 0
|
||||
newDefaultAccount = oldDefaultAccount
|
||||
|
||||
setContent {
|
||||
AppTheme {
|
||||
@ -238,7 +261,10 @@ class AccountActivity : ComponentActivity() {
|
||||
else
|
||||
acc.aor.substringAfter(":")
|
||||
Scaffold(
|
||||
modifier = Modifier.safeDrawingPadding(),
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
.imePadding()
|
||||
.safeDrawingPadding(),
|
||||
containerColor = LocalCustomColors.current.background,
|
||||
topBar = {
|
||||
TopAppBar(
|
||||
@ -301,10 +327,9 @@ class AccountActivity : ComponentActivity() {
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.imePadding()
|
||||
.fillMaxWidth()
|
||||
.padding(contentPadding)
|
||||
.padding(start = 16.dp, end = 4.dp, top = 8.dp, bottom = 8.dp)
|
||||
.padding(start = 16.dp, end = 4.dp, top = 8.dp, bottom = 16.dp)
|
||||
.verticalScrollbar(scrollState)
|
||||
.verticalScroll(state = scrollState),
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp),
|
||||
@ -368,7 +393,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var nickName by remember { mutableStateOf(oldNickname) }
|
||||
newNickname = nickName
|
||||
OutlinedTextField(
|
||||
value = nickName,
|
||||
placeholder = { Text(stringResource(R.string.nickname)) },
|
||||
@ -399,7 +423,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var displayName by remember { mutableStateOf(oldDisplayname) }
|
||||
newDisplayname = displayName
|
||||
OutlinedTextField(
|
||||
value = displayName,
|
||||
placeholder = { Text(stringResource(R.string.display_name)) },
|
||||
@ -430,7 +453,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var authUser by remember { mutableStateOf(oldAuthUser) }
|
||||
newAuthUser = authUser
|
||||
OutlinedTextField(
|
||||
value = authUser,
|
||||
placeholder = { Text(stringResource(R.string.authentication_username)) },
|
||||
@ -460,7 +482,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var authPass by remember { mutableStateOf(oldAuthPass) }
|
||||
newAuthPass = authPass
|
||||
OutlinedTextField(
|
||||
value = authPass,
|
||||
placeholder = { Text(stringResource(R.string.authentication_password)) },
|
||||
@ -519,7 +540,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var outbound1 by remember { mutableStateOf(oldOutbound1) }
|
||||
newOutbound1 = outbound1
|
||||
OutlinedTextField(
|
||||
value = outbound1,
|
||||
placeholder = { Text(stringResource(R.string.sip_uri_of_proxy_server)) },
|
||||
@ -541,7 +561,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var outbound2 by remember { mutableStateOf(oldOutbound2) }
|
||||
newOutbound2 = outbound2
|
||||
OutlinedTextField(
|
||||
value = outbound2,
|
||||
placeholder = { Text(stringResource(R.string.sip_uri_of_another_proxy_server)) },
|
||||
@ -562,7 +581,7 @@ class AccountActivity : ComponentActivity() {
|
||||
@Composable
|
||||
fun Register() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -576,15 +595,13 @@ class AccountActivity : ComponentActivity() {
|
||||
fontSize = 18.sp,
|
||||
color = LocalCustomColors.current.itemText)
|
||||
var register by remember { mutableStateOf(oldRegister) }
|
||||
newRegister = register
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = register,
|
||||
onCheckedChange = {
|
||||
register = it
|
||||
newRegister = register
|
||||
}
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@ -596,7 +613,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var regInt by remember { mutableStateOf(oldRegInt) }
|
||||
newRegInt = regInt
|
||||
OutlinedTextField(
|
||||
value = regInt,
|
||||
placeholder = { Text(stringResource(R.string.reg_int)) },
|
||||
@ -645,7 +661,7 @@ class AccountActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun MediaEnc() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -660,7 +676,6 @@ class AccountActivity : ComponentActivity() {
|
||||
fontSize = 18.sp)
|
||||
val isDropDownExpanded = remember { mutableStateOf(false) }
|
||||
val mediaEnc = remember { mutableStateOf(oldMediaEnc) }
|
||||
newMediaEnc = mediaEnc.value
|
||||
Box {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Center,
|
||||
@ -699,14 +714,13 @@ class AccountActivity : ComponentActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun MediaNat() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -721,7 +735,6 @@ class AccountActivity : ComponentActivity() {
|
||||
fontSize = 18.sp)
|
||||
val isDropDownExpanded = remember { mutableStateOf(false) }
|
||||
val mediaNat = remember { mutableStateOf(oldMediaNat) }
|
||||
newMediaNat = mediaNat.value
|
||||
Box {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Center,
|
||||
@ -760,7 +773,6 @@ class AccountActivity : ComponentActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@ -773,7 +785,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var stunServer by remember { mutableStateOf(oldStunServer) }
|
||||
newStunServer = stunServer
|
||||
OutlinedTextField(
|
||||
value = stunServer,
|
||||
placeholder = { Text(stringResource(R.string.stun_server)) },
|
||||
@ -803,7 +814,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var stunUser by remember { mutableStateOf(oldStunUser) }
|
||||
newStunUser = stunUser
|
||||
OutlinedTextField(
|
||||
value = stunUser,
|
||||
placeholder = { Text(stringResource(R.string.stun_username)) },
|
||||
@ -834,7 +844,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var stunPass by remember { mutableStateOf(oldStunPass) }
|
||||
newStunPass = stunPass
|
||||
OutlinedTextField(
|
||||
value = stunPass,
|
||||
placeholder = { Text(stringResource(R.string.stun_password)) },
|
||||
@ -886,7 +895,7 @@ class AccountActivity : ComponentActivity() {
|
||||
@Composable
|
||||
fun RtcpMux() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -900,22 +909,20 @@ class AccountActivity : ComponentActivity() {
|
||||
fontSize = 18.sp,
|
||||
color = LocalCustomColors.current.itemText)
|
||||
var rtcpMux by remember { mutableStateOf(oldRtcpMux) }
|
||||
newRtcpMux = rtcpMux
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = rtcpMux,
|
||||
onCheckedChange = {
|
||||
rtcpMux = it
|
||||
newRtcpMux = rtcpMux
|
||||
}
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun Rel100() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -929,22 +936,20 @@ class AccountActivity : ComponentActivity() {
|
||||
fontSize = 18.sp,
|
||||
color = LocalCustomColors.current.itemText)
|
||||
var rel100 by remember { mutableStateOf(old100Rel) }
|
||||
new100Rel = rel100
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = rel100,
|
||||
onCheckedChange = {
|
||||
rel100 = it
|
||||
new100Rel = rel100
|
||||
}
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Dtmf() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -961,7 +966,6 @@ class AccountActivity : ComponentActivity() {
|
||||
mutableStateOf(false)
|
||||
}
|
||||
val dtmfMode = remember { mutableIntStateOf(oldDtmfMode) }
|
||||
newDtmfMode = dtmfMode.intValue
|
||||
Box {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Center,
|
||||
@ -999,14 +1003,13 @@ class AccountActivity : ComponentActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Answer() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1023,7 +1026,6 @@ class AccountActivity : ComponentActivity() {
|
||||
mutableStateOf(false)
|
||||
}
|
||||
val answerMode = remember { mutableIntStateOf(oldAnswerMode) }
|
||||
newAnswerMode = answerMode.intValue
|
||||
Box {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Center,
|
||||
@ -1059,14 +1061,13 @@ class AccountActivity : ComponentActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Redirect() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1083,7 +1084,6 @@ class AccountActivity : ComponentActivity() {
|
||||
mutableStateOf(false)
|
||||
}
|
||||
val autoRedirect = remember { mutableStateOf(oldAutoRedirect) }
|
||||
newAutoRedirect = autoRedirect.value
|
||||
Box {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Center,
|
||||
@ -1121,7 +1121,6 @@ class AccountActivity : ComponentActivity() {
|
||||
}
|
||||
}
|
||||
}
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
@ -1133,7 +1132,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var vmUri by remember { mutableStateOf(oldVmUri) }
|
||||
newVmUri = vmUri
|
||||
OutlinedTextField(
|
||||
value = vmUri,
|
||||
placeholder = { Text(stringResource(R.string.voicemail_uri)) },
|
||||
@ -1162,7 +1160,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var countryCode by remember { mutableStateOf(oldCountryCode) }
|
||||
newCountryCode = countryCode
|
||||
OutlinedTextField(
|
||||
value = countryCode,
|
||||
placeholder = { Text(stringResource(R.string.country_code)) },
|
||||
@ -1191,7 +1188,6 @@ class AccountActivity : ComponentActivity() {
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
var telProvider by remember { mutableStateOf(oldTelProvider) }
|
||||
newTelProvider = telProvider
|
||||
OutlinedTextField(
|
||||
value = telProvider,
|
||||
placeholder = { Text(stringResource(R.string.telephony_provider)) },
|
||||
@ -1215,7 +1211,7 @@ class AccountActivity : ComponentActivity() {
|
||||
@Composable
|
||||
fun DefaultAccount() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1228,15 +1224,13 @@ class AccountActivity : ComponentActivity() {
|
||||
fontSize = 18.sp,
|
||||
color = LocalCustomColors.current.itemText)
|
||||
var defaultAccount by remember { mutableStateOf(oldDefaultAccount) }
|
||||
newDefaultAccount = defaultAccount
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = defaultAccount,
|
||||
onCheckedChange = {
|
||||
defaultAccount = it
|
||||
newDefaultAccount = defaultAccount
|
||||
}
|
||||
)
|
||||
Spacer(modifier = Modifier.width(8.dp))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -37,6 +37,7 @@ import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
@ -54,7 +55,6 @@ import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import com.tutpro.baresip.CustomElements.Checkbox
|
||||
import com.tutpro.baresip.CustomElements.LabelText
|
||||
import com.tutpro.baresip.CustomElements.verticalScrollbar
|
||||
|
||||
@ -223,7 +223,7 @@ class AudioActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun CallVolume() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -319,7 +319,7 @@ class AudioActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun SpeakerPhone() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -334,8 +334,7 @@ class AudioActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var speakerPhone by remember { mutableStateOf(BaresipService.speakerPhone) }
|
||||
newSpeakerPhone = speakerPhone
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = speakerPhone,
|
||||
onCheckedChange = {
|
||||
speakerPhone = it
|
||||
@ -362,16 +361,18 @@ class AudioActivity : ComponentActivity() {
|
||||
for (module in audioModules) {
|
||||
Row(horizontalArrangement = Arrangement.Start,
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier.padding(start = 18.dp)
|
||||
modifier = Modifier.padding(start = 18.dp, end = 10.dp)
|
||||
) {
|
||||
Text(text = String.format(getString(R.string.bullet_item), module),
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
Spacer(modifier = Modifier.weight(1f))
|
||||
Checkbox(
|
||||
checked = modules.contains("${module}.so"),
|
||||
var checked by remember { mutableStateOf(modules.contains("${module}.so")) }
|
||||
Switch(
|
||||
checked = checked,
|
||||
onCheckedChange = {
|
||||
newAudioModules[module] = it
|
||||
checked = it
|
||||
newAudioModules[module] = checked
|
||||
}
|
||||
)
|
||||
}
|
||||
@ -475,7 +476,7 @@ class AudioActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun ToneCountry() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end=10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
|
||||
@ -52,6 +52,7 @@ import androidx.compose.material3.IconButton
|
||||
import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
@ -80,7 +81,6 @@ import androidx.core.graphics.scale
|
||||
import androidx.exifinterface.media.ExifInterface
|
||||
import coil.compose.rememberAsyncImagePainter
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import com.tutpro.baresip.CustomElements.Checkbox
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
|
||||
@ -414,7 +414,7 @@ class BaresipContactActivity : ComponentActivity() {
|
||||
)
|
||||
var favoriteContact by remember { mutableStateOf(favorite) }
|
||||
newFavorite = favoriteContact
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = favoriteContact,
|
||||
onCheckedChange = {
|
||||
favoriteContact = it
|
||||
@ -439,7 +439,7 @@ class BaresipContactActivity : ComponentActivity() {
|
||||
)
|
||||
var androidContact by remember { mutableStateOf(android) }
|
||||
newAndroid = androidContact
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = androidContact,
|
||||
onCheckedChange = {
|
||||
if (BaresipService.contactsMode != "android") {
|
||||
|
||||
@ -52,6 +52,7 @@ import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.TopAppBar
|
||||
import androidx.compose.material3.TopAppBarDefaults
|
||||
import androidx.compose.runtime.Composable
|
||||
@ -71,7 +72,6 @@ import androidx.compose.ui.unit.sp
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.net.toUri
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import com.tutpro.baresip.CustomElements.Checkbox
|
||||
import com.tutpro.baresip.CustomElements.LabelText
|
||||
import com.tutpro.baresip.CustomElements.verticalScrollbar
|
||||
import com.tutpro.baresip.Utils.copyInputStreamToFile
|
||||
@ -238,6 +238,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
oldAutoStart = false
|
||||
save = true
|
||||
}
|
||||
newAutoStart = oldAutoStart
|
||||
|
||||
oldListenAddr = Config.variable("sip_listen")
|
||||
|
||||
@ -403,7 +404,6 @@ class ConfigActivity : ComponentActivity() {
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.imePadding()
|
||||
.fillMaxWidth()
|
||||
.padding(contentPadding)
|
||||
.padding(start = 16.dp, end = 4.dp, top = 16.dp, bottom = 8.dp)
|
||||
@ -435,13 +435,12 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun StartAutomatically(ctx: Context) {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
Text(text = stringResource(R.string.start_automatically),
|
||||
modifier = Modifier
|
||||
.weight(1f)
|
||||
modifier = Modifier.weight(1f)
|
||||
.clickable {
|
||||
alertTitle.value = getString(R.string.start_automatically)
|
||||
alertMessage.value = getString(R.string.start_automatically_help)
|
||||
@ -450,8 +449,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var startAutomatically by remember { mutableStateOf(oldAutoStart) }
|
||||
newAutoStart = startAutomatically
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = startAutomatically,
|
||||
onCheckedChange = {
|
||||
if (it) {
|
||||
@ -484,9 +482,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun ListenAddress() {
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(end = 10.dp),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start,
|
||||
) {
|
||||
@ -517,9 +513,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun AddressFamily() {
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 12.dp),
|
||||
Modifier.fillMaxWidth().padding(top = 12.dp).padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -543,7 +537,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
}
|
||||
Box {
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Center,
|
||||
horizontalArrangement = Arrangement.End,
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
modifier = Modifier.clickable {
|
||||
isDropDownExpanded.value = true
|
||||
@ -582,9 +576,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun DnsServers() {
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(end = 10.dp),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -615,7 +607,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
private fun TlsCertificateFile(ctx: Context) {
|
||||
val showAlertDialog = remember { mutableStateOf(false) }
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -630,7 +622,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var tlsCertificateFile by remember { mutableStateOf(oldTlsCertificateFile) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = tlsCertificateFile,
|
||||
onCheckedChange = {
|
||||
tlsCertificateFile = it
|
||||
@ -650,7 +642,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
alertTitle.value = getString(R.string.error)
|
||||
alertMessage.value = getString(R.string.read_cert_error)
|
||||
showAlert.value = true
|
||||
return@Checkbox
|
||||
return@Switch
|
||||
}
|
||||
val certPath = BaresipService.filesPath + "/cert.pem"
|
||||
Utils.putFileContents(certPath, content)
|
||||
@ -692,7 +684,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun VerifyServer() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -707,7 +699,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var verifyServer by remember { mutableStateOf(oldVerifyServer) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = verifyServer,
|
||||
onCheckedChange = {
|
||||
verifyServer = it
|
||||
@ -720,7 +712,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun CaFile(ctx: Context) {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -735,7 +727,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var caFile by remember { mutableStateOf(oldCaFile) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = caFile,
|
||||
onCheckedChange = {
|
||||
caFile = it
|
||||
@ -754,7 +746,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
alertTitle.value = getString(R.string.error)
|
||||
alertMessage.value = getString(R.string.read_ca_certs_error)
|
||||
showAlert.value = true
|
||||
return@Checkbox
|
||||
return@Switch
|
||||
}
|
||||
File(BaresipService.filesPath + "/ca_certs.crt").writeBytes(content)
|
||||
caFile = true
|
||||
@ -789,9 +781,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun UserAgent() {
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(end = 10.dp),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -822,9 +812,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun AudioSettings(ctx: Context) {
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 12.dp),
|
||||
Modifier.fillMaxWidth().padding(top = 12.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -893,7 +881,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun BatteryOptimizations() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -908,7 +896,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var battery by remember { mutableStateOf(oldBatteryOptimizations) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = battery,
|
||||
onCheckedChange = {
|
||||
battery = it
|
||||
@ -927,7 +915,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun DefaultDialer() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -942,7 +930,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var defaultDialer by remember { mutableStateOf(oldDefaultDialer) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = defaultDialer,
|
||||
onCheckedChange = {
|
||||
defaultDialer = it
|
||||
@ -972,9 +960,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
private fun Contacts(ctx: Context) {
|
||||
val showAlertDialog = remember { mutableStateOf(false) }
|
||||
Row(
|
||||
Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 12.dp),
|
||||
Modifier.fillMaxWidth().padding(top = 12.dp).padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1093,7 +1079,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun DarkTheme() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1108,7 +1094,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var darkTheme by remember { mutableStateOf(oldDarkTheme) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = darkTheme,
|
||||
onCheckedChange = {
|
||||
darkTheme = it
|
||||
@ -1121,7 +1107,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun Debug() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1136,7 +1122,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var debug by remember { mutableStateOf(oldDebug) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = debug,
|
||||
onCheckedChange = {
|
||||
debug = it
|
||||
@ -1149,7 +1135,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun SipTrace() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1164,7 +1150,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var sipTrace by remember { mutableStateOf(oldSipTrace) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = sipTrace,
|
||||
onCheckedChange = {
|
||||
sipTrace = it
|
||||
@ -1177,7 +1163,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
@Composable
|
||||
private fun Reset() {
|
||||
Row(
|
||||
Modifier.fillMaxWidth(),
|
||||
Modifier.fillMaxWidth().padding(end = 10.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.Start
|
||||
) {
|
||||
@ -1192,7 +1178,7 @@ class ConfigActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.itemText,
|
||||
fontSize = 18.sp)
|
||||
var reset by remember { mutableStateOf(false) }
|
||||
Checkbox(
|
||||
Switch(
|
||||
checked = reset,
|
||||
onCheckedChange = {
|
||||
dialogTitle.value = getString(R.string.confirmation)
|
||||
|
||||
@ -32,8 +32,6 @@ import androidx.compose.material3.BasicAlertDialog
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.Checkbox
|
||||
import androidx.compose.material3.CheckboxDefaults
|
||||
import androidx.compose.material3.DropdownMenu
|
||||
import androidx.compose.material3.DropdownMenuItem
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
@ -185,21 +183,6 @@ object CustomElements {
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun Checkbox(checked: Boolean, onCheckedChange: (Boolean) -> Unit) {
|
||||
Checkbox(
|
||||
checked = checked,
|
||||
onCheckedChange = {
|
||||
onCheckedChange(!checked)
|
||||
},
|
||||
colors = CheckboxDefaults.colors(
|
||||
checkedColor = LocalCustomColors.current.accent,
|
||||
uncheckedColor = LocalCustomColors.current.strong,
|
||||
checkmarkColor = LocalCustomColors.current.strong,
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun TextAvatar(name: String, color: Int) {
|
||||
Box(
|
||||
|
||||
@ -94,6 +94,7 @@ import androidx.compose.material3.OutlinedTextField
|
||||
import androidx.compose.material3.OutlinedTextFieldDefaults
|
||||
import androidx.compose.material3.Scaffold
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Switch
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.TextButton
|
||||
import androidx.compose.material3.TextField
|
||||
@ -139,7 +140,6 @@ import com.tutpro.baresip.BaresipService.Companion.contactNames
|
||||
import com.tutpro.baresip.BaresipService.Companion.uas
|
||||
import com.tutpro.baresip.BaresipService.Companion.uasStatus
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import com.tutpro.baresip.CustomElements.Checkbox
|
||||
import com.tutpro.baresip.CustomElements.DropdownMenu
|
||||
import com.tutpro.baresip.CustomElements.LabelText
|
||||
import com.tutpro.baresip.CustomElements.PasswordDialog
|
||||
@ -151,6 +151,7 @@ import java.io.File
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
import kotlin.collections.set
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
@ -1445,21 +1446,23 @@ class MainActivity : ComponentActivity() {
|
||||
color = LocalCustomColors.current.alert,
|
||||
modifier = Modifier.padding(16.dp),
|
||||
)
|
||||
Checkbox(
|
||||
checked = blindChecked.value
|
||||
) {
|
||||
blindChecked.value = true
|
||||
}
|
||||
Switch(
|
||||
checked = blindChecked.value,
|
||||
onCheckedChange = {
|
||||
blindChecked.value = true
|
||||
}
|
||||
)
|
||||
Text(
|
||||
text = stringResource(R.string.attended),
|
||||
color = LocalCustomColors.current.alert,
|
||||
modifier = Modifier.padding(16.dp),
|
||||
)
|
||||
Checkbox(
|
||||
checked = !blindChecked.value
|
||||
) {
|
||||
blindChecked.value = false
|
||||
}
|
||||
Switch(
|
||||
checked = !blindChecked.value,
|
||||
onCheckedChange = {
|
||||
blindChecked.value = false
|
||||
}
|
||||
)
|
||||
}
|
||||
Row(
|
||||
horizontalArrangement = Arrangement.Absolute.SpaceEvenly
|
||||
|
||||
Reference in New Issue
Block a user