package com.robotoworks.example.recipes;
import android.content.Context;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.widget.TextView;
import com.robotoworks.example.recipes.content.RecipesDBContract.RecipesWithAuthors;
import com.robotoworks.mechanoid.db.SQuery;
public class RecipesWithAuthorListFragment extends ListFragment {
private RecipesCursorAdapter mAdapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mAdapter = new RecipesCursorAdapter(getActivity());
setListAdapter(mAdapter);
getLoaderManager().initLoader(0, null, mLoaderCallbacks);
}
class RecipesCursorAdapter extends SimpleCursorAdapter {
public RecipesCursorAdapter(Context context) {
super(context,
R.layout.item_recipe_with_authors, null,
new String[] {
RecipesWithAuthors.RECIPE_TITLE,
RecipesWithAuthors.RECIPE_DESCRIPTION,
RecipesWithAuthors.AUTHOR_NAME
},
new int[] {
R.id.title,
R.id.description,
R.id.recipe_author
}, 0);
}
@Override
public void setViewText(TextView v, String text) {
if(v.getId() == R.id.recipe_author) {
v.setText(getString(R.string.author_name_format, text));
return;
}
super.setViewText(v, text);
}
}
LoaderManager.LoaderCallbacks<Cursor> mLoaderCallbacks =
new LoaderManager.LoaderCallbacks<Cursor>() {
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return SQuery.newQuery().createSupportLoader(
RecipesWithAuthors.CONTENT_URI,
new String[] {
RecipesWithAuthors._ID,
RecipesWithAuthors.RECIPE_TITLE,
RecipesWithAuthors.RECIPE_DESCRIPTION,
RecipesWithAuthors.AUTHOR_NAME
});
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
mAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.swapCursor(null);
}
};
}