@Override
 public int hashCode() {
   int result = url.hashCode();
   result = 31 * result + (media_url != null ? media_url.hashCode() : 0);
   result = 31 * result + (preview_url != null ? preview_url.hashCode() : 0);
   result = 31 * result + start;
   result = 31 * result + end;
   result = 31 * result + type;
   result = 31 * result + width;
   result = 31 * result + height;
   result = 31 * result + (video_info != null ? video_info.hashCode() : 0);
   result = 31 * result + (card != null ? card.hashCode() : 0);
   result = 31 * result + (page_url != null ? page_url.hashCode() : 0);
   return result;
 }
  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    ParcelableMedia media = (ParcelableMedia) o;

    if (start != media.start) return false;
    if (end != media.end) return false;
    if (type != media.type) return false;
    if (width != media.width) return false;
    if (height != media.height) return false;
    if (!url.equals(media.url)) return false;
    if (media_url != null ? !media_url.equals(media.media_url) : media.media_url != null)
      return false;
    if (preview_url != null ? !preview_url.equals(media.preview_url) : media.preview_url != null)
      return false;
    if (video_info != null ? !video_info.equals(media.video_info) : media.video_info != null)
      return false;
    if (card != null ? !card.equals(media.card) : media.card != null) return false;
    return !(page_url != null ? !page_url.equals(media.page_url) : media.page_url != null);
  }