From 6cd722dbef7d171d9f71c84ece1385c5e238450a Mon Sep 17 00:00:00 2001 From: sk Date: Thu, 16 Mar 2023 19:22:58 +0100 Subject: [PATCH] improve pre draw listener --- .../ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java index d64f49a64..22ca15e57 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java @@ -84,6 +84,7 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{ public static class Holder extends StatusDisplayItem.Holder implements ImageLoaderViewHolder{ private final TextView text, extraText; private final View separator; + private int currentOrientation = -1; public Holder(Activity activity, ViewGroup parent){ super(activity, R.layout.display_item_reblog_or_reply_line, parent); @@ -94,6 +95,8 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{ itemView.getViewTreeObserver().addOnPreDrawListener(() -> { if (item == null) return true; int orientation = ((LinearLayout) itemView).getOrientation(); + if (orientation == currentOrientation) return true; // only run once + currentOrientation = orientation; extraText.setPaddingRelative(extraText.getPaddingStart(), item.extra != null && orientation == LinearLayout.VERTICAL ? 0 : V.dp(16), extraText.getPaddingEnd(), extraText.getPaddingBottom()); separator.setVisibility(item.extra != null && orientation == LinearLayout.HORIZONTAL ? View.VISIBLE : View.GONE); ((LinearLayout) itemView).removeView(extraText);