package com.project.smartpump;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import com.project.classes.Calculations;
import com.project.classes.FavoritesManager;
import com.project.classes.GasStation;
import com.project.classes.StationRequest;
import android.app.ActionBar;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;
public class FavoritesActivity extends ListActivity {
public static Context context;
private FavoritesManager manager;
private ArrayList<GasStation> favoriteStations;
private double currentLat, currentLng;
private double MPG;
static ListView lvFavs;
public static Context getContext() {
return context;
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.favorites);
context = getApplicationContext();
// Activate Clickable Icon Button
ActionBar smartPumpIcon = getActionBar();
smartPumpIcon.setDisplayHomeAsUpEnabled(true);
lvFavs = (ListView)findViewById(android.R.id.list);
manager = new FavoritesManager(context);
currentLat = this.getIntent().getExtras().getDouble("latitude");
currentLng = this.getIntent().getExtras().getDouble("longitude");
MPG = this.getIntent().getExtras().getDouble("MPG");
ArrayList<String> favId = manager.getFavorites();
favoriteStations = new ArrayList<GasStation>();
ArrayList<Map<String, String>> favDetails = new ArrayList<Map<String,String>>();
System.out.println("Got Ids");
if(favId != null)
{
for (String id: favId)
{
GasStation s = StationRequest.getStationById(id);
favoriteStations.add(s);
favDetails.add(putStation(s.getStationName(), s.getStationAddress().getStreet()));;
}
String[] from = {"Name", "Address"};
int[] to = { android.R.id.text1, android.R.id.text2 };
SimpleAdapter adapter = new SimpleAdapter(this, favDetails,
android.R.layout.simple_list_item_2, from, to);
lvFavs.setAdapter(adapter);
}
lvFavs.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
view.setSelected(true);
GasStation selected = favoriteStations.get(position);
Intent i = new Intent(getContext(), StationDetailsActivity.class);
i.putExtra("stationSelected", selected);
i.putExtra("fuelTypeSelected", false);
i.putExtra("latitude", currentLat);
i.putExtra("longitude", currentLng);
i.putExtra("MPG", MPG);
System.out.println("MPG:" + MPG);
startActivity(i);
}
});
}
private HashMap<String, String> putStation(String name, String address)
{
HashMap<String,String> newItem = new HashMap<String, String>();
newItem.put("Name", name);
newItem.put("Address", address);
return newItem;
}
// -------------------------- OPTIONS MENU----------------------------
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.favorites_menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
this.finish();
return true;
}
}