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.widget.Checkable; import android.widget.ImageView; import android.widget.TextView; import org.joda.time.DateTime; import org.openlmis.core.R; import org.openlmis.core.utils.DateUtil; import org.openlmis.core.view.viewmodel.SelectInventoryViewModel; public class SelectPeriodCardView extends CardView implements Checkable { private boolean mChecked; private View inventoryContainer; private View horizontalLine; private TextView inventoryDateTime; private TextView inventoryDateDay; private TextView inventoryDateMonth; private TextView inventoryDateWeek; private ImageView checkmarkIcon; public SelectPeriodCardView(Context context) { super(context); init(); } public SelectPeriodCardView(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init() { inflate(getContext(), R.layout.view_card_checkable, this); setRadius(getResources().getDimension(R.dimen.cardview_radius)); inventoryDateTime = (TextView) findViewById(R.id.tv_inventory_date_time); inventoryDateDay = (TextView) findViewById(R.id.tv_inventory_date_day); inventoryDateMonth = (TextView) findViewById(R.id.tv_inventory_date_month); inventoryDateWeek = (TextView) findViewById(R.id.tv_inventory_date_week); inventoryContainer = findViewById(R.id.inventory_date_container); horizontalLine = findViewById(R.id.inventory_date_line); checkmarkIcon = (ImageView) findViewById(R.id.inventory_checkmark); } public void populate(SelectInventoryViewModel selectInventoryViewModel) { DateTime date = new DateTime(selectInventoryViewModel.getInventoryDate()); inventoryDateTime.setVisibility(selectInventoryViewModel.isShowTime() ? View.VISIBLE : View.INVISIBLE); inventoryDateTime.setText(date.toString(DateUtil.TIME_FORMAT)); inventoryDateDay.setText(date.dayOfMonth().getAsText()); inventoryDateMonth.setText(date.monthOfYear().getAsShortText()); inventoryDateWeek.setText(date.dayOfWeek().getAsText()); } @Override public void setChecked(boolean checked) { if (mChecked == checked) { return; } if (checked) { setSelected(); } else { setDeSelected(); } this.mChecked = checked; } private void setDeSelected() { inventoryContainer.setBackgroundColor(getResources().getColor(android.R.color.transparent)); inventoryDateWeek.setBackgroundColor(getResources().getColor(android.R.color.transparent)); inventoryDateTime.setTextColor(getResources().getColor(R.color.color_text_primary)); inventoryDateDay.setTextColor(getResources().getColor(R.color.color_text_primary)); inventoryDateMonth.setTextColor(getResources().getColor(R.color.color_text_primary)); inventoryDateWeek.setTextColor(getResources().getColor(R.color.color_text_primary)); horizontalLine.setVisibility(View.VISIBLE); checkmarkIcon.setVisibility(View.GONE); } private void setSelected() { inventoryContainer.setBackgroundColor(getResources().getColor(R.color.color_teal)); inventoryDateWeek.setBackgroundColor(getResources().getColor(R.color.color_teal_dark)); inventoryDateTime.setTextColor(getResources().getColor(R.color.color_white)); inventoryDateDay.setTextColor(getResources().getColor(R.color.color_white)); inventoryDateMonth.setTextColor(getResources().getColor(R.color.color_white)); inventoryDateWeek.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); } }