Add error

This commit is contained in:
andrew 2023-06-30 13:25:16 +09:30
parent 19b2c5ef97
commit 351b259449
1 changed files with 35 additions and 31 deletions

View File

@ -44,6 +44,7 @@ import org.thoughtcrime.securesms.ui.Cell
import org.thoughtcrime.securesms.ui.CellWithPadding import org.thoughtcrime.securesms.ui.CellWithPadding
import org.thoughtcrime.securesms.ui.ItemButton import org.thoughtcrime.securesms.ui.ItemButton
import org.thoughtcrime.securesms.ui.LocalExtraColors import org.thoughtcrime.securesms.ui.LocalExtraColors
import org.thoughtcrime.securesms.ui.colorDestructive
import org.thoughtcrime.securesms.ui.destructiveButtonColors import org.thoughtcrime.securesms.ui.destructiveButtonColors
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
@ -72,11 +73,12 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
class MessageDetailsViewModel: ViewModel() { class MessageDetailsViewModel: ViewModel() {
fun setMessageRecord(value: MessageRecord?) { fun setMessageRecord(value: MessageRecord?, error: String?) {
_details.value = value?.run { _details.value = value?.run {
MessageDetails( MessageDetails(
sent = dateSent.let(::Date).toString().let { TitledText("Sent:", it) }, sent = dateSent.let(::Date).toString().let { TitledText("Sent:", it) },
received = dateReceived.let(::Date).toString().let { TitledText("Received:", it) }, received = dateReceived.let(::Date).toString().let { TitledText("Received:", it) },
error = error?.let { TitledText("Error:", it) },
senderInfo = individualRecipient.run { name?.let { TitledText(it, address.serialize()) } }, senderInfo = individualRecipient.run { name?.let { TitledText(it, address.serialize()) } },
sender = individualRecipient sender = individualRecipient
) )
@ -97,7 +99,9 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
return return
} }
viewModel.setMessageRecord(messageRecord) val error = DatabaseComponent.get(this).lokiMessageDatabase().getErrorMessage(messageRecord!!.getId())
viewModel.setMessageRecord(messageRecord, error)
title = resources.getString(R.string.conversation_context__menu_message_details) title = resources.getString(R.string.conversation_context__menu_message_details)
@ -135,6 +139,7 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
val fileDetails: List<TitledText>? = null, val fileDetails: List<TitledText>? = null,
val sent: TitledText? = null, val sent: TitledText? = null,
val received: TitledText? = null, val received: TitledText? = null,
val error: TitledText? = null,
val senderInfo: TitledText? = null, val senderInfo: TitledText? = null,
val sender: Recipient? = null val sender: Recipient? = null
) )
@ -143,16 +148,19 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
@Composable @Composable
fun PreviewMessageDetails() { fun PreviewMessageDetails() {
MessageDetails( MessageDetails(
fileDetails = listOf( MessageDetails(
TitledText("File Id:", "1237896548514214124235985214"), fileDetails = listOf(
TitledText("File Type:", ".PNG"), TitledText("File Id:", "1237896548514214124235985214"),
TitledText("File Size:", "6mb"), TitledText("File Type:", ".PNG"),
TitledText("Resolution:", "550x550"), TitledText("File Size:", "6mb"),
TitledText("Duration:", "N/A"), TitledText("Resolution:", "550x550"),
), TitledText("Duration:", "N/A"),
sent = TitledText("Sent:", "6:12 AM Tue, 09/08/2022"), ),
received = TitledText("Received:", "6:12 AM Tue, 09/08/2022"), sent = TitledText("Sent:", "6:12 AM Tue, 09/08/2022"),
senderInfo = TitledText("Connor", "d4f1g54sdf5g1d5f4g65ds4564df65f4g65d54gdfsg") received = TitledText("Received:", "6:12 AM Tue, 09/08/2022"),
error = TitledText("Error:", "Message failed to send"),
senderInfo = TitledText("Connor", "d4f1g54sdf5g1d5f4g65ds4564df65f4g65d54gdfsg")
)
) )
} }
@ -186,20 +194,19 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
Column(verticalArrangement = Arrangement.spacedBy(16.dp)) { Column(verticalArrangement = Arrangement.spacedBy(16.dp)) {
sent?.let { titledText(it) } sent?.let { titledText(it) }
received?.let { titledText(it) } received?.let { titledText(it) }
error?.let { titledText(it, valueStyle = LocalTextStyle.current.copy(color = colorDestructive)) }
senderInfo?.let { senderInfo?.let {
titledView("From:") { titledView("From:") {
Row { Row {
Box( sender?.let {
modifier = Modifier.align(Alignment.CenterVertically) Box(modifier = Modifier.width(60.dp).align(Alignment.CenterVertically)) {
.width(60.dp) AndroidView(
.height(60.dp) factory = { ProfilePictureView(it).apply { update(sender) } },
) { modifier = Modifier
AndroidView( .width(46.dp)
factory = { ProfilePictureView(it).apply { sender?.let(::update) } }, .height(46.dp)
modifier = Modifier.align(Alignment.Center) )
.width(46.dp) }
.height(46.dp)
)
} }
Column { Column {
titledText(it, valueStyle = LocalTextStyle.current.copy(fontFamily = FontFamily.Monospace)) titledText(it, valueStyle = LocalTextStyle.current.copy(fontFamily = FontFamily.Monospace))
@ -213,14 +220,11 @@ class MessageDetailActivity: PassphraseRequiredActionBarActivity() {
Column { Column {
ItemButton("Reply", R.drawable.ic_message_details__reply, onClick = onReply) ItemButton("Reply", R.drawable.ic_message_details__reply, onClick = onReply)
Divider() Divider()
ItemButton("Resend", R.drawable.ic_message_details__refresh, onClick = onResend) if (error != null) {
Divider() ItemButton("Resend", R.drawable.ic_message_details__refresh, onClick = onResend)
ItemButton( Divider()
"Delete", }
R.drawable.ic_message_details__trash, ItemButton("Delete", R.drawable.ic_message_details__trash, colors = destructiveButtonColors(), onClick = onDelete)
colors = destructiveButtonColors(),
onClick = onDelete
)
} }
} }
} }