Renamed AndroidContactScreen to ContactScreen and use it for both contact types

This commit is contained in:
Juha Heinanen
2026-05-19 06:46:52 +03:00
parent b12d657ee1
commit 5ebfccfe8c
6 changed files with 230 additions and 257 deletions
@@ -104,6 +104,7 @@ class BaresipService: Service() {
private lateinit var wifiLock: WifiManager.WifiLock
private lateinit var bluetoothReceiver: BroadcastReceiver
private lateinit var hotSpotReceiver: BroadcastReceiver
private lateinit var airplaneModeReceiver: BroadcastReceiver
private lateinit var androidContactsObserver: ContentObserver
private lateinit var networkCallback: ConnectivityManager.NetworkCallback
private lateinit var stopState: String
@@ -120,6 +121,7 @@ class BaresipService: Service() {
private var androidContactsObserverRegistered = false
private var hotSpotReceiverRegistered = false
private var bluetoothReceiverRegistered = false
private var airplaneModeReceiverRegistered = false
private var isNotificationInCall = false
private var isServiceClean = false
private var cleanupRunnable: Runnable? = null
@@ -288,6 +290,23 @@ class BaresipService: Service() {
)
hotSpotReceiverRegistered = true
airplaneModeReceiver = object : BroadcastReceiver() {
override fun onReceive(ctx: Context, intent: Intent) {
if (intent.action == Intent.ACTION_AIRPLANE_MODE_CHANGED) {
val isAirplaneModeOn = intent.getBooleanExtra("state", false)
Log.d(TAG, "Airplane mode changed: $isAirplaneModeOn")
updateMobileStatus(isAirplaneModeOn)
}
}
}
ContextCompat.registerReceiver(
this,
airplaneModeReceiver,
IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED),
ContextCompat.RECEIVER_EXPORTED
)
airplaneModeReceiverRegistered = true
tm = getSystemService(TELECOM_SERVICE) as TelecomManager
btm = getSystemService(BLUETOOTH_SERVICE) as BluetoothManager
@@ -2027,6 +2046,8 @@ class BaresipService: Service() {
account.regint = 0
account.telProvider = ""
val mobileUa = UserAgent(0L, account)
val isAirplaneModeOn = Settings.Global.getInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0) != 0
mobileUa.status = if (isAirplaneModeOn) R.drawable.circle_white else circleGreen.getValue(colorblind)
val updatedUas = uas.value.toMutableList()
updatedUas.add(mobileUa)
@@ -2042,6 +2063,19 @@ class BaresipService: Service() {
}
}
private fun updateMobileStatus(isAirplaneModeOn: Boolean) {
uas.value.find { it.account.isMobile }?.let { ua ->
val status = if (isAirplaneModeOn)
R.drawable.circle_white
else
circleGreen.getValue(colorblind)
ua.updateStatus(status)
updateStatusNotification()
if (isMainVisible)
registrationUpdate.postValue(System.currentTimeMillis())
}
}
@SuppressLint("FullScreenIntentPolicy")
fun handleIncomingCall(call: Call) {
val ua = call.ua
@@ -2635,6 +2669,12 @@ class BaresipService: Service() {
bluetoothReceiverRegistered = false
} catch (_: IllegalArgumentException) {}
}
if (airplaneModeReceiverRegistered) {
try {
unregisterReceiver(airplaneModeReceiver)
airplaneModeReceiverRegistered = false
} catch (_: IllegalArgumentException) {}
}
val callps = ConnectionService.connections.keys.toList()
for (callp in callps)
ConnectionService.onCallClosed(callp)