package novoda.android.typewriter.loader; import android.content.Context; import android.net.Uri; import android.support.v4.content.AsyncTaskLoader; import novoda.android.typewriter.content.TypedResolver; public class TypedElementLoader<T> extends AsyncTaskLoader<T> { private final Class<T> what; Uri uri; String[] projection; String selection; String[] selectionArgs; String sortOrder; public Uri getUri() { return uri; } public void setUri(Uri uri) { this.uri = uri; } public String[] getProjection() { return projection; } public void setProjection(String[] projection) { this.projection = projection; } public String getSelection() { return selection; } public void setSelection(String selection) { this.selection = selection; } public String[] getSelectionArgs() { return selectionArgs; } public void setSelectionArgs(String[] selectionArgs) { this.selectionArgs = selectionArgs; } public String getSortOrder() { return sortOrder; } public void setSortOrder(String sortOrder) { this.sortOrder = sortOrder; } public TypedElementLoader(Context context, Class<T> what, Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { super(context); this.what = what; this.uri = uri; this.projection = projection; this.selection = selection; this.selectionArgs = selectionArgs; this.sortOrder = sortOrder; } public TypedElementLoader(Context context, Class<T> what) { super(context); this.what = what; } @Override public T loadInBackground() { return new TypedResolver(getContext().getContentResolver()).get(uri, projection, selection, selectionArgs, what); } }