Provide Spatializer in BluetoothFeatureProvider for Spatial Audio toggle

BUG: 316490612
Test: atest BluetoothDetailsSpatialAudioControllerTest
Change-Id: I7fdb671d5395e08c517af58e88b4aeb48f193e5d
This commit is contained in:
Haijie Hong
2023-12-15 16:13:33 +08:00
parent dd2cc366a6
commit cce5ff810d
3 changed files with 22 additions and 3 deletions

View File

@@ -21,7 +21,6 @@ import static android.media.Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
import android.content.Context; import android.content.Context;
import android.media.AudioDeviceAttributes; import android.media.AudioDeviceAttributes;
import android.media.AudioDeviceInfo; import android.media.AudioDeviceInfo;
import android.media.AudioManager;
import android.media.Spatializer; import android.media.Spatializer;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
@@ -35,6 +34,7 @@ import androidx.preference.SwitchPreferenceCompat;
import androidx.preference.TwoStatePreference; import androidx.preference.TwoStatePreference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -62,8 +62,8 @@ public class BluetoothDetailsSpatialAudioController extends BluetoothDetailsCont
CachedBluetoothDevice device, CachedBluetoothDevice device,
Lifecycle lifecycle) { Lifecycle lifecycle) {
super(context, fragment, device, lifecycle); super(context, fragment, device, lifecycle);
AudioManager audioManager = context.getSystemService(AudioManager.class); mSpatializer = FeatureFactory.getFeatureFactory().getBluetoothFeatureProvider()
mSpatializer = audioManager.getSpatializer(); .getSpatializer(context);
} }
@Override @Override

View File

@@ -18,6 +18,8 @@ package com.android.settings.bluetooth;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context;
import android.media.Spatializer;
import android.net.Uri; import android.net.Uri;
import java.util.List; import java.util.List;
@@ -50,4 +52,12 @@ public interface BluetoothFeatureProvider {
* @return list of {@link ComponentName} * @return list of {@link ComponentName}
*/ */
List<ComponentName> getRelatedTools(); List<ComponentName> getRelatedTools();
/**
* Gets the instance of {@link Spatializer}.
*
* @param context Context
* @return the Spatializer instance
*/
Spatializer getSpatializer(Context context);
} }

View File

@@ -18,6 +18,9 @@ package com.android.settings.bluetooth;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context;
import android.media.AudioManager;
import android.media.Spatializer;
import android.net.Uri; import android.net.Uri;
import com.android.settingslib.bluetooth.BluetoothUtils; import com.android.settingslib.bluetooth.BluetoothUtils;
@@ -45,4 +48,10 @@ public class BluetoothFeatureProviderImpl implements BluetoothFeatureProvider {
public List<ComponentName> getRelatedTools() { public List<ComponentName> getRelatedTools() {
return null; return null;
} }
@Override
public Spatializer getSpatializer(Context context) {
AudioManager audioManager = context.getSystemService(AudioManager.class);
return audioManager.getSpatializer();
}
} }