public void setDrawerShadow(Drawable shadowDrawable, int gravity) {
   switch (gravity) {
     case Gravity.LEFT:
       mShadow.setShadowLeft(shadowDrawable);
       break;
     case Gravity.RIGHT:
       mShadow.setShadowRight(shadowDrawable);
       break;
     default:
       throw new IllegalStateException(
           "setDrawerShadow only support Gravity.LEFT and Gravity.RIGHT");
   }
   invalidate();
 }
  private void updateDrawerSlide(View drawerView, float percent) {
    boolean update = false;
    // Update percent
    if (drawerView == mLeftDrawer) {
      update = mLeftPercent != percent;
      mLeftPercent = percent;
    } else if (drawerView == mRightDrawer) {
      update = mRightPercent != percent;
      mRightPercent = percent;
    }

    if (update) {
      mShadow.setPercent(percent);
    }

    // Callback
    if (update && mListener != null) {
      mListener.onDrawerSlide(drawerView, percent);
    }
  }