package com.huhx0015.gw2at.viewmodels.views;
import android.content.Context;
import android.databinding.BaseObservable;
import android.databinding.Bindable;
import android.databinding.ObservableField;
import android.graphics.drawable.Drawable;
import com.huhx0015.gw2at.BR;
import com.huhx0015.gw2at.R;
import com.huhx0015.gw2at.view.targets.BindableFieldTarget;
import com.huhx0015.gw2at.utils.DisplayUtils;
import com.squareup.picasso.Picasso;
/**
* Created by Michael Yoon Huh on 2/1/2017.
*/
public class QuaggansViewModel extends BaseObservable implements BindableFieldTarget.BindableFieldTargetListener {
/** CLASS VARIABLES ________________________________________________________________________ **/
// LOGGING VARIABLES
private static final String LOG_TAG = QuaggansViewModel.class.getSimpleName();
// TARGET VARIABLES
private BindableFieldTarget mTarget;
// VIEWMODEL VARIABLES
@Bindable
public boolean quaggansProgressBarVisibilility;
@Bindable
public String quaggansNameText;
public ObservableField<Drawable> quaggansImage;
/** SET METHODS ____________________________________________________________________________ **/
public void setQuaggansProgressBarVisible(boolean isVisible) {
this.quaggansProgressBarVisibilility = isVisible;
notifyPropertyChanged(BR.quaggansProgressBarVisibilility);
}
public void setQuaggansNameText(String name) {
this.quaggansNameText = name;
notifyPropertyChanged(BR.quaggansNameText);
}
public void setQuaggansImage(String imageUrl, Context context) {
quaggansImage = new ObservableField<>();
mTarget = new BindableFieldTarget(quaggansImage, context.getResources());
mTarget.setListener(this);
Picasso.with(context)
.load(imageUrl)
.resize((int) DisplayUtils.convertDpToPixel(120, context),
(int) DisplayUtils.convertDpToPixel(128, context))
.error(R.drawable.icon_unavailable)
.into(mTarget);
}
/** INTERFACE METHODS ______________________________________________________________________ **/
@Override
public void onBitmapLoaded() {
setQuaggansProgressBarVisible(false);
notifyChange();
}
@Override
public void onBitmapFailed() {
setQuaggansProgressBarVisible(false);
}
@Override
public void onPrepareLoaded() {
setQuaggansProgressBarVisible(true);
}
}