Better handling of filter expiration date (#212)

* Better handling of filter expiration date
* Simplify Thread and Home Timeline filtering
This commit is contained in:
Thiago 'Jedi' Abreu
2022-12-29 09:32:22 -03:00
committed by GitHub
parent 6220ce6780
commit c3abf8c05c
4 changed files with 29 additions and 30 deletions

View File

@@ -2,7 +2,6 @@ package org.joinmastodon.android.utils;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.model.Filter;
import org.joinmastodon.android.model.FilterResult;
import org.joinmastodon.android.model.Status;
import java.time.Instant;
@@ -23,11 +22,15 @@ public class StatusFilterPredicate implements Predicate<Status>{
@Override
public boolean test(Status status){
for(FilterResult filterResult:status.filtered){
if (filterResult.filter.expiresAt.isAfter(Instant.now()))
continue;
if (filterResult.filter.filterAction.equals("hide"))
return false;
if(status.filtered!=null){
if (status.filtered.isEmpty()){
return true;
}
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);
return !matches;
}
for(Filter filter:filters){
if(filter.matches(status))