diff options
| author | 2022-08-02 16:12:36 +0200 | |
|---|---|---|
| committer | 2022-09-07 14:10:23 -0700 | |
| commit | 5b78fb706979fabe261923fb1398d3f3624f1ca6 (patch) | |
| tree | 16934b26f3185702a24d24ba5b0acd330163e839 | |
| parent | a36a023dae71267f0a0e546a151386e72ba50285 (diff) | |
AudioService: fix initial spatial audio enable state.
Fix SpatializerHelper.setSpatializerEnabledInt() to
avoid overriding the enable state computed by onRoutingUpdated()
when spatial audio is enabled.
Bug: 238378679
Test: repro steps in the bug
Merged-In: I2e77945c889c1db093832f780c632a626e979e7c
Change-Id: I2e77945c889c1db093832f780c632a626e979e7c
| -rw-r--r-- | services/core/java/com/android/server/audio/SpatializerHelper.java | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/audio/SpatializerHelper.java b/services/core/java/com/android/server/audio/SpatializerHelper.java index dd44af1b68ee..5f65fca3f07b 100644 --- a/services/core/java/com/android/server/audio/SpatializerHelper.java +++ b/services/core/java/com/android/server/audio/SpatializerHelper.java @@ -745,33 +745,29 @@ public class SpatializerHelper { if (enabled) { throw (new IllegalStateException("Can't enable when uninitialized")); } - return; + break; case STATE_NOT_SUPPORTED: if (enabled) { Log.e(TAG, "Can't enable when unsupported"); } - return; + break; case STATE_DISABLED_UNAVAILABLE: case STATE_DISABLED_AVAILABLE: if (enabled) { createSpat(); onRoutingUpdated(); - break; - } else { - // already in disabled state - return; - } + // onRoutingUpdated() can update the "enabled" state based on context + // and will call setDispatchFeatureEnabledState(). + } // else { nothing to do as already disabled } + break; case STATE_ENABLED_UNAVAILABLE: case STATE_ENABLED_AVAILABLE: if (!enabled) { releaseSpat(); - break; - } else { - // already in enabled state - return; - } + setDispatchFeatureEnabledState(false, "setSpatializerEnabledInt"); + } // else { nothing to do as already enabled } + break; } - setDispatchFeatureEnabledState(enabled, "setSpatializerEnabledInt"); } synchronized int getCapableImmersiveAudioLevel() { |