X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=android%2Fsrc%2Fnet%2Fsf%2Fopenrocket%2Fandroid%2Fsimservice%2FSimulationService.java;h=9a1dd49116a3e08960e81a433537ef7cb5144bf9;hb=57380227f8f49f0e8076f99607b5fda8ba2d4121;hp=dad46292f683f2d5e2f703212f02717167aec792;hpb=f1477bc1071e58b9e199d65dbd6b5ed2454aec54;p=debian%2Fopenrocket diff --git a/android/src/net/sf/openrocket/android/simservice/SimulationService.java b/android/src/net/sf/openrocket/android/simservice/SimulationService.java index dad46292..9a1dd491 100644 --- a/android/src/net/sf/openrocket/android/simservice/SimulationService.java +++ b/android/src/net/sf/openrocket/android/simservice/SimulationService.java @@ -1,10 +1,15 @@ package net.sf.openrocket.android.simservice; +import java.util.List; + import net.sf.openrocket.R; import net.sf.openrocket.android.CurrentRocketHolder; import net.sf.openrocket.android.util.AndroidLogWrapper; import net.sf.openrocket.document.Simulation; +import net.sf.openrocket.simulation.customexpression.CustomExpression; +import net.sf.openrocket.simulation.customexpression.CustomExpressionSimulationListener; import net.sf.openrocket.simulation.exception.SimulationException; +import net.sf.openrocket.simulation.listeners.SimulationListener; import android.app.IntentService; import android.app.Notification; import android.app.PendingIntent; @@ -23,6 +28,8 @@ public class SimulationService extends IntentService { public static void executeSimulationTask( Context c, SimulationTask t ) { AndroidLogWrapper.d(SimulationService.class, "Submitting simulation " + t.simulationId ); + CurrentRocketHolder.getCurrentRocket().lockSimulation( c, t.simulationId ); + Intent intent = new Intent( c, SimulationService.class ); intent.putExtra("net.sf.openrocket.simulationtask", t); c.startService(intent); @@ -37,9 +44,13 @@ public class SimulationService extends IntentService { SimulationTask t = (SimulationTask) intent.getSerializableExtra("net.sf.openrocket.simulationtask"); try { Simulation sim = CurrentRocketHolder.getCurrentRocket().getRocketDocument().getSimulation(t.simulationId); + + List exprs = CurrentRocketHolder.getCurrentRocket().getRocketDocument().getCustomExpressions(); + SimulationListener exprListener = new CustomExpressionSimulationListener(exprs); + AndroidLogWrapper.d(SimulationService.class, "simulating " + t.simulationId ); - sim.simulate(); - CurrentRocketHolder.getCurrentRocket().notifySimsChanged(); + sim.simulate(exprListener); + CurrentRocketHolder.getCurrentRocket().unlockSimulation(this, t.simulationId); } catch (SimulationException simex) { Toast.makeText(this, "Error in simulation:" + simex.getMessage(), Toast.LENGTH_LONG ).show();