diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt
index 60bcc32f9a..afae348583 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt
@@ -115,6 +115,7 @@ class VisibleMessageView : LinearLayout {
binding.root.disableClipping()
binding.mainContainer.disableClipping()
binding.messageInnerContainer.disableClipping()
+ binding.messageInnerLayout.disableClipping()
binding.messageContentView.root.disableClipping()
}
// endregion
@@ -238,7 +239,19 @@ class VisibleMessageView : LinearLayout {
}
private fun showStatusMessage(message: MessageRecord) {
- if (message.isOutgoing) {
+ val disappearing = message.expiresIn > 0
+
+ binding.messageInnerLayout.apply {
+ layoutParams = layoutParams.let { it as FrameLayout.LayoutParams }
+ .apply { gravity = if (message.isOutgoing) Gravity.END else Gravity.START }
+ }
+
+ binding.statusContainer.apply {
+ layoutParams = layoutParams.let { it as ConstraintLayout.LayoutParams }
+ .apply { horizontalBias = if (message.isOutgoing) 1f else 0f }
+ }
+
+ if (message.isOutgoing || disappearing) {
val (iconID, iconColor, textId, contentDescription) = getMessageStatusImage(message)
textId?.let(binding.messageStatusTextView::setText)
iconColor?.let(binding.messageStatusTextView::setTextColor)
@@ -248,12 +261,13 @@ class VisibleMessageView : LinearLayout {
binding.messageStatusImageView.contentDescription = contentDescription
val lastMessageID = mmsSmsDb.getLastMessageID(message.threadId)
+ val isLastMessage = message.id == lastMessageID
binding.messageStatusTextView.isVisible =
- textId != null && (!message.isSent || message.id == lastMessageID)
+ textId != null && (!message.isSent || isLastMessage || disappearing)
binding.messageStatusImageView.isVisible =
- iconID != null && (!message.isSent || message.id == lastMessageID)
+ iconID != null && (!message.isSent || isLastMessage || disappearing)
- updateExpirationTimer(message, iconColor)
+ if (disappearing && !message.isPending) updateExpirationTimer(message, iconColor)
} else {
binding.messageStatusTextView.isVisible = false
binding.messageStatusImageView.isVisible = false
@@ -312,7 +326,7 @@ class VisibleMessageView : LinearLayout {
context.getColor(R.color.accent_orange), R.string.delivery_status_syncing,
context.getString(R.string.AccessibilityId_message_sent_status_syncing)
)
- message.isRead ->
+ message.isRead || !message.isOutgoing ->
MessageStatusInfo(
R.drawable.ic_delivery_status_read,
context.getColorFromAttr(R.attr.message_status_color), R.string.delivery_status_read,
@@ -328,19 +342,9 @@ class VisibleMessageView : LinearLayout {
}
private fun updateExpirationTimer(message: MessageRecord, iconColor: Int?) {
- messageContentView.layoutParams = (messageContentView.layoutParams as FrameLayout.LayoutParams)
- .apply { gravity = if (message.isOutgoing) Gravity.END else Gravity.START }
-
- val container = binding.messageInnerContainer
- container.layoutParams = (container.layoutParams as ConstraintLayout.LayoutParams)
- .apply { horizontalBias = if (message.isOutgoing) 1f else 0f }
-
val expirationTimerView = ExpirationTimerView(binding.messageStatusImageView, iconColor)
- // container.layoutParams = containerParams
if (message.expiresIn > 0) {
- // expirationTimerView.setColorFilter(context.getColorFromAttr(android.R.attr.textColorPrimary))
- // expirationTimerView.isInvisible = false
expirationTimerView.setPercentComplete(0.0f)
if (message.expireStarted > 0) {
expirationTimerView.setExpirationTime(message.expireStarted, message.expiresIn)
@@ -359,10 +363,7 @@ class VisibleMessageView : LinearLayout {
expirationManager.scheduleDeletion(id, mms, message.expiresIn)
}
}
- } else {
- // expirationTimerView.isInvisible = true
}
- container.requestLayout()
}
private fun handleIsSelectedChanged() {
diff --git a/app/src/main/res/layout/view_visible_message.xml b/app/src/main/res/layout/view_visible_message.xml
index db0119a44f..6dbb7e4a47 100644
--- a/app/src/main/res/layout/view_visible_message.xml
+++ b/app/src/main/res/layout/view_visible_message.xml
@@ -115,10 +115,18 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/senderNameTextView">
-
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+
+
+
-
-
-
+ app:layout_constraintStart_toStartOf="@id/messageInnerContainer"
+ app:layout_constraintHorizontal_bias="1"
+ app:layout_constraintEnd_toEndOf="parent">
+
+
+
+
+
+