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:
Thiago 'Jedi' Abreu
2022-12-28 10:49:45 -03:00
committed by GitHub
parent 6107698a76
commit 6220ce6780
4 changed files with 20 additions and 0 deletions

View File

@@ -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;