Search in sources :

Example 1 with Swatch

use of android.support.v7.graphics.Palette.Swatch in project Timber by naman14.

the class AlbumAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final ItemHolder itemHolder, int i) {
    Album localItem = arraylist.get(i);
    itemHolder.title.setText(localItem.title);
    itemHolder.artist.setText(localItem.artistName);
    ImageLoader.getInstance().displayImage(TimberUtils.getAlbumArtUri(localItem.id).toString(), itemHolder.albumArt, new DisplayImageOptions.Builder().cacheInMemory(true).showImageOnFail(R.drawable.ic_empty_music2).resetViewBeforeLoading(true).displayer(new FadeInBitmapDisplayer(400)).build(), new SimpleImageLoadingListener() {

        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
            if (isGrid) {
                new Palette.Builder(loadedImage).generate(new Palette.PaletteAsyncListener() {

                    @Override
                    public void onGenerated(Palette palette) {
                        Palette.Swatch swatch = palette.getVibrantSwatch();
                        if (swatch != null) {
                            int color = swatch.getRgb();
                            itemHolder.footer.setBackgroundColor(color);
                            int textColor = TimberUtils.getBlackWhiteColor(swatch.getTitleTextColor());
                            itemHolder.title.setTextColor(textColor);
                            itemHolder.artist.setTextColor(textColor);
                        } else {
                            Palette.Swatch mutedSwatch = palette.getMutedSwatch();
                            if (mutedSwatch != null) {
                                int color = mutedSwatch.getRgb();
                                itemHolder.footer.setBackgroundColor(color);
                                int textColor = TimberUtils.getBlackWhiteColor(mutedSwatch.getTitleTextColor());
                                itemHolder.title.setTextColor(textColor);
                                itemHolder.artist.setTextColor(textColor);
                            }
                        }
                    }
                });
            }
        }

        @Override
        public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
            if (isGrid) {
                itemHolder.footer.setBackgroundColor(0);
                if (mContext != null) {
                    int textColorPrimary = Config.textColorPrimary(mContext, Helpers.getATEKey(mContext));
                    itemHolder.title.setTextColor(textColorPrimary);
                    itemHolder.artist.setTextColor(textColorPrimary);
                }
            }
        }
    });
    if (TimberUtils.isLollipop())
        itemHolder.albumArt.setTransitionName("transition_album_art" + i);
}
Also used : Palette(android.support.v7.graphics.Palette) Album(com.naman14.timber.models.Album) FailReason(com.nostra13.universalimageloader.core.assist.FailReason) ImageView(android.widget.ImageView) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) View(android.view.View) SimpleImageLoadingListener(com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener) Bitmap(android.graphics.Bitmap) FadeInBitmapDisplayer(com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer)

Example 2 with Swatch

use of android.support.v7.graphics.Palette.Swatch in project Timber by naman14.

