package com.ucb.dcm;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.app.SherlockListActivity;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.widget.ShareActionProvider;
import com.ucb.dcm.data.DataService;
import com.ucb.dcm.data.Show;
import com.ucb.dcm.data.Venue;
import com.ucb.dcm.list.ShowsListAdapter;
import com.ucb.dcm.list.VenueScheduleAdapter;
import com.ucb.dcm.util.ImageUtil;
import java.util.ArrayList;
/**
* Created by kurtguenther on 6/9/13.
*/
public class DisplayVenueActivity extends SherlockListActivity {
public static final String VENUE_KEY = "venue_key";
private Venue mVenue;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_venue);
//Hook up the data
mVenue = (Venue) getIntent().getSerializableExtra(VENUE_KEY);
setTitle(mVenue.name);
View venueHeader = getVenueHeaderView();
if(getListView().getHeaderViewsCount() == 0){
getListView().addHeaderView(venueHeader, null, false);
}
Cursor c = mVenue.getSchedule();
VenueScheduleAdapter mAdpt = new VenueScheduleAdapter(this, c);
setListAdapter(mAdpt);
}
protected View getVenueHeaderView() {
View retVal = this.getLayoutInflater().inflate(R.layout.list_venue_header, null, false);
TextView address = (TextView) retVal.findViewById(R.id.venue_address);
address.setText("Address: " + mVenue.address);
ImageView venueImage = (ImageView) retVal.findViewById(R.id.venue_image);
if(mVenue.image != null && !mVenue.image.equals("")){
ImageUtil.setImageFromUrl(mVenue.image, venueImage);
venueImage.setVisibility(View.VISIBLE);
}
else {
venueImage.setVisibility(View.GONE);
}
return retVal;
}
@Override
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
getSupportMenuInflater().inflate(R.menu.venue, menu);
MenuItem map = menu.findItem(R.id.venue_map);
map.setVisible(mVenue.gmaps != null && !mVenue.gmaps.equals(""));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.venue_map:
String uri = mVenue.gmaps;
Intent map = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(map);
break;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
//We do this because of the manual header we add (for the Venue details)
int newPosition = position - 1;
Cursor c = (Cursor) getListAdapter().getItem(newPosition);
Show show = new Show(c);
Intent displayShow = new Intent(this, ViewShowFragment.class);
displayShow.putExtra(ViewShowFragment.SHOW_KEY, show.ID);
startActivity(displayShow);
}
}