From 0ca2c781c3653b9902290ee968c7dc3448138b26 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 8 Oct 2020 16:29:13 -0400 Subject: [PATCH] Only show the delivery status icon for 'sending' on remote deletes. --- .../components/ConversationItemFooter.java | 35 +++++++++++++++---- .../conversation/ConversationItem.java | 3 ++ .../ConversationListItem.java | 21 ++++++++--- 3 files changed, 48 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java index 260d6be6c..683d66817 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java @@ -35,6 +35,7 @@ public class ConversationItemFooter extends LinearLayout { private ExpirationTimerView timerView; private ImageView insecureIndicatorView; private DeliveryStatusView deliveryStatusView; + private boolean onlyShowSendingStatus; public ConversationItemFooter(Context context) { super(context); @@ -93,6 +94,11 @@ public class ConversationItemFooter extends LinearLayout { deliveryStatusView.setTint(color); } + public void setOnlyShowSendingStatus(boolean onlyShowSending, MessageRecord messageRecord) { + this.onlyShowSendingStatus = onlyShowSending; + presentDeliveryStatus(messageRecord); + } + private void presentDate(@NonNull MessageRecord messageRecord, @NonNull Locale locale) { dateView.forceLayout(); if (messageRecord.isFailed()) { @@ -173,14 +179,29 @@ public class ConversationItemFooter extends LinearLayout { } private void presentDeliveryStatus(@NonNull MessageRecord messageRecord) { - if (!messageRecord.isFailed() && !messageRecord.isPendingInsecureSmsFallback()) { - if (!messageRecord.isOutgoing()) deliveryStatusView.setNone(); - else if (messageRecord.isPending()) deliveryStatusView.setPending(); - else if (messageRecord.isRemoteRead()) deliveryStatusView.setRead(); - else if (messageRecord.isDelivered()) deliveryStatusView.setDelivered(); - else deliveryStatusView.setSent(); - } else { + if (messageRecord.isFailed() || messageRecord.isPendingInsecureSmsFallback()) { deliveryStatusView.setNone(); + return; + } + + if (onlyShowSendingStatus) { + if (messageRecord.isOutgoing() && messageRecord.isPending()) { + deliveryStatusView.setPending(); + } else { + deliveryStatusView.setNone(); + } + } else { + if (!messageRecord.isOutgoing()) { + deliveryStatusView.setNone(); + } else if (messageRecord.isPending()) { + deliveryStatusView.setPending(); + } else if (messageRecord.isRemoteRead()) { + deliveryStatusView.setRead(); + } else if (messageRecord.isDelivered()) { + deliveryStatusView.setDelivered(); + } else { + deliveryStatusView.setSent(); + } } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index a4e90ecdd..e238be817 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -420,14 +420,17 @@ public class ConversationItem extends LinearLayout implements BindableConversati bodyBubble.getBackground().setColorFilter(defaultBubbleColor, PorterDuff.Mode.MULTIPLY); footer.setTextColor(ThemeUtil.getThemedColor(context, R.attr.conversation_item_sent_text_secondary_color)); footer.setIconColor(ThemeUtil.getThemedColor(context, R.attr.conversation_item_sent_icon_color)); + footer.setOnlyShowSendingStatus(false, messageRecord); } else if (messageRecord.isRemoteDelete() || (isViewOnceMessage(messageRecord) && ViewOnceUtil.isViewed((MmsMessageRecord) messageRecord))) { bodyBubble.getBackground().setColorFilter(ThemeUtil.getThemedColor(context, R.attr.conversation_item_reveal_viewed_background_color), PorterDuff.Mode.MULTIPLY); footer.setTextColor(ThemeUtil.getThemedColor(context, R.attr.conversation_item_sent_text_secondary_color)); footer.setIconColor(ThemeUtil.getThemedColor(context, R.attr.conversation_item_sent_icon_color)); + footer.setOnlyShowSendingStatus(messageRecord.isRemoteDelete(), messageRecord); } else { bodyBubble.getBackground().setColorFilter(messageRecord.getRecipient().getColor().toConversationColor(context), PorterDuff.Mode.MULTIPLY); footer.setTextColor(ThemeUtil.getThemedColor(context, R.attr.conversation_item_received_text_secondary_color)); footer.setIconColor(ThemeUtil.getThemedColor(context, R.attr.conversation_item_received_text_secondary_color)); + footer.setOnlyShowSendingStatus(false, messageRecord); } outliner.setColor(ThemeUtil.getThemedColor(getContext(), R.attr.conversation_item_sent_text_secondary_color)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java index 5512bd40f..e8c59aa49 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListItem.java @@ -377,10 +377,23 @@ public final class ConversationListItem extends RelativeLayout } else { alertView.setNone(); - if (thread.isPending()) deliveryStatusIndicator.setPending(); - else if (thread.isRemoteRead()) deliveryStatusIndicator.setRead(); - else if (thread.isDelivered()) deliveryStatusIndicator.setDelivered(); - else deliveryStatusIndicator.setSent(); + if (thread.getExtra() != null && thread.getExtra().isRemoteDelete()) { + if (thread.isPending()) { + deliveryStatusIndicator.setPending(); + } else { + deliveryStatusIndicator.setNone(); + } + } else { + if (thread.isPending()) { + deliveryStatusIndicator.setPending(); + } else if (thread.isRemoteRead()) { + deliveryStatusIndicator.setRead(); + } else if (thread.isDelivered()) { + deliveryStatusIndicator.setDelivered(); + } else { + deliveryStatusIndicator.setSent(); + } + } } }