Added control for the auto download setting.

This commit is contained in:
Materight 2017-07-05 16:47:41 +02:00
commit d15f056e00
3 changed files with 71 additions and 31 deletions

View file

@ -98,6 +98,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
@Nullable @Nullable
private Spanned wiki; private Spanned wiki;
private MaterialDialog wikiDialog;
private LastFMRestClient lastFMRestClient; private LastFMRestClient lastFMRestClient;
@Override @Override
@ -255,14 +256,6 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
return true; return true;
} }
private MaterialDialog getWikiDialog() {
return new MaterialDialog.Builder(AlbumDetailActivity.this)
.title(getAlbum().getTitle())
.content(wiki != null ? wiki : "")
.positiveText(android.R.string.ok)
.build();
}
private void loadWiki() { private void loadWiki() {
final Callback<LastFmAlbum> wikiCallback = new Callback<LastFmAlbum>(){ final Callback<LastFmAlbum> wikiCallback = new Callback<LastFmAlbum>(){
@Override @Override
@ -272,14 +265,17 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
String wik = lastFmAlbum.getAlbum().getWiki().getContent(); String wik = lastFmAlbum.getAlbum().getWiki().getContent();
if (wik != null && !wik.trim().equals("")) { if (wik != null && !wik.trim().equals("")) {
wiki = Html.fromHtml(wik); wiki = Html.fromHtml(wik);
wikiReady();
return;
}
else if(call.request().url().queryParameter("lang") != null) {
//If the "lang" parameter is set and no wiki is given, retry with default language
lastFMRestClient.getApiService().getAlbumInfo(getAlbum().getTitle(), getAlbum().getArtistName(), null).enqueue(this);
return; return;
} }
} }
if(call.request().url().queryParameter("lang") != null){
//If the "lang" parameter is set and no wiki is given, retry with default language
lastFMRestClient.getApiService().getAlbumInfo(getAlbum().getTitle(), getAlbum().getArtistName(), null).enqueue(this);
}
wiki = null; wiki = null;
wikiReady();
} }
@Override @Override
@ -291,6 +287,17 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
lastFMRestClient.getApiService().getAlbumInfo(getAlbum().getTitle(), getAlbum().getArtistName(), Locale.getDefault().getLanguage()).enqueue(wikiCallback); lastFMRestClient.getApiService().getAlbumInfo(getAlbum().getTitle(), getAlbum().getArtistName(), Locale.getDefault().getLanguage()).enqueue(wikiCallback);
} }
private void wikiReady(){
if(!Util.isAllowedToAutoDownload(AlbumDetailActivity.this)) {
if(wiki != null) {
wikiDialog.setContent(wiki);
} else {
wikiDialog.dismiss();
Toast.makeText(AlbumDetailActivity.this, getResources().getString(R.string.wiki_unavailable), Toast.LENGTH_SHORT).show();
}
}
}
@Override @Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId(); int id = item.getItemId();
@ -316,11 +323,18 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
NavigationUtil.goToArtist(this, getAlbum().getArtistId()); NavigationUtil.goToArtist(this, getAlbum().getArtistId());
return true; return true;
case R.id.action_wiki: case R.id.action_wiki:
if(Util.isAllowedToAutoDownload(AlbumDetailActivity.this)) {
if (wiki != null) { if (wiki != null) {
getWikiDialog().show(); wikiDialog.setContent(wiki);
wikiDialog.show();
} else { } else {
Toast.makeText(AlbumDetailActivity.this, getResources().getString(R.string.wiki_unavailable), Toast.LENGTH_SHORT).show(); Toast.makeText(AlbumDetailActivity.this, getResources().getString(R.string.wiki_unavailable), Toast.LENGTH_SHORT).show();
} }
}
else {
wikiDialog.show();
loadWiki();
}
return true; return true;
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
@ -388,7 +402,13 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
private void setAlbum(Album album) { private void setAlbum(Album album) {
this.album = album; this.album = album;
loadAlbumCover(); loadAlbumCover();
if(Util.isAllowedToAutoDownload(AlbumDetailActivity.this))
loadWiki(); loadWiki();
wikiDialog=new MaterialDialog.Builder(AlbumDetailActivity.this)
.title(album.getTitle())
.content("")
.positiveText(android.R.string.ok)
.build();
albumTitleView.setText(album.getTitle()); albumTitleView.setText(album.getTitle());
adapter.swapDataSet(album.songs); adapter.swapDataSet(album.songs);
} }

View file

