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.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

View File

@@ -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<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.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<ComponentName> getRelatedTools() {
return null;
}
@Override
public Spatializer getSpatializer(Context context) {
AudioManager audioManager = context.getSystemService(AudioManager.class);
return audioManager.getSpatializer();
}
}