package cz.destil.glasquare.activity;
import java.util.ArrayList;
import java.util.List;
import cz.destil.glasquare.R;
import cz.destil.glasquare.adapter.VenuesAdapter;
import cz.destil.glasquare.api.Api;
import cz.destil.glasquare.api.ExploreVenues;
import cz.destil.glasquare.util.DebugLog;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
/**
* Activity with a single venue.
*
* @author David 'Destil' Vavra (david@vavra.me)
*/
public class VenueActivity extends BaseVenuesActivity {
@Override
protected void loadData() {
String id = getIntent().getStringExtra("id");
if (id == null) {
if (getIntent().getData() == null) {
finish();
return;
} else {
// url like this: glasquare://venue/41059b00f964a520850b1fe3
List<String> pathSegments = getIntent().getData().getPathSegments();
if (pathSegments.size() > 0) {
id = pathSegments.get(0);
} else {
finish();
return;
}
}
}
showProgress(R.string.loading);
Api.get().create(ExploreVenues.class).detail(id, new Callback<ExploreVenues.ExploreVenueResponse>() {
@Override
public void success(ExploreVenues.ExploreVenueResponse exploreVenueResponse, Response response) {
mSelectedVenue = exploreVenueResponse.getVenue();
if (mSelectedVenue == null) {
showError(R.string.no_venues_found);
} else {
List<ExploreVenues.Venue> venues = new ArrayList<ExploreVenues.Venue>();
venues.add(mSelectedVenue);
showContent(new VenuesAdapter(venues), new CardSelectedListener() {
@Override
public void onCardSelected(Object item) {
openOptionsMenu();
}
});
}
}
@Override
public void failure(RetrofitError error) {
showError(R.string.error_please_try_again);
DebugLog.e(error);
}
});
}
}