From cce5ff810d32d7918f5755974016e915565773a5 Mon Sep 17 00:00:00 2001 From: Haijie Hong Date: Fri, 15 Dec 2023 16:13:33 +0800 Subject: [PATCH] Provide Spatializer in BluetoothFeatureProvider for Spatial Audio toggle BUG: 316490612 Test: atest BluetoothDetailsSpatialAudioControllerTest Change-Id: I7fdb671d5395e08c517af58e88b4aeb48f193e5d --- .../BluetoothDetailsSpatialAudioController.java | 6 +++--- .../settings/bluetooth/BluetoothFeatureProvider.java | 10 ++++++++++ .../bluetooth/BluetoothFeatureProviderImpl.java | 9 +++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java index 0ce1b9787d9..c0869b23bc2 100644 --- a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java +++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java @@ -21,7 +21,6 @@ import static android.media.Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE; import android.content.Context; import android.media.AudioDeviceAttributes; import android.media.AudioDeviceInfo; -import android.media.AudioManager; import android.media.Spatializer; import android.text.TextUtils; import android.util.Log; @@ -35,6 +34,7 @@ import androidx.preference.SwitchPreferenceCompat; import androidx.preference.TwoStatePreference; import com.android.settings.R; +import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.core.lifecycle.Lifecycle; @@ -62,8 +62,8 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont CachedBluetoothDevice device, Lifecycle lifecycle) { super(context, fragment, device, lifecycle); - AudioManager audioManager = context.getSystemService(AudioManager.class); - mSpatializer = audioManager.getSpatializer(); + mSpatializer = FeatureFactory.getFeatureFactory().getBluetoothFeatureProvider() + .getSpatializer(context); } @Override diff --git a/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java b/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java index 648ca307d59..1bc71848fc8 100644 --- a/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java +++ b/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java @@ -18,6 +18,8 @@ package com.android.settings.bluetooth; import android.bluetooth.BluetoothDevice; import android.content.ComponentName; +import android.content.Context; +import android.media.Spatializer; import android.net.Uri; import java.util.List; @@ -50,4 +52,12 @@ public interface BluetoothFeatureProvider { * @return list of {@link ComponentName} */ List getRelatedTools(); + + /** + * Gets the instance of {@link Spatializer}. + * + * @param context Context + * @return the Spatializer instance + */ + Spatializer getSpatializer(Context context); } diff --git a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java index 6d0e15cdb5d..ba02020916e 100644 --- a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java +++ b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java @@ -18,6 +18,9 @@ package com.android.settings.bluetooth; import android.bluetooth.BluetoothDevice; import android.content.ComponentName; +import android.content.Context; +import android.media.AudioManager; +import android.media.Spatializer; import android.net.Uri; import com.android.settingslib.bluetooth.BluetoothUtils; @@ -45,4 +48,10 @@ public class BluetoothFeatureProviderImpl implements BluetoothFeatureProvider { public List getRelatedTools() { return null; } + + @Override + public Spatializer getSpatializer(Context context) { + AudioManager audioManager = context.getSystemService(AudioManager.class); + return audioManager.getSpatializer(); + } }