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