diff --git a/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt b/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt index fec7b330a1..7a90241b7f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/configs/ConfigToDatabaseSync.kt @@ -214,7 +214,7 @@ class ConfigToDatabaseSync @Inject constructor( } private val MmsMessageRecord.containsAttachment: Boolean - get() = this.slideDeck.slides.isNotEmpty() && this.slideDeck.audioSlide == null + get() = this.slideDeck.slides.isNotEmpty() && !this.slideDeck.isVoiceNote private data class UpdateContacts(val contacts: List) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt index dc6b05b444..43f5178e4f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/QuoteView.kt @@ -106,11 +106,8 @@ class QuoteView @JvmOverloads constructor(context: Context, attrs: AttributeSet? attachments.audioSlide != null -> { binding.quoteViewAttachmentPreviewImageView.setImageResource(R.drawable.ic_microphone) binding.quoteViewAttachmentPreviewImageView.isVisible = true - // A missing file name is the legacy way to determine if an audio attachment is - // a voice note vs. other arbitrary audio attachments. - val attachment = attachments.asAttachments().firstOrNull() - val isVoiceNote = attachment?.isVoiceNote == true || - attachment != null && attachment.fileName.isNullOrEmpty() + + val isVoiceNote = attachments.isVoiceNote binding.quoteViewBodyTextView.text = if (isVoiceNote) { resources.getString(R.string.messageVoice) } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.kt b/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.kt index d97fd94722..a26871831d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/Slide.kt @@ -48,7 +48,7 @@ abstract class Slide(@JvmField protected val context: Context, protected val att if (MediaUtil.isAudio(attachment)) { // A missing file name is the legacy way to determine if an audio attachment is // a voice note vs. other arbitrary audio attachments. - if (attachment.isVoiceNote || attachment.fileName.isNullOrEmpty()) { + if (attachment.isVoiceNote) { val voiceTxt = Phrase.from(context, R.string.messageVoiceSnippet) .put(EMOJI_KEY, "🎙") .format().toString() diff --git a/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java b/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java index ffe91704df..a559417e31 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mms/SlideDeck.java @@ -17,17 +17,12 @@ package org.thoughtcrime.securesms.mms; import android.content.Context; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; - import com.annimon.stream.Stream; - import org.session.libsession.messaging.sending_receiving.attachments.Attachment; -import org.session.libsignal.utilities.Log; import org.session.libsignal.utilities.guava.Optional; import org.thoughtcrime.securesms.util.MediaUtil; - import java.util.LinkedList; import java.util.List; import java.util.Objects; @@ -152,4 +147,15 @@ public class SlideDeck { public int hashCode() { return Objects.hash(slides); } + + public boolean isVoiceNote() { + List attachments = asAttachments(); + if (attachments.isEmpty()) { + return false; + } + + Attachment attachment = attachments.get(0); + return attachment.isVoiceNote(); + + } } diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/attachments/Attachment.java b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/attachments/Attachment.java index ddf21618e2..b8f8070d77 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/attachments/Attachment.java +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/attachments/Attachment.java @@ -120,7 +120,9 @@ public abstract class Attachment { } public boolean isVoiceNote() { - return voiceNote; + // A missing file name is the legacy way to determine if an audio attachment is + // a voice note vs. other arbitrary audio attachments. + return voiceNote || getFileName() == null || getFileName().isEmpty(); } public int getWidth() {