From 82bce0ff9340de45ed0d77654c9bf6da73a65aea Mon Sep 17 00:00:00 2001 From: kruland2607 Date: Wed, 25 Jan 2012 17:35:46 +0000 Subject: [PATCH] Define a callback interface in the Simulation list fragment which is called with the simulation id that is selected. Implement this interface in the OpenRocketViewer which then invokes the Intent for the SimulationViewer. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@370 180e2498-e6e9-4542-8430-84ac67f01cd8 --- .../android/rocket/OpenRocketViewer.java | 12 ++++++++- .../android/rocket/Simulations.java | 27 +++++++++++++++---- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java b/android/src/net/sf/openrocket/android/rocket/OpenRocketViewer.java index a79beb6e..17b4209d 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 231c50da..6d48a7c3 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); + } } }); -- 2.47.2