summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eric Laurent <elaurent@google.com> 2022-08-02 16:12:36 +0200
committer Andy Hung <hunga@google.com> 2022-09-07 14:10:23 -0700
commit5b78fb706979fabe261923fb1398d3f3624f1ca6 (patch)
tree16934b26f3185702a24d24ba5b0acd330163e839
parenta36a023dae71267f0a0e546a151386e72ba50285 (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.java22
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() {