diff --git a/CHANGELOG.md b/CHANGELOG.md
index 548f85372..24d9f9c0b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Added support for custom fonts
- Added "Copy number to clipboard" option inside chat overflow menu ([#651])
+- Added inline audio player for MMS attachments
### Changed
- Improved multi-message copy formatting with timestamps and sender names
diff --git a/app/src/main/kotlin/org/fossify/messages/adapters/AttachmentsAdapter.kt b/app/src/main/kotlin/org/fossify/messages/adapters/AttachmentsAdapter.kt
index 8c2018d90..1df6248fd 100644
--- a/app/src/main/kotlin/org/fossify/messages/adapters/AttachmentsAdapter.kt
+++ b/app/src/main/kotlin/org/fossify/messages/adapters/AttachmentsAdapter.kt
@@ -22,6 +22,7 @@ import org.fossify.commons.activities.BaseSimpleActivity
import org.fossify.commons.extensions.*
import org.fossify.messages.R
import org.fossify.messages.activities.VCardViewerActivity
+import org.fossify.messages.databinding.ItemAttachmentAudioPreviewBinding
import org.fossify.messages.databinding.ItemAttachmentDocumentPreviewBinding
import org.fossify.messages.databinding.ItemAttachmentMediaPreviewBinding
import org.fossify.messages.databinding.ItemAttachmentVcardPreviewBinding
@@ -53,6 +54,7 @@ class AttachmentsAdapter(
ATTACHMENT_DOCUMENT -> ItemAttachmentDocumentPreviewBinding.inflate(inflater, parent, false)
ATTACHMENT_VCARD -> ItemAttachmentVcardPreviewBinding.inflate(inflater, parent, false)
ATTACHMENT_MEDIA -> ItemAttachmentMediaPreviewBinding.inflate(inflater, parent, false)
+ ATTACHMENT_AUDIO -> ItemAttachmentAudioPreviewBinding.inflate(inflater, parent, false)
else -> throw IllegalArgumentException("Unknown view type: $viewType")
}
@@ -91,6 +93,13 @@ class AttachmentsAdapter(
binding = binding as ItemAttachmentMediaPreviewBinding,
attachment = attachment
)
+
+ ATTACHMENT_AUDIO -> {
+ (binding as ItemAttachmentAudioPreviewBinding).setupAudioPreview(
+ uri = attachment.uri,
+ onRemoveButtonClicked = { removeAttachment(attachment) }
+ )
+ }
}
}
}
diff --git a/app/src/main/kotlin/org/fossify/messages/adapters/ThreadAdapter.kt b/app/src/main/kotlin/org/fossify/messages/adapters/ThreadAdapter.kt
index 1151bc5d6..eb53f77c7 100644
--- a/app/src/main/kotlin/org/fossify/messages/adapters/ThreadAdapter.kt
+++ b/app/src/main/kotlin/org/fossify/messages/adapters/ThreadAdapter.kt
@@ -37,6 +37,7 @@ import org.fossify.commons.extensions.copyToClipboard
import org.fossify.commons.extensions.formatDateOrTime
import org.fossify.commons.extensions.getContrastColor
import org.fossify.commons.extensions.getProperPrimaryColor
+import org.fossify.commons.extensions.getProperTextColor
import org.fossify.commons.extensions.getTextSize
import org.fossify.commons.extensions.getTimeFormat
import org.fossify.commons.extensions.shareTextIntent
@@ -53,6 +54,7 @@ import org.fossify.messages.activities.ThreadActivity
import org.fossify.messages.activities.VCardViewerActivity
import org.fossify.messages.databinding.ItemAttachmentDocumentBinding
import org.fossify.messages.databinding.ItemAttachmentImageBinding
+import org.fossify.messages.databinding.ItemAttachmentAudioBinding
import org.fossify.messages.databinding.ItemAttachmentVcardBinding
import org.fossify.messages.databinding.ItemMessageBinding
import org.fossify.messages.databinding.ItemThreadDateTimeBinding
@@ -65,6 +67,7 @@ import org.fossify.messages.dialogs.SelectTextDialog
import org.fossify.messages.extensions.config
import org.fossify.messages.extensions.getContactFromAddress
import org.fossify.messages.extensions.isImageMimeType
+import org.fossify.messages.extensions.isPlayableAudioMimeType
import org.fossify.messages.extensions.isVCardMimeType
import org.fossify.messages.extensions.isVideoMimeType
import org.fossify.messages.extensions.launchViewIntent
@@ -78,6 +81,8 @@ import org.fossify.messages.helpers.THREAD_SENT_MESSAGE_ERROR
import org.fossify.messages.helpers.THREAD_SENT_MESSAGE_SENDING
import org.fossify.messages.helpers.THREAD_SENT_MESSAGE_SENT
import org.fossify.messages.helpers.generateStableId
+import org.fossify.messages.helpers.setupAudio
+import org.fossify.messages.helpers.setupAudioPreview
import org.fossify.messages.helpers.setupDocumentPreview
import org.fossify.messages.helpers.setupVCardPreview
import org.fossify.messages.models.Attachment
@@ -393,6 +398,8 @@ class ThreadAdapter(
val mimetype = attachment.mimetype
when {
mimetype.isImageMimeType() || mimetype.isVideoMimeType() -> setupImageView(holder, binding = this, message, attachment)
+ mimetype.isPlayableAudioMimeType() ->
+ setupAudioView(binding = this, attachment)
mimetype.isVCardMimeType() -> setupVCardView(holder, threadMessageAttachmentsHolder, message, attachment)
else -> setupFileView(holder, threadMessageAttachmentsHolder, message, attachment)
}
@@ -538,6 +545,16 @@ class ThreadAdapter(
}
}
+ private fun setupAudioView(binding: ItemMessageBinding, attachment: Attachment) = binding.apply {
+ val uri = attachment.getUri()
+
+ val audioView = ItemAttachmentAudioBinding.inflate(layoutInflater).apply {
+ setupAudio(uri = uri)
+ }.root
+
+ threadMessageAttachmentsHolder.addView(audioView)
+ }
+
private fun setupVCardView(holder: ViewHolder, parent: LinearLayout, message: Message, attachment: Attachment) {
val uri = attachment.getUri()
val vCardView = ItemAttachmentVcardBinding.inflate(layoutInflater).apply {
diff --git a/app/src/main/kotlin/org/fossify/messages/extensions/String.kt b/app/src/main/kotlin/org/fossify/messages/extensions/String.kt
index bb32dadda..f06c5336e 100644
--- a/app/src/main/kotlin/org/fossify/messages/extensions/String.kt
+++ b/app/src/main/kotlin/org/fossify/messages/extensions/String.kt
@@ -32,6 +32,34 @@ fun String.isAudioMimeType(): Boolean {
return lowercase().startsWith("audio")
}
+private val playableAudioMimeTypes = setOf(
+ "audio/aac",
+ "audio/mp4",
+ "audio/mp4a-latm",
+ "audio/mpeg",
+ "audio/3gpp",
+ "audio/3gpp2",
+ "audio/amr",
+ "audio/amr-wb",
+ "audio/flac",
+ "audio/ogg",
+ "audio/opus",
+ "audio/wav",
+ "audio/x-wav",
+ "audio/midi",
+ "audio/x-midi",
+ "audio/vorbis",
+ "audio/raw",
+ "audio/x-m4a",
+ "audio/m4a",
+ "audio/x-aac",
+ "audio/aac-adts",
+)
+
+fun String.isPlayableAudioMimeType(): Boolean {
+ return lowercase() in playableAudioMimeTypes
+}
+
fun String.isCalendarMimeType(): Boolean {
return lowercase().endsWith("calendar")
}
@@ -40,10 +68,6 @@ fun String.isPdfMimeType(): Boolean {
return lowercase().endsWith("pdf")
}
-fun String.isZipMimeType(): Boolean {
- return lowercase().endsWith("zip")
-}
-
fun String.isPlainTextMimeType(): Boolean {
return lowercase() == "text/plain"
}
diff --git a/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentPreviews.kt b/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentPreviews.kt
index 41d680f72..d9b5bfbb1 100644
--- a/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentPreviews.kt
+++ b/app/src/main/kotlin/org/fossify/messages/helpers/AttachmentPreviews.kt
@@ -3,10 +3,13 @@ package org.fossify.messages.helpers
import android.app.Activity
import android.net.Uri
import android.view.View
+import android.widget.SeekBar
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.SimpleContactsHelper
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.messages.R
+import org.fossify.messages.databinding.ItemAttachmentAudioBinding
+import org.fossify.messages.databinding.ItemAttachmentAudioPreviewBinding
import org.fossify.messages.databinding.ItemAttachmentDocumentBinding
import org.fossify.messages.databinding.ItemAttachmentDocumentPreviewBinding
import org.fossify.messages.databinding.ItemAttachmentVcardBinding
@@ -79,6 +82,117 @@ fun ItemAttachmentDocumentBinding.setupDocumentPreview(
}
}
+fun ItemAttachmentAudioPreviewBinding.setupAudioPreview(
+ uri: Uri,
+ onRemoveButtonClicked: (() -> Unit)? = null,
+) {
+ audioAttachmentHolder.setupAudio(uri)
+ removeAttachmentButtonHolder.removeAttachmentButton.apply {
+ beVisible()
+ background.applyColorFilter(context.getProperPrimaryColor())
+ if (onRemoveButtonClicked != null) {
+ setOnClickListener {
+ onRemoveButtonClicked.invoke()
+ }
+ }
+ }
+}
+
+fun ItemAttachmentAudioBinding.setupAudio(
+ uri: Uri,
+) {
+ val context = root.context
+
+ val textColor = context.getProperTextColor()
+ val primaryColor = context.getProperPrimaryColor()
+ var playIcon = org.fossify.commons.R.drawable.ic_play_vector
+ var pauseIcon = org.fossify.commons.R.drawable.ic_pause_vector
+
+ duration.setTextColor(textColor)
+ playButton.apply {
+ background.setTint(primaryColor)
+ contentDescription = context.getString(R.string.play)
+ }
+ progressBar.progressDrawable.setTint(primaryColor)
+ progressBar.thumb.setTint(primaryColor)
+
+ root.background.applyColorFilter(primaryColor.darkenColor())
+
+ AudioPlayerManager.getDurationMs(uri, context) { durationMs ->
+ progressBar.max = durationMs.toInt()
+ duration.text = formatMs(durationMs.toInt())
+ }
+
+ val audioListener = object : AudioPlayerManager.AudioPlayerListener {
+ override fun onPlaybackStateChanged(isPlaying: Boolean) {
+ playButton.apply {
+ setImageResource(if (isPlaying) pauseIcon else playIcon)
+ contentDescription = context.getString(if (isPlaying) R.string.pause else R.string.play)
+ }
+ }
+
+ override fun onProgressUpdated(positionMs: Int) {
+ progressBar.progress = positionMs
+ duration.text = formatMs(positionMs)
+ }
+
+ override fun onPlaybackCompleted() {
+ playButton.apply {
+ setImageResource(playIcon)
+ contentDescription = context.getString(R.string.play)
+ }
+ progressBar.progress = 0
+ }
+
+ override fun onPlaybackError() {
+ playButton.apply {
+ setImageResource(playIcon)
+ contentDescription = context.getString(R.string.play)
+ }
+ }
+ }
+
+ playButton.setOnClickListener {
+ AudioPlayerManager.togglePlay(uri, progressBar.progress, context, audioListener)
+ }
+
+ root.setOnClickListener {
+ AudioPlayerManager.togglePlay(uri, progressBar.progress, context, audioListener)
+ }
+
+ progressBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
+ override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
+ if (fromUser && AudioPlayerManager.isActive(audioListener)) {
+ AudioPlayerManager.seekTo(progress)
+ }
+ }
+
+ override fun onStartTrackingTouch(seekBar: SeekBar?) {
+ // Not required for this implementation
+ }
+
+ override fun onStopTrackingTouch(seekBar: SeekBar?) {
+ if (AudioPlayerManager.isActive(audioListener)) {
+ AudioPlayerManager.seekTo(progressBar.progress)
+ }
+ }
+ })
+
+ progressBar.addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ ->
+ val minBarWidth = context.resources.getDimensionPixelSize(R.dimen.audio_seekbar_min_width)
+ progressBar.beVisibleIf(progressBar.width >= minBarWidth)
+ }
+
+ root.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
+ override fun onViewAttachedToWindow(v: View) {
+ // Not required for this implementation
+ }
+ override fun onViewDetachedFromWindow(v: View) {
+ AudioPlayerManager.release(audioListener)
+ }
+ })
+}
+
fun ItemAttachmentVcardPreviewBinding.setupVCardPreview(
activity: Activity,
uri: Uri,
@@ -169,10 +283,19 @@ fun ItemAttachmentVcardBinding.setupVCardPreview(
}
}
+private const val SECONDS_PER_MINUTE = 60
+
+private fun formatMs(ms: Int): String {
+ val totalSeconds = ms / 1000
+ val minutes = totalSeconds / SECONDS_PER_MINUTE
+ val seconds = totalSeconds % SECONDS_PER_MINUTE
+ return "%d:%02d".format(minutes, seconds)
+}
+
private fun getIconResourceForMimeType(mimeType: String) = when {
mimeType.isAudioMimeType() -> R.drawable.ic_vector_audio_file
mimeType.isCalendarMimeType() -> R.drawable.ic_calendar_month_vector
mimeType.isPdfMimeType() -> R.drawable.ic_vector_pdf
- mimeType.isZipMimeType() -> R.drawable.ic_vector_folder_zip
+ mimeType.endsWith("zip", ignoreCase = true) -> R.drawable.ic_vector_folder_zip
else -> R.drawable.ic_document_vector
}
diff --git a/app/src/main/kotlin/org/fossify/messages/helpers/AudioPlayerManager.kt b/app/src/main/kotlin/org/fossify/messages/helpers/AudioPlayerManager.kt
new file mode 100644
index 000000000..38d41e5e1
--- /dev/null
+++ b/app/src/main/kotlin/org/fossify/messages/helpers/AudioPlayerManager.kt
@@ -0,0 +1,164 @@
+package org.fossify.messages.helpers
+
+import android.content.Context
+import android.media.MediaMetadataRetriever
+import android.media.MediaPlayer
+import android.net.Uri
+import android.os.Handler
+import android.os.Looper
+
+object AudioPlayerManager {
+ private const val PROGRESS_INTERVAL_MS = 200L
+
+ interface AudioPlayerListener {
+ fun onPlaybackStateChanged(isPlaying: Boolean)
+ fun onProgressUpdated(positionMs: Int)
+ fun onPlaybackCompleted()
+ fun onPlaybackError()
+ }
+
+ private var mediaPlayer: MediaPlayer? = null
+ private var currentUri: Uri? = null
+ private var activeListener: AudioPlayerListener? = null
+ private val handler = Handler(Looper.getMainLooper())
+ private var durationMs = 0
+
+ private val progressRunnable = object : Runnable {
+ override fun run() {
+ val mp = mediaPlayer ?: return
+
+ try {
+ val position = mp.currentPosition
+ activeListener?.onProgressUpdated(position)
+ } catch (_: Exception) {
+ }
+
+ handler.postDelayed(this, PROGRESS_INTERVAL_MS)
+ }
+ }
+
+ fun togglePlay(uri: Uri, positionMs: Int, context: Context, listener: AudioPlayerListener) {
+ val sameUri = currentUri == uri
+
+ if (sameUri && isPlaying()) {
+ try {
+ mediaPlayer?.pause()
+ activeListener?.onPlaybackStateChanged(false)
+ handler.removeCallbacks(progressRunnable)
+ } catch (_: Exception) {
+ }
+ return
+ }
+
+ if (sameUri && isPaused()) {
+ try {
+ mediaPlayer?.start()
+ activeListener?.onPlaybackStateChanged(true)
+ handler.post(progressRunnable)
+ } catch (_: Exception) {
+ }
+ return
+ }
+
+ activeListener?.onPlaybackStateChanged(false)
+ reset()
+ currentUri = uri
+ activeListener = listener
+ prepareAndPlay(uri, positionMs, context)
+ }
+
+ fun seekTo(positionMs: Int) {
+ try {
+ mediaPlayer?.seekTo(positionMs)
+ val position = mediaPlayer?.currentPosition ?: positionMs
+ activeListener?.onProgressUpdated(position)
+ } catch (_: Exception) {
+ }
+ }
+
+ fun getDurationMs(uri: Uri, context: Context, onResult: (Long) -> Unit) {
+ Thread {
+ try {
+ val retriever = MediaMetadataRetriever()
+ retriever.setDataSource(context, uri)
+ val durationStr = retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION)
+ retriever.release()
+ val durationMs = durationStr?.toLongOrNull() ?: 0L
+ handler.post { onResult(durationMs) }
+ } catch (_: Exception) {
+ handler.post { onResult(0L) }
+ }
+ }.start()
+ }
+
+ fun release(listener: AudioPlayerListener) {
+ if (activeListener === listener) {
+ stopAndRelease()
+ }
+ }
+
+ fun reset() {
+ stopAndRelease()
+ }
+
+ fun isPlaying(): Boolean {
+ return try {
+ mediaPlayer?.isPlaying == true
+ } catch (_: Exception) {
+ false
+ }
+ }
+
+ fun isActive(listener: AudioPlayerListener): Boolean = activeListener === listener
+
+ private fun isPaused(): Boolean {
+ return mediaPlayer != null && currentUri != null && !isPlaying()
+ }
+
+ private fun prepareAndPlay(uri: Uri, positionMs: Int, context: Context) {
+ try {
+ val mp = MediaPlayer().apply {
+ setOnPreparedListener {
+ durationMs = it.duration
+ activeListener?.onProgressUpdated(positionMs)
+ it.seekTo(positionMs)
+ it.start()
+ activeListener?.onPlaybackStateChanged(true)
+ handler.post(progressRunnable)
+ }
+ setOnCompletionListener {
+ activeListener?.onPlaybackCompleted()
+ stopAndRelease()
+ }
+ setOnErrorListener { _, _, _ ->
+ activeListener?.onPlaybackError()
+ stopAndRelease()
+ true
+ }
+ setDataSource(context, uri)
+ prepareAsync()
+ }
+ mediaPlayer = mp
+ } catch (_: Exception) {
+ activeListener?.onPlaybackError()
+ stopAndRelease()
+ }
+ }
+
+ private fun stopAndRelease() {
+ handler.removeCallbacks(progressRunnable)
+ try {
+ mediaPlayer?.apply {
+ if (isPlaying) stop()
+ reset()
+ release()
+ }
+ } catch (_: Exception) {
+ }
+ mediaPlayer = null
+ currentUri = null
+ activeListener = null
+ durationMs = 0
+ }
+
+}
diff --git a/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt
index 93f414f9c..6ad407feb 100644
--- a/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt
+++ b/app/src/main/kotlin/org/fossify/messages/helpers/Constants.kt
@@ -69,6 +69,7 @@ const val THREAD_KEY_MASK = (1L shl THREAD_KEY_BITS) - 1
const val ATTACHMENT_DOCUMENT = 7
const val ATTACHMENT_MEDIA = 8
const val ATTACHMENT_VCARD = 9
+const val ATTACHMENT_AUDIO = 10
// lock screen visibility constants
const val LOCK_SCREEN_SENDER_MESSAGE = 1
diff --git a/app/src/main/kotlin/org/fossify/messages/models/AttachmentSelection.kt b/app/src/main/kotlin/org/fossify/messages/models/AttachmentSelection.kt
index 2bb2d7319..99d28629f 100644
--- a/app/src/main/kotlin/org/fossify/messages/models/AttachmentSelection.kt
+++ b/app/src/main/kotlin/org/fossify/messages/models/AttachmentSelection.kt
@@ -2,11 +2,13 @@ package org.fossify.messages.models
import android.net.Uri
import org.fossify.messages.extensions.isImageMimeType
+import org.fossify.messages.extensions.isPlayableAudioMimeType
import org.fossify.messages.extensions.isVCardMimeType
import org.fossify.messages.extensions.isVideoMimeType
import org.fossify.messages.helpers.ATTACHMENT_DOCUMENT
import org.fossify.messages.helpers.ATTACHMENT_MEDIA
import org.fossify.messages.helpers.ATTACHMENT_VCARD
+import org.fossify.messages.helpers.ATTACHMENT_AUDIO
data class AttachmentSelection(
val id: String,
@@ -20,6 +22,7 @@ data class AttachmentSelection(
fun getViewTypeForMimeType(mimetype: String): Int {
return when {
mimetype.isImageMimeType() || mimetype.isVideoMimeType() -> ATTACHMENT_MEDIA
+ mimetype.isPlayableAudioMimeType() -> ATTACHMENT_AUDIO
mimetype.isVCardMimeType() -> ATTACHMENT_VCARD
else -> ATTACHMENT_DOCUMENT
}
diff --git a/app/src/main/res/layout/item_attachment_audio.xml b/app/src/main/res/layout/item_attachment_audio.xml
new file mode 100644
index 000000000..bac01a312
--- /dev/null
+++ b/app/src/main/res/layout/item_attachment_audio.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_attachment_audio_preview.xml b/app/src/main/res/layout/item_attachment_audio_preview.xml
new file mode 100644
index 000000000..a50982366
--- /dev/null
+++ b/app/src/main/res/layout/item_attachment_audio_preview.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 16ed68763..4d218e5b3 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -129,4 +129,6 @@
أنا
تفعيل الإشعارات المخصصة
حدّث الرسالة
+ تشغيل
+ إيقاف مؤقت
diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml
index d7773d3fc..d94502041 100644
--- a/app/src/main/res/values-be/strings.xml
+++ b/app/src/main/res/values-be/strings.xml
@@ -69,4 +69,6 @@
Памер MMS абмежаваны аператарамі сувязі, магчыма паспрабаваць зменьшыць ліміт у наладах прыкладання.
Вы ўпэўнены, што хаціце аднавіць %s?
Паведамленні
+ Прайграваць
+ Паўза
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index 52a7d5939..914ca6ef7 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -119,4 +119,6 @@
Ключови думи
Изнасяне на ключовите думи
Внасяне на ключови думи
+ Пускане
+ Пауза
diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml
index 5d055e0d4..8afb90071 100644
--- a/app/src/main/res/values-bn-rBD/strings.xml
+++ b/app/src/main/res/values-bn-rBD/strings.xml
@@ -116,4 +116,6 @@
অপঠিত হিসাবে চিহ্নিত করুন
আমি
Messages
+ চালান
+ বিরতি
\ No newline at end of file
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index 85170f62a..a5952286c 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -125,4 +125,6 @@
Mantén les converses arxivades
Per què les respostes dels missatges de grup apareixen com a textos individuals als destinataris?
Heu d\'activar «Envia missatges de grup com a MMS» a la configuració de l\'aplicació. Això assegurarà que els missatges de grup s\'envien com un MMS adient, permetent a tots els participants veure les respostes dels altres.
+ Reproduir
+ Pausa
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index b4dcbf5f8..a10810ee4 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -125,4 +125,6 @@
Ponechat konverzace archivované
Proč se odpovědi na skupinové zprávy příjemcům zobrazují jako jednotlivé textové zprávy?
V nastavení aplikace musíte povolit možnost „Odesílat skupinové zprávy jako MMS“. Tím zajistíte, že skupinové zprávy budou odesílány jako skutečné MMS, takže všichni účastníci uvidí odpovědi ostatních.
+ Přehrát
+ Pozastavit
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 374859ec7..be848260d 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -122,4 +122,6 @@
Hold samtaler arkiveret
Hvorfor vises mine svar i gruppebeskeder som individuelle beskeder for modtagerne?
Du skal aktivere \"Send gruppebeskeder som MMS\" i appindstillingerne. Det sikrer, at gruppebeskeder sendes som rigtige MMS\'er, så alle kan se hinandens svar.
+ Afspil
+ Pause
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 3182353d4..3959edb1d 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -122,4 +122,6 @@
Unterhaltungen archiviert lassen
Warum werden meine Antworten auf Gruppennachrichten den Empfängern als einzelne Textnachrichten angezeigt?
Du musst in den Einstellungen die Option „Gruppennachrichten als MMS versenden” aktivieren. Dadurch wird sichergestellt, dass Gruppennachrichten als richtige MMS gesendet werden, sodass alle Teilnehmer die Antworten der anderen sehen können.
+ Wiedergabe
+ Pause
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 73b1d2bb1..a35acac5e 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -122,4 +122,6 @@
Εισαγωγή αποκλεισμένων λέξεων-κλειδιών
Εξαγωγή αποκλεισμένων λέξεων-κλειδιών
Λέξεις κλειδιά
+ Αναπαραγωγή
+ Παύση
diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml
index d0db80f17..f9372449a 100644
--- a/app/src/main/res/values-en-rGB/strings.xml
+++ b/app/src/main/res/values-en-rGB/strings.xml
@@ -14,4 +14,6 @@
- %d message
- %d messages
+ Play
+ Pause
diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml
index a32a1d5fd..703277898 100644
--- a/app/src/main/res/values-eo/strings.xml
+++ b/app/src/main/res/values-eo/strings.xml
@@ -122,4 +122,6 @@
Gardi arkivigitajn konversaciojn
Kial miaj respondoj al mesaĝoj en grupoj aperas kiel unuopaj mesaĝoj por la ricevantoj?
Vi devas ŝalti «sendi grupajn mesaĝojn kiel MMS» en la aplikaĵaj agordoj. Tio certigos, ke grupaj mesaĝoj estos ĝuste senditaj kiel MMS kaj permesos, ke ĉiuj partoprenantoj vidu la respondojn de la aliaj.
+ Ludi
+ Paŭzi
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index a701caf73..a8a55e8d6 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -125,4 +125,6 @@
Mantener conversaciones archivadas
¿Por qué mis respuestas a los mensajes grupales aparecen como textos individuales para los destinatarios?
Necesitas habilitar \"Enviar mensajes grupales como MMS\" en la configuración de la aplicación. Esto asegurará que los mensajes grupales se envíen como MMS adecuados, permitiendo que todos los participantes vean las respuestas de los demás.
+ Reproducir
+ Pausa
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index 2d07ce2a5..84d3df39b 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -122,4 +122,6 @@
Hoia vestlused arhiveerituna
Miks minu grupivestluste vastused on saajatel nähtavad üksikute tekstidena?
Sa pead rakenduse seadistustest valima „Saada grupisõnumid MMS-idena“. See tagab korrektse MMS-vormingu kasutamise ja siis kõik osalejad näevad üksteise vastuseid.
+ Esita
+ Peata
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 2ca8e75e8..39c771bcf 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -122,4 +122,6 @@
Bai, aurrerago bidali beharreko mezuak antola ditzakezu Bidali botoia luze sakatuz eta nahi duzun data eta ordua hautatuta.
Zergatik agertzen zaie hartzaileei nire taldeko mezuen erantzunak banakako testu gisa?
Aplikazioaren ezarpenetan \"Bidali taldeko mezuak MMS gisa\" gaitu behar duzu. Honek taldeko mezuak MMS egoki gisa bidaliko direla ziurtatuko du, parte-hartzaile guztiek elkarren erantzunak ikusteko aukera emanez.
+ Erreproduzitu
+ Pausatu
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index 09d634a46..a13b59838 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -116,4 +116,6 @@
من
فقط فرستنده
ارسال پیام با کلید اینتر
+ پخش
+ توقف
\ No newline at end of file
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 4a2f4b9cf..317407b0e 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -122,4 +122,6 @@
Pidä keskustelut arkistoituna
Miksi ryhmäviestien vastaukset näkyvät vastaanottajille yksittäisinä tekstiviesteinä?
Sinun on otettava käyttöön ”Lähetä ryhmäviestit MMS-viesteinä” -asetus sovelluksen asetuksissa. Tämä varmistaa, että ryhmäviestit lähetetään oikeina MMS-viesteinä, jolloin kaikki osallistujat voivat nähdä toistensa vastaukset.
+ Toista
+ Tauko
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index d2c94fca0..af9f5fb89 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -125,4 +125,6 @@
Garder les conversations archivées
Vous devez sélectionner \"Envoyer les messages groupés en MMS\" dans les paramètres de l\'application. Cela garantie que les messages groupés soient envoyés comme MMS, ce qui permet à tous les participants de voir les réponses des autres.
Pourquoi mes réponses à des messages dans un groupe apparaissent comme messages individuels pour les destinataires ?
+ lire
+ mettre en pause
diff --git a/app/src/main/res/values-ga/strings.xml b/app/src/main/res/values-ga/strings.xml
index fdd46712d..83b0db6ad 100644
--- a/app/src/main/res/values-ga/strings.xml
+++ b/app/src/main/res/values-ga/strings.xml
@@ -131,4 +131,6 @@
Coinnigh comhráite cartlannaithe
Cén fáth a bhfuil freagraí mo theachtaireachtaí grúpa le feiceáil mar théacsanna aonair chuig faighteoirí?
Ní mór duit \"Seol teachtaireachtaí grúpa mar MMS\" a chumasú i socruithe an aip. Cinnteoidh sé seo go seolfar teachtaireachtaí grúpa mar MMS ceart, rud a ligfidh do na rannpháirtithe go léir freagraí a chéile a fheiceáil.
+ Seinn
+ Sos
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index b0ec07339..89031044b 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -122,4 +122,6 @@
Non se pode descargar o MMS
¿Por qué as miñas respostas a mensaxes de grupo aparecen como textos individuais aos destinatarios?
Precisas habilitar \"Enviar mensaxes de grupo como MMS\" na configuración do app. Isto asegurará que tales mensaxes se envíen como MMS axeitados, permitindo a todos os participantes ver as respostas dos demáis.
+ Reproducir
+ Pausa
diff --git a/app/src/main/res/values-gu/strings.xml b/app/src/main/res/values-gu/strings.xml
index 239185ce8..f8d75daf7 100644
--- a/app/src/main/res/values-gu/strings.xml
+++ b/app/src/main/res/values-gu/strings.xml
@@ -95,4 +95,6 @@
પાકુ તમને સંગ્રહાલય ખાલી કરવું છે? સંગ્રહિત કરેલા વાતચીતો સદા માટે જતા રહેશે.
સંદેશો
સંગ્રહાલય ખાલી કરી દીધું
+ ચલાવો
+ થોભો
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index d05252011..53c77e64b 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -119,4 +119,6 @@
अवरुद्ध शब्द निर्यात करें
अवरुद्ध शब्द आयात करें
प्रमुख शब्द
+ चलाएं
+ रोकें
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index e792f13e9..127f71375 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -125,4 +125,6 @@
Arhiviraj razgovore
Zašto se moji odgovori na grupne poruke primateljima prikazuju kao pojedinačne poruke?
U postavkama aplikacije morate omogućiti „Pošalji grupne poruka kao MMS”. To će osigurati da se grupne poruke šalju kao ispravni MMS, što će svim sudionicima omogućiti da vide međusobne odgovore.
+ Reproduciraj
+ Pauza
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index c70f3bfe1..067ca3777 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -119,4 +119,6 @@
Letiltott kulcsszavak importálása
Letiltott kulcsszavak exportálása
Kulcsszavak
+ Lejátszás
+ Szünet
\ No newline at end of file
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index 1c13e0ea7..9ac673029 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -119,4 +119,6 @@
Pertahankan percakapan yang diarsipkan
Mengapa balasan pesan grup saya muncul sebagai teks individual ke penerima?
Anda perlu mengaktifkan \"Kirim pesan grup sebagai MMS\" di pengaturan aplikasi. Ini akan memastikan bahwa pesan grup dikirim sebagai MMS yang tepat, memungkinkan semua peserta melihat balasan satu sama lain.
+ Putar
+ Jeda
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 57502704b..f122a1525 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -125,4 +125,6 @@
Mantieni le conversazioni archiviate
Perché le risposte ai miei messaggi di gruppo appaiono come messaggi individuali ai destinatari?
È necessario abilitare l\'opzione “Invia messaggi di gruppo come MMS” nelle impostazioni dell\'app. In questo modo i messaggi di gruppo verranno inviati come MMS, consentendo a tutti i partecipanti di vedere le risposte degli altri.
+ Riproduci
+ Pausa
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index dfcfb8d94..6a820204e 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -126,4 +126,6 @@
שמור את השיחות בארכיון
מדוע תשובות להודעות הקבוצתיות שלי מופיעות כהודעות טקסט אישיות לנמענים?
עליך להפעיל את האפשרות \"שליחת הודעות קבוצתיות כ-MMS\" בהגדרות האפליקציה. פעולה זו תבטיח שהודעות הקבוצה יישלחו כ-MMS תקינות, כך שכל המשתתפים יוכלו לראות את תשובותיהם של אחרים.
+ נגן
+ השהה
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 14b107e50..97c3c80ca 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -114,4 +114,6 @@
この会話の全てのメッセージを復元してよろしいですか?
MMSをダウンロードできませんでした
会話をアーカイブに保存する
+ 再生
+ 一時停止
diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml
index c6143a40c..fd4e9b5c6 100644
--- a/app/src/main/res/values-kab/strings.xml
+++ b/app/src/main/res/values-kab/strings.xml
@@ -116,4 +116,6 @@
Awal yufraren
D tidet tebɣiḍ ad yili d ilem uɣbaṛ ? Akk idiwenniyen n uɣbar ara ruḥen s wudem imezgi.
Ixef nniḍen ur d-ettaṭṭaf ara MMS, yella kra i zemreɣ ad t-xedmeɣ?
+ Urar
+ Asteɛfu
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 9696d5b0d..8ab5980f7 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -113,4 +113,6 @@
읽지 않음으로 표시
나
보관
+ 재생
+ 일시정지
\ No newline at end of file
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index 2c94393fd..1b8d6f0bc 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -94,4 +94,6 @@
- ir %d kiti
- ir %d kiti
+ Groti
+ Pristabdyti
diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml
index ce87adfc1..972145385 100644
--- a/app/src/main/res/values-lv/strings.xml
+++ b/app/src/main/res/values-lv/strings.xml
@@ -125,4 +125,6 @@
Paturēt sarunas arhivētas
Lietotnes iestatījumos nepieciešams iespējot “Nosūtīt kopu ziņas kā MMS”. Tas nodrošinās, ka kopu ziņas tiek pareizi nosūtītas kā MMS, ļaujot visiem dalībniekiem redzēt citam cita atbildes.
Kādēļ manas kopu ziņu atbildes saņēmējiem parādās kā atsevišķas īsziņas?
+ Atskaņot
+ Pauze
diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml
index 73e415fed..481026c19 100644
--- a/app/src/main/res/values-ml/strings.xml
+++ b/app/src/main/res/values-ml/strings.xml
@@ -45,4 +45,6 @@
സന്ദേശങ്ങൾ അയയ്ക്കുമ്പോൾ ഉച്ചാരണങ്ങളും ഡയക്രിറ്റിക്സും നീക്കംചെയ്യുക
എന്തുകൊണ്ടാണ് ആപ്പിന് ഇന്റർനെറ്റ് ആക്സസ് ആവശ്യമായി വരുന്നത്\?
നിർഭാഗ്യവശാൽ, MMS അറ്റാച്ചുമെന്റുകൾ അയക്കുന്നതിനു ഇത് ആവശ്യമാണ്. മറ്റ് ആപ്ലിക്കേഷനുകളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ MMS അയയ്ക്കാൻ കഴിയുന്നില്ല എന്നത് ഒരു വലിയ പോരായ്മയാണ്, അതിനാൽ ഞങ്ങൾ ഈ റൂട്ടിൽ പോകാൻ തീരുമാനിച്ചു. എന്നിരുന്നാലും, സാധാരണപോലെ, പരസ്യങ്ങളോ ട്രാക്കിംഗ് അല്ലെങ്കിൽ അനലിറ്റിക്സുകളോ ഇല്ല. ഇന്റർനെറ്റ് MMS അയയ്ക്കുന്നതിന് മാത്രമാണ് ഉപയോഗിക്കുന്നത്.
-
+ പ്ലേ
+ താൽക്കാലികമായി നിർത്തുക
+
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 535a02b1f..137e30dd8 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -116,4 +116,6 @@
Kunne ikke sende melding, operatørfeil
Kan ikke svare til kortnummer som dette
Kunne ikke sende melding, radio er avslått
+ Spill av
+ Pause
\ No newline at end of file
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 4b860cf7b..e47f21000 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -122,4 +122,6 @@
Gesprekken gearchiveerd houden
Waarom worden mijn groepsberichten als individuele berichten aan de ontvangers getoond?
Ga naar de app-instellingen en schakel \"Groepsberichten als MMS verzenden\" in. Hierdoor worden groepsberichten als MMS-berichten verzonden, zodat alle deelnemers elkaars antwoorden kunnen zien.
+ Afspelen
+ Pauzeren
diff --git a/app/src/main/res/values-pa-rPK/strings.xml b/app/src/main/res/values-pa-rPK/strings.xml
index f4c97c302..dd64ca410 100644
--- a/app/src/main/res/values-pa-rPK/strings.xml
+++ b/app/src/main/res/values-pa-rPK/strings.xml
@@ -55,4 +55,6 @@
میڈیا دیاں سنیہے ایمپورٹ کرو
کجھ چیز چݨیو
ایس اَیپ وچ سنیہاں دا تالکا کیہ اے؟
-
+ Play
+ Pause
+
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index f57550070..f5525d0cd 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -128,4 +128,6 @@
Pozostawiaj rozmowy zarchiwizowane
Dlaczego moje odpowiedzi na wiadomości grupowe pojawiają się jako wiadomości tekstowe dla indywidualnych odbiorców?
Musisz włączyć „Wysyłaj wiadomości grupowe jako MMS-y” w ustawieniach aplikacji. To zapewni, że wiadomości grupowe będą wysyłane jako MMS-y, pozwalając wszystkim uczestnikom widzieć odpowiedzi każdego z nich.
+ Odtwórz
+ Wstrzymaj
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index b4c2e1aee..3f947b605 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -125,4 +125,6 @@
Manter conversas arquivadas
Por que minhas respostas em mensagens de grupo aparecem como mensagens individuais para os destinatários?
Você precisa ativar a opção \"Enviar mensagens em grupo como MMS\" nas configurações do aplicativo. Isso garantirá que as mensagens em grupo sejam enviadas como MMS, permitindo que todos os participantes vejam as respostas uns dos outros.
+ Reproduzir
+ Pausar
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 3e329453e..372b337cc 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -125,4 +125,6 @@
Manter conversas arquivadas
Por que as minhas respostas a mensagens em grupo aparecem como mensagens individuais para os destinatários?
Tem de ativar a opção “Enviar mensagens em grupo como MMS” nas configurações da aplicação. Isso garantirá que as mensagens em grupo sejam enviadas como MMS adequadas, permitindo que todos os participantes vejam as respostas uns dos outros.
+ Reproduzir
+ Pausar
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 236ed4edb..4ce82de38 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -124,4 +124,6 @@
Importar palavras-chave
Manter conversas arquivadas
Por que as minhas respostas a mensagens em grupo aparecem como mensagens individuais para os destinatários?
+ Reproduzir
+ Pausar
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index 936b8e0fa..b5a07b8cd 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -119,4 +119,6 @@
Sigur dorești să golești arhiva? Toate conversațiile arhivate se vor pierde definitiv.
Anulează trimiterea programată
Nu se poate trimite mesaj la un număr gol
+ Redare
+ Pauză
\ No newline at end of file
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 5f0817b71..588ae6f28 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -128,4 +128,6 @@
Оставить переписки архивными
Почему мои ответы на групповые сообщения отображаются как отдельные для каждого получателя?
Включите функцию \"Отправлять групповые сообщения как MMS\" в настройках приложения. Это гарантирует, что групповые сообщения будут отправляться как MMS, позволяя всем участникам видеть ответы друг друга.
+ Воспроизвести
+ Пауза
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index f4f496e23..890af0a2e 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -122,4 +122,6 @@
Kľúčové slová
Exportovať zablokované kľúčové slová
Importovať zablokované kľúčové slová
+ Prehrať
+ Pozastaviť
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index a2ebc1455..7c4da2dcc 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -122,4 +122,6 @@
Ni mogoče odgovoriti na kratke kode, kot je ta
Sporočila ni bilo mogoče poslati, koda napake: %d
Sporočila ni bilo mogoče poslati, napaka operaterja
+ Predvajaj
+ Premor
\ No newline at end of file
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 47aced8a6..ef55c6e50 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -123,4 +123,6 @@
Кључне речи
Извези блокиране кључне речи
Увези блокиране кључне речи
+ Пусти
+ Пауза
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 0e24528c7..86dee935c 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -122,4 +122,6 @@
Håll konversationer arkiverade
Varför visas mina svar på gruppmeddelanden som enskilda sms för mottagarna?
Du måste aktivera \"Skicka gruppmeddelanden som mms\" i appinställningarna för att säkerställa att gruppmeddelanden skickas som riktiga mms, så att alla deltagare kan se varandras svar.
+ Spela
+ Pausa
diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml
index 4451f8449..8d8c8b7f1 100644
--- a/app/src/main/res/values-ta/strings.xml
+++ b/app/src/main/res/values-ta/strings.xml
@@ -72,4 +72,6 @@
தனிப்பயன் அறிவிப்புகளை இயக்கு
காப்பகப்படுத்தப்பட்ட அனைத்து உரையாடல்களையும் நீக்கு.
காப்பகப்படுத்தப்பட்ட உரையாடல்களைக் காட்டு
+ இயக்கு
+ இடைநிறுத்து
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 3d0166813..ad0e76d7f 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -122,4 +122,6 @@
Görüşmeleri arşivde tut
Uygulama ayarlarında \"Grup mesajlarını MMS olarak gönder\" seçeneğini açmanız gerekiyor. Bu, mesajların düzgün bir şekilde MMS olarak gönderildiğinden emin olarak tüm katılımcıların diğerlerinin cevaplarını görmelerine olanak sağlar.
Grup mesajı yanıtlarım neden alıcılara ayrı ayrı metinler olarak görünüyor?
+ Oynat
+ Duraklat
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index cbc10d47e..ee0b55f5f 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -128,4 +128,6 @@
Архівувати розмови
Чому мої відповіді на групові повідомлення відображаються для одержувачів як окремі текстові повідомлення?
Вам потрібно ввімкнути опцію «Надсилати групові повідомлення як MMS» у налаштуваннях програми. Це гарантуватиме, що групові повідомлення надсилатимуться як належні MMS, що дозволить усім учасникам бачити відповіді один одного.
+ Відтворити
+ Пауза
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index 04860fdcc..c08c4a0e6 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -119,4 +119,6 @@
Nhập từ khóa bị chặn
Tại sao tin nhắn nhóm của tôi lại hiển thị dưới dạng từng tin nhắn riêng với từng người nhận?
Bạn cần bật \"Gửi tin nhắn nhóm dưới dạng MMS\" trong cài đặt ứng dụng. Điều này sẽ đảm bảo rằng các tin nhắn nhóm được gửi đúng dưới dạng MMS, cho phép tất cả người tham gia xem được câu trả lời của nhau.
+ Phát
+ Tạm dừng
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index f07dd604e..4fea537d0 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -119,4 +119,6 @@
保持对话归档状态
为何我的群发信息对接收者来说显示为单独的短信?
您需要在应用设置中启用“将群发信息作为彩信发送”。这将确保群发信息以彩信形式发送,使所有参与者都能看到彼此的回复。
+ 播放
+ 暂停
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 63c7f1ad9..8f3185ecb 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -117,4 +117,6 @@
MMS 的大小受到電訊商的限制,您可以嘗試在應用程式設定中設定較小的限制。
應用程式是否支援排程訊息?
是的,您可以長按「送出」按鈕並選擇所需的日期和時間,以排程將訊息送出。
+ 播放
+ 暫停
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index b13f5c13c..1f8cf7be1 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -119,4 +119,6 @@
保留對話封存
為何我的群組訊息回覆會顯示為收件者的個別簡訊?
您需要在應用程式設定中啟用「將群組訊息以多媒體簡訊形式傳送」功能。此設定可確保群組訊息以正確的多媒體簡訊格式傳送,讓所有參與者都能看見彼此的回覆內容。
+ 播放
+ 暫停
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 324712d5e..77c36ff79 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -13,5 +13,6 @@
36dp
96dp
90dp
+ 90dp
250dp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 07213302a..eb79e465f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -139,6 +139,8 @@
Yes, you can schedule messages to be sent in the future by long pressing the Send button and picking the desired date and time.
Why do my group message replies appear as individual texts to recipients?
You need to enable \"Send group messages as MMS\" in the app settings. This will ensure that group messages are sent as proper MMS, allowing all participants to see each other\'s replies.
+ Play
+ Pause