Fix invalidation of captors and injectors during DAP unregistration.
Also, clear the captors and injectors array in unregistered policy,
so in case it's re-registered again, the arrays don't grow unless
necessary.
Bug: 288086999
Test: atest AudioHostTest AudioServiceHostTest
Change-Id: I9c7cbac530293e2c8f8987897d319bf912b6390e
diff --git a/media/java/android/media/audiopolicy/AudioPolicy.java b/media/java/android/media/audiopolicy/AudioPolicy.java
index c1ee74a..3e5de82 100644
--- a/media/java/android/media/audiopolicy/AudioPolicy.java
+++ b/media/java/android/media/audiopolicy/AudioPolicy.java
@@ -865,7 +865,7 @@
for (final WeakReference<AudioTrack> weakTrack : mInjectors) {
final AudioTrack track = weakTrack.get();
if (track == null) {
- break;
+ continue;
}
try {
// TODO: add synchronous versions
@@ -876,12 +876,13 @@
// released by the user of the AudioPolicy
}
}
+ mInjectors.clear();
}
if (mCaptors != null) {
for (final WeakReference<AudioRecord> weakRecord : mCaptors) {
final AudioRecord record = weakRecord.get();
if (record == null) {
- break;
+ continue;
}
try {
// TODO: if needed: implement an invalidate method
@@ -891,6 +892,7 @@
// released by the user of the AudioPolicy
}
}
+ mCaptors.clear();
}
}
}