Cleanup ViewModel

This commit is contained in:
andrew 2023-07-09 23:31:43 +09:30
parent d8b85768d2
commit bbc9cdfeeb
1 changed files with 14 additions and 15 deletions

View File

@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.conversation.v2
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAttachment import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAttachment
import org.session.libsession.utilities.Util import org.session.libsession.utilities.Util
@ -11,6 +10,7 @@ import org.session.libsession.utilities.recipients.Recipient
import org.thoughtcrime.securesms.database.AttachmentDatabase import org.thoughtcrime.securesms.database.AttachmentDatabase
import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.database.model.MessageRecord
import org.thoughtcrime.securesms.database.model.MmsMessageRecord import org.thoughtcrime.securesms.database.model.MmsMessageRecord
import org.thoughtcrime.securesms.mms.ImageSlide
import org.thoughtcrime.securesms.mms.Slide import org.thoughtcrime.securesms.mms.Slide
import java.util.* import java.util.*
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
@ -32,12 +32,14 @@ data class MessageDetails(
data class Attachment( data class Attachment(
val slide: Slide, val slide: Slide,
val fileDetails: List<TitledText> val fileDetails: List<TitledText>
) ) {
fun hasImage() = slide is ImageSlide
}
@HiltViewModel @HiltViewModel
class MessageDetailsViewModel @Inject constructor( class MessageDetailsViewModel @Inject constructor(
private val attachmentDb: AttachmentDatabase private val attachmentDb: AttachmentDatabase
): ViewModel() { ) : ViewModel() {
fun setMessageRecord(record: MessageRecord?, error: String?) { fun setMessageRecord(record: MessageRecord?, error: String?) {
val mmsRecord = record as? MmsMessageRecord val mmsRecord = record as? MmsMessageRecord
@ -77,16 +79,13 @@ class MessageDetailsViewModel @Inject constructor(
private fun AttachmentDatabase.duration(slide: Slide): String? = private fun AttachmentDatabase.duration(slide: Slide): String? =
slide.takeIf { it.hasAudio() } slide.takeIf { it.hasAudio() }
?.run { asAttachment() as? DatabaseAttachment } ?.run { asAttachment() as? DatabaseAttachment }
?.run { ?.run { getAttachmentAudioExtras(attachmentId)?.durationMs }
getAttachmentAudioExtras(attachmentId) ?.takeIf { it > 0 }
?.let { audioExtras -> ?.let {
audioExtras.durationMs.takeIf { it > 0 }?.let { String.format(
String.format( "%01d:%02d",
"%01d:%02d", TimeUnit.MILLISECONDS.toMinutes(it),
TimeUnit.MILLISECONDS.toMinutes(it), TimeUnit.MILLISECONDS.toSeconds(it) % 60
TimeUnit.MILLISECONDS.toSeconds(it) % 60 )
)
}
}
} }
} }