Disabled disk cache for album art and fixed the navigation drawer header image view being out of aspect ration. Scrolling in any list should be buttery smooth now. Had no time for the search rewrite today, gonna do that tomorrow.

This commit is contained in:
Karim Abou Zeid 2015-04-23 22:06:51 +02:00
commit 311769a784
9 changed files with 50 additions and 15 deletions

View file

@ -14,6 +14,7 @@ import android.widget.TextView;
import com.afollestad.materialdialogs.util.DialogUtils; import com.afollestad.materialdialogs.util.DialogUtils;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable; import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
@ -71,6 +72,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
holder.albumArt.setTag( holder.albumArt.setTag(
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(album.albumArtPath)) .signature(new StringSignature(album.albumArtPath))
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)

View file

@ -10,6 +10,7 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.bumptech.glide.signature.StringSignature; import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
@ -61,6 +62,7 @@ public class ArtistAlbumAdapter extends RecyclerView.Adapter<ArtistAlbumAdapter.
holder.albumArt.setTag(Glide.with(activity) holder.albumArt.setTag(Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(album.albumArtPath)) .signature(new StringSignature(album.albumArtPath))
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)

View file

@ -12,6 +12,7 @@ import android.widget.PopupMenu;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.signature.StringSignature; import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.helper.MenuItemClickHelper; import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
@ -50,6 +51,7 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> {
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified))) .signature(new StringSignature(String.valueOf(song.dateModified)))
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)

View file

@ -12,6 +12,7 @@ import android.widget.PopupMenu;
import android.widget.TextView; import android.widget.TextView;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.bumptech.glide.signature.StringSignature; import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
@ -65,6 +66,7 @@ public class PlaylistSongAdapter extends RecyclerView.Adapter<PlaylistSongAdapte
holder.albumArt.setTag( holder.albumArt.setTag(
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified))) .signature(new StringSignature(String.valueOf(song.dateModified)))
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)

View file

@ -14,6 +14,7 @@ import android.widget.TextView;
import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.ThemeSingleton;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request; import com.bumptech.glide.request.Request;
import com.bumptech.glide.signature.StringSignature; import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.App; import com.kabouzeid.gramophone.App;
@ -81,6 +82,7 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
holder.albumArt.setTag( holder.albumArt.setTag(
Glide.with(activity) Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified))) .signature(new StringSignature(String.valueOf(song.dateModified)))
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)

View file

