package com.boardgamegeek.export.model; import android.content.Context; import android.database.Cursor; import android.support.annotation.NonNull; import com.boardgamegeek.provider.BggContract.CollectionViews; import com.google.gson.annotations.Expose; import java.util.ArrayList; import java.util.List; public class CollectionView { public static final String[] PROJECTION = new String[] { CollectionViews._ID, CollectionViews.NAME, CollectionViews.SORT_TYPE, CollectionViews.STARRED }; private static final int _ID = 0; private static final int NAME = 1; private static final int SORT_TYPE = 2; private static final int STARRED = 3; private int id; @Expose private String name; @Expose private int sortType; @Expose private boolean starred; @Expose private List<Filter> filters; public String getName() { return name; } public int getSortType() { return sortType; } public boolean isStarred() { return starred; } public List<Filter> getFilters() { return filters; } @NonNull public static CollectionView fromCursor(@NonNull Cursor cursor) { CollectionView cv = new CollectionView(); cv.id = cursor.getInt(_ID); cv.name = cursor.getString(NAME); cv.sortType = cursor.getInt(SORT_TYPE); cv.starred = cursor.getInt(STARRED) == 1; return cv; } public void addFilters(@NonNull Context context) { filters = new ArrayList<>(); final Cursor cursor = context.getContentResolver().query( CollectionViews.buildViewFilterUri(id), Filter.PROJECTION, null, null, null); if (cursor == null) { return; } try { while (cursor.moveToNext()) { Filter filter = Filter.fromCursor(cursor); filters.add(filter); } } finally { cursor.close(); } } }