Renamed AndroidContactScreen to ContactScreen and use it for both contact types
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user