package com.myMinistry.dialogfragments;
import static com.myMinistry.util.LogUtils.makeLogTag;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import com.myMinistry.Helper;
import com.myMinistry.R;
import com.myMinistry.adapters.DialogItemAdapter;
import com.myMinistry.model.NavDrawerMenuItem;
import com.myMinistry.provider.MinistryContract.LiteratureType;
import com.myMinistry.provider.MinistryDatabase;
import com.myMinistry.provider.MinistryService;
public class PublicationTypeDialogFragment extends DialogFragment {
public static final String TAG = makeLogTag(PublicationTypeDialogFragment.class);
public static final String ARG_SHOW_FLOW = "show_flow";
private LiteratureTypeDialogFragmentListener sListener;
private DialogItemAdapter adapter;
private boolean showFlow = false;
public static PublicationTypeDialogFragment newInstance(boolean _showFlow) {
PublicationTypeDialogFragment frag = new PublicationTypeDialogFragment();
Bundle args = new Bundle();
args.putBoolean(ARG_SHOW_FLOW, _showFlow);
frag.setArguments(args);
return frag;
}
public interface LiteratureTypeDialogFragmentListener {
public void LiteratureTypeDialogFragmentListenerSet(int _ID, String _name);
}
public void setLiteratureTypeDialogFragmentListener(LiteratureTypeDialogFragmentListener listener){
sListener = listener;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
MinistryService database = new MinistryService(getActivity());
adapter = new DialogItemAdapter(getActivity().getApplicationContext());
Bundle args = getArguments();
if(args != null) {
if(args.containsKey(ARG_SHOW_FLOW))
showFlow = args.getBoolean(ARG_SHOW_FLOW, false);
}
database.openWritable();
final Cursor cursor = database.fetchActiveTypesOfLiterature();
while(cursor.moveToNext())
adapter.addItem(new NavDrawerMenuItem(cursor.getString(cursor.getColumnIndex(LiteratureType.NAME)), Helper.getIconResIDByLitTypeID(cursor.getInt(cursor.getColumnIndex(LiteratureType._ID))), cursor.getInt(cursor.getColumnIndex(LiteratureType._ID))));
cursor.close();
database.close();
builder.setTitle(getActivity().getApplicationContext().getString(R.string.navdrawer_item_publications));
builder.setAdapter(adapter, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sListener.LiteratureTypeDialogFragmentListenerSet(adapter.getItem(which).getID(), adapter.getItem(which).toString());
}
});
if(showFlow) {
builder.setNegativeButton(R.string.menu_no_publications, new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
sListener.LiteratureTypeDialogFragmentListenerSet(MinistryDatabase.CREATE_ID, "");
}
});
}
return builder.create();
}
}