From 26cf5d8e0f806625d022071699343c5392e4a832 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Thu, 31 Dec 2015 15:37:47 +0100 Subject: [PATCH] Made some progress switching to glide --- .../adapter/AlbumCoverPagerAdapter.java | 44 +------- .../gramophone/adapter/SearchAdapter.java | 37 +++---- .../adapter/album/AlbumAdapter.java | 64 ++++------- .../adapter/artist/ArtistAdapter.java | 87 +++++++-------- .../adapter/song/AlbumSongAdapter.java | 5 + .../adapter/song/PlayingQueueAdapter.java | 2 +- .../gramophone/adapter/song/SongAdapter.java | 55 +++------ ...rget.java => PhonographColoredTarget.java} | 10 +- .../{ => palette}/BitmapPaletteResource.java | 2 +- .../{ => palette}/BitmapPaletteTarget.java | 2 +- .../BitmapPaletteTranscoder.java | 2 +- .../{ => palette}/BitmapPaletteWrapper.java | 2 +- .../gramophone/service/MusicService.java | 104 +++++++++--------- .../ui/activities/AlbumDetailActivity.java | 76 +++++-------- .../ui/activities/ArtistDetailActivity.java | 100 ++++++++--------- .../ui/activities/MainActivity.java | 18 ++- 16 files changed, 255 insertions(+), 355 deletions(-) rename app/src/main/java/com/kabouzeid/gramophone/glide/{PhonographPaletteTarget.java => PhonographColoredTarget.java} (79%) rename app/src/main/java/com/kabouzeid/gramophone/glide/{ => palette}/BitmapPaletteResource.java (95%) rename app/src/main/java/com/kabouzeid/gramophone/glide/{ => palette}/BitmapPaletteTarget.java (89%) rename app/src/main/java/com/kabouzeid/gramophone/glide/{ => palette}/BitmapPaletteTranscoder.java (95%) rename app/src/main/java/com/kabouzeid/gramophone/glide/{ => palette}/BitmapPaletteWrapper.java (90%) diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java index ce82bb1f..a7b9acd0 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/AlbumCoverPagerAdapter.java @@ -10,10 +10,11 @@ import android.view.ViewGroup; import android.widget.ImageView; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.kabouzeid.gramophone.R; -import com.kabouzeid.gramophone.glide.BitmapPaletteTranscoder; -import com.kabouzeid.gramophone.glide.BitmapPaletteWrapper; -import com.kabouzeid.gramophone.glide.PhonographPaletteTarget; +import com.kabouzeid.gramophone.glide.PhonographColoredTarget; +import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder; +import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper; import com.kabouzeid.gramophone.misc.CustomFragmentStatePagerAdapter; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.MusicUtil; @@ -131,47 +132,14 @@ public class AlbumCoverPagerAdapter extends CustomFragmentStatePagerAdapter { .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .asBitmap() .transcode(new BitmapPaletteTranscoder(getActivity()), BitmapPaletteWrapper.class) + .diskCacheStrategy(DiskCacheStrategy.NONE) .error(R.drawable.default_album_art) - .into(new PhonographPaletteTarget(albumCover) { + .into(new PhonographColoredTarget(albumCover) { @Override public void onColorReady(int color) { setColor(color); } }); - -// ImageLoader.getInstance().displayImage( -// MusicUtil.getSongImageLoaderString(song), -// albumCover, -// new DisplayImageOptions.Builder() -// .cacheInMemory(true) -// .showImageOnFail(R.drawable.default_album_art) -// .postProcessor(new BitmapProcessor() { -// @Override -// public Bitmap process(Bitmap bitmap) { -// // don't use set color here, as this is not running on the ui-thread -// color = ColorUtil.generateColor(getActivity(), bitmap); -// return bitmap; -// } -// }) -// .build(), -// new SimpleImageLoadingListener() { -// @Override -// public void onLoadingFailed(String imageUri, View view, @Nullable FailReason failReason) { -// if (getActivity() != null) { -// setColor(ColorUtil.resolveColor(getActivity(), R.attr.default_bar_color)); -// } -// } -// -// @Override -// public void onLoadingComplete(String imageUri, View view, @Nullable Bitmap loadedImage) { -// if (loadedImage == null) { -// onLoadingFailed(imageUri, view, null); -// return; -// } -// setColor(color); -// } -// } -// ); } @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/SearchAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/SearchAdapter.java index ffd498fb..35e5a74c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/SearchAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/SearchAdapter.java @@ -9,6 +9,8 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; @@ -22,8 +24,6 @@ import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.nostra13.universalimageloader.core.DisplayImageOptions; -import com.nostra13.universalimageloader.core.ImageLoader; import java.util.ArrayList; import java.util.Collections; @@ -94,15 +94,11 @@ public class SearchAdapter extends RecyclerView.Adapter dataSet, int position) { diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java index fe0bc22c..ab2558ca 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/song/SongAdapter.java @@ -1,6 +1,5 @@ package com.kabouzeid.gramophone.adapter.song; -import android.graphics.Bitmap; import android.support.annotation.LayoutRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -12,11 +11,16 @@ import android.view.View; import android.view.ViewGroup; import com.afollestad.materialcab.MaterialCab; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.base.AbsMultiSelectAdapter; import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder; import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog; import com.kabouzeid.gramophone.dialogs.DeleteSongsDialog; +import com.kabouzeid.gramophone.glide.PhonographColoredTarget; +import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder; +import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; import com.kabouzeid.gramophone.helper.menu.SongMenuHelper; import com.kabouzeid.gramophone.interfaces.CabHolder; @@ -24,14 +28,6 @@ import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; -import com.nostra13.universalimageloader.core.DisplayImageOptions; -import com.nostra13.universalimageloader.core.ImageLoader; -import com.nostra13.universalimageloader.core.assist.FailReason; -import com.nostra13.universalimageloader.core.assist.LoadedFrom; -import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer; -import com.nostra13.universalimageloader.core.imageaware.ImageAware; -import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; -import com.nostra13.universalimageloader.core.process.BitmapProcessor; import java.util.ArrayList; @@ -93,7 +89,7 @@ public class SongAdapter extends AbsMultiSelectAdapter glideAnimation) { super.onResourceReady(resource, glideAnimation); diff --git a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteResource.java b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteResource.java similarity index 95% rename from app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteResource.java rename to app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteResource.java index 1fc9179b..ec917f9c 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteResource.java +++ b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteResource.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.glide; +package com.kabouzeid.gramophone.glide.palette; import com.bumptech.glide.load.engine.Resource; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; diff --git a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteTarget.java b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteTarget.java similarity index 89% rename from app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteTarget.java rename to app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteTarget.java index e5d0764d..72096125 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteTarget.java +++ b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteTarget.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.glide; +package com.kabouzeid.gramophone.glide.palette; import android.widget.ImageView; diff --git a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteTranscoder.java b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteTranscoder.java similarity index 95% rename from app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteTranscoder.java rename to app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteTranscoder.java index edb3f3dd..b3585850 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteTranscoder.java +++ b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteTranscoder.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.glide; +package com.kabouzeid.gramophone.glide.palette; import android.content.Context; import android.graphics.Bitmap; diff --git a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteWrapper.java b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteWrapper.java similarity index 90% rename from app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteWrapper.java rename to app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteWrapper.java index ed001324..441b98e9 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/glide/BitmapPaletteWrapper.java +++ b/app/src/main/java/com/kabouzeid/gramophone/glide/palette/BitmapPaletteWrapper.java @@ -1,4 +1,4 @@ -package com.kabouzeid.gramophone.glide; +package com.kabouzeid.gramophone.glide.palette; import android.graphics.Bitmap; import android.support.v7.graphics.Palette; diff --git a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java index fc43705b..929ec377 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java +++ b/app/src/main/java/com/kabouzeid/gramophone/service/MusicService.java @@ -10,7 +10,6 @@ import android.content.IntentFilter; import android.content.SharedPreferences; import android.database.ContentObserver; import android.graphics.Bitmap; -import android.graphics.Point; import android.media.AudioManager; import android.media.MediaMetadataRetriever; import android.media.RemoteControlClient; @@ -28,7 +27,6 @@ import android.preference.PreferenceManager; import android.provider.MediaStore; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.view.View; import android.widget.Toast; import com.kabouzeid.gramophone.R; @@ -36,22 +34,12 @@ import com.kabouzeid.gramophone.appwidget.WidgetMedium; import com.kabouzeid.gramophone.helper.PlayingNotificationHelper; import com.kabouzeid.gramophone.helper.ShuffleHelper; import com.kabouzeid.gramophone.helper.StopWatch; -import com.kabouzeid.gramophone.imageloader.BlurProcessor; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.provider.HistoryStore; import com.kabouzeid.gramophone.provider.MusicPlaybackQueueStore; import com.kabouzeid.gramophone.provider.SongPlayCountStore; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.PreferenceUtil; -import com.kabouzeid.gramophone.util.Util; -import com.nostra13.universalimageloader.core.DisplayImageOptions; -import com.nostra13.universalimageloader.core.ImageLoader; -import com.nostra13.universalimageloader.core.assist.FailReason; -import com.nostra13.universalimageloader.core.assist.ImageSize; -import com.nostra13.universalimageloader.core.assist.ViewScaleType; -import com.nostra13.universalimageloader.core.imageaware.NonViewAware; -import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; -import com.nostra13.universalimageloader.core.process.BitmapProcessor; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -142,23 +130,24 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP private boolean notHandledMetaChangedForCurrentTrack; private boolean isServiceInUse; - private BlurProcessor blurProcessor = new BlurProcessor.Builder(this).build(); - // we don't want to hand our bitmap to the remote control client, as it will recycle it - private BitmapProcessor copyProcessor = new BitmapProcessor() { - @Override - public Bitmap process(Bitmap bitmap) { - Bitmap.Config config = bitmap.getConfig(); - if (config == null) { - config = Bitmap.Config.ARGB_8888; - } - try { - return bitmap.copy(config, false); - } catch (OutOfMemoryError e) { - e.printStackTrace(); - return null; - } - } - }; + // TODO Glide +// private BlurProcessor blurProcessor = new BlurProcessor.Builder(this).build(); +// // we don't want to hand our bitmap to the remote control client, as it will recycle it +// private BitmapProcessor copyProcessor = new BitmapProcessor() { +// @Override +// public Bitmap process(Bitmap bitmap) { +// Bitmap.Config config = bitmap.getConfig(); +// if (config == null) { +// config = Bitmap.Config.ARGB_8888; +// } +// try { +// return bitmap.copy(config, false); +// } catch (OutOfMemoryError e) { +// e.printStackTrace(); +// return null; +// } +// } +// }; private static String getTrackUri(@NonNull Song song) { return MusicUtil.getSongUri(song.id).toString(); @@ -461,27 +450,44 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP .putLong(MediaMetadataRetriever.METADATA_KEY_DURATION, song.duration) .apply(); if (showAlbumArt) { - final String currentAlbumArtUri = MusicUtil.getSongImageLoaderString(song); - Point screenSize = Util.getScreenSize(this); - ImageLoader.getInstance().displayImage( - currentAlbumArtUri, - new NonViewAware(new ImageSize(screenSize.x, screenSize.y), ViewScaleType.CROP), - new DisplayImageOptions.Builder().postProcessor(blurAlbumArt ? blurProcessor : copyProcessor).build(), - new SimpleImageLoadingListener() { - @Override - public void onLoadingComplete(String imageUri, View view, @Nullable Bitmap loadedImage) { - if (currentAlbumArtUri.equals(imageUri)) { - updateRemoteControlClientBitmap(loadedImage); - } - } - @Override - public void onLoadingFailed(String imageUri, View view, FailReason failReason) { - if (currentAlbumArtUri.equals(imageUri)) { - updateRemoteControlClientBitmap(null); - } - } - }); +// ImageLoader.getInstance().displayImage( +// currentAlbumArtUri, +// new NonViewAware(new ImageSize(screenSize.x, screenSize.y), ViewScaleType.CROP), +// new DisplayImageOptions.Builder().postProcessor(blurAlbumArt ? blurProcessor : copyProcessor).build(), +// new SimpleImageLoadingListener() { +// @Override +// public void onLoadingComplete(String imageUri, View view, @Nullable Bitmap loadedImage) { +// if (currentAlbumArtUri.equals(imageUri)) { +// updateRemoteControlClientBitmap(loadedImage); +// } +// } +// +// @Override +// public void onLoadingFailed(String imageUri, View view, FailReason failReason) { +// if (currentAlbumArtUri.equals(imageUri)) { +// updateRemoteControlClientBitmap(null); +// } +// } +// }); + // NOTE THIS MIGHT NOT BE THE UI THREAD +// Point screenSize = Util.getScreenSize(this); +// Glide.with(this) +// .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) +// .asBitmap() +// // TODO transformations +// .into(new SimpleTarget(screenSize.x, screenSize.y) { +// @Override +// public void onLoadFailed(Exception e, Drawable errorDrawable) { +// super.onLoadFailed(e, errorDrawable); +// updateRemoteControlClientBitmap(null); +// } +// +// @Override +// public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { +// updateRemoteControlClientBitmap(resource); +// } +// }); } else { updateRemoteControlClientBitmap(null); } 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 69f8d3d5..29a99a23 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 @@ -1,11 +1,10 @@ package com.kabouzeid.gramophone.ui.activities; import android.content.Intent; -import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; @@ -17,10 +16,16 @@ import android.widget.TextView; import com.afollestad.materialcab.MaterialCab; 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.github.ksoichiro.android.observablescrollview.ObservableRecyclerView; import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.song.AlbumSongAdapter; import com.kabouzeid.gramophone.dialogs.SleepTimerDialog; +import com.kabouzeid.gramophone.glide.PhonographColoredTarget; +import com.kabouzeid.gramophone.glide.palette.BitmapPaletteTranscoder; +import com.kabouzeid.gramophone.glide.palette.BitmapPaletteWrapper; import com.kabouzeid.gramophone.helper.MusicPlayerRemote; import com.kabouzeid.gramophone.interfaces.CabHolder; import com.kabouzeid.gramophone.interfaces.PaletteColorHolder; @@ -36,11 +41,6 @@ import com.kabouzeid.gramophone.util.ColorUtil; import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.Util; -import com.nostra13.universalimageloader.core.DisplayImageOptions; -import com.nostra13.universalimageloader.core.ImageLoader; -import com.nostra13.universalimageloader.core.assist.FailReason; -import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; -import com.nostra13.universalimageloader.core.process.BitmapProcessor; import java.util.ArrayList; @@ -157,59 +157,43 @@ public class AlbumDetailActivity extends AbsSlidingMusicPanelActivity implements } private void setUpAlbumArtAndApplyPalette() { - ImageLoader.getInstance().displayImage( - MusicUtil.getAlbumImageLoaderString(album), - albumArtImageView, - new DisplayImageOptions.Builder() - .cacheInMemory(true) - .showImageOnFail(R.drawable.default_album_art) - .resetViewBeforeLoading(true) - .postProcessor(new BitmapProcessor() { - @Override - public Bitmap process(Bitmap bitmap) { - final int color = ColorUtil.generateColor(AlbumDetailActivity.this, bitmap); - runOnUiThread(new Runnable() { - @Override - public void run() { - setColors(color); - } - }); - return bitmap; - } - }) - .build(), - new SimpleImageLoadingListener() { + Glide.with(this) + .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) + .asBitmap() + .transcode(new BitmapPaletteTranscoder(this), BitmapPaletteWrapper.class) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .error(R.drawable.default_album_art) + .into(new PhonographColoredTarget(albumArtImageView) { @Override - public void onLoadingFailed(String imageUri, View view, @Nullable FailReason failReason) { - setColors(ColorUtil.resolveColor(AlbumDetailActivity.this, R.attr.default_bar_color)); - + public void onResourceReady(BitmapPaletteWrapper resource, GlideAnimation glideAnimation) { + super.onResourceReady(resource, glideAnimation); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) startPostponedEnterTransition(); } @Override - public void onLoadingComplete(String imageUri, View view, @Nullable Bitmap loadedImage) { - if (loadedImage == null) { - onLoadingFailed(imageUri, view, null); - return; - } - + public void onLoadFailed(Exception e, Drawable errorDrawable) { + super.onLoadFailed(e, errorDrawable); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) startPostponedEnterTransition(); } - } - ); + + @Override + public void onColorReady(int color) { + setColors(color); + } + }); } - private void setColors(int vibrantColor) { - toolbarColor = vibrantColor; - albumTitleView.setBackgroundColor(vibrantColor); - albumTitleView.setTextColor(ColorUtil.getPrimaryTextColorForBackground(this, vibrantColor)); + private void setColors(int color) { + toolbarColor = color; + albumTitleView.setBackgroundColor(color); + albumTitleView.setTextColor(ColorUtil.getPrimaryTextColorForBackground(this, color)); if (shouldColorNavigationBar()) - setNavigationBarColor(vibrantColor); + setNavigationBarColor(color); - notifyTaskColorChange(vibrantColor); + notifyTaskColorChange(color); } @Override 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 ea9c97fd..7ad6feda 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 @@ -1,7 +1,6 @@ package com.kabouzeid.gramophone.ui.activities; import android.content.Intent; -import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; import android.support.annotation.NonNull; @@ -41,14 +40,8 @@ import com.kabouzeid.gramophone.model.Artist; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity; import com.kabouzeid.gramophone.util.ColorUtil; -import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.Util; -import com.nostra13.universalimageloader.core.DisplayImageOptions; -import com.nostra13.universalimageloader.core.ImageLoader; -import com.nostra13.universalimageloader.core.assist.FailReason; -import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; -import com.nostra13.universalimageloader.core.process.BitmapProcessor; import java.util.ArrayList; @@ -249,52 +242,53 @@ public class ArtistDetailActivity extends AbsSlidingMusicPanelActivity implement } private void setUpArtistImageAndApplyPalette(final boolean forceDownload) { - ImageLoader.getInstance().displayImage(MusicUtil.getArtistImageLoaderString(artist, forceDownload), - artistImage, - new DisplayImageOptions.Builder() - .cacheInMemory(true) - .cacheOnDisk(true) - .showImageOnFail(R.drawable.default_artist_image) - .resetViewBeforeLoading(true) - .postProcessor(new BitmapProcessor() { - @Override - public Bitmap process(Bitmap bitmap) { - final int color = ColorUtil.generateColor(ArtistDetailActivity.this, bitmap); - runOnUiThread(new Runnable() { - @Override - public void run() { - setColors(color); - } - }); - return bitmap; - } - }) - .build(), - new SimpleImageLoadingListener() { - @Override - public void onLoadingFailed(String imageUri, View view, @Nullable FailReason failReason) { - setColors(ColorUtil.resolveColor(ArtistDetailActivity.this, R.attr.default_bar_color)); - - toastUpdatedArtistImageIfDownloadWasForced(); - } - - @Override - public void onLoadingComplete(String imageUri, View view, @Nullable Bitmap loadedImage) { - if (loadedImage == null) { - onLoadingFailed(imageUri, view, null); - return; - } - - toastUpdatedArtistImageIfDownloadWasForced(); - } - - private void toastUpdatedArtistImageIfDownloadWasForced() { - if (forceDownload) { - Toast.makeText(ArtistDetailActivity.this, getString(R.string.updated_artist_image), Toast.LENGTH_SHORT).show(); - } - } - } - ); + // TODO Glide +// ImageLoader.getInstance().displayImage(MusicUtil.getArtistImageLoaderString(artist, forceDownload), +// artistImage, +// new DisplayImageOptions.Builder() +// .cacheInMemory(true) +// .cacheOnDisk(true) +// .showImageOnFail(R.drawable.default_artist_image) +// .resetViewBeforeLoading(true) +// .postProcessor(new BitmapProcessor() { +// @Override +// public Bitmap process(Bitmap bitmap) { +// final int color = ColorUtil.generateColor(ArtistDetailActivity.this, bitmap); +// runOnUiThread(new Runnable() { +// @Override +// public void run() { +// setColors(color); +// } +// }); +// return bitmap; +// } +// }) +// .build(), +// new SimpleImageLoadingListener() { +// @Override +// public void onLoadingFailed(String imageUri, View view, @Nullable FailReason failReason) { +// setColors(ColorUtil.resolveColor(ArtistDetailActivity.this, R.attr.default_bar_color)); +// +// toastUpdatedArtistImageIfDownloadWasForced(); +// } +// +// @Override +// public void onLoadingComplete(String imageUri, View view, @Nullable Bitmap loadedImage) { +// if (loadedImage == null) { +// onLoadingFailed(imageUri, view, null); +// return; +// } +// +// toastUpdatedArtistImageIfDownloadWasForced(); +// } +// +// private void toastUpdatedArtistImageIfDownloadWasForced() { +// if (forceDownload) { +// Toast.makeText(ArtistDetailActivity.this, getString(R.string.updated_artist_image), Toast.LENGTH_SHORT).show(); +// } +// } +// } +// ); } @Override diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index 45ca5021..8e3ff162 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -35,6 +35,8 @@ import android.widget.TextView; 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.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.adapter.PagerAdapter; import com.kabouzeid.gramophone.dialogs.ChangelogDialog; @@ -60,8 +62,6 @@ import com.kabouzeid.gramophone.util.NavigationUtil; import com.kabouzeid.gramophone.util.PreferenceUtil; import com.kabouzeid.gramophone.util.Util; import com.kabouzeid.gramophone.util.ViewUtil; -import com.nostra13.universalimageloader.core.DisplayImageOptions; -import com.nostra13.universalimageloader.core.ImageLoader; import com.sothree.slidinguppanel.SlidingUpPanelLayout; import java.io.File; @@ -274,15 +274,11 @@ public class MainActivity extends AbsSlidingMusicPanelActivity } ((TextView) navigationDrawerHeader.findViewById(R.id.title)).setText(song.title); ((TextView) navigationDrawerHeader.findViewById(R.id.text)).setText(song.artistName); - ImageLoader.getInstance().displayImage( - MusicUtil.getSongImageLoaderString(song), - ((ImageView) navigationDrawerHeader.findViewById(R.id.image)), - new DisplayImageOptions.Builder() - .cacheInMemory(true) - .showImageOnFail(R.drawable.default_album_art) - .resetViewBeforeLoading(true) - .build() - ); + Glide.with(this) + .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) + .diskCacheStrategy(DiskCacheStrategy.NONE) + .error(R.drawable.default_album_art) + .into(((ImageView) navigationDrawerHeader.findViewById(R.id.image))); } else { if (navigationDrawerHeader != null) { navigationView.removeHeaderView(navigationDrawerHeader);