package org.jtb.nextvta;
import java.util.List;
import org.jtb.nextvta.RouteType.DisplayRouteType;
import org.jtb.nextvta.donate.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.Toast;
public class RoutesActivity extends Activity {
private static final int SET_LIST_WHAT = 0;
private List<Route> mRoutes;
private RouteType mRouteType = RouteType.ALL;
private Spinner mRouteTypeSpinner;
private ListView mRouteList;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SET_LIST_WHAT:
RouteRowAdapter rra = new RouteRowAdapter(RoutesActivity.this, mRoutes);
mRouteList.setAdapter(rra);
break;
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.routes);
mRouteList = (ListView) findViewById(R.id.route_list);
mRouteList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Intent i = new Intent(parent.getContext(), RouteActivity.class);
Route r = mRoutes.get(position);
i.putExtra("org.jtb.nextvta.route", r);
startActivity(i);
}
});
mRouteTypeSpinner = (Spinner) findViewById(R.id.route_type_spinner);
ArrayAdapter<DisplayRouteType> rtaa = new ArrayAdapter<DisplayRouteType>(
this, android.R.layout.simple_spinner_item, RouteType
.getDisplayRouteTypes(this));
rtaa
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mRouteTypeSpinner.setAdapter(rtaa);
mRouteTypeSpinner
.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView parent, View v,
int position, long id) {
RouteType rt = ((DisplayRouteType) parent
.getSelectedItem()).getRouteType();
if (rt != mRouteType) {
mRouteType = rt;
load();
}
}
public void onNothingSelected(AdapterView parent) {
}
});
setTitle(R.string.activity_routes);
load();
}
private void load() {
Toast.makeText(this, "Loading routes ...", Toast.LENGTH_SHORT).show();
new Thread(new Runnable() {
public void run() {
mRoutes = TdlManager.getInstance(getResources().getAssets())
.fetchRoutes(mRouteType);
mHandler.sendEmptyMessage(SET_LIST_WHAT);
}
}).start();
}
}
|