From e7e67fe15579a028d87a7aa61b2453fcf5e94dae Mon Sep 17 00:00:00 2001 From: Mikhail Naganov Date: Thu, 25 Jun 2020 22:27:17 +0000 Subject: [PATCH] SoundEffectsHelper: Update resource info after unloading SoundEffectsHelper.mResources info needs to be reset after unloading of samples. Lack of this cleanup is benign when subsequent resource loading succeeds, but in case it doesn't having stale info in mResources can lead to confusion. Test: atest android.media.cts.AudioManagerTest#testSoundEffects Change-Id: Ia7a1cc4315bfcf05fa4af915c4ad690183ed4368 --- .../java/com/android/server/audio/SoundEffectsHelper.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/audio/SoundEffectsHelper.java b/services/core/java/com/android/server/audio/SoundEffectsHelper.java index cf5bc8d88c73e..c4db8e9a76ec6 100644 --- a/services/core/java/com/android/server/audio/SoundEffectsHelper.java +++ b/services/core/java/com/android/server/audio/SoundEffectsHelper.java @@ -90,6 +90,10 @@ class SoundEffectsHelper { mFileName = fileName; mSampleId = EFFECT_NOT_IN_SOUND_POOL; } + void unload() { + mSampleId = EFFECT_NOT_IN_SOUND_POOL; + mLoaded = false; + } } // All the fields below are accessed by the worker thread exclusively private final List mResources = new ArrayList(); @@ -230,6 +234,7 @@ class SoundEffectsHelper { for (Resource res : mResources) { if (res.mSampleId != EFFECT_NOT_IN_SOUND_POOL) { mSoundPool.unload(res.mSampleId); + res.unload(); } } mSoundPool.release();