package com.sunlightlabs.android.congress;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import com.sunlightlabs.android.congress.tasks.LoadLegislatorTask;
import com.sunlightlabs.android.congress.tasks.LoadLegislatorTask.LoadsLegislator;
import com.sunlightlabs.android.congress.utils.ActionBarUtils;
import com.sunlightlabs.android.congress.utils.Analytics;
import com.sunlightlabs.android.congress.utils.Utils;
import com.sunlightlabs.congress.models.CongressException;
import com.sunlightlabs.congress.models.Legislator;
public class LegislatorLoader extends Activity implements LoadsLegislator {
private LoadLegislatorTask loadLegislatorTask = null;
private String id;
private Intent intent;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loading_fullscreen);
Intent i = getIntent();
id = i.getStringExtra("id");
intent = (Intent) i.getParcelableExtra("intent");
// if coming from a shortcut intent, there appears to be a bug with packaging sub-intents
// and the intent will be null
if (intent == null)
intent = Utils.legislatorIntent(id);
loadLegislatorTask = (LoadLegislatorTask) getLastNonConfigurationInstance();
if (loadLegislatorTask != null)
loadLegislatorTask.onScreenLoad(this);
else
loadLegislatorTask = (LoadLegislatorTask) new LoadLegislatorTask(this).execute(id);
setupControls();
}
@Override
public Object onRetainNonConfigurationInstance() {
return loadLegislatorTask;
}
public void setupControls() {
Utils.setLoading(this, R.string.legislator_loading);
ActionBarUtils.setTitle(this, R.string.app_name, new Intent(this, MenuLegislators.class));
}
public void onLoadLegislator(Legislator legislator) {
if (legislator != null) {
intent.putExtra("legislator", legislator);
// pass entry info along, this loader class is an implementation detail
startActivity(Analytics.passEntry(this, intent));
} else
Utils.alert(this, R.string.error_connection);
loadLegislatorTask = null;
finish();
}
public void onLoadLegislator(CongressException exception) {
onLoadLegislator((Legislator) null);
}
}