the class PlaylistAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(final ItemHolder itemHolder, int i) {
    final Playlist localItem = arraylist.get(i);
    itemHolder.title.setText(localItem.name);
    String s = getAlbumArtUri(i, localItem.id);
    itemHolder.albumArt.setTag(firstAlbumID);
    ImageLoader.getInstance().displayImage(s, itemHolder.albumArt, new DisplayImageOptions.Builder().cacheInMemory(true).showImageOnFail(R.drawable.ic_empty_music2).resetViewBeforeLoading(true).build(), new SimpleImageLoadingListener() {

        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
            if (isGrid) {
                new Palette.Builder(loadedImage).generate(new Palette.PaletteAsyncListener() {

                    @Override
                    public void onGenerated(Palette palette) {
                        Palette.Swatch swatch = palette.getVibrantSwatch();
                        if (swatch != null) {
                            int color = swatch.getRgb();
                            itemHolder.footer.setBackgroundColor(color);
                            int textColor = TimberUtils.getBlackWhiteColor(swatch.getTitleTextColor());
                            itemHolder.title.setTextColor(textColor);
                            itemHolder.artist.setTextColor(textColor);
                        } else {
                            Palette.Swatch mutedSwatch = palette.getMutedSwatch();
                            if (mutedSwatch != null) {
                                int color = mutedSwatch.getRgb();
                                itemHolder.footer.setBackgroundColor(color);
                                int textColor = TimberUtils.getBlackWhiteColor(mutedSwatch.getTitleTextColor());
                                itemHolder.title.setTextColor(textColor);
                                itemHolder.artist.setTextColor(textColor);
                            }
                        }
                    }
                });
            }
        }

        @Override
        public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
            if (isGrid) {
                itemHolder.footer.setBackgroundColor(0);
                if (mContext != null) {
                    int textColorPrimary = Config.textColorPrimary(mContext, Helpers.getATEKey(mContext));
                    itemHolder.title.setTextColor(textColorPrimary);
                    itemHolder.artist.setTextColor(textColorPrimary);
                }
            }
        }
    });
    itemHolder.artist.setText(" " + String.valueOf(songCountInt) + " " + mContext.getString(R.string.songs));
    if (TimberUtils.isLollipop())
        itemHolder.albumArt.setTransitionName("transition_album_art" + i);
}
Also used : Palette(android.support.v7.graphics.Palette) FailReason(com.nostra13.universalimageloader.core.assist.FailReason) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) SimpleImageLoadingListener(com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener) Playlist(com.naman14.timber.models.Playlist) Bitmap(android.graphics.Bitmap) DisplayImageOptions(com.nostra13.universalimageloader.core.DisplayImageOptions)

Example 3 with Swatch

use of android.support.v7.graphics.Palette.Swatch in project Timber by naman14.

the class ArtistDetailFragment method setUpArtistDetails.

private void setUpArtistDetails() {
    final Artist artist = ArtistLoader.getArtist(getActivity(), artistID);
    collapsingToolbarLayout.setTitle(artist.name);
    LastFmClient.getInstance(getActivity()).getArtistInfo(new ArtistQuery(artist.name), new ArtistInfoListener() {

        @Override
        public void artistInfoSucess(final LastfmArtist artist) {
            if (artist != null) {
                ImageLoader.getInstance().displayImage(artist.mArtwork.get(4).mUrl, artistArt, new DisplayImageOptions.Builder().cacheInMemory(true).cacheOnDisk(true).showImageOnFail(R.drawable.ic_empty_music2).build(), new SimpleImageLoadingListener() {

                    @Override
                    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                        largeImageLoaded = true;
                        try {
                            new Palette.Builder(loadedImage).generate(new Palette.PaletteAsyncListener() {

                                @Override
                                public void onGenerated(Palette palette) {
                                    Palette.Swatch swatch = palette.getVibrantSwatch();
                                    if (swatch != null) {
                                        primaryColor = swatch.getRgb();
                                        collapsingToolbarLayout.setContentScrimColor(primaryColor);
                                        if (getActivity() != null)
                                            ATEUtils.setStatusBarColor(getActivity(), Helpers.getATEKey(getActivity()), primaryColor);
                                    } else {
                                        Palette.Swatch swatchMuted = palette.getMutedSwatch();
                                        if (swatchMuted != null) {
                                            primaryColor = swatchMuted.getRgb();
                                            collapsingToolbarLayout.setContentScrimColor(primaryColor);
                                            if (getActivity() != null)
                                                ATEUtils.setStatusBarColor(getActivity(), Helpers.getATEKey(getActivity()), primaryColor);
                                        }
                                    }
                                }
                            });
                        } catch (Exception ignored) {
                        }
                    }
                });
                Handler handler = new Handler();
                handler.postDelayed(new Runnable() {

                    @Override
                    public void run() {
                        setBlurredPlaceholder(artist);
                    }
                }, 100);
            }
        }

        @Override
        public void artistInfoFailed() {
        }
    });
}
Also used : LastfmArtist(com.naman14.timber.lastfmapi.models.LastfmArtist) Artist(com.naman14.timber.models.Artist) Palette(android.support.v7.graphics.Palette) Handler(android.os.Handler) ImageView(android.widget.ImageView) View(android.view.View) ArtistQuery(com.naman14.timber.lastfmapi.models.ArtistQuery) LastfmArtist(com.naman14.timber.lastfmapi.models.LastfmArtist) SimpleImageLoadingListener(com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener) Bitmap(android.graphics.Bitmap) ArtistInfoListener(com.naman14.timber.lastfmapi.callbacks.ArtistInfoListener)

