/** Saves the visibility of the child EditTexts, and mHideOptional. */
  @Override
  protected Parcelable onSaveInstanceState() {
    Parcelable superState = super.onSaveInstanceState();
    SavedState ss = new SavedState(superState);

    ss.mHideOptional = mHideOptional;

    final int numChildren = mFieldEditTexts == null ? 0 : mFieldEditTexts.length;
    ss.mVisibilities = new int[numChildren];
    for (int i = 0; i < numChildren; i++) {
      ss.mVisibilities[i] = mFieldEditTexts[i].getVisibility();
    }

    return ss;
  }