diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index 75057ec3..8b84177c 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -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) } diff --git a/app/src/main/kotlin/com/tutpro/baresip/CallsScreen.kt b/app/src/main/kotlin/com/tutpro/baresip/CallsScreen.kt index 25ccdb03..3f52999d 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/CallsScreen.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/CallsScreen.kt @@ -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 diff --git a/app/src/main/kotlin/com/tutpro/baresip/ChatScreen.kt b/app/src/main/kotlin/com/tutpro/baresip/ChatScreen.kt index 4bee6487..43aea709 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ChatScreen.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ChatScreen.kt @@ -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 { diff --git a/app/src/main/kotlin/com/tutpro/baresip/ContactScreen.kt b/app/src/main/kotlin/com/tutpro/baresip/ContactScreen.kt index 23b7a041..30451462 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ContactScreen.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ContactScreen.kt @@ -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 diff --git a/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt b/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt index 70443da4..377b4bf2 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/MainScreen.kt @@ -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