Provide Spatializer in BluetoothFeatureProvider for Spatial Audio toggle

BUG: 316490612
Test: atest BluetoothDetailsSpatialAudioControllerTest
Change-Id: I7fdb671d5395e08c517af58e88b4aeb48f193e5d
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
index 0ce1b97..c0869b2 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
@@ -21,7 +21,6 @@
 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.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 @@
             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 648ca30..1bc7184 100644
--- a/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
+++ b/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
@@ -18,6 +18,8 @@
 
 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 @@
      * @return list of {@link ComponentName}
      */
     List<ComponentName> 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 6d0e15c..ba02020 100644
--- a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java
+++ b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java
@@ -18,6 +18,9 @@
 
 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 List<ComponentName> getRelatedTools() {
         return null;
     }
+
+    @Override
+    public Spatializer getSpatializer(Context context) {
+        AudioManager audioManager = context.getSystemService(AudioManager.class);
+        return audioManager.getSpatializer();
+    }
 }