Example 4 with Swatch

use of android.support.v7.graphics.Palette.Swatch in project Material-Movies by saulmm.

the class MovieDetailActivity method onGenerated.

@Override
public void onGenerated(Palette palette) {
    if (palette != null) {
        final Swatch darkVibrantSwatch = palette.getDarkVibrantSwatch();
        final Swatch darkMutedSwatch = palette.getDarkMutedSwatch();
        final Swatch lightVibrantSwatch = palette.getLightVibrantSwatch();
        final Swatch lightMutedSwatch = palette.getLightMutedSwatch();
        final Swatch vibrantSwatch = palette.getVibrantSwatch();
        final Swatch backgroundAndContentColors = (darkVibrantSwatch != null) ? darkVibrantSwatch : darkMutedSwatch;
        final Swatch titleAndFabColors = (darkVibrantSwatch != null) ? lightVibrantSwatch : lightMutedSwatch;
        setBackgroundAndFabContentColors(backgroundAndContentColors);
        setHeadersTitlColors(titleAndFabColors);
        setVibrantElements(vibrantSwatch);
    }
}
Also used : Swatch(android.support.v7.graphics.Palette.Swatch)

Example 5 with Swatch

use of android.support.v7.graphics.Palette.Swatch in project Shuttle by timusus.

the class PlayerFragment method trackInfoChanged.

