예제 #1
0
  @Override
  public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) {
    super.onBindViewHolder(viewHolder, item);

    final CardViewHolder cardViewHolder = (CardViewHolder) viewHolder;
    final ImageCardView imageCardView = cardViewHolder.getImageCardView();

    AlbumSimple albumSimple = (AlbumSimple) item;

    // name
    imageCardView.setTitleText(albumSimple.name);

    // Load real album (not simple) from API
    SpotifyTvApplication app = SpotifyTvApplication.getInstance();
    app.getSpotifyService()
        .getAlbum(
            albumSimple.id,
            new Callback<Album>() {
              @Override
              public void success(final Album album, Response response) {
                // artists
                final StringBuilder artists = new StringBuilder();
                for (ArtistSimple artist : album.artists) {
                  if (artists.length() > 0) {
                    artists.append(", ");
                  }
                  artists.append(artist.name);
                }

                // image
                final String imageUrl = album.images.get(0).url;

                // run on UI thread
                imageCardView.post(
                    new Runnable() {
                      @Override
                      public void run() {
                        imageCardView.setContentText(artists);

                        cardViewHolder.updateCardViewImage(URI.create(imageUrl));
                      }
                    });
              }

              @Override
              public void failure(RetrofitError error) {}
            });
  }