diff --git a/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java b/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java index 38892da0..8585c293 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java +++ b/app/src/main/java/com/kabouzeid/gramophone/imageloader/PhonographImageDownloader.java @@ -15,6 +15,7 @@ import com.nostra13.universalimageloader.core.download.BaseImageDownloader; import org.jaudiotagger.audio.AudioFile; import org.jaudiotagger.audio.AudioFileIO; +import org.jaudiotagger.tag.images.Artwork; import java.io.ByteArrayInputStream; import java.io.File; @@ -73,14 +74,9 @@ public class PhonographImageDownloader extends BaseImageDownloader { if (PreferenceUtil.getInstance(context).ignoreMediaStoreArtwork()) { ArrayList songs = AlbumSongLoader.getAlbumSongList(context, albumId); for (Song song : songs) { - try { - AudioFile audioFile = AudioFileIO.read(new File(song.data)); - byte[] albumCover = audioFile.getTagOrCreateAndSetDefault().getFirstArtwork().getBinaryData(); - if (albumCover != null) { - return new ByteArrayInputStream(albumCover); - } - } catch (@NonNull Exception e) { - e.printStackTrace(); + byte[] albumCover = getAlbumCoverBinaryData(new File(song.data)); + if (albumCover != null) { + return new ByteArrayInputStream(albumCover); } } } @@ -92,14 +88,9 @@ public class PhonographImageDownloader extends BaseImageDownloader { String[] data = imageUri.substring(SCHEME_SONG.length()).split("#", 2); if (PreferenceUtil.getInstance(context).ignoreMediaStoreArtwork()) { - try { - AudioFile audioFile = AudioFileIO.read(new File(data[1])); - byte[] albumCover = audioFile.getTagOrCreateAndSetDefault().getFirstArtwork().getBinaryData(); - if (albumCover != null) { - return new ByteArrayInputStream(albumCover); - } - } catch (@NonNull Exception e) { - e.printStackTrace(); + byte[] albumCover = getAlbumCoverBinaryData(new File(data[1])); + if (albumCover != null) { + return new ByteArrayInputStream(albumCover); } } @@ -107,6 +98,20 @@ public class PhonographImageDownloader extends BaseImageDownloader { return getMediaProviderAlbumArtInputStream(id); } + @Nullable + private static byte[] getAlbumCoverBinaryData(File song) { + try { + AudioFile audioFile = AudioFileIO.read(song); + Artwork artwork = audioFile.getTagOrCreateAndSetDefault().getFirstArtwork(); + if (artwork != null) { + return artwork.getBinaryData(); + } + } catch (@NonNull Exception e) { + e.printStackTrace(); + } + return null; + } + @Nullable private InputStream getMediaProviderAlbumArtInputStream(int albumId) throws FileNotFoundException { diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java index fc78375a..d1660f78 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/AlbumDetailActivity.java @@ -92,8 +92,8 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements @Override protected void onCreate(Bundle savedInstanceState) { - setStatusBarTransparent(); super.onCreate(savedInstanceState); + setStatusBarTransparent(); ButterKnife.bind(this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { @@ -107,7 +107,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements setUpObservableListViewParams(); setUpToolBar(); setUpViews(); - animateFabCircularRevealOnEnterTransitionEnd(); + animateAlbumArtBackgroundOnEnterTransitionEnd(); } @Override @@ -115,7 +115,7 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements return wrapSlidingMusicPanelAndFab(R.layout.activity_album_detail); } - private void animateFabCircularRevealOnEnterTransitionEnd() { + private void animateAlbumArtBackgroundOnEnterTransitionEnd() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().getEnterTransition().addListener(new SimpleTransitionListener() { @Override @@ -372,6 +372,8 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == TAG_EDITOR_REQUEST) { + getAlbumFromIntentExtras(); + albumTitleView.setText(album.title); setUpAlbumArtAndApplyPalette(); setResult(RESULT_OK); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java index 75254ef2..f0d14a75 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/ArtistDetailActivity.java @@ -109,8 +109,8 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement @Override protected void onCreate(Bundle savedInstanceState) { - setStatusBarTransparent(); super.onCreate(savedInstanceState); + setStatusBarTransparent(); ButterKnife.bind(this); if (shouldColorNavigationBar()) @@ -122,12 +122,16 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement initViews(); setUpObservableListViewParams(); setUpViews(); + setUpToolbar(); + animateAlbumArtBackgroundOnEnterTransitionEnd(); + } - setSupportActionBar(toolbar); - //noinspection ConstantConditions - getSupportActionBar().setTitle(null); - getSupportActionBar().setDisplayHomeAsUpEnabled(true); + @Override + protected View createContentView() { + return wrapSlidingMusicPanelAndFab(R.layout.activity_artist_detail); + } + private void animateAlbumArtBackgroundOnEnterTransitionEnd() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().getEnterTransition().addListener(new SimpleTransitionListener() { @Override @@ -153,11 +157,6 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement } } - @Override - protected View createContentView() { - return wrapSlidingMusicPanelAndFab(R.layout.activity_artist_detail); - } - private final SimpleObservableScrollViewCallbacks observableScrollViewCallbacks = new SimpleObservableScrollViewCallbacks() { @Override public void onScrollChanged(int scrollY, boolean b, boolean b2) { @@ -203,7 +202,6 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement private void setUpViews() { artistName.setText(artist.name); - setUpArtistImageAndApplyPalette(false); setUpSongListView(); setUpAlbumRecyclerView(); @@ -347,8 +345,9 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) - albumAdapter.notifyDataSetChanged(); + if (resultCode == RESULT_OK) { + reloadDataSets(); + } } @Override @@ -384,6 +383,13 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement } } + private void setUpToolbar() { + setSupportActionBar(toolbar); + //noinspection ConstantConditions + getSupportActionBar().setTitle(null); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_artist_detail, menu); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java index 65bc0a2a..b2dfc911 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/PlaylistDetailActivity.java @@ -55,8 +55,8 @@ public class PlaylistDetailActivity extends AbsSlidingMusicPanelActivity impleme @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - ButterKnife.bind(this); setStatusBarTransparent(); + ButterKnife.bind(this); getIntentExtras();