diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java index 95646ef687..123a5a4a88 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlaybackPreparer.java @@ -97,9 +97,6 @@ final class VoiceNotePlaybackPreparer implements MediaSessionConnector.PlaybackP canLoadMore = false; latestUri = uri; - queueDataAdapter.clear(); - dataSource.clear(); - SimpleTask.run(EXECUTOR, () -> { if (singlePlayback) { @@ -110,7 +107,12 @@ final class VoiceNotePlaybackPreparer implements MediaSessionConnector.PlaybackP }, descriptions -> { if (Util.hasItems(descriptions) && Objects.equals(latestUri, uri)) { - applyDescriptionsToQueue(descriptions); + synchronized (queueDataAdapter) { + queueDataAdapter.clear(); + dataSource.clear(); + + applyDescriptionsToQueue(descriptions); + } int window = Math.max(0, queueDataAdapter.indexOf(uri));