package com.biznow.ordernow.fragments; import java.util.HashMap; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import com.biznow.ordernow.R; import com.biznow.ordernow.model.FoodMenuItem; import com.biznow.ordernow.model.MyOrderItem; public class AddNoteDialogFragment extends DialogFragment { private static final String TEXT_COMMENT = "TextComment"; public static final String SPICE_LEVEL = "SpiceLevel"; private static final String ITEM = "Item"; private static final String ORDER_ITEM = "OrderItem"; AddNoteListener numCallBack; private FoodMenuItem foodMenuItem; private static HashMap<String, Integer> spiceLevels = new HashMap<String, Integer>(); { spiceLevels.put("Low", R.id.low); spiceLevels.put("Medium", R.id.meduim); spiceLevels.put("High", R.id.high); } @Override public void onAttach(android.app.Activity activity) { super.onAttach(activity); try { numCallBack = (AddNoteListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement Listeners!!"); } ; }; public static AddNoteDialogFragment newInstance(FoodMenuItem foodMenuItem, MyOrderItem myOrderItem) { AddNoteDialogFragment imt = new AddNoteDialogFragment(); Bundle b = new Bundle(); b.putSerializable(ITEM, foodMenuItem); b.putSerializable(ORDER_ITEM, myOrderItem); imt.setArguments(b); return imt; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getActivity().getLayoutInflater(); foodMenuItem = (FoodMenuItem) getArguments().getSerializable(ITEM); MyOrderItem myOrderItem = (MyOrderItem) getArguments().getSerializable(ORDER_ITEM); // Inflate and set the layout for the dialog // Pass null as the parent view because its going in the dialog layout final View view = inflater.inflate(R.layout.add_note_dialog, null); builder.setView(view); final RadioGroup radioGroup = (RadioGroup) view.findViewById(R.id.spiceLevel); final EditText editText = (EditText) view.findViewById(R.id.notes); final HashMap<String, String> metaData = myOrderItem.getMetaData(); if (metaData != null) { editText.setText(metaData.get(TEXT_COMMENT)); if(metaData.get(SPICE_LEVEL) != null) { RadioButton findViewById = (RadioButton) view.findViewById(spiceLevels.get(metaData.get(SPICE_LEVEL))); findViewById.setChecked(true); } } // Add action buttons builder.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId(); RadioButton radioButton = (RadioButton) view.findViewById(checkedRadioButtonId); HashMap<String, String> metaData = new HashMap<String, String>(); String dishSpiceLevel = null; if (radioButton != null && radioButton.getText() != null){ dishSpiceLevel = (String) radioButton.getText(); } metaData.put(SPICE_LEVEL, dishSpiceLevel); metaData.put(TEXT_COMMENT, editText.getText().toString()); numCallBack.saveNote(foodMenuItem, metaData); } }); builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // LoginDialogFragment.this.getDialog().cancel(); } }); return builder.create(); } }