From 9533b4f45daf870ccfb7f7ac31deb5a8bf65ebe3 Mon Sep 17 00:00:00 2001 From: Grishka Date: Sat, 21 Sep 2024 09:47:50 +0300 Subject: [PATCH] Fix layout for single-line notification header + inline status --- .../android/fragments/BaseNotificationsListFragment.java | 4 +++- .../ui/displayitems/InlineStatusStatusDisplayItem.java | 3 ++- .../main/res/layout/display_item_notification_header.xml | 6 +++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseNotificationsListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseNotificationsListFragment.java index f54009323..30914d612 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseNotificationsListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseNotificationsListFragment.java @@ -39,7 +39,9 @@ public abstract class BaseNotificationsListFragment extends BaseStatusListFragme } if(n.status!=null){ if(titleItem!=null && n.notification.type!=NotificationType.STATUS){ - return List.of(titleItem, new InlineStatusStatusDisplayItem(n.getID(), this, n.status)); + InlineStatusStatusDisplayItem inlineItem=new InlineStatusStatusDisplayItem(n.getID(), this, n.status); + inlineItem.removeTopPadding=true; + return List.of(titleItem, inlineItem); }else{ ArrayList items=StatusDisplayItem.buildItems(this, n.status, accountID, n, knownAccounts, 0); if(titleItem!=null) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/InlineStatusStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/InlineStatusStatusDisplayItem.java index 13afb01de..4242d10f1 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/InlineStatusStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/InlineStatusStatusDisplayItem.java @@ -29,6 +29,7 @@ public class InlineStatusStatusDisplayItem extends StatusDisplayItem{ private SpannableStringBuilder parsedName; private SpannableStringBuilder parsedPostText; private UrlImageLoaderRequest avaRequest; + public boolean removeTopPadding; public InlineStatusStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, Status status){ super(parentID, parentFragment); @@ -85,7 +86,7 @@ public class InlineStatusStatusDisplayItem extends StatusDisplayItem{ @Override public void onBind(InlineStatusStatusDisplayItem item){ - itemView.setPaddingRelative(V.dp(item.fullWidth ? 16 : 64), itemView.getPaddingTop(), itemView.getPaddingEnd(), itemView.getPaddingBottom()); + itemView.setPaddingRelative(V.dp(item.fullWidth ? 16 : 64), item.removeTopPadding ? 0 : V.dp(8), itemView.getPaddingEnd(), itemView.getPaddingBottom()); name.setText(item.parsedName); username.setText(item.status.account.getDisplayUsername()); if(item.parsedPostText.length()==0){ diff --git a/mastodon/src/main/res/layout/display_item_notification_header.xml b/mastodon/src/main/res/layout/display_item_notification_header.xml index 6d0918e78..f70e9c525 100644 --- a/mastodon/src/main/res/layout/display_item_notification_header.xml +++ b/mastodon/src/main/res/layout/display_item_notification_header.xml @@ -5,7 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingHorizontal="16dp" - android:paddingTop="12dp"> + android:paddingTop="12dp" + android:clipToPadding="false">