private void applyFilterOptions() {
        var iter = drawables.iterator();
        while (iter.hasNext()) {
            var drawable = iter.next();
            
            if (!filterOptions.regularExpression) {
                if (!filterOptions.name.equals("") && !drawable.name.contains(filterOptions.name.toLowerCase(Locale.ROOT))) {
                    iter.remove();
                    continue;
                }
            } else {
                if (!drawable.name.matches(filterOptions.name)) {
                    iter.remove();
                }
            }
            
            if (!filterOptions.custom) {
                if (drawable.type == DrawableType.CUSTOM) {
                    iter.remove();
                    continue;
                }
            }
            
            if (!filterOptions.ninePatch) {
                if (drawable.type == DrawableType.NINE_PATCH) {
                    iter.remove();
                    continue;
                }
            }
            
            if (!filterOptions.texture) {
                if (drawable.type == DrawableType.TEXTURE) {
                    iter.remove();
                    continue;
                }
            }
            
            if (!filterOptions.tiled) {
                if (drawable.type == DrawableType.TILED) {
                    iter.remove();
                    continue;
                }
            }
            
            if (!filterOptions.tinted) {
                if (drawable.type == DrawableType.TINTED || drawable.type == DrawableType.TINTED_FROM_COLOR_DATA || drawable.type == DrawableType.NINE_PATCH && (drawable.tint != null || drawable.tintName != null)) {
                    iter.remove();
                    continue;
                }
            }
            
            if (!filterOptions.tenPatch) {
                if (drawable.type == DrawableType.TENPATCH) {
                    iter.remove();
                    continue;
                }
            }
            
            if (!filterOptions.tvg) {
                if (drawable.type == DrawableType.TVG) {
                    iter.remove();
                    continue;
                }
            }
    
            if (!filterOptions.pixel) {
                if (drawable.type == DrawableType.PIXEL) {
                    iter.remove();
                    continue;
                }
            }
            
            if (!filterOptions.hidden) {
                if (drawable.hidden) {
                    iter.remove();
                }
            }
            
            if (!filterOptions.font && drawable.type == DrawableType.FONT) {
                iter.remove();
            }
        }
    }
Sorts by selected sort order and populates the list.
core/src/com/ray3k/skincomposer/dialog/DialogDrawables.java