diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index 4f3f29d7c..ad08fb703 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -718,10 +718,14 @@ public abstract class BaseStatusListFragment exten } if (startIndex!=-1 && endIndex!=-1) { - ArrayList items=StatusDisplayItem.buildItems(this, status, accountID, status, knownAccounts, null, 0); + //Only StatusListFragments can display Status/Quotes + assert this instanceof StatusListFragment; + List items=((StatusListFragment) this).buildDisplayItems(status); displayItems.subList(startIndex, endIndex+1).clear(); + boolean isEmpty=displayItems.isEmpty(); displayItems.addAll(startIndex, items); - adapter.notifyItemRangeChanged(startIndex, items.size()); + if(!isEmpty) + adapter.notifyItemRangeChanged(startIndex, items.size()); } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index f7b42b7df..68d4950ef 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -338,7 +338,7 @@ public abstract class StatusDisplayItem{ if(!statusForContent.mediaAttachments.isEmpty() && statusForContent.poll==null) // add spacing if immediately preceded by attachment contentItems.add(new DummyStatusDisplayItem(parentID, fragment)); contentItems.addAll(buildItems(fragment, statusForContent.quote, accountID, parentObject, knownAccounts, filterContext, FLAG_NO_FOOTER|FLAG_INSET|FLAG_NO_EMOJI_REACTIONS|FLAG_IS_FOR_QUOTE)); - } else { + } else if((flags & FLAG_INSET)==0){ tryAddNonOfficialQuote(statusForContent, fragment, accountID); } if(contentItems!=items && statusForContent.spoilerRevealed){ @@ -431,12 +431,8 @@ public abstract class StatusDisplayItem{ @Override public void onSuccess(SearchResults results){ if (!results.statuses.isEmpty()){ - Status quote=results.statuses.get(0); - // don't show self-referential quotes - if(!Objects.equals(status.id, results.statuses.get(0).id)){ - status.quote=quote; - fragment.updateStatusWithQuote(status); - } + status.quote=results.statuses.get(0); + fragment.updateStatusWithQuote(status); } }