From cdb122d3d1000d86a62266ab57f96eabeaeb4523 Mon Sep 17 00:00:00 2001 From: Moxie Marlinspike Date: Mon, 30 Nov 2015 10:36:56 -0800 Subject: [PATCH] Reposition thumbnail when in archived view Fixes #4744 // FREEBIE --- .../securesms/ConversationListItem.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/org/thoughtcrime/securesms/ConversationListItem.java b/src/org/thoughtcrime/securesms/ConversationListItem.java index 366b09158c..ce80d4ae2c 100644 --- a/src/org/thoughtcrime/securesms/ConversationListItem.java +++ b/src/org/thoughtcrime/securesms/ConversationListItem.java @@ -27,6 +27,7 @@ import android.os.Handler; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.util.AttributeSet; +import android.util.Log; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; @@ -164,6 +165,7 @@ public class ConversationListItem extends RelativeLayout LayoutParams subjectParams = (RelativeLayout.LayoutParams)this.subjectView.getLayoutParams(); subjectParams.addRule(RelativeLayout.LEFT_OF, R.id.thumbnail); this.subjectView.setLayoutParams(subjectParams); + this.post(new ThumbnailPositioner(thumbnailView, archivedView, dateView)); } else { this.thumbnailView.setVisibility(View.GONE); @@ -198,4 +200,30 @@ public class ConversationListItem extends RelativeLayout }); } + private static class ThumbnailPositioner implements Runnable { + + private final View thumbnailView; + private final View archivedView; + private final View dateView; + + public ThumbnailPositioner(View thumbnailView, View archivedView, View dateView) { + this.thumbnailView = thumbnailView; + this.archivedView = archivedView; + this.dateView = dateView; + } + + @Override + public void run() { + LayoutParams thumbnailParams = (RelativeLayout.LayoutParams)thumbnailView.getLayoutParams(); + + if (archivedView.getVisibility() == View.VISIBLE && archivedView.getWidth() > dateView.getWidth()) { + thumbnailParams.addRule(RelativeLayout.LEFT_OF, R.id.archived); + } else { + thumbnailParams.addRule(RelativeLayout.LEFT_OF, R.id.date); + } + + thumbnailView.setLayoutParams(thumbnailParams); + } + } + }