Skip to content

Instantly share code, notes, and snippets.

@fnk0
Last active October 16, 2016 21:22
Show Gist options
  • Save fnk0/95b71069a2e846087e1c9b9855b7c0a6 to your computer and use it in GitHub Desktop.
Save fnk0/95b71069a2e846087e1c9b9855b7c0a6 to your computer and use it in GitHub Desktop.
public class MovieDetailsFragment extends DetailsFragment
implements Palette.PaletteAsyncListener // Implement the PaletteAsyncListener {
// Change this from FullWidthDetailsOverviewRowPresenter to use our Custom one.
private CustomMovieDetailsPresenter mFullWidthMovieDetailsPresenter;
/**
* Sets up the adapter for this Fragment
*/
private void setUpAdapter() {
// Change the presenter constructor to use our custom one
mFullWidthMovieDetailsPresenter = new CustomMovieDetailsPresenter(new MovieDetailsDescriptionPresenter(),
new DetailsOverviewLogoPresenter());
...
}
/**
* Loads the poster image into the DetailsOverviewRow
* @param url
* The poster URL
*/
private void loadImage(String url) {
Glide.with(getActivity())
.load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
// Add this in order to generate the Palette
changePalette(((GlideBitmapDrawable) resource).getBitmap());
return false;
}
})
.into(mGlideDrawableSimpleTarget);
}
/**
* Generates a palette from a Bitmap
* @param bmp
* The bitmap from which we want to generate the palette
*/
private void changePalette(Bitmap bmp) {
Palette.from(bmp).generate(this);
}
@Override
public void onGenerated(Palette palette) {
PaletteColors colors = PaletteUtils.getPaletteColors(palette);
mFullWidthMovieDetailsPresenter.setActionsBackgroundColor(colors.getStatusBarColor());
mFullWidthMovieDetailsPresenter.setBackgroundColor(colors.getToolbarBackgroundColor());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment