From 184c4d5d3ef58758f8ec4b99a38ba58533c532f8 Mon Sep 17 00:00:00 2001 From: Warrick Corfe-Tan Date: Fri, 25 Jun 2021 10:18:53 +1000 Subject: [PATCH] Audio autoplay stop when sent from a different user. --- .../session/conversation/SessionMessagesList.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ts/components/session/conversation/SessionMessagesList.tsx b/ts/components/session/conversation/SessionMessagesList.tsx index bfaa4d3fb..fff6a69a1 100644 --- a/ts/components/session/conversation/SessionMessagesList.tsx +++ b/ts/components/session/conversation/SessionMessagesList.tsx @@ -279,7 +279,21 @@ export class SessionMessagesList extends React.Component { const playNextMessage = (index: any) => { let nextIndex: number | null = index - 1; - if (index <= 0 || messages.length < index - 1) { + // to prevent autoplaying as soon as a message is received. + const latestMessagePlayed = index <= 0 || messages.length < index - 1; + if (latestMessagePlayed) { + nextIndex = null; + this.setState({ + nextMessageToPlay: nextIndex, + }); + return; + } + + // stop auto-playing when the audio messages change author. + const prevAuthorNumber = messages[index].propsForMessage.authorPhoneNumber; + const nextAuthorNumber = messages[index - 1].propsForMessage.authorPhoneNumber; + const differentAuthor = prevAuthorNumber !== nextAuthorNumber; + if (differentAuthor) { nextIndex = null; }