From bf77b6ccc3cbdbe2a61cbb56e93a0df24850651d Mon Sep 17 00:00:00 2001 From: Reinaldo Neto Date: Thu, 10 Aug 2023 15:55:40 -0300 Subject: [PATCH] added the audio rate --- .../message/Components/Audio/AudioRate.tsx | 25 +++++++++++++++++++ .../message/Components/Audio/index.tsx | 7 +++++- .../message/Components/Audio/styles.ts | 13 ++++++++++ app/lib/constants/colors.ts | 9 +++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 app/containers/message/Components/Audio/AudioRate.tsx diff --git a/app/containers/message/Components/Audio/AudioRate.tsx b/app/containers/message/Components/Audio/AudioRate.tsx new file mode 100644 index 000000000..955fdd5f3 --- /dev/null +++ b/app/containers/message/Components/Audio/AudioRate.tsx @@ -0,0 +1,25 @@ +import React, { useState } from 'react'; +import { Text } from 'react-native'; + +import styles from './styles'; +import { useTheme } from '../../../../theme'; +import Touchable from '../../Touchable'; + +const AudioRate = ({ onChange }: { onChange: (value: number) => void }) => { + const [rate, setRate] = useState(1.0); + const { colors } = useTheme(); + + const onPress = () => { + const nextRate = rate === 2.0 ? 0.5 : rate + 0.5; + setRate(nextRate); + onChange(nextRate); + }; + + return ( + + {rate}x + + ); +}; + +export default AudioRate; diff --git a/app/containers/message/Components/Audio/index.tsx b/app/containers/message/Components/Audio/index.tsx index 220a67303..31eea7823 100644 --- a/app/containers/message/Components/Audio/index.tsx +++ b/app/containers/message/Components/Audio/index.tsx @@ -19,6 +19,7 @@ import { fetchAutoDownloadEnabled } from '../../../../lib/methods/autoDownloadPr import styles from './styles'; import Slider from './Slider'; import Loading from './Loading'; +import AudioRate from './AudioRate'; interface IButton { loading: boolean; @@ -129,6 +130,10 @@ const MessageAudio = ({ file, getCustomEmoji, author, isReply, style }: IMessage } }; + const setRate = async (value = 1.0) => { + await sound.current?.setRateAsync(value, true); + }; + const handleDownload = async () => { setLoading(true); try { @@ -249,7 +254,7 @@ const MessageAudio = ({ file, getCustomEmoji, author, isReply, style }: IMessage >