1 package net.sf.openrocket.android.rocket;
\r
3 import java.util.Set;
\r
5 import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;
\r
6 import android.app.AlertDialog;
\r
7 import android.app.Dialog;
\r
8 import android.content.DialogInterface;
\r
9 import android.os.Bundle;
\r
11 import com.actionbarsherlock.app.SherlockDialogFragment;
\r
13 public class MissingMotorDialogFragment extends SherlockDialogFragment {
\r
15 private final static String MESSAGE_ARG_KEY = "message";
\r
17 public static MissingMotorDialogFragment newInstance( Set<ThrustCurveMotorPlaceholder> missingMotors ) {
\r
18 MissingMotorDialogFragment frag = new MissingMotorDialogFragment();
\r
19 Bundle b = new Bundle();
\r
20 b.putString(MESSAGE_ARG_KEY, buildMessage(missingMotors));
\r
21 frag.setArguments(b);
\r
25 private static String buildMessage( Set<ThrustCurveMotorPlaceholder> missingMotors ) {
\r
26 StringBuilder sb = new StringBuilder();
\r
27 sb.append("The following motors are missing:");
\r
28 for( ThrustCurveMotorPlaceholder m : missingMotors ) {
\r
29 sb.append("\n").append(m.getManufacturer()).append(" ").append(m.getDesignation());
\r
31 sb.append("\nWould you like to download them from Thrustcurve?");
\r
32 return sb.toString();
\r
36 public void onCreate(Bundle savedInstanceState) {
\r
37 super.onCreate(savedInstanceState);
\r
38 setRetainInstance(true);
\r
39 setCancelable(false);
\r
44 public Dialog onCreateDialog(Bundle savedInstanceState) {
\r
46 String message = getArguments().getString(MESSAGE_ARG_KEY);
\r
48 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
\r
49 // .setIcon(android.R.drawable.alert_dialog_icon)
\r
50 builder.setTitle("Missing Motors");
\r
51 builder.setMessage(message);
\r
52 builder.setPositiveButton("OK",
\r
53 new DialogInterface.OnClickListener() {
\r
54 public void onClick(DialogInterface dialog, int whichButton) {
\r
55 ((OpenRocketLoaderActivity)getActivity()).doFixMissingMotors();
\r
59 builder.setNegativeButton("Cancel",
\r
60 new DialogInterface.OnClickListener() {
\r
61 public void onClick(DialogInterface dialog, int whichButton) {
\r
62 ((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();
\r
66 return builder.create();
\r
70 * Work around for dialog getting dismissed on orientation change. See code.google.com/p/android/issues/detail?id=17423
\r
73 public void onDestroyView() {
\r
74 if ( getDialog() != null && getRetainInstance() ) {
\r
75 getDialog().setDismissMessage(null);
\r
77 super.onDestroyView();
\r