Better handling of filter expiration date (#212)
* Better handling of filter expiration date * Simplify Thread and Home Timeline filtering
This commit is contained in:
committed by
GitHub
parent
6220ce6780
commit
c3abf8c05c
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user