package edu.mit.mitmobile2.dining; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import edu.mit.mitmobile2.R; import edu.mit.mitmobile2.RemoteImageView; import edu.mit.mitmobile2.dining.DiningModel.DiningHall; public class DiningHallHeaderView extends LinearLayout { private Context mContext; private TextView mTitleView; private TextView mSubtitleView; private RemoteImageView mIconView; private ImageView mActionImage; public DiningHallHeaderView(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; inflateLayout(context); } private void inflateLayout(Context context) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.dining_hall_header, this); mTitleView = (TextView) findViewById(R.id.diningHallHeaderTitle); mSubtitleView = (TextView) findViewById(R.id.diningHallHeaderSubtitle); mIconView = (RemoteImageView) findViewById(R.id.diningHallHeaderImage); mActionImage = (ImageView) findViewById(R.id.diningHallActionImage); } public DiningHallHeaderView(Context context, DiningHall hall, long currentTime) { super(context); mContext = context; inflateLayout(context); setHall(hall, currentTime); } public void setActionImageResourceId(int resId) { mActionImage.setImageResource(resId); } public void setActionClickListener(OnClickListener clickListener) { mActionImage.setOnClickListener(clickListener); } public void setHall(DiningHall hall, long currentTime) { mTitleView.setText(hall.getName()); mSubtitleView.setText(hall.getCurrentStatusSummary(currentTime)); if (hall.getIconUrl() != null) { mIconView.setURL(hall.getIconUrl()); } else { mIconView.setVisibility(View.GONE); mTitleView.setPadding(0, mTitleView.getPaddingTop(), mTitleView.getPaddingRight(), mTitleView.getPaddingBottom()); } int colorResID = 0; switch (hall.getCurrentStatus(currentTime)) { case OPEN: colorResID = R.color.dining_open; break; case CLOSED: colorResID = R.color.dining_closed; break; } mSubtitleView.setTextColor(mContext.getResources().getColor(colorResID)); } }