@ -19,6 +19,7 @@ import android.widget.TextView;
import com.afollestad.materialdialogs.util.DialogUtils; import com.afollestad.materialdialogs.util.DialogUtils;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable; import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
@ -177,6 +178,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
private void setUpAlbumArtAndApplyPalette() { private void setUpAlbumArtAndApplyPalette() {
Glide.with(AlbumDetailActivity.this) Glide.with(AlbumDetailActivity.this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(album.albumArtPath)) .signature(new StringSignature(album.albumArtPath))
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.listener(new RequestListener<Uri, GlideDrawable>() { .listener(new RequestListener<Uri, GlideDrawable>() {

View file

@ -28,6 +28,10 @@ import android.widget.FrameLayout;
import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.ThemeSingleton;
import com.astuetz.PagerSlidingTabStrip; import com.astuetz.PagerSlidingTabStrip;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.signature.StringSignature; import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.R; import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.PagerAdapter; import com.kabouzeid.gramophone.adapter.PagerAdapter;
@ -69,6 +73,8 @@ public class MainActivity extends AbsFabActivity
private ViewPager viewPager; private ViewPager viewPager;
private PagerSlidingTabStrip slidingTabLayout; private PagerSlidingTabStrip slidingTabLayout;
private int currentPage = -1; private int currentPage = -1;
private int navigationDrawerImageWidth = -1;
private int navigationDrawerImageHeight = -1;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -78,9 +84,9 @@ public class MainActivity extends AbsFabActivity
initViews(); initViews();
navigationDrawerFragment.setUp( navigationDrawerFragment.setUp(
R.id.navigation_drawer,
drawerLayout drawerLayout
); );
setUpDrawerLayout();
setUpToolBar(); setUpToolBar();
setUpViewPager(); setUpViewPager();
@ -165,9 +171,19 @@ public class MainActivity extends AbsFabActivity
R.string.navigation_drawer_open, R.string.navigation_drawer_open,
R.string.navigation_drawer_close R.string.navigation_drawer_close
); );
drawerLayout.post(new Runnable() {
@Override
public void run() {
drawerToggle.syncState();
}
});
drawerLayout.setDrawerListener(drawerToggle);
}
private void setUpDrawerLayout() {
drawerLayout.setStatusBarBackgroundColor(PreferenceUtils drawerLayout.setStatusBarBackgroundColor(PreferenceUtils
.getInstance(this).getThemeColorPrimaryDarker()); .getInstance(this).getThemeColorPrimaryDarker());
FrameLayout navDrawerFrame = (FrameLayout) findViewById(R.id.nav_drawer_frame); FrameLayout navDrawerFrame = (FrameLayout) findViewById(R.id.nav_drawer_frame);
int navDrawerMargin = getResources().getDimensionPixelSize(R.dimen.nav_drawer_margin); int navDrawerMargin = getResources().getDimensionPixelSize(R.dimen.nav_drawer_margin);
DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
@ -179,13 +195,8 @@ public class MainActivity extends AbsFabActivity
navDrawerFrame.setLayoutParams(new DrawerLayout.LayoutParams(navDrawerWidth, navDrawerFrame.setLayoutParams(new DrawerLayout.LayoutParams(navDrawerWidth,
DrawerLayout.LayoutParams.MATCH_PARENT, Gravity.START)); DrawerLayout.LayoutParams.MATCH_PARENT, Gravity.START));
drawerLayout.post(new Runnable() { navigationDrawerImageWidth = navDrawerWidth;
@Override navigationDrawerImageHeight = getResources().getDimensionPixelSize(R.dimen.navigation_drawer_image_height);
public void run() {
drawerToggle.syncState();
}
});
drawerLayout.setDrawerListener(drawerToggle);
} }
@Override @Override
@ -207,10 +218,23 @@ public class MainActivity extends AbsFabActivity
navigationDrawerFragment.getSongArtist().setText(song.artistName); navigationDrawerFragment.getSongArtist().setText(song.artistName);
Glide.with(this) Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified))) .signature(new StringSignature(String.valueOf(song.dateModified)))
.error(R.drawable.default_album_art) .listener(new RequestListener<Uri, GlideDrawable>() {
.placeholder(R.drawable.default_album_art) @Override
.into(navigationDrawerFragment.getAlbumArtImageView()); public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) {
navigationDrawerFragment.getAlbumArtImageView().setImageResource(R.drawable.default_album_art);
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
navigationDrawerFragment.getAlbumArtImageView().setImageDrawable(resource);
return false;
}
})
.into(navigationDrawerImageWidth, navigationDrawerImageHeight);
} }
} }
} }

View file

@ -24,6 +24,7 @@ import android.widget.Toast;
import com.afollestad.materialdialogs.ThemeSingleton; import com.afollestad.materialdialogs.ThemeSingleton;
import com.afollestad.materialdialogs.util.DialogUtils; import com.afollestad.materialdialogs.util.DialogUtils;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable; import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable; import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestListener;
@ -301,6 +302,7 @@ public class MusicControllerActivity extends AbsFabActivity {
private void setUpAlbumArtAndApplyPalette() { private void setUpAlbumArtAndApplyPalette() {
Glide.with(this) Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId)) .loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified))) .signature(new StringSignature(String.valueOf(song.dateModified)))
.error(R.drawable.default_album_art) .error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art) .placeholder(R.drawable.default_album_art)

View file

@ -35,7 +35,6 @@ public class NavigationDrawerFragment extends Fragment {
private NavigationDrawerItemAdapter drawerAdapter; private NavigationDrawerItemAdapter drawerAdapter;
private DrawerLayout drawerLayout; private DrawerLayout drawerLayout;
private RecyclerView drawerRecyclerView; private RecyclerView drawerRecyclerView;
private View fragmentContainerView;
private Button headerButton; private Button headerButton;
private ImageView albumArt; private ImageView albumArt;
@ -54,12 +53,10 @@ public class NavigationDrawerFragment extends Fragment {
return drawerLayout != null && drawerLayout.isDrawerOpen(Gravity.START); return drawerLayout != null && drawerLayout.isDrawerOpen(Gravity.START);
} }
public void setUp(int fragmentId, final DrawerLayout drawerLayout) { public void setUp(final DrawerLayout drawerLayout) {
fragmentContainerView = getActivity().findViewById(fragmentId);
this.drawerLayout = drawerLayout; this.drawerLayout = drawerLayout;
this.drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); this.drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
if (!userLearnedDrawer && !fromSavedInstanceState) { if (!userLearnedDrawer && !fromSavedInstanceState) {
this.drawerLayout.openDrawer(Gravity.START); this.drawerLayout.openDrawer(Gravity.START);
userLearnedDrawer = true; userLearnedDrawer = true;