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();
+ }
}