create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / MissingMotorDialogFragment.java
1 package net.sf.openrocket.android.rocket;\r
2 \r
3 import java.util.Set;\r
4 \r
5 import net.sf.openrocket.R;\r
6 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
7 import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;\r
8 import android.app.AlertDialog;\r
9 import android.app.Dialog;\r
10 import android.content.DialogInterface;\r
11 import android.os.Bundle;\r
12 \r
13 import com.actionbarsherlock.app.SherlockDialogFragment;\r
14 \r
15 public class MissingMotorDialogFragment extends SherlockDialogFragment {\r
16 \r
17         private final static String MESSAGES_ARG_KEY = "messages";\r
18 \r
19         public static MissingMotorDialogFragment newInstance( Set<ThrustCurveMotorPlaceholder> missingMotors ) {\r
20                 MissingMotorDialogFragment frag = new MissingMotorDialogFragment();\r
21                 Bundle b = new Bundle();\r
22                 String[] messages = new String[ missingMotors.size() ];\r
23                 int index = 0;\r
24                 for( ThrustCurveMotorPlaceholder m : missingMotors ) {\r
25                         messages[index++] = m.getManufacturer() + " " + m.getDesignation();\r
26                 }\r
27                 b.putStringArray(MESSAGES_ARG_KEY, messages);\r
28                 frag.setArguments(b);\r
29                 frag.setCancelable(false);\r
30                 return frag;\r
31         }\r
32 \r
33         private String buildMessage( String[] missingMotors ) {\r
34                 StringBuilder sb = new StringBuilder();\r
35                 sb.append(this.getString(R.string.missingMotorsMessageStart));\r
36                 for( String m : missingMotors ) {\r
37                         sb.append("\n").append(m);\r
38                 }\r
39                 sb.append("\n").append(this.getString(R.string.missingMotorsMessageEnd));\r
40                 return sb.toString();\r
41         }\r
42 \r
43         @Override\r
44         public void onCancel(DialogInterface dialog) {\r
45                 ((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();\r
46                 super.onCancel(dialog);\r
47         }\r
48 \r
49         @Override\r
50         public Dialog onCreateDialog(Bundle savedInstanceState) {\r
51 \r
52                 AndroidLogWrapper.d(MissingMotorDialogFragment.class,"onCreateDialog");\r
53 \r
54                 String[] messages = getArguments().getStringArray(MESSAGES_ARG_KEY);\r
55 \r
56                 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());\r
57                 //                      .setIcon(android.R.drawable.alert_dialog_icon)\r
58                 builder.setTitle(R.string.missingMotors);\r
59                 builder.setMessage(buildMessage(messages));\r
60                 builder.setPositiveButton(R.string.yes,\r
61                                 new DialogInterface.OnClickListener() {\r
62                         public void onClick(DialogInterface dialog, int whichButton) {\r
63                                 ((OpenRocketLoaderActivity)getActivity()).doFixMissingMotors();\r
64                         }\r
65                 });\r
66 \r
67                 builder.setNegativeButton(R.string.no,\r
68                                 new DialogInterface.OnClickListener() {\r
69                         public void onClick(DialogInterface dialog, int whichButton) {\r
70                                 ((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();\r
71                         }\r
72                 });\r
73 \r
74                 AlertDialog dialog =  builder.create();\r
75                 dialog.setOwnerActivity(getActivity());\r
76                 return dialog;\r
77         }\r
78 \r
79 }\r
80 \r