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.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.Request;
@ -71,6 +72,7 @@ public class AlbumAdapter extends RecyclerView.Adapter<AlbumAdapter.ViewHolder>
holder.albumArt.setTag(
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(album.albumArtPath))
.error(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 com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request;
import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.R;
@ -61,6 +62,7 @@ public class ArtistAlbumAdapter extends RecyclerView.Adapter<ArtistAlbumAdapter.
holder.albumArt.setTag(Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(album.albumArtPath))
.error(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 com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.helper.MenuItemClickHelper;
@ -50,6 +51,7 @@ public class ArtistSongAdapter extends ArrayAdapter<Song> {
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified)))
.error(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 com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request;
import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.R;
@ -65,6 +66,7 @@ public class PlaylistSongAdapter extends RecyclerView.Adapter<PlaylistSongAdapte
holder.albumArt.setTag(
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified)))
.error(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.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.Request;
import com.bumptech.glide.signature.StringSignature;
import com.kabouzeid.gramophone.App;
@ -81,6 +82,7 @@ public class SongAdapter extends RecyclerView.Adapter<SongAdapter.ViewHolder> {
holder.albumArt.setTag(
Glide.with(activity)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified)))
.error(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.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
@ -177,6 +178,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
private void setUpAlbumArtAndApplyPalette() {
Glide.with(AlbumDetailActivity.this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(album.id))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(album.albumArtPath))
.error(R.drawable.default_album_art)
.listener(new RequestListener<Uri, GlideDrawable>() {

View file

@ -28,6 +28,10 @@ import android.widget.FrameLayout;
import com.afollestad.materialdialogs.ThemeSingleton;
import com.astuetz.PagerSlidingTabStrip;
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.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.PagerAdapter;
@ -69,6 +73,8 @@ public class MainActivity extends AbsFabActivity
private ViewPager viewPager;
private PagerSlidingTabStrip slidingTabLayout;
private int currentPage = -1;
private int navigationDrawerImageWidth = -1;
private int navigationDrawerImageHeight = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -78,9 +84,9 @@ public class MainActivity extends AbsFabActivity
initViews();
navigationDrawerFragment.setUp(
R.id.navigation_drawer,
drawerLayout
);
setUpDrawerLayout();
setUpToolBar();
setUpViewPager();
@ -165,9 +171,19 @@ public class MainActivity extends AbsFabActivity
R.string.navigation_drawer_open,
R.string.navigation_drawer_close
);
drawerLayout.post(new Runnable() {
@Override
public void run() {
drawerToggle.syncState();
}
});
drawerLayout.setDrawerListener(drawerToggle);
}
private void setUpDrawerLayout() {
drawerLayout.setStatusBarBackgroundColor(PreferenceUtils
.getInstance(this).getThemeColorPrimaryDarker());
FrameLayout navDrawerFrame = (FrameLayout) findViewById(R.id.nav_drawer_frame);
int navDrawerMargin = getResources().getDimensionPixelSize(R.dimen.nav_drawer_margin);
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
@ -179,13 +195,8 @@ public class MainActivity extends AbsFabActivity
navDrawerFrame.setLayoutParams(new DrawerLayout.LayoutParams(navDrawerWidth,
DrawerLayout.LayoutParams.MATCH_PARENT, Gravity.START));
drawerLayout.post(new Runnable() {
@Override
public void run() {
drawerToggle.syncState();
}
});
drawerLayout.setDrawerListener(drawerToggle);
navigationDrawerImageWidth = navDrawerWidth;
navigationDrawerImageHeight = getResources().getDimensionPixelSize(R.dimen.navigation_drawer_image_height);
}
@Override
@ -207,10 +218,23 @@ public class MainActivity extends AbsFabActivity
navigationDrawerFragment.getSongArtist().setText(song.artistName);
Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified)))
.error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art)
.into(navigationDrawerFragment.getAlbumArtImageView());
.listener(new RequestListener<Uri, GlideDrawable>() {
@Override
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.util.DialogUtils;
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.drawable.GlideDrawable;
import com.bumptech.glide.request.RequestListener;
@ -301,6 +302,7 @@ public class MusicControllerActivity extends AbsFabActivity {
private void setUpAlbumArtAndApplyPalette() {
Glide.with(this)
.loadFromMediaStore(MusicUtil.getAlbumArtUri(song.albumId))
.diskCacheStrategy(DiskCacheStrategy.NONE)
.signature(new StringSignature(String.valueOf(song.dateModified)))
.error(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 DrawerLayout drawerLayout;
private RecyclerView drawerRecyclerView;
private View fragmentContainerView;
private Button headerButton;
private ImageView albumArt;
@ -54,12 +53,10 @@ public class NavigationDrawerFragment extends Fragment {
return drawerLayout != null && drawerLayout.isDrawerOpen(Gravity.START);
}
public void setUp(int fragmentId, final DrawerLayout drawerLayout) {
fragmentContainerView = getActivity().findViewById(fragmentId);
public void setUp(final DrawerLayout drawerLayout) {
this.drawerLayout = drawerLayout;
this.drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
if (!userLearnedDrawer && !fromSavedInstanceState) {
this.drawerLayout.openDrawer(Gravity.START);
userLearnedDrawer = true;