diff --git a/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java b/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java index a79beb6e3..17b4209d6 100644 --- a/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java +++ b/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java @@ -4,9 +4,11 @@ package net.sf.openrocket.android.rocket; import net.sf.openrocket.R; import net.sf.openrocket.android.ActivityHelpers; import net.sf.openrocket.android.Application; +import net.sf.openrocket.android.simulation.SimulationViewer; import net.sf.openrocket.android.util.TabsAdapter; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.rocketcomponent.Configuration; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; @@ -19,7 +21,8 @@ import android.view.MenuItem; import android.widget.TabHost; public class OpenRocketViewer extends FragmentActivity -implements SharedPreferences.OnSharedPreferenceChangeListener +implements SharedPreferences.OnSharedPreferenceChangeListener, +Simulations.OnSimulationSelectedListener { private static final String TAG = "OpenRocketViewer"; @@ -113,4 +116,11 @@ implements SharedPreferences.OnSharedPreferenceChangeListener return super.onMenuItemSelected(featureId, item); } + @Override + public void onSimulationSelected(int simulationId) { + Intent i = new Intent(this, SimulationViewer.class); + i.putExtra("Simulation",simulationId); + startActivity(i); + } + } diff --git a/android/src/net/sf/openrocket/android/rocket/Simulations.java b/android/src/net/sf/openrocket/android/rocket/Simulations.java index 231c50da1..6d48a7c3b 100644 --- a/android/src/net/sf/openrocket/android/rocket/Simulations.java +++ b/android/src/net/sf/openrocket/android/rocket/Simulations.java @@ -2,12 +2,11 @@ package net.sf.openrocket.android.rocket; import net.sf.openrocket.R; import net.sf.openrocket.android.Application; -import net.sf.openrocket.android.simulation.SimulationViewer; import net.sf.openrocket.document.OpenRocketDocument; import net.sf.openrocket.document.Simulation; import net.sf.openrocket.unit.Unit; import net.sf.openrocket.unit.UnitGroup; -import android.content.Intent; +import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; @@ -22,7 +21,12 @@ import android.widget.TextView; public class Simulations extends Fragment { + public interface OnSimulationSelectedListener { + public void onSimulationSelected( int simulationId ); + } + private ListView simulationList; + private OnSimulationSelectedListener listener; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -33,6 +37,19 @@ public class Simulations extends Fragment { return v; } + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + if ( activity instanceof OnSimulationSelectedListener ) { + listener = (OnSimulationSelectedListener) activity; + } + } + + + public void setListener(OnSimulationSelectedListener listener) { + this.listener = listener; + } + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); @@ -64,9 +81,9 @@ public class Simulations extends Fragment { simulationList.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView l, View v, int position, long id) { - Intent i = new Intent(getActivity(), SimulationViewer.class); - i.putExtra("Simulation",(int)id); - startActivity(i); + if (listener != null ) { + listener.onSimulationSelected(position); + } } });