From: kruland2607 Date: Wed, 25 Jan 2012 17:35:46 +0000 (+0000) Subject: Define a callback interface in the Simulation list fragment which is called with... X-Git-Tag: upstream/12.03~1^2~101 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=82bce0ff9340de45ed0d77654c9bf6da73a65aea;p=debian%2Fopenrocket 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 --- 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); + } } });