Do not show rec icon when mobile account is selected
Disable account spinner long click and screen swipe when mobile account is selected
This commit is contained in:
@ -552,44 +552,46 @@ private fun TopAppBar(
|
|||||||
windowInsets = WindowInsets(0, 0, 0, 0),
|
windowInsets = WindowInsets(0, 0, 0, 0),
|
||||||
actions = {
|
actions = {
|
||||||
|
|
||||||
Spacer(modifier = Modifier.width(8.dp))
|
val selectedAor by viewModel.selectedAor.collectAsState()
|
||||||
|
val uas by BaresipService.uas
|
||||||
|
val isMobile = uas.find { it.account.aor == selectedAor }?.account?.isMobile ?: false
|
||||||
|
|
||||||
val callRecordingTitle = stringResource(R.string.call_recording_title)
|
if (!isMobile) {
|
||||||
val callRecordingMessage = stringResource(R.string.call_recording_tip)
|
Spacer(modifier = Modifier.width(8.dp))
|
||||||
Box(contentAlignment = Alignment.Center,
|
|
||||||
modifier = Modifier
|
val callRecordingTitle = stringResource(R.string.call_recording_title)
|
||||||
.size(48.dp)
|
val callRecordingMessage = stringResource(R.string.call_recording_tip)
|
||||||
.clip(CircleShape)
|
Box(contentAlignment = Alignment.Center,
|
||||||
.combinedClickable(
|
modifier = Modifier
|
||||||
onClick = {
|
.size(48.dp)
|
||||||
if (Call.call("connected") == null) {
|
.clip(CircleShape)
|
||||||
BaresipService.isRecOn = !BaresipService.isRecOn
|
.combinedClickable(
|
||||||
if (BaresipService.isRecOn) {
|
onClick = {
|
||||||
Api.module_load("sndfile")
|
if (!Call.isAnyCallActive(ctx)) {
|
||||||
} else {
|
BaresipService.isRecOn = !BaresipService.isRecOn
|
||||||
Api.module_unload("sndfile")
|
Api.aufilt_enable("sndfile", BaresipService.isRecOn)
|
||||||
|
isRecOn = BaresipService.isRecOn
|
||||||
}
|
}
|
||||||
isRecOn = BaresipService.isRecOn
|
else
|
||||||
} else {
|
Toast.makeText(ctx, R.string.rec_in_call, Toast.LENGTH_SHORT).show()
|
||||||
Toast.makeText(ctx, R.string.rec_in_call, Toast.LENGTH_SHORT).show()
|
},
|
||||||
|
onLongClick = {
|
||||||
|
alertTitle.value = callRecordingTitle
|
||||||
|
alertMessage.value = callRecordingMessage
|
||||||
|
showAlert.value = true
|
||||||
}
|
}
|
||||||
},
|
)
|
||||||
onLongClick = {
|
) {
|
||||||
alertTitle.value = callRecordingTitle
|
Icon(
|
||||||
alertMessage.value = callRecordingMessage
|
imageVector = if (isRecOn) recOnImage else recOffImage,
|
||||||
showAlert.value = true
|
contentDescription = null,
|
||||||
}
|
tint = if (isRecOn)
|
||||||
|
MaterialTheme.colorScheme.error
|
||||||
|
else
|
||||||
|
MaterialTheme.colorScheme.onPrimary,
|
||||||
|
modifier = Modifier.size(40.dp)
|
||||||
)
|
)
|
||||||
) {
|
}
|
||||||
Icon(
|
|
||||||
imageVector = if (isRecOn) recOnImage else recOffImage,
|
|
||||||
contentDescription = null,
|
|
||||||
tint = if (isRecOn)
|
|
||||||
MaterialTheme.colorScheme.error
|
|
||||||
else
|
|
||||||
MaterialTheme.colorScheme.onPrimary,
|
|
||||||
modifier = Modifier.size(40.dp)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Spacer(modifier = Modifier.width(22.dp))
|
Spacer(modifier = Modifier.width(22.dp))
|
||||||
@ -1086,18 +1088,20 @@ private fun AccountSpinner(ctx: Context, viewModel: ViewModel, navController: Na
|
|||||||
val ua = UserAgent.ofAor(selected)
|
val ua = UserAgent.ofAor(selected)
|
||||||
if (ua != null) {
|
if (ua != null) {
|
||||||
val acc = ua.account
|
val acc = ua.account
|
||||||
if (Api.account_regint(acc.accp) > 0) {
|
if (!acc.isMobile) {
|
||||||
Api.account_set_regint(acc.accp, 0)
|
if (Api.account_regint(acc.accp) > 0) {
|
||||||
Api.ua_unregister(ua.uap)
|
Api.account_set_regint(acc.accp, 0)
|
||||||
} else {
|
Api.ua_unregister(ua.uap)
|
||||||
Api.account_set_regint(
|
} else {
|
||||||
acc.accp,
|
Api.account_set_regint(
|
||||||
acc.configuredRegInt
|
acc.accp,
|
||||||
)
|
acc.configuredRegInt
|
||||||
Api.ua_register(ua.uap)
|
)
|
||||||
|
Api.ua_register(ua.uap)
|
||||||
|
}
|
||||||
|
acc.regint = Api.account_regint(acc.accp)
|
||||||
|
Account.saveAccounts()
|
||||||
}
|
}
|
||||||
acc.regint = Api.account_regint(acc.accp)
|
|
||||||
Account.saveAccounts()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -1137,18 +1141,20 @@ private fun AccountSpinner(ctx: Context, viewModel: ViewModel, navController: Na
|
|||||||
val ua = UserAgent.ofAor(selected)
|
val ua = UserAgent.ofAor(selected)
|
||||||
if (ua != null) {
|
if (ua != null) {
|
||||||
val acc = ua.account
|
val acc = ua.account
|
||||||
if (Api.account_regint(acc.accp) > 0) {
|
if (!acc.isMobile) {
|
||||||
Api.account_set_regint(acc.accp, 0)
|
if (Api.account_regint(acc.accp) > 0) {
|
||||||
Api.ua_unregister(ua.uap)
|
Api.account_set_regint(acc.accp, 0)
|
||||||
} else {
|
Api.ua_unregister(ua.uap)
|
||||||
Api.account_set_regint(
|
} else {
|
||||||
acc.accp,
|
Api.account_set_regint(
|
||||||
acc.configuredRegInt
|
acc.accp,
|
||||||
)
|
acc.configuredRegInt
|
||||||
Api.ua_register(ua.uap)
|
)
|
||||||
|
Api.ua_register(ua.uap)
|
||||||
|
}
|
||||||
|
acc.regint = Api.account_regint(acc.accp)
|
||||||
|
Account.saveAccounts()
|
||||||
}
|
}
|
||||||
acc.regint = Api.account_regint(acc.accp)
|
|
||||||
Account.saveAccounts()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -2249,7 +2255,7 @@ private fun showCall(ctx: Context, viewModel: ViewModel, ua: UserAgent?, showCal
|
|||||||
if (viewModel.isUIRedundant(aor, callp, status, security)) return
|
if (viewModel.isUIRedundant(aor, callp, status, security)) return
|
||||||
|
|
||||||
if (call == null) {
|
if (call == null) {
|
||||||
pullToRefreshEnabled.value = true
|
pullToRefreshEnabled.value = !ua.account.isMobile
|
||||||
viewModel.dialerState.callUri.value = ua.account.resumeUri
|
viewModel.dialerState.callUri.value = ua.account.resumeUri
|
||||||
viewModel.dialerState.callUriLabel.value = ctx.getString(R.string.outgoing_call_to_dots)
|
viewModel.dialerState.callUriLabel.value = ctx.getString(R.string.outgoing_call_to_dots)
|
||||||
Handler(Looper.getMainLooper()).postDelayed({
|
Handler(Looper.getMainLooper()).postDelayed({
|
||||||
|
|||||||
Reference in New Issue
Block a user