diff options
| author | 2023-03-06 13:38:30 +0000 | |
|---|---|---|
| committer | 2023-03-07 10:15:31 +0000 | |
| commit | 3e8712f0099cb7200a8d3c5fa64473cd9157b672 (patch) | |
| tree | 43b64ec66e7c10c108e64b10817b33037ce0269b | |
| parent | f2de79ebee4a79d5f5564c97c6a3d344cfbc0e2a (diff) | |
Add audio policies classes to SystemMediaRoute2Provider
To rollout the changes in controllable and safe way new classes are
hidden using a feature flag.
Bug: b/255495104
Test: manually
Change-Id: Iebe3a61cd5a033266225e46e6bcc31cb3b53bb74
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; } |