Implement 4.0 filters with hide action (#202)
* adding new "filtered" field for status * respect "hide" filter action on status * handling expire date for filter closes #161
This commit is contained in:
committed by
GitHub
parent
6107698a76
commit
6220ce6780
@@ -2,8 +2,10 @@ 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;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -21,6 +23,12 @@ 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;
|
||||
}
|
||||
for(Filter filter:filters){
|
||||
if(filter.matches(status))
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user