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 b28bfe6d3..def56cee3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -502,6 +502,17 @@ public abstract class BaseStatusListFragment exten revealSpoiler(status, holder.getItemID()); } + protected void revealFiltered(Status status, String itemID){ + status.filterRevealed =true; + TextStatusDisplayItem.Holder text=findHolderOfType(itemID, TextStatusDisplayItem.Holder.class); + if(text!=null) + adapter.notifyItemChanged(text.getAbsoluteAdapterPosition()-getMainAdapterOffset()); + HeaderStatusDisplayItem.Holder header=findHolderOfType(itemID, HeaderStatusDisplayItem.Holder.class); + if(header!=null) + header.rebind(); + updateImagesSpoilerState(status, itemID); + } + protected void revealSpoiler(Status status, String itemID){ status.spoilerRevealed=true; TextStatusDisplayItem.Holder text=findHolderOfType(itemID, TextStatusDisplayItem.Holder.class); diff --git a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java index 74770e073..4ff431bf5 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/model/Status.java +++ b/mastodon/src/main/java/org/joinmastodon/android/model/Status.java @@ -61,7 +61,7 @@ public class Status extends BaseModel implements DisplayItemsParent{ public transient boolean spoilerRevealed; public transient boolean hasGapAfter; - public transient boolean showFiltered = true; + public transient boolean filterRevealed = true; private transient String strippedText; @Override diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java index c9a4d3596..ab59812a3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/TextStatusDisplayItem.java @@ -113,6 +113,24 @@ public class TextStatusDisplayItem extends StatusDisplayItem{ @Override public void onBind(TextStatusDisplayItem item){ + if(!item.status.filterRevealed){ +// text.setVisibility(View.GONE); +// spoilerTitle.setVisibility(View.GONE); +// spoilerTitleInline.setVisibility(View.GONE); +// spoilerHeader.setVisibility(View.GONE); +// spoilerOverlay.setVisibility(View.GONE); +// borderTop.setVisibility(View.GONE); +// borderBottom.setVisibility(View.GONE); +// textWrap.setVisibility(View.GONE); +// translateWrap.setVisibility(View.GONE); +// translateButton.setVisibility(View.GONE); +// translateInfo.setVisibility(View.GONE); +// translateProgress.setVisibility(View.GONE); + itemView.setVisibility(View.GONE); + return; + }else{ + itemView.setVisibility(View.VISIBLE); + } text.setText(item.translated ? HtmlParser.parse(item.translation.content, item.status.emojis, item.status.mentions, item.status.tags, item.parentFragment.getAccountID()) : item.text); diff --git a/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java b/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java index ee8f55d4c..043c275fa 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java +++ b/mastodon/src/main/java/org/joinmastodon/android/utils/StatusFilterPredicate.java @@ -29,7 +29,16 @@ public class StatusFilterPredicate implements Predicate{ boolean matches=status.filtered.stream() .map(filterResult->filterResult.filter) .filter(filter->filter.expiresAt==null||filter.expiresAt.isAfter(Instant.now())) - .anyMatch(filter->filter.filterAction==Filter.FilterAction.HIDE || filter.filterAction==Filter.FilterAction.WARN); + .anyMatch(filter->filter.filterAction==Filter.FilterAction.HIDE); + +// boolean filteredWithWarning=status.filtered.stream() +// .map(filterResult->filterResult.filter) +// .filter(filter->filter.expiresAt==null||filter.expiresAt.isAfter(Instant.now())) +// .anyMatch(filter->filter.filterAction==Filter.FilterAction.WARN); +// +// if(filteredWithWarning){ +// status.filterRevealed = false; +// } return !matches; } for(Filter filter:filters){ diff --git a/mastodon/src/main/res/layout/display_item_header.xml b/mastodon/src/main/res/layout/display_item_header.xml index fce17769a..0a45f57e8 100644 --- a/mastodon/src/main/res/layout/display_item_header.xml +++ b/mastodon/src/main/res/layout/display_item_header.xml @@ -143,4 +143,44 @@ + + + + +