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
10 import android.support.v4.app.DialogFragment;
\r
12 public class MissingMotorDialogFragment extends DialogFragment {
\r
14 private final static String MESSAGE_ARG_KEY = "message";
\r
16 public static MissingMotorDialogFragment newInstance( Set<ThrustCurveMotorPlaceholder> missingMotors ) {
\r
17 MissingMotorDialogFragment frag = new MissingMotorDialogFragment();
\r
18 Bundle b = new Bundle();
\r
19 b.putString(MESSAGE_ARG_KEY, buildMessage(missingMotors));
\r
20 frag.setArguments(b);
\r
24 private static String buildMessage( Set<ThrustCurveMotorPlaceholder> missingMotors ) {
\r
25 StringBuilder sb = new StringBuilder();
\r
26 sb.append("The following motors are missing:");
\r
27 for( ThrustCurveMotorPlaceholder m : missingMotors ) {
\r
28 sb.append("\n").append(m.getManufacturer()).append(" ").append(m.getDesignation());
\r
30 sb.append("\nWould you like to download them from Thrustcurve?");
\r
31 return sb.toString();
\r
35 public void onCreate(Bundle savedInstanceState) {
\r
36 super.onCreate(savedInstanceState);
\r
37 setRetainInstance(true);
\r
38 setCancelable(false);
\r
43 public Dialog onCreateDialog(Bundle savedInstanceState) {
\r
45 String message = getArguments().getString(MESSAGE_ARG_KEY);
\r
47 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
\r
48 // .setIcon(android.R.drawable.alert_dialog_icon)
\r
49 builder.setTitle("Missing Motors");
\r
50 builder.setMessage(message);
\r
51 builder.setPositiveButton("OK",
\r
52 new DialogInterface.OnClickListener() {
\r
53 public void onClick(DialogInterface dialog, int whichButton) {
\r
54 ((OpenRocketLoaderActivity)getActivity()).doFixMissingMotors();
\r
58 builder.setNegativeButton("Cancel",
\r
59 new DialogInterface.OnClickListener() {
\r
60 public void onClick(DialogInterface dialog, int whichButton) {
\r
61 ((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();
\r
65 return builder.create();
\r
69 * Work around for dialog getting dismissed on orientation change. See code.google.com/p/android/issues/detail?id=17423
\r
72 public void onDestroyView() {
\r
73 if ( getDialog() != null && getRetainInstance() ) {
\r
74 getDialog().setDismissMessage(null);
\r
76 super.onDestroyView();
\r