package com.brink.main.Fragments;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.brink.main.R;
import com.brink.main.Fragments.Rate.RateFragment;
import com.brink.main.api.BarApiManager;
import com.brink.main.contracts.ISecondTaskNotifier;
import com.brink.main.models.Bar;
public class Bars extends FragmentActivity {
//For Logging Purposes
private static String TAG = "BarsFragmentActivity";
private static ISecondTaskNotifier<List<Bar>> barsCallback;
private static FragmentActivity _page;
private static Bar mBar = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
FragmentManager fm = getSupportFragmentManager();
//Add our fragment if and only if it has not been added before
if(fm.findFragmentById(android.R.id.content) == null)
{
Log.i(TAG, "onCreate - Adding BarsFragment");
RateFragment mRateFragment = new RateFragment();
fm.beginTransaction().add(android.R.id.content, mRateFragment).commit();
}
}
public static class BarsFragment extends Fragment implements ISecondTaskNotifier<List<Bar>>
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.ratedbarspage, container, false);
}
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
barsCallback = this;
_page = getActivity();
AsyncTask<String, Void, List<Bar>> GetBarListTask = BarApiManager.GetBarsByRegionUtility(barsCallback);
GetBarListTask.execute("Baton Rouge");
}
public void onSecondTaskComplete(List<Bar> result) {
final ListView barsList = (ListView) _page.findViewById(R.id.ratedbarslist);
Bars mBars = new Bars();
barsList.setAdapter(mBars.new RatedBarsAdapter(_page, result));
barsList.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
Object o = barsList.getItemAtPosition(position);
Bar _Bar = (Bar) o;
Intent barPage = new Intent("com.brink.barPage");
Bundle extras = new Bundle();
extras.putString("barsname", _Bar.Name);
barPage.putExtras(extras);
startActivity(barPage);
}
});
}
}
public class RatedBarsAdapter extends BaseAdapter {
private LayoutInflater inflater;
private List<Bar> _data;
public RatedBarsAdapter(Context context, List<Bar> result)
{
_data = result;
inflater = LayoutInflater.from(context);
}
public int getCount() {
return _data.size();
}
public Object getItem(int position) {
return _data.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if(convertView == null)
{
convertView = inflater.inflate(R.layout.ratedbarpageitem, null);
holder = new ViewHolder();
holder.barsName = (TextView) convertView.findViewById(R.id.ratedbarsname);
holder.barsArea = (TextView) convertView.findViewById(R.id.ratedbarsarea);
holder.barHeatBar = (ImageView) convertView.findViewById(R.id.barheatbar);
holder.barCheckedIn = (TextView) convertView.findViewById(R.id.amountcheckedin);
holder.coverAmount = (TextView) convertView.findViewById(R.id.coveramount);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
mBar = new Bar();
mBar = (Bar) getItem(position);
holder.barsName.setText(mBar.Name);
holder.barsArea.setText(mBar.Zone);
holder.coverAmount.setText(mBar.Description);
holder.barCheckedIn.setText(""+mBar.CheckinCount);
// Change icon based on name
String s = mBar.Rating;
if (s.equals("1"))
{
holder.barHeatBar.setImageResource(R.drawable.logo);
}
else if (s.equals("2"))
{
holder.barHeatBar.setImageResource(R.drawable.login);
}
else if (s.equals("3"))
{
holder.barHeatBar.setImageResource(R.drawable.login);
}
else if(s.equals("4"))
{
holder.barHeatBar.setImageResource(R.drawable.login);
}
else if(s.equals("5"))
{
holder.barHeatBar.setImageResource(R.drawable.login);
}
Log.w("Returning ConvertView", "true");
return convertView;
}
class ViewHolder
{
TextView barsName;
TextView barsArea;
TextView barCheckedIn;
TextView coverAmount;
ImageView barHeatBar;
}
}
}