code: @Nullable public static <T> T readNullable(
        @NonNull Parcel source, @NonNull TypeAdapter<T> adapter) {
      T value = null;
      if (source.readInt() == 1) {
        value = adapter.readFromParcel(source);
      }
      return value;
    }
docs: Reads a {@code T} instance from {@code source} using {@code adapter}. This method can handle
  {@code null} values. It should be used for reading objects that were written using
  {@link #writeNullable(Object, Parcel, int, TypeAdapter)}.