@Override
  protected final Parcelable onSaveInstanceState() {
    Bundle bundle = new Bundle();

    // Let derivative classes get a chance to save state first, that way we
    // can make sure they don't overrite any of our values
    onPtrSaveInstanceState(bundle);

    bundle.putInt(STATE_STATE, mState.getIntValue());
    bundle.putInt(STATE_MODE, mMode.getIntValue());
    bundle.putInt(STATE_CURRENT_MODE, mCurrentMode.getIntValue());
    bundle.putBoolean(STATE_SCROLLING_REFRESHING_ENABLED, mScrollingWhileRefreshingEnabled);
    bundle.putBoolean(STATE_SHOW_REFRESHING_VIEW, mShowViewWhileRefreshing);
    bundle.putParcelable(STATE_SUPER, super.onSaveInstanceState());

    return bundle;
  }