@Override
public void trackInfoChanged(@Nullable Song song) {
    if (song == null)
        return;
    if (isExpanded && !snowfallView.isSnowing()) {
        snowfallView.letItSnow();
    } else {
        snowfallView.removeSnow();
    }
    String totalTimeString = StringUtils.makeTimeString(this.getActivity(), song.duration / 1000);
    if (!TextUtils.isEmpty(totalTimeString)) {
        if (totalTime != null) {
            totalTime.setText(totalTimeString);
        }
    }
    if (track != null) {
        track.setText(song.name);
        track.setSelected(true);
    }
    if (album != null) {
        album.setText(String.format("%s | %s", song.artistName, song.albumName));
    }
    if (isLandscape) {
        toolbar.setTitle(song.name);
        toolbar.setSubtitle(String.format("%s | %s", song.artistName, song.albumName));
        target = Glide.with(this).load(song).diskCacheStrategy(DiskCacheStrategy.SOURCE).bitmapTransform(new BlurTransformation(getContext(), 15, 4)).error(PlaceholderProvider.getInstance().getPlaceHolderDrawable(song.name, true)).thumbnail(Glide.with(this).load(this.song).bitmapTransform(new BlurTransformation(getContext(), 15, 4))).crossFade(600).into(backgroundView);
        this.song = song;
    } else {
        backgroundView.setImageDrawable(null);
        toolbar.setTitle(null);
        toolbar.setSubtitle(null);
    }
    if (SettingsManager.getInstance().getUsePalette()) {
        // noinspection unchecked
        Glide.with(this).load(song).asBitmap().transcode(new PaletteBitmapTranscoder(getContext()), PaletteBitmap.class).override(250, 250).diskCacheStrategy(DiskCacheStrategy.ALL).into(new SimpleTarget<PaletteBitmap>() {

            @Override
            public void onResourceReady(PaletteBitmap resource, GlideAnimation<? super PaletteBitmap> glideAnimation) {
                if (!isAdded() || getContext() == null) {
                    return;
                }
                Palette.Swatch swatch = resource.palette.getDarkMutedSwatch();
                if (swatch != null) {
                    if (SettingsManager.getInstance().getUsePalette()) {
                        if (SettingsManager.getInstance().getUsePaletteNowPlayingOnly()) {
                            animateColors(currentColor, swatch.getRgb(), color -> invalidateColors(color));
                        } else {
                            // Set Aesthetic colors globally, based on the current Palette swatch
                            disposables.add(Aesthetic.get(getContext()).colorPrimary().take(1).subscribe(integer -> animateColors(integer, swatch.getRgb(), color -> {
                                if (getContext() != null && isAdded()) {
                                    Aesthetic aesthetic = Aesthetic.get(getContext()).colorPrimary(color).colorStatusBarAuto();
                                    if (SettingsManager.getInstance().getTintNavBar()) {
                                        aesthetic = aesthetic.colorNavigationBar(color);
                                    }
                                    aesthetic.apply();
                                }
                            })));
                        }
                    }
                } else {
                    // Failed to generate the dark muted swatch, fall back to the primary theme colour.
                    Aesthetic.get(getContext()).colorPrimary().take(1).subscribe(primaryColor -> animateColors(currentColor, primaryColor, color -> invalidateColors(color)));
                }
            }

            @Override
            public void onLoadFailed(Exception e, Drawable errorDrawable) {
                super.onLoadFailed(e, errorDrawable);
                Aesthetic.get(getContext()).colorPrimary().take(1).subscribe(primaryColor -> animateColors(currentColor, primaryColor, color -> invalidateColors(color)));
            }
        });
    }
}
Also used : PaletteBitmapTranscoder(com.simplecity.amp_library.glide.palette.PaletteBitmapTranscoder) R(com.simplecity.amp_library.R) Genre(com.simplecity.amp_library.model.Genre) Bundle(android.os.Bundle) SizableSeekBar(com.simplecity.amp_library.ui.views.SizableSeekBar) ImageView(android.widget.ImageView) SeekBarStopChangeEvent(com.jakewharton.rxbinding2.widget.SeekBarStopChangeEvent) FavoriteActionBarView(com.simplecity.amp_library.ui.views.FavoriteActionBarView) Drawable(android.graphics.drawable.Drawable) AndroidSchedulers(io.reactivex.android.schedulers.AndroidSchedulers) BindView(butterknife.BindView) Song(com.simplecity.amp_library.model.Song) Aesthetic(com.afollestad.aesthetic.Aesthetic) PaletteBitmapTranscoder(com.simplecity.amp_library.glide.palette.PaletteBitmapTranscoder) RepeatingImageButton(com.simplecity.amp_library.ui.views.RepeatingImageButton) View(android.view.View) ArgbEvaluator(android.animation.ArgbEvaluator) Schedulers(io.reactivex.schedulers.Schedulers) PreferenceManager(android.preference.PreferenceManager) ShuffleButton(com.simplecity.amp_library.ui.views.ShuffleButton) Unbinder(butterknife.Unbinder) Log(android.util.Log) SimpleTarget(com.bumptech.glide.request.target.SimpleTarget) LogUtils(com.simplecity.amp_library.utils.LogUtils) PlayPauseView(com.simplecity.amp_library.ui.views.PlayPauseView) SeekBarProgressChangeEvent(com.jakewharton.rxbinding2.widget.SeekBarProgressChangeEvent) ViewGroup(android.view.ViewGroup) SettingsManager(com.simplecity.amp_library.utils.SettingsManager) MusicUtils(com.simplecity.amp_library.utils.MusicUtils) CompositeDisposable(io.reactivex.disposables.CompositeDisposable) TextView(android.widget.TextView) FragmentModule(com.simplecity.amp_library.dagger.module.FragmentModule) SnowfallView(com.simplecity.amp_library.ui.views.SnowfallView) SeekBarStartChangeEvent(com.jakewharton.rxbinding2.widget.SeekBarStartChangeEvent) Util(com.afollestad.aesthetic.Util) Nullable(android.support.annotation.Nullable) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) BlurTransformation(com.jp.wasabeef.glide.transformations.BlurTransformation) Palette(android.support.v7.graphics.Palette) ButterKnife(butterknife.ButterKnife) GlideDrawable(com.bumptech.glide.load.resource.drawable.GlideDrawable) StringUtils(com.simplecity.amp_library.utils.StringUtils) MenuItem(android.view.MenuItem) Inject(javax.inject.Inject) GlideAnimation(com.bumptech.glide.request.animation.GlideAnimation) SuppressLint(android.annotation.SuppressLint) SeekBarChangeEvent(com.jakewharton.rxbinding2.widget.SeekBarChangeEvent) Flowable(io.reactivex.Flowable) Toast(android.widget.Toast) DiskCacheStrategy(com.bumptech.glide.load.engine.DiskCacheStrategy) Observable(io.reactivex.Observable) UnsafeConsumer(com.simplecity.amp_library.rx.UnsafeConsumer) PlaceholderProvider(com.simplecity.amp_library.utils.PlaceholderProvider) ShuttleUtils(com.simplecity.amp_library.utils.ShuttleUtils) TaggerDialog(com.simplecity.amp_library.tagger.TaggerDialog) BackpressureStrategy(io.reactivex.BackpressureStrategy) LayoutInflater(android.view.LayoutInflater) Target(com.bumptech.glide.request.target.Target) NavigationEventRelay(com.simplecity.amp_library.ui.drawer.NavigationEventRelay) TextUtils(android.text.TextUtils) Color(android.graphics.Color) TimeUnit(java.util.concurrent.TimeUnit) ShuttleApplication(com.simplecity.amp_library.ShuttleApplication) PlayerView(com.simplecity.amp_library.ui.views.PlayerView) PaletteBitmap(com.simplecity.amp_library.glide.palette.PaletteBitmap) Glide(com.bumptech.glide.Glide) MultiSheetSlideEventRelay(com.simplecity.amp_library.ui.views.multisheet.MultiSheetSlideEventRelay) Toolbar(android.support.v7.widget.Toolbar) MusicService(com.simplecity.amp_library.playback.MusicService) PlayerPresenter(com.simplecity.amp_library.ui.presenters.PlayerPresenter) DataManager(com.simplecity.amp_library.utils.DataManager) AlbumArtist(com.simplecity.amp_library.model.AlbumArtist) RepeatButton(com.simplecity.amp_library.ui.views.RepeatButton) Collections(java.util.Collections) RxSeekBar(com.jakewharton.rxbinding2.widget.RxSeekBar) ValueAnimator(android.animation.ValueAnimator) RxSharedPreferences(com.f2prateek.rx.preferences2.RxSharedPreferences) BlurTransformation(com.jp.wasabeef.glide.transformations.BlurTransformation) Aesthetic(com.afollestad.aesthetic.Aesthetic) Drawable(android.graphics.drawable.Drawable) GlideDrawable(com.bumptech.glide.load.resource.drawable.GlideDrawable) PaletteBitmap(com.simplecity.amp_library.glide.palette.PaletteBitmap)

Aggregations

Palette (android.support.v7.graphics.Palette)8 Bitmap (android.graphics.Bitmap)7 View (android.view.View)6 ImageView (android.widget.ImageView)6 TextView (android.widget.TextView)5 RecyclerView (android.support.v7.widget.RecyclerView)4 FailReason (com.nostra13.universalimageloader.core.assist.FailReason)4 SimpleImageLoadingListener (com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener)4 Drawable (android.graphics.drawable.Drawable)3 GlideAnimation (com.bumptech.glide.request.animation.GlideAnimation)2 SimpleTarget (com.bumptech.glide.request.target.SimpleTarget)2 ArgbEvaluator (android.animation.ArgbEvaluator)1 ValueAnimator (android.animation.ValueAnimator)1 SuppressLint (android.annotation.SuppressLint)1 Color (android.graphics.Color)1 Bundle (android.os.Bundle)1 Handler (android.os.Handler)1 PreferenceManager (android.preference.PreferenceManager)1 Nullable (android.support.annotation.Nullable)1 Swatch (android.support.v7.graphics.Palette.Swatch)1