docs: public static void handleFooterView(DrawerBuilder drawer, View.OnClickListener onClickListener) {
          Context ctx = drawer.mSliderLayout.getContext();
  
          //use the StickyDrawerItems if set
          if (drawer.mStickyDrawerItems != null && drawer.mStickyDrawerItems.size() > 0) {
              drawer.mStickyFooterView = DrawerUtils.buildStickyDrawerItemFooter(ctx, drawer, onClickListener);
          }
  
          //sticky footer view
          if (drawer.mStickyFooterView != null) {
              //add the sticky footer view and align it to the bottom
              RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
              layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 1);
              drawer.mStickyFooterView.setId(R.id.material_drawer_sticky_footer);
              drawer.mSliderLayout.addView(drawer.mStickyFooterView, layoutParams);
  
              if ((drawer.mTranslucentNavigationBar || drawer.mFullscreen) && Build.VERSION.SDK_INT >= 19) {
                  drawer.mStickyFooterView.setPadding(0, 0, 0, UIUtils.getNavigationBarHeight(ctx));
              }
  
              //now align the recyclerView above the stickyFooterView ;)
              RelativeLayout.LayoutParams layoutParamsListView = (RelativeLayout.LayoutParams) drawer.mRecyclerView.getLayoutParams();
              layoutParamsListView.addRule(RelativeLayout.ABOVE, R.id.material_drawer_sticky_footer);
              drawer.mRecyclerView.setLayoutParams(layoutParamsListView);
  
              //handle shadow on top of the sticky footer
              if (drawer.mStickyFooterShadow) {
                  drawer.mStickyFooterShadowView = new View(ctx);
                  drawer.mStickyFooterShadowView.setBackgroundResource(R.drawable.material_drawer_shadow_top);
                  drawer.mSliderLayout.addView(drawer.mStickyFooterShadowView, RelativeLayout.LayoutParams.MATCH_PARENT, ctx.getResources().getDimensionPixelSize(R.dimen.material_drawer_sticky_footer_elevation));
                  //now align the shadow below the stickyHeader ;)
                  RelativeLayout.LayoutParams lps = (RelativeLayout.LayoutParams) drawer.mStickyFooterShadowView.getLayoutParams();
                  lps.addRule(RelativeLayout.ABOVE, R.id.material_drawer_sticky_footer);
                  drawer.mStickyFooterShadowView.setLayoutParams(lps);
              }
  
              //remove the padding of the recyclerView again we have the footer below it
              drawer.mRecyclerView.setPadding(drawer.mRecyclerView.getPaddingLeft(), drawer.mRecyclerView.getPaddingTop(), drawer.mRecyclerView.getPaddingRight(), ctx.getResources().getDimensionPixelSize(R.dimen.material_drawer_padding));
          }
  
          // set the footer (do this before the setAdapter because some devices will crash else
          if (drawer.mFooterView != null) {
              if (drawer.mRecyclerView == null) {
                  throw new RuntimeException("can't use a footerView without a recyclerView");
              }
  
              if (drawer.mFooterDivider) {
                  drawer.getFooterAdapter().add(new ContainerDrawerItem().withView(drawer.mFooterView).withViewPosition(ContainerDrawerItem.Position.BOTTOM));
              } else {
                  drawer.getFooterAdapter().add(new ContainerDrawerItem().withView(drawer.mFooterView).withViewPosition(ContainerDrawerItem.Position.NONE));
              }
          }
      }