package com.marverenic.music.adapter; import android.support.annotation.ColorInt; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.marverenic.adapter.EnhancedViewHolder; import com.marverenic.adapter.HeterogeneousAdapter; import com.marverenic.music.R; import com.marverenic.music.view.MaterialProgressDrawable; public class LoadingSingleton extends HeterogeneousAdapter.SingletonSection<Void> { private int[] mColors; public LoadingSingleton(@ColorInt int... colors) { super(null); mColors = colors; } @Override public EnhancedViewHolder<Void> createViewHolder(HeterogeneousAdapter adapter, ViewGroup parent) { return new ViewHolder(LayoutInflater.from(parent.getContext()) .inflate(R.layout.instance_loading, parent, false)); } private class ViewHolder extends EnhancedViewHolder<Void> { private MaterialProgressDrawable spinner; ViewHolder(View itemView) { super(itemView); ImageView spinnerView = (ImageView) itemView.findViewById(R.id.loading_icon); spinner = new MaterialProgressDrawable(itemView.getContext(), spinnerView); spinner.setColorSchemeColors(mColors); spinner.updateSizes(MaterialProgressDrawable.LARGE); spinner.setAlpha(255); spinnerView.setImageDrawable(spinner); spinner.start(); } @Override public void onUpdate(Void item, int sectionPosition) { spinner.stop(); spinner.start(); } } }