package com.sunlightlabs.android.congress;
import android.content.Context;
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.sunlightlabs.android.congress.fragments.LegislatorListFragment;
import com.sunlightlabs.android.congress.fragments.MenuLegislatorsFragment;
import com.sunlightlabs.android.congress.utils.ActionBarUtils;
import com.sunlightlabs.android.congress.utils.Analytics;
import com.sunlightlabs.android.congress.utils.TitlePageAdapter;
import java.util.List;
public class MenuLegislators extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pager_titled);
Analytics.init(this);
setupControls();
setupPager();
}
public void setupPager() {
TitlePageAdapter adapter = new TitlePageAdapter(this);
adapter.add("legislators_menu", R.string.menu_legislators_following, MenuLegislatorsFragment.newInstance());
adapter.add("legislators_states", R.string.menu_legislators_state, StatesFragment.newInstance());
adapter.add("legislators_house", R.string.menu_legislators_house, LegislatorListFragment.forChamber("house"));
adapter.add("legislators_senate", R.string.menu_legislators_senate, LegislatorListFragment.forChamber("senate"));
}
public void setupControls() {
ActionBarUtils.setTitle(this, R.string.menu_main_legislators);
// we only support GPS and network location
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
List<String> providers = manager.getProviders(true);
if (providers.contains("gps") || providers.contains("network")) {
ActionBarUtils.setActionButton(this, R.id.action_2, R.drawable.location, new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(MenuLegislators.this, LegislatorSearch.class).putExtra("location", true));
}
});
}
ActionBarUtils.setActionButton(this, R.id.action_1, R.drawable.search, new View.OnClickListener() {
public void onClick(View v) {
onSearchRequested();
}
});
}
public static class StatesFragment extends ListFragment {
private String[] stateCodes;
public static StatesFragment newInstance() {
StatesFragment frag = new StatesFragment();
frag.setRetainInstance(true);
return frag;
}
public StatesFragment() {}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.list_bare, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
stateCodes = getResources().getStringArray(R.array.state_codes);
String[] stateNames = getResources().getStringArray(R.array.state_names);
setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, stateNames));
}
@Override
public void onListItemClick(ListView parent, View view, int position, long id) {
startActivity(new Intent(getActivity(), LegislatorSearch.class).putExtra("state", stateCodes[position]));
}
}
@Override
public void onStart() {
super.onStart();
Analytics.start(this);
}
@Override
public void onStop() {
super.onStop();
Analytics.stop(this);
}
}