public static List<CacheAttribute> getAttributesByCategoryAndConnector(final CacheAttributeCategory cac, final int sources) {
        final boolean showGc = AttributesFilterViewHolder.isAttributeFilterSourcesGC(sources);
        final boolean showOc = AttributesFilterViewHolder.isAttributeFilterSourcesOkapi(sources);

        final List<CacheAttribute> filteredAttributes = new ArrayList<>();
        final List<CacheAttribute> unfilteredAttributes;
        if (cac == null) {
            unfilteredAttributes = Arrays.asList(CacheAttribute.values());
        } else {
            unfilteredAttributes = getByCategory(cac);
        }
        for (CacheAttribute ca : unfilteredAttributes) {
            if (showGc && ca.gcid > -1 && ca.gcid < 100) {
                filteredAttributes.add(ca);
            } else if (showOc && ca.ocacode > -1) {
                filteredAttributes.add(ca);
            }
        }
        return filteredAttributes;
    }
Filter the list of attributes based on the associated connector
main/src/main/java/cgeo/geocaching/enumerations/CacheAttribute.java