package net.sf.openrocket.android;\r
\r
+import java.io.File;\r
+import java.io.IOException;\r
import java.util.Locale;\r
\r
import net.sf.openrocket.aerodynamics.WarningSet;\r
import net.sf.openrocket.android.util.AndroidLogWrapper;\r
import net.sf.openrocket.database.ComponentPresetDatabase;\r
import net.sf.openrocket.document.OpenRocketDocument;\r
+import net.sf.openrocket.file.openrocket.OpenRocketSaver;\r
import net.sf.openrocket.l10n.DebugTranslator;\r
import net.sf.openrocket.l10n.ResourceBundleTranslator;\r
import net.sf.openrocket.l10n.Translator;\r
+import android.net.Uri;\r
import android.preference.PreferenceManager;\r
\r
public class Application extends android.app.Application {\r
\r
private OpenRocketDocument rocketDocument;\r
+ private Uri fileUri;\r
+\r
private WarningSet warnings;\r
- \r
+\r
// Big B boolean so I can synchronize on it.\r
private static Boolean initialized = false;\r
- \r
+\r
public void initialize() {\r
synchronized (initialized) {\r
if ( initialized == true ) {\r
System.setProperty("org.xml.sax.driver","org.xmlpull.v1.sax2.Driver");\r
\r
net.sf.openrocket.startup.Application.setLogger( new AndroidLogWrapper.LogHelper() );\r
- \r
+\r
net.sf.openrocket.startup.Application.setPreferences( new PreferencesAdapter() );\r
- \r
+\r
net.sf.openrocket.startup.Application.setComponentPresetDao( new ComponentPresetDatabase() );\r
- \r
+\r
MotorDatabaseAdapter db = new MotorDatabaseAdapter(this);\r
\r
net.sf.openrocket.startup.Application.setMotorSetDatabase(db);\r
- \r
+\r
Translator t;\r
t = new ResourceBundleTranslator("l10n.messages");\r
if (Locale.getDefault().getLanguage().equals("xx")) {\r
t = new DebugTranslator(t);\r
}\r
- \r
+\r
net.sf.openrocket.startup.Application.setBaseTranslator(t);\r
\r
initialized = true;\r
public void setWarnings(WarningSet warnings) {\r
this.warnings = warnings;\r
}\r
- \r
- \r
- \r
+\r
+ public Uri getFileUri() {\r
+ return fileUri;\r
+ }\r
+\r
+ public void setFileUri(Uri fileUri) {\r
+ this.fileUri = fileUri;\r
+ }\r
+\r
+ public void saveOpenRocketDocument() throws IOException {\r
+ OpenRocketSaver saver = new OpenRocketSaver();\r
+ saver.save(new File(fileUri.getPath()),rocketDocument);\r
+\r
+ }\r
}\r
package net.sf.openrocket.android.rocket;\r
\r
\r
+import java.io.IOException;\r
+\r
import net.sf.openrocket.R;\r
import net.sf.openrocket.android.ActivityHelpers;\r
import net.sf.openrocket.android.Application;\r
setContentView(R.layout.openrocketviewer);\r
ViewPager viewPager = (ViewPager)findViewById(R.id.pager);\r
viewPager.setAdapter( new OpenRocketViewerPager( this.getSupportFragmentManager()));\r
- \r
+\r
setTitle(app.getRocketDocument().getRocket().getName());\r
- \r
+\r
getActionBarHelper().setDisplayHomeAsUpEnabled(true);\r
- \r
+\r
}\r
- \r
+\r
@Override\r
public boolean onCreateOptionsMenu(Menu menu) {\r
MenuInflater inflater = getMenuInflater();\r
public boolean onMenuItemSelected(int featureId, MenuItem item) {\r
AndroidLogWrapper.d(OpenRocketViewer.class,"onMenuItemSelected" + item.getItemId());\r
switch(item.getItemId()) {\r
+ case R.id.menu_save:\r
+ // FIXME - Probably want to open a dialog here.\r
+ try {\r
+ ((Application)getApplication()).saveOpenRocketDocument();\r
+ } catch ( IOException iex ) {\r
+ AndroidLogWrapper.d(OpenRocketViewer.class, iex.getMessage());\r
+ }\r
+ return true;\r
case android.R.id.home:\r
ActivityHelpers.goHome(this);\r
return true;\r
\r
@Override\r
public void onSimulationSelected(int simulationId) {\r
- \r
+\r
Simulation sim = app.getRocketDocument().getSimulation(simulationId);\r
// Check if there is data for this simulation.\r
if ( sim.getSimulatedData().getBranchCount() == 0 ) {\r
builder.show();\r
return;\r
}\r
- \r
+\r
View sidepane = findViewById(R.id.sidepane);\r
if ( /* if multi pane */ sidepane != null ) {\r
SimulationChart chart = new SimulationChart(simulationId);\r