package io.c0nnector.github.paradise.ui.views; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.util.AttributeSet; import android.widget.ImageView; import com.squareup.picasso.Picasso; import javax.inject.Inject; import io.c0nnector.github.paradise.R; import io.c0nnector.github.paradise.application.Application; import io.c0nnector.github.paradise.util.UtilMeasure; import jp.wasabeef.picasso.transformations.CropCircleTransformation; import jp.wasabeef.picasso.transformations.RoundedCornersTransformation; /** * Loads url images with picasso */ public class UrlImageView extends ImageView { /** * Circle transformation */ private CropCircleTransformation cropCircleTransformation; private ColorDrawable defaultBackground; @Inject Picasso picasso; public UrlImageView(Context context) { super(context); init(); } public UrlImageView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public UrlImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } public void init(){ if (isInEditMode()) return; //inject dagger Application.get(getContext()).inject(this); //default image background this.defaultBackground = new ColorDrawable(Color.LTGRAY); //circle image transformation this.cropCircleTransformation = new CropCircleTransformation(); setAdjustViewBounds(true); } /** * Will show the image in a square view * @param url * @return */ public UrlImageView loadGalleryImage(String url){ int screenWidth = UtilMeasure.getScreenWidth(getContext()); picasso.load(url) .resize(screenWidth, screenWidth) .placeholder(defaultBackground) .centerInside() .into(this); return this; } public void loadAvatarImage(String url){ picasso.load(url) .transform(cropCircleTransformation) .placeholder(R.drawable.ic_account_circle_grey_500_48dp) .into(this); } public void loadCompanyLogo(String url){ picasso.load(url) .placeholder(R.drawable.ic_business_grey_400_48dp) .transform(new RoundedCornersTransformation(UtilMeasure.dpToPx(5), 0)) .into(this); } public Picasso getPicasso(){ return picasso; } }