@Override
 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
   // If the drawer is open, show the global app actions in the action bar. See also
   // showGlobalContextActionBar, which controls the top-left area of the action bar.
   if (drawerLayout != null && isDrawerOpen()) {
     inflater.inflate(R.menu.global, menu);
     presenter.showActionBar();
   }
   super.onCreateOptionsMenu(menu, inflater);
 }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (savedInstanceState != null) {
      currentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
      fromSavedInstanceState = true;
    }

    // Select either the default item (0) or the last selected item.
    presenter.select(currentSelectedPosition);
  }
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    LinearLayout headerView =
        (LinearLayout) inflater.inflate(R.layout.drawer_header, container, false);
    drawerListView =
        (ListView) inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
    drawerListView.addHeaderView(headerView);
    drawerListView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            presenter.select(position);
          }
        });

    presenter.initListView();

    return drawerListView;
  }
  /**
   * Users of this fragment must call this method to set up the navigation drawer interactions.
   *
   * @param fragmentId The android:id of this fragment in its activity's layout.
   * @param drawerLayout The DrawerLayout containing this fragment's UI.
   */
  public void setUp(int fragmentId, DrawerLayout drawerLayout) {
    fragmentContainerView = getActivity().findViewById(fragmentId);
    this.drawerLayout = drawerLayout;

    presenter.setUp();
    // ActionBarDrawerToggle ties together the the proper interactions
    // between the navigation drawer and the action bar app icon.
    drawerToggle =
        new ActionBarDrawerToggle(
            getActivity(), /* host Activity */
            drawerLayout, /* DrawerLayout object */
            R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
            R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
            R.string.navigation_drawer_close /* "close drawer" description for accessibility */) {
          @Override
          public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
            if (!isAdded()) {
              return;
            }

            getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
          }

          @Override
          public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            if (!isAdded()) {
              return;
            }

            presenter.onDrawerOpened();

            getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
          }
        };

    this.drawerLayout.setDrawerListener(drawerToggle);
  }