package ca.uwaterloo.uwfoodservices;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import ca.uwaterloo.uwfoodservicesutility.MenuUtilities;
import ca.uwaterloo.uwfoodservicesutility.RestaurantMenuHolder;
public class ImageAdapter extends BaseAdapter{
private static LayoutInflater inflater = null;
private ViewHolder holder;
private String id;
private RestaurantMenuHolder menuHolder;
private RestaurantLocationHolder locationHolder;
private WatcardVendorHolder watcardVendorHolder;
private Context context;
private int counter = 0;
private String[] sliding_list = {"Home", "Skip to Menu", "Location & Hours", "WatCard Balance", "About Us"};
Typeface tf;
public ImageAdapter(Context context, String id){
this.context = context;
inflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.id = id;
tf = Typeface.createFromAsset(context.getAssets(),
"Roboto-Light.ttf");
menuHolder = RestaurantMenuHolder.getInstance();
locationHolder = RestaurantLocationHolder.getInstance();
watcardVendorHolder = WatcardVendorHolder.getInstance();
MenuUtilities.setImageHash();
}
@Override
public int getCount() {
if(id.equals("menu")){
return menuHolder.getCount();
} else if (id.equals("location")) {
return locationHolder.getCount();
} else if (id.equals("watcardVendors")){
return watcardVendorHolder.getCount();
} else if (id.equals("all")){
return watcardVendorHolder.getCount()+locationHolder.getCount();
}
else {
return sliding_list.length;
}
}
@Override
public Object getItem(int position) {
return menuHolder.getRestaurantMenu().get(position).getRestaurant();
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(id == "menu"){
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_row, null);
holder = new ViewHolder();
holder.restaraunt_name = (TextView) convertView.findViewById(R.id.restaurant_name);
holder.location = (TextView) convertView.findViewById(R.id.location);
holder.thumbnail = (ImageView) convertView.findViewById(R.id.thumbnail);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.restaraunt_name.setText(menuHolder.getRestaurantMenu().get(position).getRestaurant());
holder.location.setText(menuHolder.getRestaurantMenu().get(position).getLocation());
holder.thumbnail.setImageResource(menuHolder.getRestaurantMenu().get(position).getImage());
holder.restaraunt_name.setTypeface(tf);
holder.location.setTypeface(tf);
return convertView;
}
else if (id == "location") {
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_row, null);
holder = new ViewHolder();
holder.restaraunt_name = (TextView) convertView.findViewById(R.id.restaurant_name);
holder.location = (TextView) convertView.findViewById(R.id.location);
holder.thumbnail = (ImageView) convertView.findViewById(R.id.thumbnail);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.restaraunt_name.setText(locationHolder.objects[position].getRestaurant());
holder.location.setText(locationHolder.objects[position].getLocation());
holder.thumbnail.setImageResource(MenuUtilities.getImageHash().get(locationHolder.objects[position].getRestaurant()));
holder.restaraunt_name.setTypeface(tf);
holder.location.setTypeface(tf);
return convertView;
}
else if (id == "watcardVendors"){
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_row, null);
holder = new ViewHolder();
holder.restaraunt_name = (TextView) convertView.findViewById(R.id.restaurant_name);
holder.location = (TextView) convertView.findViewById(R.id.location);
holder.thumbnail = (ImageView) convertView.findViewById(R.id.thumbnail);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.restaraunt_name.setText(watcardVendorHolder.objects[position].getVendorName());
holder.location.setText(watcardVendorHolder.objects[position].getTelephone());
holder.thumbnail.setImageResource(MenuUtilities.getImageHash().get(watcardVendorHolder.objects[position].getVendorName()));
holder.restaraunt_name.setTypeface(tf);
holder.location.setTypeface(tf);
return convertView;
}
else if (id == "all"){
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_row, null);
holder = new ViewHolder();
holder.restaraunt_name = (TextView) convertView.findViewById(R.id.restaurant_name);
holder.location = (TextView) convertView.findViewById(R.id.location);
holder.thumbnail = (ImageView) convertView.findViewById(R.id.thumbnail);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if ((position < locationHolder.getCount()) && (position >=0))
{
holder.restaraunt_name.setText(locationHolder.objects[position].getRestaurant());
holder.location.setText(locationHolder.objects[position].getLocation());
holder.thumbnail.setImageResource(MenuUtilities.getImageHash().get(locationHolder.objects[position].getRestaurant()));
holder.restaraunt_name.setTypeface(tf);
holder.location.setTypeface(tf);
}
else
{
position -= locationHolder.getCount();
holder.restaraunt_name.setText(watcardVendorHolder.objects[position].getVendorName());
holder.location.setText(watcardVendorHolder.objects[position].getTelephone());
holder.thumbnail.setImageResource(MenuUtilities.getImageHash().get(watcardVendorHolder.objects[position].getVendorName()));
holder.restaraunt_name.setTypeface(tf);
holder.location.setTypeface(tf);
}
return convertView;
}
else {
if(convertView == null){
convertView = inflater.inflate(R.layout.sliding_row, null);
}
TextView slidingText = (TextView) convertView.findViewById(R.id.text);
slidingText.setTextSize(20);
slidingText.setTypeface(tf);
slidingText.setText(sliding_list[position]);
return convertView;
}
}
}