summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/media/BluetoothRouteController.java11
-rw-r--r--services/core/java/com/android/server/media/DeviceRouteController.java20
-rw-r--r--services/core/java/com/android/server/media/MediaFeatureFlagManager.java6
3 files changed, 29 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/media/BluetoothRouteController.java b/services/core/java/com/android/server/media/BluetoothRouteController.java
index d4a118458952..66985e0b2533 100644
--- a/services/core/java/com/android/server/media/BluetoothRouteController.java
+++ b/services/core/java/com/android/server/media/BluetoothRouteController.java
@@ -53,7 +53,16 @@ import java.util.Objects;
return new NoOpBluetoothRouteController();
}
- return new LegacyBluetoothRouteController(context, btAdapter, listener);
+ MediaFeatureFlagManager flagManager = MediaFeatureFlagManager.getInstance();
+ boolean isUsingLegacyController = flagManager.getBoolean(
+ MediaFeatureFlagManager.FEATURE_AUDIO_STRATEGIES_IS_USING_LEGACY_CONTROLLER,
+ true);
+
+ if (isUsingLegacyController) {
+ return new LegacyBluetoothRouteController(context, btAdapter, listener);
+ } else {
+ return new AudioPoliciesBluetoothRouteController(context, btAdapter, listener);
+ }
}
/**
diff --git a/services/core/java/com/android/server/media/DeviceRouteController.java b/services/core/java/com/android/server/media/DeviceRouteController.java
index d7893eed800b..3875c84e618b 100644
--- a/services/core/java/com/android/server/media/DeviceRouteController.java
+++ b/services/core/java/com/android/server/media/DeviceRouteController.java
@@ -44,10 +44,22 @@ import android.os.ServiceManager;
IAudioService audioService = IAudioService.Stub.asInterface(
ServiceManager.getService(Context.AUDIO_SERVICE));
- return new LegacyDeviceRouteController(context,
- audioManager,
- audioService,
- onDeviceRouteChangedListener);
+ MediaFeatureFlagManager flagManager = MediaFeatureFlagManager.getInstance();
+ boolean isUsingLegacyController = flagManager.getBoolean(
+ MediaFeatureFlagManager.FEATURE_AUDIO_STRATEGIES_IS_USING_LEGACY_CONTROLLER,
+ true);
+
+ if (isUsingLegacyController) {
+ return new LegacyDeviceRouteController(context,
+ audioManager,
+ audioService,
+ onDeviceRouteChangedListener);
+ } else {
+ return new AudioPoliciesDeviceRouteController(context,
+ audioManager,
+ audioService,
+ onDeviceRouteChangedListener);
+ }
}
/**
diff --git a/services/core/java/com/android/server/media/MediaFeatureFlagManager.java b/services/core/java/com/android/server/media/MediaFeatureFlagManager.java
index 723cda056694..70ee38f8f7b0 100644
--- a/services/core/java/com/android/server/media/MediaFeatureFlagManager.java
+++ b/services/core/java/com/android/server/media/MediaFeatureFlagManager.java
@@ -32,7 +32,7 @@ import java.lang.annotation.Target;
private static final String NAMESPACE_MEDIA_BETTER_TOGETHER = "media_better_together";
@StringDef(prefix = "FEATURE_", value = {
- FEATURE_IS_USING_LEGACY_BLUETOOTH_CONTROLLER
+ FEATURE_AUDIO_STRATEGIES_IS_USING_LEGACY_CONTROLLER
})
@Target({ ElementType.TYPE_USE, ElementType.TYPE_PARAMETER })
@Retention(RetentionPolicy.SOURCE)
@@ -43,7 +43,7 @@ import java.lang.annotation.Target;
* 'Audio Strategies'-aware controller.
*/
/* package */ static final @MediaFeatureFlag String
- FEATURE_IS_USING_LEGACY_BLUETOOTH_CONTROLLER =
+ FEATURE_AUDIO_STRATEGIES_IS_USING_LEGACY_CONTROLLER =
"BluetoothRouteController__enable_legacy_bluetooth_routes_controller";
private static final MediaFeatureFlagManager sInstance = new MediaFeatureFlagManager();
@@ -52,7 +52,7 @@ import java.lang.annotation.Target;
// Empty to prevent instantiation.
}
- /* package */ MediaFeatureFlagManager getInstance() {
+ /* package */ static MediaFeatureFlagManager getInstance() {
return sInstance;
}