package ca.ualberta.cs.cmput301f14t14.questionapp.view; import java.io.File; import ca.ualberta.cs.cmput301f14t14.questionapp.MainActivity; import ca.ualberta.cs.cmput301f14t14.questionapp.R; import ca.ualberta.cs.cmput301f14t14.questionapp.data.ClientData; import ca.ualberta.cs.cmput301f14t14.questionapp.data.DataManager; import ca.ualberta.cs.cmput301f14t14.questionapp.model.Image; import ca.ualberta.cs.cmput301f14t14.questionapp.model.Question; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.Drawable; import android.location.Location; import android.location.LocationManager; import android.location.LocationProvider; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; import android.view.LayoutInflater; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; public class AddQuestionDialogFragment extends DialogFragment implements IView{ private LayoutInflater inflater; private View text; private Image img; @Override public void update() { // TODO Auto-generated method stub } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); final Context context = this.getActivity().getApplicationContext(); inflater = getActivity().getLayoutInflater(); text = inflater.inflate(R.layout.addquestiondialogfragmentlayout , null); builder.setView(text) .setPositiveButton(R.string.OK, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Create a new question from data given DataManager datamanager = DataManager.getInstance(context); EditText title = (EditText) text.findViewById(R.id.add_question_title); EditText body = (EditText) text.findViewById(R.id.add_question_body); CheckBox locationBox = (CheckBox) text.findViewById(R.id.questionLocationBox); String bd = body.getText().toString(); String tle = title.getText().toString(); Location loc = null; if (bd.isEmpty() || tle.isEmpty()) { Toast.makeText(getActivity(), "Questions must have both a valid title and a valid body", Toast.LENGTH_LONG).show(); return; } if(locationBox.isChecked()){ LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); if(lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){ loc = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); } else{ Toast.makeText(context, "Please enable GPS to use Location Service", Toast.LENGTH_SHORT).show(); } } MainActivity a = (MainActivity) getActivity(); ClientData cd = new ClientData(context); Question newQues = new Question(tle, bd, cd.getUsername(), a.img); newQues.setLocation(loc); datamanager.addQuestion(newQues, null); //Populate the list with what we have. a.updateList(newQues); } } ).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub //Do nothing } } ); return builder.create(); } public void onResume() { super.onResume(); MainActivity ma = (MainActivity) getActivity(); img = ma.img; if (img != null) { ImageView imgV = (ImageView) text.findViewById(R.id.imageView1); Bitmap bmp = img.getBitmap(); imgV.setImageBitmap(bmp); } } }