Search in sources :

Example 1 with LastFmArtist

use of com.simplecity.amp_library.http.lastfm.LastFmArtist in project Shuttle by timusus.

the class BiographyDialog method getBiographyDialog.

private static MaterialDialog getBiographyDialog(final Context context, @BioType int type, String artistName, String albumName) {
    @SuppressLint("InflateParams") View customView = LayoutInflater.from(context).inflate(R.layout.dialog_biography, null, false);
    final ProgressBar progressBar = customView.findViewById(R.id.progress);
    final TextView message = customView.findViewById(R.id.message);
    Callback<LastFmArtist> artistCallback = new Callback<LastFmArtist>() {

        @Override
        public void onResponse(Call<LastFmArtist> call, Response<LastFmArtist> response) {
            progressBar.setVisibility(View.GONE);
            if (response != null && response.isSuccessful()) {
                if (response.body() != null && response.body().artist != null && response.body().artist.bio != null) {
                    String summary = response.body().artist.bio.summary;
                    if (ShuttleUtils.hasNougat()) {
                        message.setText(Html.fromHtml(summary, Html.FROM_HTML_MODE_COMPACT));
                    } else {
                        message.setText(Html.fromHtml(summary));
                    }
                } else {
                    message.setText(R.string.no_artist_info);
                }
            }
        }

        @Override
        public void onFailure(Call<LastFmArtist> call, Throwable t) {
            progressBar.setVisibility(View.GONE);
            switch(type) {
                case BioType.ARTIST:
                    message.setText(R.string.no_artist_info);
                    break;
                case BioType.ALBUM:
                    message.setText(R.string.no_album_info);
                    break;
            }
        }
    };
    Callback<LastFmAlbum> albumCallback = new Callback<LastFmAlbum>() {

        @Override
        public void onResponse(Call<LastFmAlbum> call, Response<LastFmAlbum> response) {
            progressBar.setVisibility(View.GONE);
            if (response != null && response.isSuccessful()) {
                if (response.body() != null && response.body().album != null && response.body().album.wiki != null) {
                    String summary = response.body().album.wiki.summary;
                    if (ShuttleUtils.hasNougat()) {
                        message.setText(Html.fromHtml(summary, Html.FROM_HTML_MODE_COMPACT));
                    } else {
                        message.setText(Html.fromHtml(summary));
                    }
                } else {
                    message.setText(R.string.no_album_info);
                }
            }
        }

        @Override
        public void onFailure(Call<LastFmAlbum> call, Throwable t) {
            progressBar.setVisibility(View.GONE);
            switch(type) {
                case BioType.ARTIST:
                    message.setText(R.string.no_artist_info);
                    break;
                case BioType.ALBUM:
                    message.setText(R.string.no_album_info);
                    break;
            }
        }
    };
    switch(type) {
        case BioType.ARTIST:
            HttpClient.getInstance().lastFmService.getLastFmArtistResult(artistName).enqueue(artistCallback);
            break;
        case BioType.ALBUM:
            HttpClient.getInstance().lastFmService.getLastFmAlbumResult(artistName, albumName).enqueue(albumCallback);
            break;
    }
    MaterialDialog.Builder builder = DialogUtils.getBuilder(context).title(R.string.info).customView(customView, false).negativeText(R.string.close);
    return builder.build();
}
Also used : Call(retrofit2.Call) LastFmArtist(com.simplecity.amp_library.http.lastfm.LastFmArtist) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) LastFmAlbum(com.simplecity.amp_library.http.lastfm.LastFmAlbum) View(android.view.View) TextView(android.widget.TextView) Response(retrofit2.Response) Callback(retrofit2.Callback) SuppressLint(android.annotation.SuppressLint) TextView(android.widget.TextView) ProgressBar(android.widget.ProgressBar)

Aggregations

SuppressLint (android.annotation.SuppressLint)1 View (android.view.View)1 ProgressBar (android.widget.ProgressBar)1 TextView (android.widget.TextView)1 MaterialDialog (com.afollestad.materialdialogs.MaterialDialog)1 LastFmAlbum (com.simplecity.amp_library.http.lastfm.LastFmAlbum)1 LastFmArtist (com.simplecity.amp_library.http.lastfm.LastFmArtist)1 Call (retrofit2.Call)1 Callback (retrofit2.Callback)1 Response (retrofit2.Response)1