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; } } }