public void setChecked(boolean b) { if (b != checked) { checked = b; refreshDrawableState(); } }
public void toggle() { setChecked(!checked); }
private void bindHeart(ItemHeartCardBinding binding) { if (inProgress) { animateProgress(binding); } else { binding.favorite.setImageResource(R.drawable.favorite_state_list); } binding.favorite.setChecked(checked); }
@Override public int[] onCreateDrawableState(int extraSpace) { final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); if (isChecked()) { mergeDrawableStates(drawableState, CheckedStateSet); } return drawableState; }
private void animateProgress(ItemHeartCardBinding binding) { binding.favorite.setImageResource(R.drawable.avd_favorite_progress); ((Animatable) binding.favorite.getDrawable()).start(); }
@Override protected void drawableStateChanged() { super.drawableStateChanged(); invalidate(); }
@Override public void bind(@NonNull final ItemHeartCardBinding binding, int position) { //binding.getRoot().setBackgroundColor(colorRes); bindHeart(binding); binding.text.setText(String.valueOf(getId() + 1)); binding.favorite.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { inProgress = true; animateProgress(binding); onFavoriteListener.onFavorite(HeartCardItem.this, !checked); } }); }