\r
import java.util.Set;\r
\r
+import net.sf.openrocket.R;\r
+import net.sf.openrocket.android.util.AndroidLogWrapper;\r
import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder;\r
import android.app.AlertDialog;\r
import android.app.Dialog;\r
import com.actionbarsherlock.app.SherlockDialogFragment;\r
\r
public class MissingMotorDialogFragment extends SherlockDialogFragment {\r
- \r
- private final static String MESSAGE_ARG_KEY = "message";\r
+\r
+ private final static String MESSAGES_ARG_KEY = "messages";\r
\r
public static MissingMotorDialogFragment newInstance( Set<ThrustCurveMotorPlaceholder> missingMotors ) {\r
MissingMotorDialogFragment frag = new MissingMotorDialogFragment();\r
Bundle b = new Bundle();\r
- b.putString(MESSAGE_ARG_KEY, buildMessage(missingMotors));\r
+ String[] messages = new String[ missingMotors.size() ];\r
+ int index = 0;\r
+ for( ThrustCurveMotorPlaceholder m : missingMotors ) {\r
+ messages[index++] = m.getManufacturer() + " " + m.getDesignation();\r
+ }\r
+ b.putStringArray(MESSAGES_ARG_KEY, messages);\r
frag.setArguments(b);\r
+ frag.setCancelable(false);\r
return frag;\r
}\r
\r
- private static String buildMessage( Set<ThrustCurveMotorPlaceholder> missingMotors ) {\r
+ private String buildMessage( String[] missingMotors ) {\r
StringBuilder sb = new StringBuilder();\r
- sb.append("The following motors are missing:");\r
- for( ThrustCurveMotorPlaceholder m : missingMotors ) {\r
- sb.append("\n").append(m.getManufacturer()).append(" ").append(m.getDesignation());\r
+ sb.append(this.getString(R.string.missingMotorsMessageStart));\r
+ for( String m : missingMotors ) {\r
+ sb.append("\n").append(m);\r
}\r
- sb.append("\nWould you like to download them from Thrustcurve?");\r
+ sb.append("\n").append(this.getString(R.string.missingMotorsMessageEnd));\r
return sb.toString();\r
}\r
- \r
+\r
@Override\r
- public void onCreate(Bundle savedInstanceState) {\r
- super.onCreate(savedInstanceState);\r
- setRetainInstance(true);\r
- setCancelable(false);\r
+ public void onCancel(DialogInterface dialog) {\r
+ ((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();\r
+ super.onCancel(dialog);\r
}\r
\r
-\r
@Override\r
public Dialog onCreateDialog(Bundle savedInstanceState) {\r
\r
- String message = getArguments().getString(MESSAGE_ARG_KEY);\r
- \r
+ AndroidLogWrapper.d(MissingMotorDialogFragment.class,"onCreateDialog");\r
+\r
+ String[] messages = getArguments().getStringArray(MESSAGES_ARG_KEY);\r
+\r
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());\r
// .setIcon(android.R.drawable.alert_dialog_icon)\r
- builder.setTitle("Missing Motors");\r
- builder.setMessage(message);\r
- builder.setPositiveButton("OK",\r
+ builder.setTitle(R.string.missingMotors);\r
+ builder.setMessage(buildMessage(messages));\r
+ builder.setPositiveButton(R.string.yes,\r
new DialogInterface.OnClickListener() {\r
public void onClick(DialogInterface dialog, int whichButton) {\r
((OpenRocketLoaderActivity)getActivity()).doFixMissingMotors();\r
}\r
- }\r
- );\r
- builder.setNegativeButton("Cancel",\r
+ });\r
+\r
+ builder.setNegativeButton(R.string.no,\r
new DialogInterface.OnClickListener() {\r
public void onClick(DialogInterface dialog, int whichButton) {\r
((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors();\r
}\r
- }\r
- );\r
- return builder.create();\r
- }\r
+ });\r
\r
- /**\r
- * Work around for dialog getting dismissed on orientation change. See code.google.com/p/android/issues/detail?id=17423\r
- */\r
- @Override\r
- public void onDestroyView() {\r
- if ( getDialog() != null && getRetainInstance() ) {\r
- getDialog().setDismissMessage(null);\r
- }\r
- super.onDestroyView();\r
+ AlertDialog dialog = builder.create();\r
+ dialog.setOwnerActivity(getActivity());\r
+ return dialog;\r
}\r
- \r
- \r
+\r
}\r
\r