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.Literature; import com.myMinistry.provider.MinistryDatabase; import com.myMinistry.provider.MinistryService; public class PublicationDialogFragment extends DialogFragment { public static final String TAG = makeLogTag(PublicationDialogFragment.class); public static final String ARG_PUBLICATION_TYPE_ID = "publication_type_id"; public static final String ARG_PUBLICATION_NAME = "publication_name"; private LiteratureDialogFragmentListener sListener; public static int CREATE_ID = MinistryDatabase.CREATE_ID; MinistryService database; private int litType = CREATE_ID; private DialogItemAdapter adapter; public static PublicationDialogFragment newInstance(int _typeID, String _name) { PublicationDialogFragment frag = new PublicationDialogFragment(); Bundle args = new Bundle(); args.putInt(ARG_PUBLICATION_TYPE_ID, _typeID); args.putString(ARG_PUBLICATION_NAME, _name); frag.setArguments(args); return frag; } public interface LiteratureDialogFragmentListener { public void literatureDialogFragmentSet(int _ID, String _name, int _typeID); } public void setLiteratureFragmentListener(LiteratureDialogFragmentListener listener){ sListener = listener; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { adapter = new DialogItemAdapter(getActivity().getApplicationContext()); String name = getActivity().getApplicationContext().getString(R.string.navdrawer_item_publications); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); database = new MinistryService(getActivity()); Bundle args = getArguments(); if(args != null) { if(args.containsKey(ARG_PUBLICATION_TYPE_ID)) litType = args.getInt(ARG_PUBLICATION_TYPE_ID, 0); if(args.containsKey(ARG_PUBLICATION_NAME)) name = args.getString(ARG_PUBLICATION_NAME); } adapter.addItem(new NavDrawerMenuItem(getActivity().getApplicationContext().getString(R.string.menu_add_new_with_plus), Helper.getIconResIDByLitTypeID(litType), CREATE_ID)); database.openWritable(); final Cursor cursor = database.fetchLiteratureByType(litType); while(cursor.moveToNext()) adapter.addItem(new NavDrawerMenuItem(cursor.getString(cursor.getColumnIndex(Literature.NAME)), Helper.getIconResIDByLitTypeID(litType), cursor.getInt(cursor.getColumnIndex(Literature._ID)))); cursor.close(); database.close(); builder.setTitle(name); builder.setAdapter(adapter, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { sListener.literatureDialogFragmentSet(adapter.getItem(which).getID(), adapter.getItem(which).toString(), litType); } }); return builder.create(); } }