package tellh.com.gitclub.presentation.widget;
import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull;
import android.widget.ImageView;
import android.widget.TextView;
import tellh.com.gitclub.model.entity.RepositoryInfo;
/**
* Created by tlh on 2016/9/2 :)
*/
public class IconToggleHelper implements ToggleHelper<ImageView> {
int drawable_default;
int drawable_pressed;
public IconToggleHelper(@DrawableRes int drawable_default, @DrawableRes int drawable_pressed) {
this.drawable_default = drawable_default;
this.drawable_pressed = drawable_pressed;
}
public IconToggleHelper toggleStarCount(TextView tv, RepositoryInfo repositoryInfo, @NonNull ImageView me) {
boolean state;
try {
state = (boolean) me.getTag();
} catch (Exception e) {
me.setTag(false);
state = false;
}
int increase = state ? -1 : 1;
repositoryInfo.stars += increase;
tv.setText(String.valueOf(repositoryInfo.stars));
return this;
}
@Override
public boolean toggle(@NonNull ImageView me) {
boolean state;
try {
state = (boolean) me.getTag();
} catch (Exception e) {
me.setTag(false);
state = false;
}
if (drawable_default != 0 && drawable_pressed != 0) {
int resId = state ? drawable_default : drawable_pressed;
me.setTag(!state);
me.setBackgroundResource(resId);
}
return !state;
}
@Override
public void setState(@NonNull ImageView me, boolean state) {
if (drawable_default != 0 && drawable_pressed != 0) {
int resId = !state ? drawable_default : drawable_pressed;
me.setTag(state);
me.setBackgroundResource(resId);
}
}
@Override
public void setState(ImageView me) {
boolean state;
try {
state = (boolean) me.getTag();
} catch (Exception e) {
me.setTag(false);
state = false;
}
setState(me, state);
}
}