コード例 #1
0
  public MediaStoreVideo(
      Cursor cursor,
      Uri mediaStoreUri,
      String parentId,
      String transientId,
      final URLBuilder urlBuilder) {
    PersonWithRole artist;
    PersonWithRole[] artists;
    this.mediaStoreId = cursor.getLong(ID); // Used as an persistent identifier
    this.mediaStoreUri = mediaStoreUri;
    setId(transientId);
    setParentID(parentId);
    setCreator(MediaDBContent.CREATOR);

    if (!cursor.isNull(ALBUM)) {
      // unused
    }
    if (!cursor.isNull(ARTIST)) {
      artist =
          new PersonWithRole(
              cursor.getString(ARTIST), CommonPartsOfMediaSnuggler.DEFAULT_ARTIST_ROLE_IF_UNKNOWN);
      artists = new PersonWithRole[1];
      artists[0] = artist;
      setActors(artists);
    } else {
      artist =
          new PersonWithRole(
              CommonPartsOfMediaSnuggler.DEFAULT_ARTIST_NAME_IF_UNKNOWN,
              CommonPartsOfMediaSnuggler.DEFAULT_ARTIST_ROLE_IF_UNKNOWN);
      artists = new PersonWithRole[1];
      artists[0] = artist;
      setActors(artists);
    }
    if (!cursor.isNull(LANGUAGE)) {
      setLanguage(cursor.getString(LANGUAGE));
    }
    if (!cursor.isNull(DESCRIPTION)) {
      setDescription(cursor.getString(DESCRIPTION));
    }
    if (!cursor.isNull(TITLE)) {
      setTitle(cursor.getString(TITLE));
    }
    if (!cursor.isNull(CATEGORY)) {
      String[] categories = new String[1];
      categories[0] = cursor.getString(CATEGORY);
      setGenres(categories);
    }
    if (!cursor.isNull(DURATION)) {
      this.duration = cursor.getLong(DURATION);
    }
    if (!cursor.isNull(MIME_TYPE)) {
      this.mimeType = MimeType.valueOf(cursor.getString(MIME_TYPE));
    } else {
      this.mimeType =
          MimeType.valueOf(CommonPartsOfMediaSnuggler.MEDIA_VIDEO_DEFAULT_MIME_TYPE_IF_NOT_FOUND);
    }
    if (!cursor.isNull(SIZE)) {
      this.sizeInBytes = cursor.getInt(SIZE);
    }

    Res resource =
        new Res() {
          @Override
          public String getValue() {
            return urlBuilder.getURL(MediaStoreVideo.this);
          }
        };
    resource.setProtocolInfo(new ProtocolInfo(mimeType));
    resource.setDuration(Long.toString(duration));
    resource.setSize(sizeInBytes);
    addResource(resource);

    LOGGER.info("Added resource.");
  }