X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=android%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fandroid%2Frocket%2FMissingMotorDialogFragment.java;h=a0c08eecc9b2f0bfe8135118aa78a3704dea96c3;hb=121456e8dbb3d43058bdc5aa74d59a4e08d06e81;hp=d7592bf5f3cda7ef53aae71ad1f753cbe0b13c7f;hpb=4d97d149b0ef11eac895be021600613d3f152ad9;p=debian%2Fopenrocket diff --git a/android/src/net/sf/openrocket/android/rocket/MissingMotorDialogFragment.java b/android/src/net/sf/openrocket/android/rocket/MissingMotorDialogFragment.java index d7592bf5..a0c08eec 100644 --- a/android/src/net/sf/openrocket/android/rocket/MissingMotorDialogFragment.java +++ b/android/src/net/sf/openrocket/android/rocket/MissingMotorDialogFragment.java @@ -2,6 +2,8 @@ package net.sf.openrocket.android.rocket; import java.util.Set; +import net.sf.openrocket.R; +import net.sf.openrocket.android.util.AndroidLogWrapper; import net.sf.openrocket.motor.ThrustCurveMotorPlaceholder; import android.app.AlertDialog; import android.app.Dialog; @@ -11,72 +13,68 @@ import android.os.Bundle; import com.actionbarsherlock.app.SherlockDialogFragment; public class MissingMotorDialogFragment extends SherlockDialogFragment { - - private final static String MESSAGE_ARG_KEY = "message"; + + private final static String MESSAGES_ARG_KEY = "messages"; public static MissingMotorDialogFragment newInstance( Set missingMotors ) { MissingMotorDialogFragment frag = new MissingMotorDialogFragment(); Bundle b = new Bundle(); - b.putString(MESSAGE_ARG_KEY, buildMessage(missingMotors)); + String[] messages = new String[ missingMotors.size() ]; + int index = 0; + for( ThrustCurveMotorPlaceholder m : missingMotors ) { + messages[index++] = m.getManufacturer() + " " + m.getDesignation(); + } + b.putStringArray(MESSAGES_ARG_KEY, messages); frag.setArguments(b); + frag.setCancelable(false); return frag; } - private static String buildMessage( Set missingMotors ) { + private String buildMessage( String[] missingMotors ) { StringBuilder sb = new StringBuilder(); - sb.append("The following motors are missing:"); - for( ThrustCurveMotorPlaceholder m : missingMotors ) { - sb.append("\n").append(m.getManufacturer()).append(" ").append(m.getDesignation()); + sb.append(this.getString(R.string.missingMotorsMessageStart)); + for( String m : missingMotors ) { + sb.append("\n").append(m); } - sb.append("\nWould you like to download them from Thrustcurve?"); + sb.append("\n").append(this.getString(R.string.missingMotorsMessageEnd)); return sb.toString(); } - + @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setRetainInstance(true); - setCancelable(false); + public void onCancel(DialogInterface dialog) { + ((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors(); + super.onCancel(dialog); } - @Override public Dialog onCreateDialog(Bundle savedInstanceState) { - String message = getArguments().getString(MESSAGE_ARG_KEY); - + AndroidLogWrapper.d(MissingMotorDialogFragment.class,"onCreateDialog"); + + String[] messages = getArguments().getStringArray(MESSAGES_ARG_KEY); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // .setIcon(android.R.drawable.alert_dialog_icon) - builder.setTitle("Missing Motors"); - builder.setMessage(message); - builder.setPositiveButton("OK", + builder.setTitle(R.string.missingMotors); + builder.setMessage(buildMessage(messages)); + builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { ((OpenRocketLoaderActivity)getActivity()).doFixMissingMotors(); } - } - ); - builder.setNegativeButton("Cancel", + }); + + builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { ((OpenRocketLoaderActivity)getActivity()).doNotFixMissingMotors(); } - } - ); - return builder.create(); - } + }); - /** - * Work around for dialog getting dismissed on orientation change. See code.google.com/p/android/issues/detail?id=17423 - */ - @Override - public void onDestroyView() { - if ( getDialog() != null && getRetainInstance() ) { - getDialog().setDismissMessage(null); - } - super.onDestroyView(); + AlertDialog dialog = builder.create(); + dialog.setOwnerActivity(getActivity()); + return dialog; } - - + }