package org.openlmis.core.view.widget;
import android.content.Context;
import android.support.v7.widget.CardView;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.TextView;
import org.openlmis.core.R;
import roboguice.RoboGuice;
import roboguice.inject.InjectView;
public class SelectUnpackNumCardView extends CardView implements Checkable {
private boolean mChecked;
@InjectView(R.id.tv_unpack_num_container)
private View unpackNumContainer;
@InjectView(R.id.unpack_num_line)
private View horizontalLine;
@InjectView(R.id.iv_checkmark)
private ImageView checkmarkIcon;
@InjectView(R.id.tv_unpack_type)
public TextView tvUnpackType;
@InjectView(R.id.tv_unpack_num)
public TextView tvUnpackNum;
public SelectUnpackNumCardView(Context context) {
super(context);
init();
}
public SelectUnpackNumCardView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
inflate(getContext(), R.layout.view_unpack_num_card, this);
setRadius(getResources().getDimension(R.dimen.cardview_radius));
post(new Runnable() {
@Override
public void run() {
ViewGroup.LayoutParams layoutParams = getLayoutParams();
layoutParams.height = getWidth();
setLayoutParams(layoutParams);
}
});
RoboGuice.injectMembers(getContext(), this);
RoboGuice.getInjector(getContext()).injectViewMembers(this);
}
public void populate(int num, String kitType) {
tvUnpackNum.setText(String.valueOf(num));
tvUnpackType.setText(kitType);
}
@Override
public void setChecked(boolean checked) {
if (mChecked == checked) {
return;
}
if (checked) {
setSelected();
} else {
setDeSelected();
}
this.mChecked = checked;
}
private void setDeSelected() {
unpackNumContainer.setBackgroundColor(getResources().getColor(android.R.color.transparent));
tvUnpackType.setBackgroundColor(getResources().getColor(android.R.color.transparent));
tvUnpackNum.setTextColor(getResources().getColor(R.color.color_text_primary));
tvUnpackType.setTextColor(getResources().getColor(R.color.color_text_primary));
horizontalLine.setVisibility(View.VISIBLE);
checkmarkIcon.setVisibility(View.GONE);
}
private void setSelected() {
unpackNumContainer.setBackgroundColor(getResources().getColor(R.color.color_teal));
tvUnpackType.setBackgroundColor(getResources().getColor(R.color.color_teal_dark));
tvUnpackNum.setTextColor(getResources().getColor(R.color.color_white));
tvUnpackType.setTextColor(getResources().getColor(R.color.color_white));
horizontalLine.setVisibility(View.GONE);
checkmarkIcon.setVisibility(View.VISIBLE);
}
@Override
public boolean isChecked() {
return mChecked;
}
@Override
public void toggle() {
setChecked(!mChecked);
}
}