package com.osmnavigator;
import java.util.ArrayList;
import org.osmdroid.bonuspack.location.POI;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView;
/**
* Activity showing POIs as a list.
* @author M.Kergall
*/
public class POIActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.items_list);
TextView title = (TextView)findViewById(R.id.title);
title.setText("Features");
ListView list = (ListView)findViewById(R.id.items);
Intent myIntent = getIntent();
//STATIC - final ArrayList<POI> pois = myIntent.getParcelableArrayListExtra("POI");
ArrayList<POI> pois = MapActivity.mPOIs;
final int currentNodeId = myIntent.getIntExtra("ID", -1);
POIAdapter adapter = new POIAdapter(this, pois);
list.setOnItemClickListener(new OnItemClickListener() {
@Override public void onItemClick(AdapterView<?> arg0, View view, int position, long index) {
Intent intent = new Intent();
intent.putExtra("ID", position);
setResult(RESULT_OK, intent);
finish();
}
});
list.setAdapter(adapter);
list.setSelection(currentNodeId);
}
}
class POIAdapter extends BaseAdapter implements OnClickListener {
private Context mContext;
private ArrayList<POI> mPois;
public POIAdapter(Context context, ArrayList<POI> pois) {
mContext = context;
mPois = pois;
}
@Override public int getCount() {
if (mPois == null)
return 0;
else
return mPois.size();
}
@Override public Object getItem(int position) {
if (mPois == null)
return null;
else
return mPois.get(position);
}
@Override public long getItemId(int position) {
return position;
}
@Override public View getView(int position, View convertView, ViewGroup viewGroup) {
POI entry = (POI)getItem(position);
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.item_layout, null);
}
TextView tvTitle = (TextView)convertView.findViewById(R.id.title);
tvTitle.setText(entry.mType);
TextView tvDetails = (TextView)convertView.findViewById(R.id.details);
tvDetails.setText(entry.mDescription);
ImageView ivManeuver = (ImageView)convertView.findViewById(R.id.thumbnail);
//ivManeuver.setImageBitmap(entry.mThumbnail);
entry.fetchThumbnailOnThread(ivManeuver);
return convertView;
}
@Override public void onClick(View arg0) {
//nothing to do.
}
}