Fix buttons

pull/1261/head
andrew 2 years ago
parent d0415c5bf1
commit fbb2172739

@ -80,8 +80,6 @@ import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
class MessageDetailActivity : PassphraseRequiredActionBarActivity() { class MessageDetailActivity : PassphraseRequiredActionBarActivity() {
private var timestamp: Long = 0L
@Inject @Inject
lateinit var storage: Storage lateinit var storage: Storage
@ -101,7 +99,7 @@ class MessageDetailActivity : PassphraseRequiredActionBarActivity() {
title = resources.getString(R.string.conversation_context__menu_message_details) title = resources.getString(R.string.conversation_context__menu_message_details)
intent.getLongExtra(MESSAGE_TIMESTAMP, -1L).let(viewModel::setMessageTimestamp) viewModel.timestamp = intent.getLongExtra(MESSAGE_TIMESTAMP, -1L)
ComposeView(this) ComposeView(this)
.apply { setContent { MessageDetailsScreen() } } .apply { setContent { MessageDetailsScreen() } }
@ -135,7 +133,7 @@ class MessageDetailActivity : PassphraseRequiredActionBarActivity() {
} }
private fun setResultAndFinish(code: Int) { private fun setResultAndFinish(code: Int) {
Bundle().apply { putLong(MESSAGE_TIMESTAMP, timestamp) } Bundle().apply { putLong(MESSAGE_TIMESTAMP, viewModel.timestamp) }
.let(Intent()::putExtras) .let(Intent()::putExtras)
.let { setResult(code, it) } .let { setResult(code, it) }

@ -46,31 +46,33 @@ class MessageDetailsViewModel @Inject constructor(
private val event = Channel<Event>() private val event = Channel<Event>()
val eventFlow = event.receiveAsFlow() val eventFlow = event.receiveAsFlow()
fun setMessageTimestamp(timestamp: Long) { var timestamp: Long = 0L
val record = mmsSmsDatabase.getMessageForTimestamp(timestamp) set(value) {
field = value
val record = mmsSmsDatabase.getMessageForTimestamp(timestamp)
if (record == null) {
viewModelScope.launch { event.send(Event.Finish) }
return
}
if (record == null) { val mmsRecord = record as? MmsMessageRecord
viewModelScope.launch { event.send(Event.Finish) }
return state.value = record.run {
} val slides = mmsRecord?.slideDeck?.slides ?: emptyList()
val mmsRecord = record as? MmsMessageRecord MessageDetailsState(
attachments = slides.map(::Attachment),
state.value = record.run { record = record,
val slides = mmsRecord?.slideDeck?.slides ?: emptyList() sent = dateSent.let(::Date).toString().let { TitledText(R.string.message_details_header__sent, it) },
received = dateReceived.let(::Date).toString().let { TitledText(R.string.message_details_header__received, it) },
MessageDetailsState( error = lokiMessageDatabase.getErrorMessage(id)?.let { TitledText(R.string.message_details_header__error, it) },
attachments = slides.map(::Attachment), senderInfo = individualRecipient.run { name?.let { TitledText(it, address.serialize()) } },
record = record, sender = individualRecipient,
sent = dateSent.let(::Date).toString().let { TitledText(R.string.message_details_header__sent, it) }, thread = threadDb.getRecipientForThreadId(threadId)!!,
received = dateReceived.let(::Date).toString().let { TitledText(R.string.message_details_header__received, it) }, )
error = lokiMessageDatabase.getErrorMessage(id)?.let { TitledText(R.string.message_details_header__error, it) }, }
senderInfo = individualRecipient.run { name?.let { TitledText(it, address.serialize()) } },
sender = individualRecipient,
thread = threadDb.getRecipientForThreadId(threadId)!!,
)
} }
}
private val Slide.details: List<TitledText> private val Slide.details: List<TitledText>
get() = listOfNotNull( get() = listOfNotNull(

Loading…
Cancel
Save