@ -102,6 +102,7 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
private Artist artist; private Artist artist;
@Nullable @Nullable
private Spanned biography; private Spanned biography;
private MaterialDialog biographyDialog;
private HorizontalAlbumAdapter albumAdapter; private HorizontalAlbumAdapter albumAdapter;
private ArtistSongAdapter songAdapter; private ArtistSongAdapter songAdapter;
@ -233,14 +234,17 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
String bio = lastFmArtist.getArtist().getBio().getContent(); String bio = lastFmArtist.getArtist().getBio().getContent();
if (bio != null && !bio.trim().equals("")) { if (bio != null && !bio.trim().equals("")) {
biography = Html.fromHtml(bio); biography = Html.fromHtml(bio);
biographyReady();
return; return;
} }
else if(call.request().url().queryParameter("lang") != null){ else if(call.request().url().queryParameter("lang") != null) {
//If the "lang" parameter is set and no bio is given, retry with default language //If the "lang" parameter is set and no biography is given, retry with default language
lastFMRestClient.getApiService().getArtistInfo(getArtist().getName(), null, null).enqueue(this); lastFMRestClient.getApiService().getArtistInfo(getArtist().getName(), null, null).enqueue(this);
return;
} }
} }
biography = null; biography = null;
biographyReady();
} }
@Override @Override
@ -252,12 +256,15 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
lastFMRestClient.getApiService().getArtistInfo(getArtist().getName(), Locale.getDefault().getLanguage(), null).enqueue(bioCallback); lastFMRestClient.getApiService().getArtistInfo(getArtist().getName(), Locale.getDefault().getLanguage(), null).enqueue(bioCallback);
} }
private MaterialDialog getBiographyDialog() { private void biographyReady() {
return new MaterialDialog.Builder(ArtistDetailActivity.this) if(!Util.isAllowedToAutoDownload(ArtistDetailActivity.this)) {
.title(getArtist().getName()) if(biography != null) {
.content(biography != null ? biography : "") biographyDialog.setContent(biography);
.positiveText(android.R.string.ok) } else {
.build(); biographyDialog.dismiss();
Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.biography_unavailable), Toast.LENGTH_SHORT).show();
}
}
} }
private void loadArtistImage(final boolean forceDownload) { private void loadArtistImage(final boolean forceDownload) {
@ -350,11 +357,18 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
super.onBackPressed(); super.onBackPressed();
return true; return true;
case R.id.action_biography: case R.id.action_biography:
if(Util.isAllowedToAutoDownload(ArtistDetailActivity.this)) {
if (biography != null) { if (biography != null) {
getBiographyDialog().show(); biographyDialog.setContent(biography);
biographyDialog.show();
} else { } else {
Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.biography_unavailable), Toast.LENGTH_SHORT).show(); Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.biography_unavailable), Toast.LENGTH_SHORT).show();
} }
}
else {
biographyDialog.show();
loadBiography();
}
return true; return true;
case R.id.action_re_download_artist_image: case R.id.action_re_download_artist_image:
Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.updating), Toast.LENGTH_SHORT).show(); Toast.makeText(ArtistDetailActivity.this, getResources().getString(R.string.updating), Toast.LENGTH_SHORT).show();
@ -421,7 +435,13 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement
private void setArtist(Artist artist) { private void setArtist(Artist artist) {
this.artist = artist; this.artist = artist;
loadArtistImage(false); loadArtistImage(false);
if(Util.isAllowedToAutoDownload(ArtistDetailActivity.this))
loadBiography(); loadBiography();
biographyDialog=new MaterialDialog.Builder(ArtistDetailActivity.this)
.title(artist.getName())
.content("")
.positiveText(android.R.string.ok)
.build();
artistName.setText(artist.getName()); artistName.setText(artist.getName());
songAdapter.swapDataSet(artist.getSongs()); songAdapter.swapDataSet(artist.getSongs());
albumAdapter.swapDataSet(artist.albums); albumAdapter.swapDataSet(artist.albums);

View file

@ -131,7 +131,7 @@
<string name="pref_title_app_shortcuts">Colored app shortcuts</string> <string name="pref_title_app_shortcuts">Colored app shortcuts</string>
<string name="pref_title_set_default_start_page">Start page</string> <string name="pref_title_set_default_start_page">Start page</string>
<string name="pref_title_album_art_on_lockscreen">Show album cover</string> <string name="pref_title_album_art_on_lockscreen">Show album cover</string>
<string name="pref_title_auto_download_artist_images">Auto download artist images</string> <string name="pref_title_auto_download_artist_images">Auto download meta data</string>
<string name="pref_title_blurred_album_art">Blur album cover</string> <string name="pref_title_blurred_album_art">Blur album cover</string>
<string name="pref_title_colored_notification">Colored notification</string> <string name="pref_title_colored_notification">Colored notification</string>
<string name="pref_title_classic_notification">Classic notification design</string> <string name="pref_title_classic_notification">Classic notification design</string>