diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index ba92ab16..f1752662 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -519,7 +519,7 @@ class BaresipService: Service() { stopMediaPlayer() am.mode = MODE_IN_COMMUNICATION setCallVolume() - proximitySensing(true) + proximitySensing(proximitySensing) Api.ua_answer(uap, callp, vidMode) } @@ -818,7 +818,7 @@ class BaresipService: Service() { setCallVolume() if (speakerPhone && !Utils.isSpeakerPhoneOn(am)) Utils.toggleSpeakerPhone(ContextCompat.getMainExecutor(this), am) - proximitySensing(true) + proximitySensing(proximitySensing) } "call ringing" -> { playRingBack() @@ -1715,6 +1715,7 @@ class BaresipService: Service() { var isMicMuted = false var isRecOn = false var toneCountry = "us" + var proximitySensing = true val uas = mutableStateOf(emptyList()) val uasStatus = mutableStateOf(emptyMap()) diff --git a/app/src/main/kotlin/com/tutpro/baresip/Config.kt b/app/src/main/kotlin/com/tutpro/baresip/Config.kt index 8c9f3669..d3cfd355 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Config.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Config.kt @@ -126,6 +126,13 @@ object Config { "${config}colorblind no\n" BaresipService.colorblind = colorblind == "yes" + val proximitySensing = previousVariable("proximity_sensing") + config = if (proximitySensing != "") + "${config}proximity_sensing $proximitySensing\n" + else + "${config}proximity_sensing yes\n" + BaresipService.proximitySensing = proximitySensing == "yes" + var contactsMode = previousVariable("contacts_mode").lowercase() if (contactsMode != "") { if (contactsMode != "baresip" && diff --git a/app/src/main/kotlin/com/tutpro/baresip/SettingsScreen.kt b/app/src/main/kotlin/com/tutpro/baresip/SettingsScreen.kt index 13c75d08..9be39b30 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/SettingsScreen.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/SettingsScreen.kt @@ -248,6 +248,8 @@ private var newDarkTheme = false private var newColorblind = false +private var newProximitySensing = true + private var newDefaultDialer = false private var newDebug = false @@ -315,6 +317,7 @@ private fun SettingsContent( BatteryOptimizations() DarkTheme() ColorBlind() + ProximitySensing() if (VERSION.SDK_INT >= 29) DefaultDialer() Debug() @@ -1095,6 +1098,7 @@ private fun DarkTheme() { ) } } + @Composable private fun ColorBlind() { Row( @@ -1126,6 +1130,39 @@ private fun ColorBlind() { ) } } +@Composable +private fun ProximitySensing() { + Row( + Modifier + .fillMaxWidth() + .padding(end = 10.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Start + ) { + val ctx = LocalContext.current + Text(text = stringResource(R.string.proximity_sensing), + modifier = Modifier + .weight(1f) + .clickable { + alertTitle.value = ctx.getString(R.string.proximity_sensing) + alertMessage.value = ctx.getString(R.string.proximity_sensing_help) + showAlert.value = true + }, + color = LocalCustomColors.current.itemText, + fontSize = 18.sp) + var proximitySensing by remember { + mutableStateOf(Config.variable("proximity_sensing") == "yes") + } + newProximitySensing = proximitySensing + Switch( + checked = proximitySensing, + onCheckedChange = { + proximitySensing= it + newProximitySensing = proximitySensing + } + ) + } +} @RequiresApi(29) @Composable @@ -1423,6 +1460,15 @@ private fun checkOnClick(ctx: Context) { save = true } + if ((Config.variable("proximity_sensing") == "yes") != newProximitySensing) { + Config.replaceVariable( + "proximity_sensing", + if (newProximitySensing) "yes" else "no" + ) + BaresipService.proximitySensing = newProximitySensing + save = true + } + if ((Config.variable("log_level") == "0") != newDebug) { val logLevelString = if (newDebug) "0" else "2" Config.replaceVariable("log_level", logLevelString) diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 0b7103b9..088b16e5 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -418,6 +418,9 @@ Käytä aina tummaa näyttöteemaa Värisokea Käytä värisokealle ystävällisiä rekisteröintitilaikoineita + Läheisyyden tunnistus"> + Jos merkitty, läheisyyden tunnistus aktivoidaan + puhelun aikana. Videon kehyskoko Lähetettävän videon kehyskoko (leveys x korkeus) Videokehysten lähetystaajuus diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c79060ba..182d8860 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -389,6 +389,8 @@ Force dark display theme Colorblind Use colorblind friendly registration status icons + Proximity Sensing"> + If checked, proximity sensing is enabled during calls. Video Frame Size Size of transmitted video frames (width x height) Video Frames Per Second