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:17:18 +02:00
commit a91804657d
18 changed files with 104 additions and 40 deletions

View file

@ -24,6 +24,7 @@ import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
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.github.ksoichiro.android.observablescrollview.ObservableRecyclerView;
import com.kabouzeid.gramophone.App;
import com.kabouzeid.gramophone.R;
@ -178,6 +179,7 @@ public class AlbumDetailActivity extends AbsFabActivity implements PaletteColorH
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>() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)

View file

@ -29,6 +29,10 @@ 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;
import com.kabouzeid.gramophone.dialogs.AboutDialog;
@ -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)
.error(R.drawable.default_album_art)
.placeholder(R.drawable.default_album_art)
.into(navigationDrawerFragment.getAlbumArtImageView());
.signature(new StringSignature(String.valueOf(song.dateModified)))
.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

@ -29,6 +29,7 @@ import com.bumptech.glide.load.resource.bitmap.GlideBitmapDrawable;
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.App;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.dialogs.AddToPlaylistDialog;
@ -302,6 +303,7 @@ public class MusicControllerActivity extends AbsFabActivity {
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)
.listener(new RequestListener<Uri, GlideDrawable>() {

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;