Merge commit '42b2e5ca519766e37ce6941ba4faecc9691cc403' into upstream
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / MissingMotorDialogFragment.java
index 731800a38d5170982408f1cae87ae40f6d4ed2d3..a0c08eecc9b2f0bfe8135118aa78a3704dea96c3 100644 (file)
@@ -2,80 +2,79 @@ package net.sf.openrocket.android.rocket;
 \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 android.content.DialogInterface;\r
 import android.os.Bundle;\r
-import android.support.v4.app.DialogFragment;\r
 \r
-public class MissingMotorDialogFragment extends DialogFragment {\r
-       \r
-       private final static String MESSAGE_ARG_KEY = "message";\r
+import com.actionbarsherlock.app.SherlockDialogFragment;\r
+\r
+public class MissingMotorDialogFragment extends SherlockDialogFragment {\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