</intent-filter>\r
</activity>\r
<activity android:name=".android.motor.MotorBrowserActivity" />\r
- <activity android:name=".android.motor.MotorDetailsActivity" />\r
+ <activity android:name=".android.motor.BurnPlotActivity" />\r
<activity android:name=".android.thrustcurve.TCQueryActivity" />\r
<activity android:name=".android.simulation.SimulationViewActivity" />\r
<activity android:name=".android.filebrowser.SimpleFileBrowser" />\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"\r
+ android:layout_width="match_parent"\r
+ android:layout_height="match_parent"\r
+ android:orientation="horizontal" >\r
+\r
+ <LinearLayout\r
+ android:id="@+id/motorBrowserList"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="match_parent"\r
+ android:layout_weight="4"/>\r
+\r
+ <LinearLayout\r
+ android:id="@+id/sidepane"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="wrap_content"\r
+ android:layout_weight="1"\r
+ android:orientation="vertical" />\r
+\r
+</LinearLayout>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"\r
+ android:layout_width="match_parent"\r
+ android:layout_height="match_parent"\r
+ android:orientation="vertical" >\r
+\r
+ <LinearLayout\r
+ android:id="@+id/motorBrowserList"\r
+ android:layout_width="match_parent"\r
+ android:layout_height="match_parent"\r
+ android:layout_weight="3" />\r
+\r
+ <LinearLayout\r
+ android:id="@+id/sidepane"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="wrap_content"\r
+ android:layout_weight="1"\r
+ android:orientation="vertical" />\r
+\r
+</LinearLayout>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
-
- <fragment
- android:id="@+id/burnPlotFragment"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_marginLeft="0px"
- android:layout_marginRight="0px"
- android:layout_marginTop="5px"
- class="net.sf.openrocket.android.motor.BurnPlotFragment"
- title="Burn Plot" />
-
- <SlidingDrawer
- android:id="@+id/drawer"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_weight="0.4"
- android:content="@+id/motorDetailForm"
- android:handle="@+id/handle" >
-
- <ImageView
- android:id="@+id/handle"
- android:layout_width="match_parent"
- android:layout_height="30px"
- android:src="@drawable/arrow_up_float"
- android:text="" />
-
- <fragment
- android:id="@+id/motorDetailForm"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- class="net.sf.openrocket.android.motor.MotorDetailsFragment" />
- </SlidingDrawer>
-
-</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
-<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/motorDetailForm"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@android:color/black"
- android:orientation="vertical"
- android:paddingTop="10px" >
-
- <TableRow >
-
- <TextView
- android:paddingRight="10px"
- android:text="Manufacturer" />
-
- <EditText
- android:id="@+id/motorDetailsManufacturer"
- android:layout_width="match_parent"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" >
+
+ <TableLayout
+ android:id="@+id/motorDetailForm"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@android:color/black"
+ android:orientation="vertical"
+ android:paddingTop="10dp" >
+
+ <TableRow>
+
+ <TextView
+ android:paddingRight="10dp"
+ android:text="Manufacturer" />
+
+ <EditText
+ android:id="@+id/motorDetailsManufacturer"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.04"
+ android:editable="false"
+ android:inputType="text" />
+ </TableRow>
+
+ <TableRow>
+
+ <TextView
+ android:paddingRight="10dp"
+ android:text="Name" />
+
+ <EditText
+ android:id="@+id/motorDetailsName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.04"
+ android:editable="false"
+ android:inputType="text" />
+ </TableRow>
+
+ <TableRow>
+
+ <TextView
+ android:paddingRight="10dp"
+ android:text="Delays" />
+
+ <EditText
+ android:id="@+id/motorDetailsDelays"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.04"
+ android:editable="false"
+ android:inputType="number" />
+ </TableRow>
+
+ <TableRow>
+
+ <TextView
+ android:paddingRight="10dp"
+ android:text="Case Info" />
+
+ <EditText
+ android:id="@+id/motorDetailsCaseInfo"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.04"
+ android:editable="false"
+ android:inputType="text" />
+ </TableRow>
+
+ <TableRow>
+
+ <TextView
+ android:paddingRight="10dp"
+ android:text="Impulse Class" />
+
+ <EditText
+ android:id="@+id/motorDetailsImpuseClass"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.04"
+ android:editable="false"
+ android:inputType="text" />
+ </TableRow>
+
+ <TableRow>
+
+ <TextView
+ android:paddingRight="10dp"
+ android:text="Diameter" />
+
+ <EditText
+ android:id="@+id/motorDetailsDiameter"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.04"
+ android:editable="false"
+ android:inputType="text" />
+ </TableRow>
+
+ <TableRow>
+
+ <TextView
+ android:paddingRight="10dp"
+ android:text="Length" />
+
+ <EditText
+ android:id="@+id/motorDetailsLength"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="0.04"
+ android:editable="false"
+ android:inputType="text" />
+ </TableRow>
+ </TableLayout>
+ <!--
+ <Button
+ android:id="@+id/motorDetailsSaveButton"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_weight="0.04"
- android:editable="false" />
- </TableRow>
+ android:text="@string/save" />
+ -->
- <TableRow >
-
- <TextView
- android:paddingRight="10px"
- android:text="Name" />
-
- <EditText
- android:id="@+id/motorDetailsName"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.04"
- android:editable="false" />
- </TableRow>
-
- <TableRow >
-
- <TextView
- android:paddingRight="10px"
- android:text="Delays" />
-
- <EditText
- android:id="@+id/motorDetailsDelays"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.04"
- android:editable="false" />
- </TableRow>
-
- <TableRow >
-
- <TextView
- android:paddingRight="10px"
- android:text="Case Info" />
-
- <EditText
- android:id="@+id/motorDetailsCaseInfo"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.04"
- android:editable="false" />
- </TableRow>
-
- <TableRow >
-
- <TextView
- android:paddingRight="10px"
- android:text="Impulse Class" />
-
- <EditText
- android:id="@+id/motorDetailsImpuseClass"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.04"
- android:editable="false" />
- </TableRow>
-
- <TableRow >
-
- <TextView
- android:paddingRight="10px"
- android:text="Diameter" />
-
- <EditText
- android:id="@+id/motorDetailsDiameter"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.04"
- android:editable="false" />
- </TableRow>
-
- <TableRow >
-
- <TextView
- android:paddingRight="10px"
- android:text="Length" />
-
- <EditText
- android:id="@+id/motorDetailsLength"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="0.04"
- android:editable="false" />
- </TableRow>
-
-</TableLayout>
\ No newline at end of file
+</ScrollView>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>\r
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"\r
+ android:layout_width="match_parent"\r
+ android:layout_height="match_parent"\r
+ android:orientation="horizontal" >\r
+\r
+ <LinearLayout\r
+ android:id="@+id/motorBrowserList"\r
+ android:layout_width="match_parent"\r
+ android:layout_height="match_parent" />\r
+\r
+</LinearLayout>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<menu
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:enabled="true" android:id="@+id/save" android:visible="true" android:title="@string/save"/>
-
-</menu>
--- /dev/null
+package net.sf.openrocket.android.motor;\r
+\r
+import net.sf.openrocket.android.util.AndroidLogWrapper;\r
+import android.content.Intent;\r
+import android.os.Bundle;\r
+import android.support.v4.app.FragmentActivity;\r
+\r
+public class BurnPlotActivity extends FragmentActivity {\r
+\r
+ @Override\r
+ public void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ AndroidLogWrapper.d(BurnPlotActivity.class,"onCreate Bundle = "+ String.valueOf(savedInstanceState));\r
+\r
+ Intent i = getIntent();\r
+ long motorId = i.getLongExtra("Motor",-1);\r
+\r
+ BurnPlotFragment burnPlot = BurnPlotFragment.newInstance(motorId);\r
+ getSupportFragmentManager().beginTransaction().replace(android.R.id.content, burnPlot).commit();\r
+ \r
+ }\r
+ \r
+}\r
import java.util.Vector;\r
\r
import net.sf.openrocket.R;\r
+import net.sf.openrocket.android.db.DbAdapter;\r
import net.sf.openrocket.android.util.AndroidLogWrapper;\r
import android.graphics.Color;\r
import android.graphics.PointF;\r
public class BurnPlotFragment extends Fragment implements OnTouchListener {\r
\r
private ExtendedThrustCurveMotor motor;\r
+ private long motorId;\r
\r
private XYPlot mySimpleXYPlot;\r
private SimpleXYSeries mySeries;\r
private ScaleGestureDetector mScaleDetector;\r
private float mScaleFactor = 1.f;\r
\r
+ public static BurnPlotFragment newInstance( long motorId ) {\r
+ BurnPlotFragment frag = new BurnPlotFragment();\r
+ Bundle bundle = new Bundle();\r
+ bundle.putLong("motorId", motorId);\r
+ frag.setArguments(bundle);\r
+ return frag;\r
+ }\r
+ \r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
AndroidLogWrapper.d(BurnPlotFragment.class,"onCreate");\r
+ \r
+ if ( savedInstanceState!= null) {\r
+ motorId = savedInstanceState.getLong("motorId",-1);\r
+ } else {\r
+ Bundle b = getArguments();\r
+ motorId = b.getLong("motorId");\r
+ }\r
+ \r
+ DbAdapter mDbHelper = new DbAdapter(getActivity());\r
+ mDbHelper.open();\r
+\r
+ try {\r
+ motor = mDbHelper.getMotorDao().fetchMotor(motorId);\r
+ } catch ( Exception e ) {\r
+ \r
+ }\r
+\r
+ mDbHelper.close();\r
super.onCreate(savedInstanceState);\r
}\r
\r
+ @Override\r
+ public void onSaveInstanceState(Bundle outState) {\r
+ super.onSaveInstanceState(outState);\r
+ outState.putLong("motorId", motorId);\r
+ }\r
+\r
@Override\r
public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
Bundle savedInstanceState) {\r
mySimpleXYPlot = (XYPlot) v.findViewById(R.id.xyplot);\r
mySimpleXYPlot.setOnTouchListener(this);\r
mScaleDetector = new ScaleGestureDetector(v.getContext(), new ScaleListener());\r
+ init(motor);\r
return v;\r
}\r
\r
}\r
return l;\r
}\r
- void init( ExtendedThrustCurveMotor motor ) {\r
+ \r
+ private void init( ExtendedThrustCurveMotor motor ) {\r
\r
mySimpleXYPlot.setUserDomainOrigin(0);\r
mySimpleXYPlot.setUserRangeOrigin(0);\r
import net.sf.openrocket.android.util.AndroidLogWrapper;\r
import android.content.Intent;\r
import android.os.Bundle;\r
+import android.support.v4.app.Fragment;\r
import android.support.v4.app.FragmentActivity;\r
import android.support.v4.app.FragmentTransaction;\r
import android.view.Menu;\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
-\r
- if (getSupportFragmentManager().findFragmentById(android.R.id.content) == null) {\r
- motorList = MotorListFragment.newInstance();\r
- FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
- ft.add(android.R.id.content, motorList);\r
- ft.commit();\r
- }\r
+ setContentView(R.layout.motorbrowser);\r
+ getSupportFragmentManager().beginTransaction().add( R.id.motorBrowserList, new MotorListFragment()).commit();\r
}\r
\r
@Override\r
\r
View sidepane = findViewById(R.id.sidepane);\r
if ( /* if multi pane */ sidepane != null ) {\r
- /*\r
- Simulation sim = app.getRocketDocument().getSimulation(simulationId);\r
- SimulationChart chart = new SimulationChart(simulationId);\r
-\r
- Fragment graph = SimulationFragment.newInstance(chart);\r
+ \r
+ Fragment graph = BurnPlotFragment.newInstance(motorId);\r
\r
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);\r
// probably only want to update back stack for first time.\r
- ft.addToBackStack("simulationplot");\r
+ ft.addToBackStack("burnplot");\r
ft.replace(R.id.sidepane, graph);\r
ft.show(graph);\r
ft.commit();\r
-*/\r
\r
} else {\r
- Intent i = new Intent(this,MotorDetailsActivity.class);\r
+ Intent i = new Intent(this,BurnPlotActivity.class);\r
i.putExtra("Motor", motorId);\r
startActivity(i);\r
}\r
+++ /dev/null
-package net.sf.openrocket.android.motor;\r
-\r
-import net.sf.openrocket.R;\r
-import net.sf.openrocket.android.db.DbAdapter;\r
-import net.sf.openrocket.android.util.AndroidLogWrapper;\r
-import android.content.Intent;\r
-import android.os.Bundle;\r
-import android.support.v4.app.FragmentActivity;\r
-import android.view.Menu;\r
-import android.view.MenuInflater;\r
-import android.view.MenuItem;\r
-import android.widget.ImageView;\r
-import android.widget.SlidingDrawer;\r
-\r
-public class MotorDetailsActivity extends FragmentActivity\r
-implements SlidingDrawer.OnDrawerCloseListener, SlidingDrawer.OnDrawerOpenListener {\r
-\r
- private SlidingDrawer slidingDrawer;\r
- private ImageView handle;\r
- \r
- private ExtendedThrustCurveMotor motor;\r
- \r
- @Override\r
- public void onCreate(Bundle savedInstanceState) {\r
- super.onCreate(savedInstanceState);\r
- AndroidLogWrapper.d(MotorDetailsActivity.class,"onCreate Bundle = "+ String.valueOf(savedInstanceState));\r
- setContentView(R.layout.motor_detail);\r
-\r
- Intent i = getIntent();\r
- long motorId = i.getLongExtra("Motor",-1);\r
-\r
- DbAdapter mDbHelper = new DbAdapter(this);\r
- mDbHelper.open();\r
-\r
- try {\r
- motor = mDbHelper.getMotorDao().fetchMotor(motorId);\r
- } catch ( Exception e ) {\r
- \r
- }\r
-\r
- mDbHelper.close();\r
- \r
- BurnPlotFragment burnPlot = (BurnPlotFragment) getSupportFragmentManager().findFragmentById(R.id.burnPlotFragment);\r
- burnPlot.init(motor);\r
- \r
- MotorDetailsFragment motorDetails = (MotorDetailsFragment) getSupportFragmentManager().findFragmentById(R.id.motorDetailForm);\r
- motorDetails.init(motor);\r
- \r
- slidingDrawer = (SlidingDrawer) findViewById(R.id.drawer);\r
- \r
- slidingDrawer.setOnDrawerOpenListener(this);\r
- slidingDrawer.setOnDrawerCloseListener(this);\r
- \r
- handle = (ImageView) findViewById(R.id.handle);\r
- \r
- }\r
- \r
- @Override\r
- public void onDrawerOpened() {\r
- handle.setImageResource(R.drawable.arrow_down_float);\r
- }\r
- \r
- @Override\r
- public void onDrawerClosed() {\r
- handle.setImageResource(R.drawable.arrow_up_float);\r
- }\r
-\r
- @Override\r
- public boolean onCreateOptionsMenu(Menu menu) {\r
- MenuInflater inflater = getMenuInflater();\r
- inflater.inflate(R.menu.motor_details_option_menu, menu);\r
- return true;\r
- }\r
-\r
- @Override\r
- public boolean onMenuItemSelected(int featureId, MenuItem item) {\r
- switch(item.getItemId()) {\r
- case R.id.save:\r
- // Extract form data to Motor.\r
- // Save motor.\r
- return true;\r
- }\r
- return super.onMenuItemSelected(featureId, item);\r
- }\r
-\r
-\r
-}\r
\r
import net.sf.openrocket.R;\r
import net.sf.openrocket.android.db.ConversionUtils;\r
+import net.sf.openrocket.android.db.DbAdapter;\r
import net.sf.openrocket.motor.ThrustCurveMotor;\r
import android.os.Bundle;\r
-import android.support.v4.app.Fragment;\r
+import android.support.v4.app.DialogFragment;\r
import android.view.LayoutInflater;\r
import android.view.View;\r
import android.view.ViewGroup;\r
+import android.widget.Button;\r
import android.widget.EditText;\r
\r
-public class MotorDetailsFragment extends Fragment {\r
+public class MotorDetailsFragment extends DialogFragment {\r
\r
EditText manuField;\r
EditText nameField;\r
EditText impulseClassField;\r
EditText diameterField;\r
EditText lengthField;\r
- \r
+\r
+ ExtendedThrustCurveMotor motor;\r
+\r
+ public static MotorDetailsFragment newInstance( long motorId ) {\r
+ MotorDetailsFragment fragment = new MotorDetailsFragment();\r
+ Bundle b = new Bundle();\r
+ b.putLong("motorId", motorId);\r
+ fragment.setArguments(b);\r
+ return fragment;\r
+ }\r
+\r
+ @Override\r
+ public void onCreate(Bundle savedInstanceState) {\r
+ super.onCreate(savedInstanceState);\r
+ setStyle(DialogFragment.STYLE_NO_TITLE,getTheme());\r
+\r
+ Long motorId;\r
+ if ( savedInstanceState != null ) {\r
+ motorId = savedInstanceState.getLong("motorId");\r
+ } else {\r
+ Bundle b = getArguments();\r
+ motorId = b.getLong("motorId");\r
+ }\r
+ DbAdapter mDbHelper = new DbAdapter(getActivity());\r
+ mDbHelper.open();\r
+ try {\r
+ motor = mDbHelper.getMotorDao().fetchMotor(motorId);\r
+ } catch ( Exception e ) {\r
+ }\r
+ mDbHelper.close();\r
+ }\r
+\r
+ @Override\r
+ public void onSaveInstanceState(Bundle arg0) {\r
+ super.onSaveInstanceState(arg0);\r
+ arg0.putLong("motorId", motor.getId());\r
+ }\r
+\r
@Override\r
public View onCreateView(LayoutInflater inflater, ViewGroup container,\r
Bundle savedInstanceState) {\r
impulseClassField = (EditText) v.findViewById(R.id.motorDetailsImpuseClass);\r
diameterField = (EditText) v.findViewById(R.id.motorDetailsDiameter);\r
lengthField = (EditText) v.findViewById(R.id.motorDetailsLength);\r
+ init();\r
+ /* TODO - enable saving.\r
+ ((Button) v.findViewById(R.id.motorDetailsSaveButton)).setOnClickListener(\r
+ new View.OnClickListener() {\r
+ @Override\r
+ public void onClick(View v) {\r
+ MotorDetailsFragment.this.saveChanges();\r
+ }\r
+ });\r
+ */\r
return v;\r
}\r
\r
- public void init( ExtendedThrustCurveMotor m ) {\r
- ThrustCurveMotor tcm = m.getThrustCurveMotor();\r
+ private void init( ) {\r
+ ThrustCurveMotor tcm = motor.getThrustCurveMotor();\r
manuField.setText( tcm.getManufacturer().getDisplayName());\r
nameField.setText( tcm.getDesignation() );\r
delaysField.setText( ConversionUtils.delaysToString(tcm.getStandardDelays()) );\r
- caseField.setText( m.getCaseInfo());\r
- impulseClassField.setText( m.getImpulseClass());\r
+ caseField.setText( motor.getCaseInfo());\r
+ impulseClassField.setText( motor.getImpulseClass());\r
diameterField.setText( String.valueOf(tcm.getDiameter()*1000.0) );\r
lengthField.setText( String.valueOf(tcm.getLength()*1000.0) );\r
- \r
}\r
- \r
+\r
+ private void saveChanges() {\r
+ DbAdapter mDbHelper = new DbAdapter(getActivity());\r
+ mDbHelper.open();\r
+ try {\r
+ mDbHelper.getMotorDao().insertOrUpdateMotor(motor);\r
+ } catch ( Exception e ) {\r
+ }\r
+\r
+ }\r
}\r
import android.database.Cursor;\r
import android.os.Bundle;\r
import android.preference.PreferenceManager;\r
+import android.support.v4.app.DialogFragment;\r
+import android.support.v4.app.Fragment;\r
+import android.support.v4.app.FragmentTransaction;\r
import android.view.ContextMenu;\r
import android.view.ContextMenu.ContextMenuInfo;\r
import android.view.Menu;\r
}\r
\r
public static MotorListFragment newInstance( ) {\r
-\r
MotorListFragment frag = new MotorListFragment();\r
return frag;\r
}\r
\r
private static final int CONTEXTMENU_DELETE = Menu.FIRST+1;\r
+ private static final int CONTEXTMENU_EDIT = Menu.FIRST+2;\r
\r
private String groupColumnPreferenceKey;\r
private String groupColumn = MotorDao.CASE_INFO;\r
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {\r
menu.setHeaderTitle("Motor Operations");\r
menu.add(Menu.NONE,CONTEXTMENU_DELETE,CONTEXTMENU_DELETE,"Delete");\r
+ menu.add(Menu.NONE,CONTEXTMENU_EDIT,CONTEXTMENU_EDIT,"Edit");\r
super.onCreateContextMenu(menu, v, menuInfo);\r
}\r
\r
mDbHelper.getMotorDao().deleteMotor(motorId);\r
refreshData();\r
return true;\r
+ case CONTEXTMENU_EDIT:\r
+ // DialogFragment.show() will take care of adding the fragment\r
+ // in a transaction. We also want to remove any currently showing\r
+ // dialog, so make our own transaction and take care of that here.\r
+ FragmentTransaction ft = getFragmentManager().beginTransaction();\r
+ Fragment prev = getFragmentManager().findFragmentByTag("dialog");\r
+ if (prev != null) {\r
+ ft.remove(prev);\r
+ }\r
+ ft.addToBackStack(null);\r
+\r
+ // Create and show the dialog.\r
+ DialogFragment newFragment = MotorDetailsFragment.newInstance(motorId);\r
+ newFragment.show(ft, "dialog");\r
+ return true;\r
}\r
return super.onContextItemSelected(item);\r
}\r
setListAdapter(mAdapter);\r
}\r
}\r
- \r
+\r
}\r