Tried to migrate to API 31

This commit is contained in:
Juha Heinanen
2021-11-06 15:59:40 +02:00
parent b47fed9539
commit d11e8fc892
3 changed files with 20 additions and 13 deletions
+3 -3
View File
@@ -2,11 +2,11 @@ apply plugin: 'com.android.application'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
android { android {
compileSdkVersion = 30 compileSdkVersion = 31
defaultConfig { defaultConfig {
applicationId = 'com.tutpro.baresip' applicationId = 'com.tutpro.baresip'
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 30 targetSdkVersion 31
versionCode = 182 versionCode = 182
versionName = '35.2.0' versionName = '35.2.0'
externalNativeBuild { externalNativeBuild {
@@ -54,7 +54,7 @@ dependencies {
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
implementation "androidx.preference:preference-ktx:1.1.1" implementation "androidx.preference:preference-ktx:1.1.1"
implementation "androidx.exifinterface:exifinterface:1.3.3" implementation "androidx.exifinterface:exifinterface:1.3.3"
implementation "androidx.core:core-ktx:1.6.0" implementation "androidx.core:core-ktx:1.7.0"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1'
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
} }
+2
View File
@@ -3,12 +3,14 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.tutpro.baresip"> package="com.tutpro.baresip">
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
@@ -5,6 +5,7 @@ import android.annotation.SuppressLint
import android.annotation.TargetApi import android.annotation.TargetApi
import android.app.* import android.app.*
import android.bluetooth.BluetoothAdapter import android.bluetooth.BluetoothAdapter
import android.bluetooth.BluetoothManager
import android.bluetooth.BluetoothHeadset import android.bluetooth.BluetoothHeadset
import android.content.* import android.content.*
import android.media.* import android.media.*
@@ -13,7 +14,6 @@ import android.net.wifi.WifiManager
import android.os.* import android.os.*
import android.os.Build.VERSION import android.os.Build.VERSION
import android.provider.Settings import android.provider.Settings
import android.telephony.TelephonyManager
import android.text.Spannable import android.text.Spannable
import android.text.SpannableString import android.text.SpannableString
import android.text.style.ForegroundColorSpan import android.text.style.ForegroundColorSpan
@@ -35,6 +35,7 @@ import kotlin.collections.ArrayList
import kotlin.concurrent.schedule import kotlin.concurrent.schedule
import kotlin.math.roundToInt import kotlin.math.roundToInt
import android.media.MediaPlayer import android.media.MediaPlayer
import android.telecom.TelecomManager
class BaresipService: Service() { class BaresipService: Service() {
@@ -47,7 +48,8 @@ class BaresipService: Service() {
private lateinit var cm: ConnectivityManager private lateinit var cm: ConnectivityManager
private lateinit var pm: PowerManager private lateinit var pm: PowerManager
private lateinit var wm: WifiManager private lateinit var wm: WifiManager
private lateinit var tm: TelephonyManager private lateinit var tm: TelecomManager
private lateinit var btm: BluetoothManager
private lateinit var partialWakeLock: PowerManager.WakeLock private lateinit var partialWakeLock: PowerManager.WakeLock
private lateinit var proximityWakeLock: PowerManager.WakeLock private lateinit var proximityWakeLock: PowerManager.WakeLock
private lateinit var wifiLock: WifiManager.WifiLock private lateinit var wifiLock: WifiManager.WifiLock
@@ -58,7 +60,7 @@ class BaresipService: Service() {
private var audioFocusRequest: AudioFocusRequest? = null private var audioFocusRequest: AudioFocusRequest? = null
private var audioFocusUsage = -1 private var audioFocusUsage = -1
private var origVolume = mutableMapOf<Int, Int>() private var origVolume = mutableMapOf<Int, Int>()
private val btAdapter = BluetoothAdapter.getDefaultAdapter() private var btAdapter: BluetoothAdapter? = null
private var linkAddresses = mutableMapOf<String, String>() private var linkAddresses = mutableMapOf<String, String>()
private var activeNetwork: Network? = null private var activeNetwork: Network? = null
private var hotSpotIsEnabled = false private var hotSpotIsEnabled = false
@@ -195,7 +197,10 @@ class BaresipService: Service() {
this.registerReceiver(hotSpotReceiver, this.registerReceiver(hotSpotReceiver,
IntentFilter("android.net.wifi.WIFI_AP_STATE_CHANGED")) IntentFilter("android.net.wifi.WIFI_AP_STATE_CHANGED"))
tm = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager tm = getSystemService(Context.TELECOM_SERVICE) as TelecomManager
btm = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
btAdapter = btm.adapter
proximityWakeLock = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, proximityWakeLock = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,
"com.tutpro.baresip:proximity_wakelog") "com.tutpro.baresip:proximity_wakelog")
@@ -556,10 +561,10 @@ class BaresipService: Service() {
} }
"call incoming" -> { "call incoming" -> {
val peerUri = Api.call_peeruri(callp) val peerUri = Api.call_peeruri(callp)
if ((Call.calls().size > 0) || if (Call.calls().size > 0 ||
(tm.callState != TelephonyManager.CALL_STATE_IDLE) || (Utils.checkPermission(this, Manifest.permission.READ_PHONE_STATE) &&
!Utils.checkPermission(applicationContext, tm.isInCall) ||
Manifest.permission.RECORD_AUDIO)) { !Utils.checkPermission(applicationContext, Manifest.permission.RECORD_AUDIO)) {
Log.d(TAG, "Auto-rejecting incoming call $uap/$callp/$peerUri") Log.d(TAG, "Auto-rejecting incoming call $uap/$callp/$peerUri")
Api.ua_hangup(uap, callp, 486, "Busy Here") Api.ua_hangup(uap, callp, 486, "Busy Here")
if (ua.account.callHistory) { if (ua.account.callHistory) {
@@ -1090,8 +1095,8 @@ class BaresipService: Service() {
} }
private fun isBluetoothHeadsetConnected(): Boolean { private fun isBluetoothHeadsetConnected(): Boolean {
return (btAdapter != null) && btAdapter.isEnabled && return (btAdapter != null) && btAdapter!!.isEnabled &&
(btAdapter.getProfileConnectionState(BluetoothHeadset.HEADSET) == (btAdapter!!.getProfileConnectionState(BluetoothHeadset.HEADSET) ==
BluetoothHeadset.STATE_CONNECTED) BluetoothHeadset.STATE_CONNECTED)
} }