android:layout_height="wrap_content"\r
android:text="@string/viewmotorslabel" />\r
</LinearLayout>\r
+\r
+ <Button\r
+ android:id="@+id/main_donate"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="wrap_content"\r
+ android:layout_gravity="center"\r
+ android:background="@drawable/sf_donate" />\r
</LinearLayout>\r
\r
</LinearLayout>
\ No newline at end of file
android:layout_height="wrap_content"\r
android:layout_weight="1"\r
android:gravity="center_horizontal" >\r
-\r\r\r
+\r
<Button\r
android:id="@+id/main_open"\r
android:layout_width="wrap_content"\r
android:layout_height="wrap_content"\r
android:text="@string/openfilelabel" />\r
-\r\r
+\r
<Button\r
android:id="@+id/main_browse"\r
android:layout_width="wrap_content"\r
android:layout_height="wrap_content"\r
android:text="@string/viewmotorslabel" />\r
-\r
</LinearLayout>\r
\r
+ <Button\r
+ android:id="@+id/main_donate"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="wrap_content"\r
+ android:layout_gravity="center"\r
+ android:background="@drawable/sf_donate" />\r
+\r
</LinearLayout>
\ No newline at end of file
android:id="@+id/main_menu_preferences"\r
android:title="@string/Preferences"\r
android:icon="@drawable/ic_menu_preferences"\r
- android:showAsAction="always"/>\r
+ android:showAsAction="never"/>\r
+ \r
+ <item\r
+ android:id="@+id/menu_about"\r
+ android:title="@string/About"\r
+ android:showAsAction="never"/>\r
\r
</menu>
\ No newline at end of file
<item
android:id="@+id/preference_menu_option"
android:icon="@drawable/ic_menu_preferences"
- android:title="@string/Preferences"
- />
+ android:title="@string/Preferences"/>
+ <item
+ android:id="@+id/menu_about"
+ android:showAsAction="never"
+ android:title="@string/About"/>
</menu>
\ No newline at end of file
\r
<item\r
android:id="@+id/motor_list_menu_option"\r
- android:title="@string/viewmotorslabel"\r
android:icon="@drawable/ic_motorbrowser"\r
- android:showAsAction="always"/>\r
+ android:showAsAction="always"\r
+ android:title="@string/viewmotorslabel"/>\r
<item\r
android:id="@+id/preference_menu_option"\r
- android:title="@string/Preferences"\r
- android:icon="@drawable/ic_menu_preferences"/>\r
+ android:icon="@drawable/ic_menu_preferences"\r
+ android:title="@string/Preferences"/>\r
+ <item\r
+ android:id="@+id/menu_about"\r
+ android:showAsAction="never"\r
+ android:title="@string/About"/>\r
\r
</menu>
\ No newline at end of file
<string name="save">Save</string>\r
<string name="MotorListTitle">Motor List</string>\r
<string name="Download">Download</string>\r
+ <string name="About">About</string>\r
<string name="Preferences">Preferences</string>\r
<string name="select_series">Select Series</string>\r
<string name="view_events">View Events</string>\r
--- /dev/null
+package net.sf.openrocket.android;\r
+\r
+import net.sf.openrocket.android.rocket.OpenRocketLoaderActivity;\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 AboutDialogFragment extends DialogFragment {\r
+\r
+ public static AboutDialogFragment newInstance() {\r
+ AboutDialogFragment frag = new AboutDialogFragment();\r
+ return frag;\r
+ }\r
+ \r
+ @Override\r
+ public Dialog onCreateDialog(Bundle savedInstanceState) {\r
+\r
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());\r
+ // .setIcon(android.R.drawable.alert_dialog_icon)\r
+ builder.setTitle("About");\r
+ StringBuilder sb = new StringBuilder();\r
+ sb.append("OpenRocket\n");\r
+ sb.append("Copyright 2007-2012 Sampo Niskanen\n");\r
+ sb.append("\n");\r
+ sb.append("The android port contains third party software:\n");\r
+ sb.append(" AChartEngine - Apache License 2.0\n");\r
+ sb.append(" Android Open Source Project - Apache License 2.0\n");\r
+ sb.append(" Android tree-view-list - 2-clause BSD licensed\n");\r
+ builder.setMessage(sb.toString());\r
+ builder.setCancelable(true);\r
+ return builder.create();\r
+ }\r
+\r
+}\r
import net.sf.openrocket.android.thrustcurve.TCQueryActivity;\r
import android.app.Activity;\r
import android.content.Intent;\r
+import android.net.Uri;\r
+import android.support.v4.app.FragmentActivity;\r
\r
public abstract class ActivityHelpers {\r
\r
parent.startActivityForResult(i, requestCode);\r
}\r
\r
+ public static void donate( Activity parent ) {\r
+ String url = "http://sourceforge.net/donate/index.php?group_id=260357";\r
+ Intent intent = new Intent(Intent.ACTION_VIEW);\r
+ intent.setData( Uri.parse(url) );\r
+ parent.startActivity(intent);\r
+ }\r
+ \r
+ public static void showAbout( FragmentActivity parent ) {\r
+ AboutDialogFragment frag = AboutDialogFragment.newInstance();\r
+ frag.show(parent.getSupportFragmentManager(), "about");\r
+ }\r
+\r
}\r
package net.sf.openrocket.android;\r
\r
import net.sf.openrocket.R;\r
+import net.sf.openrocket.android.actionbarcompat.ActionBarFragmentActivity;\r
import net.sf.openrocket.android.filebrowser.SimpleFileBrowser;\r
import android.content.ActivityNotFoundException;\r
import android.content.Intent;\r
import android.net.Uri;\r
import android.os.Bundle;\r
import android.preference.PreferenceManager;\r
-import android.support.v4.app.FragmentActivity;\r
import android.view.Menu;\r
import android.view.MenuInflater;\r
import android.view.MenuItem;\r
import android.view.View;\r
import android.widget.Button;\r
\r
-public class Main extends FragmentActivity {\r
+public class Main extends ActionBarFragmentActivity {\r
\r
private static final int PICK_ORK_FILE_RESULT = 1;\r
\r
@Override\r
public void onCreate(Bundle icicle) {\r
super.onCreate(icicle);\r
+ setTitle("");\r
setContentView(R.layout.main);\r
((Button) findViewById(R.id.main_open)).setOnClickListener(\r
new View.OnClickListener() {\r
ActivityHelpers.browseMotors(Main.this);\r
}\r
});\r
+ ((Button) findViewById(R.id.main_donate)).setOnClickListener(\r
+ new View.OnClickListener() {\r
+ @Override\r
+ public void onClick(View v) {\r
+ ActivityHelpers.donate(Main.this);\r
+ }\r
+ });\r
}\r
\r
@Override\r
case R.id.main_menu_preferences:\r
ActivityHelpers.startPreferences(this);\r
return true;\r
+ case R.id.menu_about:\r
+ ActivityHelpers.showAbout(this);\r
+ return true;\r
}\r
return super.onOptionsItemSelected(item);\r
}\r
Intent intent = new Intent().setClass(this, PreferencesActivity.class);\r
this.startActivity(intent);\r
return true;\r
+ case R.id.menu_about:\r
+ ActivityHelpers.showAbout(this);\r
+ return true;\r
}\r
return super.onMenuItemSelected(featureId, item);\r
}\r
import net.sf.openrocket.R;\r
import net.sf.openrocket.aerodynamics.WarningSet;\r
import net.sf.openrocket.android.Application;\r
+import net.sf.openrocket.android.actionbarcompat.ActionBarFragmentActivity;\r
import net.sf.openrocket.android.thrustcurve.TCMissingMotorDownloadAction;\r
import net.sf.openrocket.android.thrustcurve.TCQueryAction;\r
import net.sf.openrocket.android.util.AndroidLogWrapper;\r
import android.net.Uri;\r
import android.os.Bundle;\r
import android.support.v4.app.DialogFragment;\r
-import android.support.v4.app.FragmentActivity;\r
\r
-public class OpenRocketLoaderActivity extends FragmentActivity\r
+public class OpenRocketLoaderActivity extends ActionBarFragmentActivity\r
implements TCQueryAction.OnTCQueryCompleteListener, OpenRocketLoaderFragment.OnOpenRocketFileLoaded\r
{\r
\r
@Override\r
protected void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
+ setTitle("");\r
setContentView(R.layout.main);\r
if ( savedInstanceState == null || savedInstanceState.getBoolean("isLoading", false) == false ) {\r
Intent i = getIntent();\r
case R.id.preference_menu_option:\r
ActivityHelpers.startPreferences(this);\r
return true;\r
+ case R.id.menu_about:\r
+ ActivityHelpers.showAbout(this);\r
+ return true;\r
}\r
return super.onMenuItemSelected(featureId, item);\r
}\r