package cgeo.geocaching.filter;
import cgeo.geocaching.R;
import cgeo.geocaching.models.Geocache;
import cgeo.geocaching.models.Waypoint;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import java.util.Collections;
import java.util.List;
/**
* Filter {@link Geocache}s if they have a user defined {@link Waypoint}.
*
*/
public class OwnWaypointFilter extends AbstractFilter implements IFilterFactory {
public static final Creator<OwnWaypointFilter> CREATOR = new Parcelable.Creator<OwnWaypointFilter>() {
@Override
public OwnWaypointFilter createFromParcel(final Parcel in) {
return new OwnWaypointFilter(in);
}
@Override
public OwnWaypointFilter[] newArray(final int size) {
return new OwnWaypointFilter[size];
}
};
protected OwnWaypointFilter() {
super(R.string.caches_filter_own_waypoint);
}
protected OwnWaypointFilter(final Parcel in) {
super(in);
}
@Override
public boolean accepts(@NonNull final Geocache cache) {
for (final Waypoint waypoint : cache.getWaypoints()) {
if (waypoint.isUserDefined()) {
return true;
}
}
return false;
}
@Override
@NonNull
public List<IFilter> getFilters() {
return Collections.<IFilter> singletonList(this);
}
}