@Override
    public void writeToParcel(Parcel parcel, int i) {

      parcel.writeInt(mType.ordinal());

      if (mType == Type.BUTTON) {

        parcel.writeString(mButtonText);
        parcel.writeFloat(mButtonTextSize);
        parcel.writeInt(mButtonTextColor);
        parcel.writeInt(mButtonResource);
        parcel.writeInt(mButtonDividerResource);
        parcel.writeInt(mButtonTypeface);
        parcel.writeString(mClickListenerTag);
      }

      if (mIconResource != 0 && mIconPosition != null) {

        parcel.writeByte((byte) 1);

        parcel.writeInt(mIconResource);
        parcel.writeInt(mIconPosition.ordinal());

      } else {

        parcel.writeByte((byte) 0);
      }

      parcel.writeString(mDismissListenerTag);
      parcel.writeInt(mAnimations.ordinal());
      parcel.writeString(mText);
      parcel.writeInt(mTypeface);
      parcel.writeInt(mDuration);
      parcel.writeInt(mTextColor);
      parcel.writeFloat(mTextSize);
      parcel.writeByte((byte) (isIndeterminate ? 1 : 0));
      parcel.writeInt(mBackgroundResource);
      parcel.writeByte((byte) (isTouchDismissable ? 1 : 0));
      parcel.writeByte((byte) (isSwipeDismissable ? 1 : 0));
    }