Allow mobile calling when device is in airplane mode and wifi calling is enabled
This commit is contained in:
@ -2144,17 +2144,19 @@ class BaresipService: Service() {
|
||||
private fun updateMobileStatus(newStatus: Int? = null) {
|
||||
uas.value.find { it.account.isMobile }?.let { ua ->
|
||||
val isAirplaneModeOn = Utils.isAirplaneModeOn(this)
|
||||
val status = newStatus
|
||||
?: if (isAirplaneModeOn) {
|
||||
val status = newStatus ?: if (isAirplaneModeOn) {
|
||||
if (ua.status == circleGreen.getValue(colorblind))
|
||||
ua.status
|
||||
else
|
||||
R.drawable.circle_white
|
||||
} else {
|
||||
if (ua.status == R.drawable.circle_white) {
|
||||
// Show "Red" (not yet in service)
|
||||
circleRed.getValue(colorblind)
|
||||
} else {
|
||||
if (ua.status == R.drawable.circle_white) {
|
||||
// Show "Red" (not yet in service)
|
||||
circleRed.getValue(colorblind)
|
||||
} else {
|
||||
ua.status
|
||||
}
|
||||
ua.status
|
||||
}
|
||||
}
|
||||
if (ua.status != status) {
|
||||
Log.d(TAG, "Updating Mobile status to $status")
|
||||
ua.updateStatus(status)
|
||||
@ -2167,13 +2169,13 @@ class BaresipService: Service() {
|
||||
|
||||
private fun updateMobileStatusFromServiceState(state: Int) {
|
||||
val isAirplaneModeOn = Utils.isAirplaneModeOn(this)
|
||||
val status = if (isAirplaneModeOn)
|
||||
R.drawable.circle_white
|
||||
else if (state == ServiceState.STATE_IN_SERVICE)
|
||||
val status = if (state == ServiceState.STATE_IN_SERVICE)
|
||||
circleGreen.getValue(colorblind)
|
||||
else if (isAirplaneModeOn)
|
||||
R.drawable.circle_white
|
||||
else
|
||||
circleRed.getValue(colorblind)
|
||||
Log.d(TAG, "Mobile service state changed: $state, updating status to $status")
|
||||
Log.d(TAG, "Mobile service state changed: $state, updating status to $status (Airplane=$isAirplaneModeOn)")
|
||||
updateMobileStatus(status)
|
||||
}
|
||||
|
||||
|
||||
@ -72,6 +72,8 @@ import androidx.navigation.NavType
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.navArgument
|
||||
import coil.compose.AsyncImage
|
||||
import com.tutpro.baresip.BaresipService.Companion.circleGreen
|
||||
import com.tutpro.baresip.BaresipService.Companion.colorblind
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import com.tutpro.baresip.CustomElements.verticalScrollbar
|
||||
|
||||
@ -349,7 +351,7 @@ private fun Calls(
|
||||
)
|
||||
secondButtonText.value = ctx.getString(R.string.call)
|
||||
secondAction.value = {
|
||||
if (ua.account.isMobile && Utils.isAirplaneModeOn(ctx)) {
|
||||
if (ua.account.isMobile && ua.status != circleGreen.getValue(colorblind)) {
|
||||
alertTitle.value = ctx.getString(R.string.notice)
|
||||
alertMessage.value = ctx.getString(R.string.airplane_mode)
|
||||
showAlert.value = true
|
||||
@ -364,7 +366,7 @@ private fun Calls(
|
||||
thirdButtonText.value = ctx.getString(R.string.send_message)
|
||||
thirdAction.value = {
|
||||
if (ua.account.isMobile) {
|
||||
if (Utils.isAirplaneModeOn(ctx)) {
|
||||
if (ua.status != circleGreen.getValue(colorblind)) {
|
||||
alertTitle.value = ctx.getString(R.string.notice)
|
||||
alertMessage.value = ctx.getString(R.string.airplane_mode)
|
||||
showAlert.value = true
|
||||
|
||||
@ -85,6 +85,8 @@ import androidx.navigation.NavGraphBuilder
|
||||
import androidx.navigation.NavType
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.navArgument
|
||||
import com.tutpro.baresip.BaresipService.Companion.circleGreen
|
||||
import com.tutpro.baresip.BaresipService.Companion.colorblind
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import com.tutpro.baresip.CustomElements.verticalScrollbar
|
||||
import kotlinx.coroutines.launch
|
||||
@ -583,7 +585,7 @@ private fun NewMessage(
|
||||
var msgUri = ""
|
||||
addMessage(msg)
|
||||
if (ua.account.isMobile) {
|
||||
if (Utils.isAirplaneModeOn(ctx)) {
|
||||
if (ua.status != circleGreen.getValue(colorblind)) {
|
||||
dialogMessage.value = ctx.getString(R.string.airplane_mode)
|
||||
showDialog.value = true
|
||||
} else {
|
||||
|
||||
@ -93,6 +93,8 @@ import androidx.navigation.NavType
|
||||
import androidx.navigation.compose.composable
|
||||
import androidx.navigation.navArgument
|
||||
import coil.compose.rememberAsyncImagePainter
|
||||
import com.tutpro.baresip.BaresipService.Companion.circleGreen
|
||||
import com.tutpro.baresip.BaresipService.Companion.colorblind
|
||||
import com.tutpro.baresip.CustomElements.AlertDialog
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
@ -729,7 +731,7 @@ private fun UrisSection(
|
||||
!ua.account.isMobile))
|
||||
IconButton(
|
||||
onClick = {
|
||||
if (ua.account.isMobile && Utils.isAirplaneModeOn(ctx)) {
|
||||
if (ua.account.isMobile && ua.status != circleGreen.getValue(colorblind)) {
|
||||
alertTitle.value = ctx.getString(R.string.notice)
|
||||
alertMessage.value = ctx.getString(R.string.airplane_mode)
|
||||
showAlert.value = true
|
||||
@ -764,7 +766,7 @@ private fun UrisSection(
|
||||
!ua.account.isMobile))
|
||||
IconButton(
|
||||
onClick = {
|
||||
if (ua.account.isMobile && Utils.isAirplaneModeOn(ctx)) {
|
||||
if (ua.account.isMobile && ua.status != circleGreen.getValue(colorblind)) {
|
||||
alertTitle.value = ctx.getString(R.string.notice)
|
||||
alertMessage.value = ctx.getString(R.string.airplane_mode)
|
||||
showAlert.value = true
|
||||
|
||||
@ -152,6 +152,8 @@ import androidx.lifecycle.compose.LocalLifecycleOwner
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.NavGraphBuilder
|
||||
import androidx.navigation.compose.composable
|
||||
import com.tutpro.baresip.BaresipService.Companion.circleGreen
|
||||
import com.tutpro.baresip.BaresipService.Companion.colorblind
|
||||
import com.tutpro.baresip.BaresipService.Companion.contactNames
|
||||
import com.tutpro.baresip.BaresipService.Companion.uas
|
||||
import com.tutpro.baresip.BaresipService.Companion.uasStatus
|
||||
@ -2139,7 +2141,7 @@ private fun makeCall(ctx: Context, viewModel: ViewModel, uriText: String,
|
||||
showAlert.value = true
|
||||
return
|
||||
}
|
||||
else if (ua.account.isMobile && Utils.isAirplaneModeOn(ctx)) {
|
||||
else if (ua.account.isMobile && ua.status != circleGreen.getValue(colorblind)) {
|
||||
alertTitle.value = ctx.getString(R.string.notice)
|
||||
alertMessage.value = ctx.getString(R.string.airplane_mode)
|
||||
showAlert.value = true
|
||||
|
||||
Reference in New Issue
Block a user