docs: public void setUp(int fragmentId, final DrawerLayout drawerLayout) {
          fragmentContainerView = getActivity().findViewById(fragmentId);
          this.drawerLayout = drawerLayout;
  
          // Set the custom scrim color (the overlay color) for the etsy like effect
          drawerLayout.setScrimColor(ContextCompat.getColor(getContext(), R.color.bg_glass));
  
          // set a custom shadow that overlays the main content when the drawer opens
          // drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
          // set up the drawer's list view with items and click listener
  
          ActionBar actionBar = getActionBar();
          actionBar.setDisplayHomeAsUpEnabled(true);
          actionBar.setHomeButtonEnabled(true);
  
          // 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.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().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu()
              }
  
              @Override
              public void onDrawerOpened(View drawerView) {
                  super.onDrawerOpened(drawerView);
                  if (!isAdded()) {
                      return;
                  }
  
                  if (!userLearnedDrawer) {
                      // The user manually opened the drawer; store this flag to prevent auto-showing
                      // the navigation drawer automatically in the future.
                      userLearnedDrawer = true;
                      SharedPreferences sp = PreferenceManager
                              .getDefaultSharedPreferences(getActivity());
                      sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).commit();
                  }
  
                  getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu()
              }
          };
  
          drawerLayout.addDrawerListener(drawerToggle);
  
          // If the user hasn't 'learned' about the drawer, open it to introduce them to the drawer,
          // per the navigation drawer design guidelines.
          if (!userLearnedDrawer && !fromSavedInstanceState) {
              drawerLayout.openDrawer(fragmentContainerView);
              drawerLayout.post(new Runnable() {
                  @Override
                  public void run() {
                      drawerToggle.onDrawerSlide(fragmentContainerView, 1f);
                  }
              });
          }
  
          // Defer code dependent on restoration of previous instance state.
          drawerLayout.post(new Runnable() {
              @Override
              public void run() {
                  drawerToggle.syncState();
              }
          });
      }