create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / motor / MotorBrowserActivity.java
1 package net.sf.openrocket.android.motor;\r
2 \r
3 import net.sf.openrocket.R;\r
4 import net.sf.openrocket.android.ActivityHelpers;\r
5 import net.sf.openrocket.android.PreferencesActivity;\r
6 import net.sf.openrocket.android.util.AndroidLogWrapper;\r
7 import android.content.Intent;\r
8 import android.os.Bundle;\r
9 import android.support.v4.app.Fragment;\r
10 import android.support.v4.app.FragmentTransaction;\r
11 import android.view.View;\r
12 \r
13 import com.actionbarsherlock.app.SherlockFragmentActivity;\r
14 import com.actionbarsherlock.view.Menu;\r
15 import com.actionbarsherlock.view.MenuInflater;\r
16 import com.actionbarsherlock.view.MenuItem;\r
17 \r
18 public class MotorBrowserActivity extends SherlockFragmentActivity\r
19 implements MotorListFragment.OnMotorSelectedListener\r
20 {\r
21 \r
22         MotorListFragment motorList;\r
23 \r
24         private final static int DOWNLOAD_REQUEST_CODE = 1;\r
25         private final static String MOTOR_LIST_FRAGMENT = "motor_list";\r
26 \r
27         /** Called when the activity is first created. */\r
28         @Override\r
29         public void onCreate(Bundle savedInstanceState) {\r
30                 super.onCreate(savedInstanceState);\r
31                 setContentView(R.layout.motorbrowser);\r
32                 getSupportActionBar().setDisplayHomeAsUpEnabled(true);\r
33                 getSupportActionBar().setTitle(R.string.motorbrowsertitle);\r
34                 // Only create the motorBrowser fragment if it doesn't already exist.\r
35                 Fragment motorBrowser = getSupportFragmentManager().findFragmentByTag(MOTOR_LIST_FRAGMENT);\r
36                 if ( motorBrowser == null ) {\r
37                         getSupportFragmentManager()\r
38                         .beginTransaction()\r
39                         .add( R.id.motorBrowserList, new MotorListFragment(), MOTOR_LIST_FRAGMENT)\r
40                         .commit();\r
41                 }\r
42         }\r
43 \r
44         @Override\r
45         public boolean onCreateOptionsMenu(Menu menu) {\r
46                 MenuInflater inflater = getSupportMenuInflater();\r
47                 inflater.inflate(R.menu.motor_browser_option_menu, menu);\r
48                 return true;\r
49         }\r
50 \r
51         @Override\r
52         public boolean onMenuItemSelected(int featureId, MenuItem item) {\r
53                 AndroidLogWrapper.d(MotorBrowserActivity.class,"onMenuItemSelected" + item.getItemId());\r
54                 switch(item.getItemId()) {\r
55                 case android.R.id.home:\r
56                         // we implement home in the motor browser as "back" since then it will return to\r
57                         // either main or the viewer.\r
58                         finish();\r
59                         return true;\r
60                 case R.id.download_from_thrustcurve_menu_option:\r
61                         ActivityHelpers.downloadFromThrustcurve(this,DOWNLOAD_REQUEST_CODE);\r
62                         return true;\r
63                 case R.id.preference_menu_option:\r
64                         Intent intent = new Intent().setClass(this, PreferencesActivity.class);\r
65                         this.startActivity(intent);\r
66                         return true;\r
67                 case R.id.menu_about:\r
68                         ActivityHelpers.showAbout(this);\r
69                         return true;\r
70                 }\r
71                 return super.onMenuItemSelected(featureId, item);\r
72         }\r
73 \r
74         @Override\r
75         protected void onActivityResult(int requestCode, int responseCode, Intent intent) {\r
76                 if ( requestCode == DOWNLOAD_REQUEST_CODE ) {\r
77                         MotorListFragment frag = (MotorListFragment) getSupportFragmentManager().findFragmentById(R.id.motorBrowserList);\r
78                         frag.refreshData();\r
79                 }\r
80         }\r
81 \r
82         @Override\r
83         public void onMotorSelected(long motorId) {\r
84 \r
85                 View sidepane = findViewById(R.id.sidepane);\r
86                 if ( /* if multi pane */ sidepane != null ) {\r
87 \r
88                         Fragment graph = BurnPlotFragment.newInstance(motorId);\r
89 \r
90                         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
91                         ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);\r
92                         ft.replace(R.id.sidepane, graph);\r
93                         ft.show(graph);\r
94                         ft.commit();\r
95 \r
96                 } else {\r
97                         Intent i = new Intent(this,BurnPlotActivity.class);\r
98                         i.putExtra("Motor", motorId);\r
99                         startActivity(i);\r
100                 }\r
101 \r
102         }\r
103 \r
104 }\r