package com.koushikdutta.boilerplate.tint;
import android.graphics.PorterDuff;
import android.graphics.drawable.StateListDrawable;
class SelectorDrawable extends StateListDrawable {
int colored;
int normal;
boolean porterDuff;
@Override
protected boolean onStateChange(int[] states) {
boolean isColored = false;
for (int state : states) {
switch (state) {
case android.R.attr.state_pressed:
case android.R.attr.state_focused:
case android.R.attr.state_selected:
case android.R.attr.state_checked:
case android.R.attr.state_active:
case android.R.attr.state_activated:
isColored = true;
break;
}
}
if (porterDuff) {
if (!isColored)
setColorFilter(normal, PorterDuff.Mode.SRC_IN);
else
setColorFilter(colored, PorterDuff.Mode.SRC_IN);
}
else {
if (!isColored)
TintHelper.setColorFilter(this, normal);
else
TintHelper.setColorFilter(this, colored);
}
return super.onStateChange(states);
}
}