From 5b57d77d02d27369023f11dba3b55b49312d3ced Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Tue, 15 Feb 2022 06:30:53 -0700 Subject: [PATCH] playback: disable audio focus setting on api 31 Disable the ability to customize audio focus on Android 12 and up. Android 12 automatically regulates audio streams even further than it did in previous versions, to the point where the audio focus setting no longer makes sense on that version. I may extend the removal to all versions in the future. --- CHANGELOG.md | 3 +++ .../main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt | 1 - .../java/org/oxycblt/auxio/playback/system/AudioReactor.kt | 3 ++- app/src/main/res/values-v31/config.xml | 1 + app/src/main/res/values/config.xml | 1 + app/src/main/res/xml/prefs_main.xml | 1 + 6 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c080a4b2d..5e3ad2229 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ #### What's Fixed - Fixed issue where playback would start unexpectedly when opening the app +#### What's Changed +- Disabled audio focus customization on Android 12 [#75] + ## v2.2.0 #### What's New: - Added Arabic translations [Courtesy of hasanpasha] diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt index 26bfb16ef..a67f375d3 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt @@ -127,7 +127,6 @@ class PlaybackFragment : Fragment() { } binding.playbackLoop.setImageResource(resId) - binding.playbackLoop.isActivated = loopMode != LoopMode.NONE } playbackModel.position.observe(viewLifecycleOwner) { pos -> diff --git a/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt b/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt index ebb31f150..d450a40c2 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/system/AudioReactor.kt @@ -20,6 +20,7 @@ package org.oxycblt.auxio.playback.system import android.content.Context import android.media.AudioManager +import android.os.Build import androidx.core.math.MathUtils import androidx.media.AudioAttributesCompat import androidx.media.AudioFocusRequestCompat @@ -233,7 +234,7 @@ class AudioReactor( // --- INTERNAL AUDIO FOCUS --- override fun onAudioFocusChange(focusChange: Int) { - if (!settingsManager.doAudioFocus) { + if (!settingsManager.doAudioFocus && Build.VERSION.SDK_INT < Build.VERSION_CODES.S) { // Don't do audio focus if its not enabled return } diff --git a/app/src/main/res/values-v31/config.xml b/app/src/main/res/values-v31/config.xml index 4bd8a8884..f229b667e 100644 --- a/app/src/main/res/values-v31/config.xml +++ b/app/src/main/res/values-v31/config.xml @@ -1,4 +1,5 @@ false + false \ No newline at end of file diff --git a/app/src/main/res/values/config.xml b/app/src/main/res/values/config.xml index 09a31ac51..232746f50 100644 --- a/app/src/main/res/values/config.xml +++ b/app/src/main/res/values/config.xml @@ -1,5 +1,6 @@ true + true 1 diff --git a/app/src/main/res/xml/prefs_main.xml b/app/src/main/res/xml/prefs_main.xml index 5bc7c2b81..209de6d6b 100644 --- a/app/src/main/res/xml/prefs_main.xml +++ b/app/src/main/res/xml/prefs_main.xml @@ -82,6 +82,7 @@ app:defaultValue="true" app:iconSpaceReserved="false" app:key="KEY_AUDIO_FOCUS" + app:isPreferenceVisible="@bool/enable_audio_focus_setting" app:summary="@string/set_focus_desc" app:title="@string/set_focus" />