summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Michel Trivi <jmtrivi@google.com> 2025-02-21 15:32:47 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2025-02-21 15:32:47 -0800
commit6fa5bdd136f09fba0d8eaf8f9f0e62b4a790728f (patch)
treeb8fbcad14046d5e87196a9be91d33180af4267e6
parentc3fc404ab293f487c337b99e7ec933a5add9aa19 (diff)
parent9424d9539f85e21774f9e5739260a14003b44a3b (diff)
Merge "AudioService: RttEnabled as atomic boolean" into main
-rw-r--r--services/core/java/com/android/server/audio/AudioService.java29
-rw-r--r--services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java12
2 files changed, 29 insertions, 12 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java
index ee37e97d7ad8..4e84733d540f 100644
--- a/services/core/java/com/android/server/audio/AudioService.java
+++ b/services/core/java/com/android/server/audio/AudioService.java
@@ -1269,8 +1269,7 @@ public class AudioService extends IAudioService.Stub
}
};
- @GuardedBy("mSettingsLock")
- private boolean mRttEnabled = false;
+ private AtomicBoolean mRttEnabled = new AtomicBoolean(false);
private AtomicBoolean mMasterMute = new AtomicBoolean(false);
@@ -2091,13 +2090,13 @@ public class AudioService extends IAudioService.Stub
// Restore setParameters and other queued setters.
mRestorableParameters.restoreAll();
+ final int forDock = mDockAudioMediaEnabled ?
+ AudioSystem.FORCE_DIGITAL_DOCK : AudioSystem.FORCE_NONE;
+ mDeviceBroker.setForceUse_Async(AudioSystem.FOR_DOCK, forDock, "onAudioServerDied");
+ sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
+ sendEnabledSurroundFormats(mContentResolver, true);
+ AudioSystem.setRttEnabled(mRttEnabled.get());
synchronized (mSettingsLock) {
- final int forDock = mDockAudioMediaEnabled ?
- AudioSystem.FORCE_DIGITAL_DOCK : AudioSystem.FORCE_NONE;
- mDeviceBroker.setForceUse_Async(AudioSystem.FOR_DOCK, forDock, "onAudioServerDied");
- sendEncodedSurroundMode(mContentResolver, "onAudioServerDied");
- sendEnabledSurroundFormats(mContentResolver, true);
- AudioSystem.setRttEnabled(mRttEnabled);
resetAssistantServicesUidsLocked();
}
@@ -3234,9 +3233,10 @@ public class AudioService extends IAudioService.Stub
sendEnabledSurroundFormats(cr, true);
updateAssistantUIdLocked(/* forceUpdate= */ true);
resetActiveAssistantUidsLocked();
- AudioSystem.setRttEnabled(mRttEnabled);
}
+ AudioSystem.setRttEnabled(mRttEnabled.get());
+
mMuteAffectedStreams = mSettings.getSystemIntForUser(cr,
System.MUTE_STREAMS_AFFECTED, AudioSystem.DEFAULT_MUTE_STREAMS_AFFECTED,
UserHandle.USER_CURRENT);
@@ -6836,7 +6836,7 @@ public class AudioService extends IAudioService.Stub
return false;
}
- /** @see AudioManager#setRttEnabled() */
+ /** @see AudioManager#setRttEnabled(boolean) */
@Override
public void setRttEnabled(boolean rttEnabled) {
if (mContext.checkCallingOrSelfPermission(
@@ -6846,8 +6846,8 @@ public class AudioService extends IAudioService.Stub
+ Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
return;
}
- synchronized (mSettingsLock) {
- mRttEnabled = rttEnabled;
+ synchronized (this) {
+ mRttEnabled.set(rttEnabled);
final long identity = Binder.clearCallingIdentity();
try {
AudioSystem.setRttEnabled(rttEnabled);
@@ -6857,6 +6857,11 @@ public class AudioService extends IAudioService.Stub
}
}
+ @VisibleForTesting(visibility = PACKAGE)
+ protected boolean isRttEnabled() {
+ return mRttEnabled.get();
+ }
+
/** @see AudioManager#adjustSuggestedStreamVolumeForUid(int, int, int, String, int, int, int) */
@Override
public void adjustSuggestedStreamVolumeForUid(int streamType, int direction, int flags,
diff --git a/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java b/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
index aa9d2058e659..9e8c34eabd40 100644
--- a/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/audio/AudioServiceTest.java
@@ -259,4 +259,16 @@ public class AudioServiceTest {
inputGainIndex,
mAudioService.getInputGainIndex(ada));
}
+
+ @Test
+ public void testRttEnabled() throws Exception {
+ Log.i(TAG, "running testRttEnabled");
+ Assert.assertNotNull(mAudioService);
+
+ mAudioService.setRttEnabled(true);
+ Assert.assertTrue(mAudioService.isRttEnabled());
+
+ mAudioService.setRttEnabled(false);
+ Assert.assertFalse(mAudioService.isRttEnabled());
+ }
}