Use disk cache
This commit is contained in:
parent
c2ad4e4541
commit
533708e63d
18 changed files with 77 additions and 94 deletions
|
|
@ -11,6 +11,7 @@ import android.widget.ImageView;
|
|||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.glide.PhonographColoredTarget;
|
||||
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
|
||||
|
|
@ -132,8 +133,9 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter {
|
|||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
|
||||
.asBitmap()
|
||||
.transcode(new BitmapPaletteTranscoder(getActivity()), BitmapPaletteWrapper.class)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.error(R.drawable.default_album_art)
|
||||
.signature(new MediaStoreSignature("", song.dateModified, 0))
|
||||
.into(new PhonographColoredTarget(albumCover) {
|
||||
@Override
|
||||
public void onColorReady(int color) {
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import android.view.ViewGroup;
|
|||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
|
||||
import com.kabouzeid.gramophone.glide.artistimage.ArtistImageRequest;
|
||||
|
|
@ -98,9 +99,10 @@ public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder
|
|||
holder.text.setText(album.getArtistName());
|
||||
Glide.with(activity)
|
||||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.getId()))
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.error(R.drawable.default_album_art)
|
||||
.animate(android.R.anim.fade_in)
|
||||
.signature(new MediaStoreSignature("", album.getDateModified(), 0))
|
||||
.into(holder.image);
|
||||
break;
|
||||
case ARTIST:
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import android.view.ViewGroup;
|
|||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.base.AbsMultiSelectAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
|
||||
|
|
@ -123,9 +124,10 @@ public class AlbumAdapter extends AbsMultiSelectAdapter<AlbumAdapter.ViewHolder,
|
|||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.getId()))
|
||||
.asBitmap()
|
||||
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.error(R.drawable.default_album_art)
|
||||
.animate(android.R.anim.fade_in)
|
||||
.signature(new MediaStoreSignature("", album.getDateModified(), 0))
|
||||
.into(new PhonographColoredTarget(holder.image) {
|
||||
@Override
|
||||
public void onLoadCleared(Drawable placeholder) {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import android.widget.TextView;
|
|||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
|
||||
import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog;
|
||||
|
|
@ -76,9 +77,10 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> implements MaterialCab
|
|||
|
||||
Glide.with(activity)
|
||||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.error(R.drawable.default_album_art)
|
||||
.animate(android.R.anim.fade_in)
|
||||
.signature(new MediaStoreSignature("", song.dateModified, 0))
|
||||
.into(albumArt);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import android.view.ViewGroup;
|
|||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.base.AbsMultiSelectAdapter;
|
||||
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
|
||||
|
|
@ -125,9 +126,10 @@ public class SongAdapter extends AbsMultiSelectAdapter<SongAdapter.ViewHolder, S
|
|||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
|
||||
.asBitmap()
|
||||
.transcode(new BitmapPaletteTranscoder(activity), BitmapPaletteWrapper.class)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.error(R.drawable.default_album_art)
|
||||
.animate(android.R.anim.fade_in)
|
||||
.signature(new MediaStoreSignature("", song.dateModified, 0))
|
||||
.into(new PhonographColoredTarget(holder.image) {
|
||||
@Override
|
||||
public void onLoadCleared(Drawable placeholder) {
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
|||
import com.bumptech.glide.request.animation.GlideAnimation;
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
|
|
@ -88,7 +89,8 @@ public class WidgetMedium extends AppWidgetProvider {
|
|||
Glide.with(context)
|
||||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
|
||||
.asBitmap()
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.signature(new MediaStoreSignature("", song.dateModified, 0))
|
||||
.into(target);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
package com.kabouzeid.gramophone.glide.audiocover;
|
||||
|
||||
import android.content.Context;
|
||||
import android.media.MediaMetadataRetriever;
|
||||
|
||||
import com.bumptech.glide.Priority;
|
||||
import com.bumptech.glide.load.data.DataFetcher;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.util.MusicUtil;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
|
|
@ -33,19 +34,18 @@ public class AudioFileCoverFetcher implements DataFetcher<InputStream> {
|
|||
|
||||
@Override
|
||||
public InputStream loadData(Priority priority) throws Exception {
|
||||
// MediaMetadataRetriever retriever = new MediaMetadataRetriever();
|
||||
// try {
|
||||
// retriever.setDataSource(model.data);
|
||||
// byte[] picture = retriever.getEmbeddedPicture();
|
||||
// if (picture != null) {
|
||||
// return new ByteArrayInputStream(picture);
|
||||
// } else {
|
||||
// return fallback(model.data);
|
||||
// }
|
||||
// } finally {
|
||||
// retriever.release();
|
||||
// }
|
||||
return context.getContentResolver().openInputStream(MusicUtil.getAlbumArtUri(model.albumId));
|
||||
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
|
||||
try {
|
||||
retriever.setDataSource(model.data);
|
||||
byte[] picture = retriever.getEmbeddedPicture();
|
||||
if (picture != null) {
|
||||
return new ByteArrayInputStream(picture);
|
||||
} else {
|
||||
return fallback(model.data);
|
||||
}
|
||||
} finally {
|
||||
retriever.release();
|
||||
}
|
||||
}
|
||||
|
||||
private static final String[] FALLBACKS = {"cover.jpg", "album.jpg", "folder.jpg"};
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
|||
import com.bumptech.glide.request.animation.GlideAnimation;
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.request.target.Target;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder;
|
||||
import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper;
|
||||
|
|
@ -198,7 +199,8 @@ public class PlayingNotificationHelper {
|
|||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(currentSong.albumId))
|
||||
.asBitmap()
|
||||
.transcode(new BitmapPaletteTranscoder(service), BitmapPaletteWrapper.class)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.signature(new MediaStoreSignature("", currentSong.dateModified, 0))
|
||||
.into(target);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,14 +15,11 @@ import java.util.ArrayList;
|
|||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
|
||||
import hugo.weaving.DebugLog;
|
||||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
*/
|
||||
public class AlbumLoader {
|
||||
|
||||
@DebugLog
|
||||
@NonNull
|
||||
public static ArrayList<Album> getAllAlbums(@NonNull final Context context) {
|
||||
ArrayList<Song> songs = SongLoader.getSongs(SongLoader.makeSongCursor(
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.kabouzeid.gramophone.model;
|
|||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
|
@ -20,27 +21,32 @@ public class Album implements Parcelable {
|
|||
}
|
||||
|
||||
public int getId() {
|
||||
return songs.get(0).albumId;
|
||||
return safeGetFirstSong().albumId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return songs.get(0).albumName;
|
||||
return safeGetFirstSong().albumName;
|
||||
}
|
||||
|
||||
public int getArtistId() {
|
||||
return songs.get(0).artistId;
|
||||
return safeGetFirstSong().artistId;
|
||||
}
|
||||
|
||||
public String getArtistName() {
|
||||
return songs.get(0).artistName;
|
||||
return safeGetFirstSong().artistName;
|
||||
}
|
||||
|
||||
public int getYear() {
|
||||
return songs.get(0).year;
|
||||
return safeGetFirstSong().year;
|
||||
}
|
||||
|
||||
public int getSongCount() {
|
||||
return songs.size();
|
||||
public long getDateModified() {
|
||||
return safeGetFirstSong().dateModified;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public Song safeGetFirstSong() {
|
||||
return songs.isEmpty() ? new Song() : songs.get(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ public class Song implements Parcelable {
|
|||
", year=" + year +
|
||||
", duration=" + duration +
|
||||
", data='" + data + '\'' +
|
||||
", dateModified=" + dateModified +
|
||||
", getDateModified=" + dateModified +
|
||||
", albumId=" + albumId +
|
||||
", albumName='" + albumName + '\'' +
|
||||
", artistId=" + artistId +
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import com.bumptech.glide.Glide;
|
|||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.animation.GlideAnimation;
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.appwidget.WidgetMedium;
|
||||
import com.kabouzeid.gramophone.glide.BlurTransformation;
|
||||
|
|
@ -448,7 +449,8 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
|||
final BitmapRequestBuilder request = Glide.with(MusicService.this)
|
||||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
|
||||
.asBitmap()
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE);
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.signature(new MediaStoreSignature("", song.dateModified, 0));
|
||||
if (blurAlbumArt) {
|
||||
request.transform(new BlurTransformation.Builder(MusicService.this).build());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import com.afollestad.materialdialogs.util.DialogUtils;
|
|||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.animation.GlideAnimation;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.github.ksoichiro.android.observablescrollview.ObservableRecyclerView;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.song.AlbumSongAdapter;
|
||||
|
|
@ -149,16 +150,17 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
|
|||
albumTitleView.setText(album.getTitle());
|
||||
setUpRecyclerViewView();
|
||||
setUpSongsAdapter();
|
||||
setUpAlbumArtAndApplyPalette();
|
||||
loadAlbumCover();
|
||||
}
|
||||
|
||||
private void setUpAlbumArtAndApplyPalette() {
|
||||
private void loadAlbumCover() {
|
||||
Glide.with(this)
|
||||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.getId()))
|
||||
.asBitmap()
|
||||
.transcode(new BitmapPaletteTranscoder(this), BitmapPaletteWrapper.class)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.error(R.drawable.default_album_art)
|
||||
.signature(new MediaStoreSignature("", album.getDateModified(), 0))
|
||||
.into(new PhonographColoredTarget(albumArtImageView) {
|
||||
@Override
|
||||
public void onResourceReady(BitmapPaletteWrapper resource, GlideAnimation<? super BitmapPaletteWrapper> glideAnimation) {
|
||||
|
|
@ -242,12 +244,11 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
|
|||
});
|
||||
}
|
||||
|
||||
private void reloadDataSet() {
|
||||
adapter.swapDataSet(album.songs);
|
||||
}
|
||||
|
||||
private void reloadAlbum() {
|
||||
private void refresh() {
|
||||
album = AlbumLoader.getAlbum(this, album.getId());
|
||||
albumTitleView.setText(album.getTitle());
|
||||
loadAlbumCover();
|
||||
adapter.swapDataSet(album.songs);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -302,9 +303,7 @@ 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.getTitle());
|
||||
setUpAlbumArtAndApplyPalette();
|
||||
refresh();
|
||||
setResult(RESULT_OK);
|
||||
}
|
||||
}
|
||||
|
|
@ -349,6 +348,6 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements
|
|||
@Override
|
||||
public void onMediaStoreChanged() {
|
||||
super.onMediaStoreChanged();
|
||||
reloadDataSet();
|
||||
refresh();
|
||||
}
|
||||
}
|
||||
|
|
@ -37,6 +37,7 @@ import com.afollestad.materialcab.MaterialCab;
|
|||
import com.afollestad.materialdialogs.internal.ThemeSingleton;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.signature.MediaStoreSignature;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.adapter.PagerAdapter;
|
||||
import com.kabouzeid.gramophone.dialogs.ChangelogDialog;
|
||||
|
|
@ -276,9 +277,10 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
|||
((TextView) navigationDrawerHeader.findViewById(R.id.text)).setText(song.artistName);
|
||||
Glide.with(this)
|
||||
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.diskCacheStrategy(DiskCacheStrategy.ALL)
|
||||
.error(R.drawable.default_album_art)
|
||||
.animate(android.R.anim.fade_in)
|
||||
.signature(new MediaStoreSignature("", song.dateModified, 0))
|
||||
.into(((ImageView) navigationDrawerHeader.findViewById(R.id.image)));
|
||||
} else {
|
||||
if (navigationDrawerHeader != null) {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import android.view.MenuItem;
|
|||
import android.view.View;
|
||||
|
||||
import com.afollestad.materialdialogs.color.ColorChooserDialog;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.prefs.ColorChooserPreference;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
|
|
@ -194,15 +193,6 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
});
|
||||
}
|
||||
|
||||
Preference ignoreMediaStoreArtwork = findPreference("ignore_media_store_artwork");
|
||||
ignoreMediaStoreArtwork.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
Glide.get(getActivity()).clearMemory();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
Preference equalizer = findPreference("equalizer");
|
||||
if (!hasEqualizer()) {
|
||||
equalizer.setEnabled(false);
|
||||
|
|
|
|||
|
|
@ -22,10 +22,8 @@ import android.view.View;
|
|||
import android.view.animation.OvershootInterpolator;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.github.ksoichiro.android.observablescrollview.ObservableScrollView;
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.misc.SimpleObservableScrollViewCallbacks;
|
||||
|
|
@ -275,7 +273,11 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
|||
}
|
||||
|
||||
protected void setImageBitmap(@Nullable final Bitmap bitmap, int bgColor) {
|
||||
image.setImageBitmap(bitmap);
|
||||
if (bitmap == null) {
|
||||
image.setImageResource(R.drawable.default_album_art);
|
||||
} else {
|
||||
image.setImageBitmap(bitmap);
|
||||
}
|
||||
setColors(bgColor);
|
||||
}
|
||||
|
||||
|
|
@ -355,11 +357,8 @@ public abstract class AbsTagEditorActivity extends AbsBaseActivity {
|
|||
});
|
||||
if (deleteArtwork) {
|
||||
MusicUtil.deleteAlbumArt(AbsTagEditorActivity.this, getId());
|
||||
Glide.get(AbsTagEditorActivity.this).clearMemory();
|
||||
Toast.makeText(AbsTagEditorActivity.this, R.string.tag_editor_restart_notice, Toast.LENGTH_SHORT).show();
|
||||
} else if (artwork != null) {
|
||||
Glide.get(AbsTagEditorActivity.this).clearMemory();
|
||||
Toast.makeText(AbsTagEditorActivity.this, R.string.tag_editor_restart_notice, Toast.LENGTH_SHORT).show();
|
||||
// AlbumTagEditorActivity already inserts the album cover for us
|
||||
}
|
||||
rescanMediaAndQuitOnFinish();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,8 +128,7 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
|
|||
|
||||
@Override
|
||||
public void onResourceReady(BitmapPaletteWrapper resource, GlideAnimation<? super BitmapPaletteWrapper> glideAnimation) {
|
||||
ColorUtil.getColor(resource.getPalette(), Color.TRANSPARENT);
|
||||
albumArtBitmap = resource.getBitmap();
|
||||
albumArtBitmap = getResizedAlbumCover(resource.getBitmap(), 2048);
|
||||
setImageBitmap(albumArtBitmap, ColorUtil.getColor(resource.getPalette(), ColorUtil.resolveColor(AlbumTagEditorActivity.this, R.attr.default_bar_color)));
|
||||
deleteAlbumArt = false;
|
||||
dataChanged();
|
||||
|
|
@ -215,7 +214,7 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
|
|||
.transcode(new BitmapPaletteTranscoder(AlbumTagEditorActivity.this), BitmapPaletteWrapper.class)
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.skipMemoryCache(true)
|
||||
.into(new SimpleTarget<BitmapPaletteWrapper>() {
|
||||
.into(new SimpleTarget<BitmapPaletteWrapper>(4097, 4097) {
|
||||
@Override
|
||||
public void onLoadFailed(Exception e, Drawable errorDrawable) {
|
||||
super.onLoadFailed(e, errorDrawable);
|
||||
|
|
@ -226,7 +225,7 @@ public class AlbumTagEditorActivity extends AbsTagEditorActivity implements Text
|
|||
@Override
|
||||
public void onResourceReady(BitmapPaletteWrapper resource, GlideAnimation<? super BitmapPaletteWrapper> glideAnimation) {
|
||||
ColorUtil.getColor(resource.getPalette(), Color.TRANSPARENT);
|
||||
albumArtBitmap = resource.getBitmap();
|
||||
albumArtBitmap = getResizedAlbumCover(resource.getBitmap(), 2048);
|
||||
setImageBitmap(albumArtBitmap, ColorUtil.getColor(resource.getPalette(), ColorUtil.resolveColor(AlbumTagEditorActivity.this, R.attr.default_bar_color)));
|
||||
deleteAlbumArt = false;
|
||||
dataChanged();
|
||||
|
|
|
|||
|
|
@ -20,39 +20,14 @@ import com.kabouzeid.gramophone.R;
|
|||
public class ColorUtil {
|
||||
public static final int PALETTE_BITMAP_SIZE = 100;
|
||||
|
||||
@Deprecated
|
||||
@ColorInt
|
||||
public static int generateColor(Context context, Bitmap bitmap) {
|
||||
return getColor(context, generatePalette(bitmap));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Palette generatePalette(Bitmap bitmap) {
|
||||
if (bitmap == null) return null;
|
||||
return Palette.from(bitmap)
|
||||
.resizeBitmapSize(PALETTE_BITMAP_SIZE)
|
||||
.generate();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@ColorInt
|
||||
public static int getColor(Context context, @Nullable Palette palette) {
|
||||
if (palette != null) {
|
||||
if (palette.getVibrantSwatch() != null) {
|
||||
return palette.getVibrantSwatch().getRgb();
|
||||
} else if (palette.getMutedSwatch() != null) {
|
||||
return palette.getMutedSwatch().getRgb();
|
||||
} else if (palette.getDarkVibrantSwatch() != null) {
|
||||
return palette.getDarkVibrantSwatch().getRgb();
|
||||
} else if (palette.getDarkMutedSwatch() != null) {
|
||||
return palette.getDarkMutedSwatch().getRgb();
|
||||
} else if (palette.getLightVibrantSwatch() != null) {
|
||||
return palette.getLightVibrantSwatch().getRgb();
|
||||
} else if (palette.getLightMutedSwatch() != null) {
|
||||
return palette.getLightMutedSwatch().getRgb();
|
||||
}
|
||||
}
|
||||
return ColorUtil.resolveColor(context, R.attr.default_bar_color);
|
||||
}
|
||||
|
||||
@ColorInt
|
||||
public static int getColor(@Nullable Palette palette, int fallback) {
|
||||
if (palette != null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue