From 5d9eeb0ca1c4ec97aadc3afae7ecb498a0b2ba1b Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Fri, 5 Nov 2021 15:04:18 +0200 Subject: [PATCH] Request audio focus fixes and improvements Dependencies downgrade --- app/build.gradle | 2 +- .../main/kotlin/com/tutpro/baresip/BaresipService.kt | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9ae91ad1..1a7031f9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,7 +54,7 @@ dependencies { implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" implementation "androidx.preference:preference-ktx:1.1.1" implementation "androidx.exifinterface:exifinterface:1.3.3" - implementation "androidx.core:core-ktx:1.7.0" + implementation "androidx.core:core-ktx:1.6.0" implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.1' implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" } diff --git a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt index 66107814..b95f0e07 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/BaresipService.kt @@ -522,7 +522,7 @@ class BaresipService: Service() { stopMediaPlayer() if (am.mode != AudioManager.MODE_IN_COMMUNICATION) am.mode = AudioManager.MODE_IN_COMMUNICATION - requestAudioFocus(AudioAttributes.USAGE_VOICE_COMMUNICATION, + requestAudioFocus(AudioManager.STREAM_VOICE_CALL, AudioAttributes.CONTENT_TYPE_SPEECH) setCallVolume() proximitySensing(true) @@ -641,7 +641,7 @@ class BaresipService: Service() { stopMediaPlayer() if (am.mode != AudioManager.MODE_IN_COMMUNICATION) am.mode = AudioManager.MODE_IN_COMMUNICATION - requestAudioFocus(AudioAttributes.USAGE_VOICE_COMMUNICATION, + requestAudioFocus(AudioManager.STREAM_VOICE_CALL, AudioAttributes.CONTENT_TYPE_SPEECH) setCallVolume() proximitySensing(true) @@ -1047,7 +1047,7 @@ class BaresipService: Service() { } if ((VERSION.SDK_INT >= 26) && (audioFocusRequest == null)) { @TargetApi(26) - audioFocusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE) + audioFocusRequest = AudioFocusRequest.Builder(AudioManager.AUDIOFOCUS_GAIN_TRANSIENT) .run { setAudioAttributes(AudioAttributes.Builder().run { setUsage(usage) @@ -1071,7 +1071,7 @@ class BaresipService: Service() { } } else { @Suppress("DEPRECATION") - if (am.requestAudioFocus(null, usage, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE) == + if (am.requestAudioFocus(null, usage, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) { Log.d(TAG, "Audio focus granted for usage $usage") audioFocusUsage = usage @@ -1121,8 +1121,7 @@ class BaresipService: Service() { private fun startRinging() { am.mode = AudioManager.MODE_RINGTONE - requestAudioFocus(AudioAttributes.USAGE_NOTIFICATION_RINGTONE, - AudioAttributes.CONTENT_TYPE_MUSIC) + requestAudioFocus(AudioManager.STREAM_RING, AudioAttributes.CONTENT_TYPE_MUSIC) if (VERSION.SDK_INT >= 28) { rt.isLooping = true rt.play()