package com.hfad.bitsandpizzas; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.ShareActionProvider; import android.widget.Toast; public class MainActivity extends Activity { private ShareActionProvider shareActionProvider; private String[] titles; // local list of categories private ListView drawerList; private DrawerLayout drawerLayout; private ActionBarDrawerToggle drawerToggle; private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { selectItem(position); } } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // populate local list of categories titles = getResources().getStringArray(R.array.titles); drawerList = (ListView) findViewById(R.id.drawer); drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); // Populate the list view drawerList.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_activated_1, titles)); drawerList.setOnItemClickListener(new DrawerItemClickListener()); if (savedInstanceState == null) { // if MainActivity newly created ... selectItem(0); } // Create the ActionBarToggle ... drawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.open_drawer, R.string.close_drawer) { @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); invalidateOptionsMenu(); } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); invalidateOptionsMenu(); } }; // ... and set the ActionBarToggle as the drawer's listener drawerLayout.setDrawerListener(drawerToggle); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // sync toggle state (after onRestoreInstanceState has occurred). drawerToggle.syncState(); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); drawerToggle.onConfigurationChanged(newConfig); } @Override public boolean onPrepareOptionsMenu(Menu menu) { // If the drawer is open, hide action items related to the content view. boolean drawerOpen = drawerLayout.isDrawerOpen(drawerList); menu.findItem(R.id.action_share).setVisible(!drawerOpen); return super.onPrepareOptionsMenu(menu); } private void selectItem(int position) { // update the main content by replacing fragments Fragment fragment; switch (position) { case 1: fragment = new PizzaFragment(); break; case 2: fragment = new PastaFragment(); break; case 3: fragment = new StoresFragment(); break; default: fragment = new TopFragment(); } FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.content_frame, fragment) .addToBackStack(null) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit(); //Set the action bar title setActionBarTitle(position); //Close drawer drawerLayout.closeDrawer(drawerList); } private void setActionBarTitle(int position) { String title; if (position == 0) { title = getResources().getString(R.string.app_name); } else { title = titles[position]; } getActionBar().setTitle(title); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Add menu_main items to the action bar (if present): getMenuInflater().inflate(R.menu.menu_main, menu); MenuItem menuItem = menu.findItem(R.id.action_share); shareActionProvider = (ShareActionProvider) menuItem.getActionProvider(); setIntent("This is example text."); return super.onCreateOptionsMenu(menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { // If a drawer option has been clicked ... if (drawerToggle.onOptionsItemSelected(item)) { // do nothing and return. return true; } // ... otherwise ... switch (item.getItemId()) { case R.id.action_create_order: //Code to run when the Create Order item is clicked Intent intent = new Intent(this, OrderActivity.class); startActivity(intent); return true; case R.id.action_settings: //Code to run when the settings item is clicked Toast.makeText(MainActivity.this, "Settings!", Toast.LENGTH_SHORT).show(); return true; default: return super.onOptionsItemSelected(item); } } private void setIntent(String text) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, text); shareActionProvider.setShareIntent(intent); } }