3131import android .support .v7 .app .ActionBarDrawerToggle ;
3232import android .support .v7 .app .AppCompatActivity ;
3333import android .view .LayoutInflater ;
34+ import android .view .Menu ;
35+ import android .view .MenuInflater ;
3436import android .view .MenuItem ;
3537import android .view .View ;
3638import android .view .ViewGroup ;
@@ -49,6 +51,7 @@ public class MainActivity extends AppCompatActivity {
4951 MainFragment mMainFragment ;
5052 ActionBarDrawerToggle mDrawerToggle ;
5153 DrawerLayout mDrawerLayout ;
54+ private Menu mMenu = null ;
5255
5356 @ Override
5457 protected void onCreate (Bundle savedInstanceState ) {
@@ -79,30 +82,69 @@ protected void onCreate(Bundle savedInstanceState) {
7982 mDrawerToggle = new ActionBarDrawerToggle (this ,
8083 mDrawerLayout , R .string .drawer_was_opened , R .string .drawer_was_closed );
8184 mDrawerLayout .setDrawerListener (mDrawerToggle );
82- mDrawerToggle .syncState ();
8385 getSupportActionBar ().setDisplayHomeAsUpEnabled (true );
8486 getSupportActionBar ().setHomeButtonEnabled (true );
8587
8688 mMainFragment = new MainFragment ();
8789 getSupportFragmentManager ().beginTransaction ()
88- .add (R .id .mainframe , mMainFragment ).commit ();
90+ .add (R .id .mainframe , mMainFragment , "MainFragment" )
91+ .setCustomAnimations (R .anim .fadein , R .anim .fadeout , R .anim .fadein , R .anim .fadeout )
92+ .commit ();
8993 }
9094 }
9195
92- public boolean onOptionsItemSelected (MenuItem item ) {
96+ @ Override
97+ public boolean onCreateOptionsMenu (Menu menu ) {
98+ MenuInflater inflater = getMenuInflater ();
99+ inflater .inflate (R .menu .top , menu );
100+ mMenu = menu ;
101+ return true ;
102+ }
103+
104+
105+ public void launchSettings () {
106+ getSupportFragmentManager ().beginTransaction ()
107+ .add (R .id .mainframe , new SettingsFragment .PrefsFrag ())
108+ .addToBackStack (null )
109+ .setCustomAnimations (R .anim .fadein , R .anim .fadeout , R .anim .fadein , R .anim .fadeout )
110+ .commit ();
111+ }
112+
113+
114+ @ Override
115+ public boolean onOptionsItemSelected (final MenuItem item ) {
116+
93117 if (mDrawerToggle .onOptionsItemSelected (item )) {
94118 return true ;
95119 }
96- return true ;
97- }
98120
99- public void onBackPressed () {
100- mMainFragment .onBackPressed ();
121+ switch (item .getItemId ()) {
122+
123+ case R .id .settings :
124+ launchSettings ();
125+ return true ;
126+
127+ case R .id .about :
128+ launchAbout ();
129+ return true ;
130+
131+ case R .id .submit_issue :
132+ submitIssue ();
133+ return true ;
134+
135+ default :
136+ return false ;
137+ }
101138 }
102139
103- public void launchSettings () {
104- startActivity (new Intent (this , SettingsActivity .class ));
105- overridePendingTransition (R .anim .fadeout , R .anim .fadein );
140+ public void submitIssue () {
141+ String uri = getString (R .string .github_new_issue_url );
142+ Intent browser = new Intent (Intent .ACTION_VIEW , Uri .parse (uri ));
143+ startActivity (browser );
144+
145+ // for fat-tire:
146+ // String.format(getString(R.string.issue_message), getString(R.string.github_issues_url), getString(R.string.github_new_issue_url));
147+
106148 }
107149
108150 public void launchAbout () {
@@ -144,9 +186,7 @@ public void onItemClick(AdapterView parent, View view, int position, long id) {
144186 launchSettings ();
145187 break ;
146188 case 2 :
147- String uri = getString (R .string .github_new_issue_url );
148- Intent browser = new Intent (Intent .ACTION_VIEW , Uri .parse (uri ));
149- startActivity (browser );
189+ submitIssue ();
150190 break ;
151191 }
152192 }
@@ -182,5 +222,13 @@ public View getView(int position, View convertView, ViewGroup parent) {
182222 }
183223 }
184224
185-
225+ @ Override
226+ public void onBackPressed () {
227+ // Only ask for the double-backpressed when MainFragment is all that's left.
228+ if (getSupportFragmentManager ().getBackStackEntryCount () == 0 ) {
229+ mMainFragment .onBackPressed ();
230+ } else {
231+ super .onBackPressed ();
232+ }
233+ }
186234}
0 commit comments