package com.dmc.demo1;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MapView.LayoutParams;
import com.google.android.maps.Overlay;
import android.app.Dialog;
import android.content.Context;
import android.content.res.AssetFileDescriptor;
import android.database.Cursor;
import android.database.SQLException;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.Toast;
public class BusRadar extends MapActivity {
MapView mapView;
MapController mc;
GeoPoint p;
LocationManager lm;
LocationListener locationListener;
Stop[] stops;
List<Overlay> listOfOverlays;
private Stop curStop;
protected Dialog onCreateDialog(int id) {
return new StopDialog(this, curStop);
}
// class LocationOverlay extends com.google.android.maps.Overlay
// {
// @Override
// public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)
// {
// super.draw(canvas, mapView, shadow);
//
// //---translate the GeoPoint to screen pixels---
// Point screenPts = new Point();
// mapView.getProjection().toPixels(p, screenPts);
//
// //---add the marker---
// Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.here);
// canvas.drawBitmap(bmp, screenPts.x, screenPts.y-36, null);
// return true;
// }
//
// }
public boolean onKeyDown(int keyCode, KeyEvent event)
{
MapController mc = mapView.getController();
switch (keyCode)
{
case KeyEvent.KEYCODE_3:
mc.zoomIn();
break;
case KeyEvent.KEYCODE_1:
mc.zoomOut();
break;
}
return super.onKeyDown(keyCode, event);
}
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
try {
Log.i("XXXXXXXXXXXXX", "hello");
for (String s : getAssets().list(""))
Log.i("XXXXXXXXXXXXX", s);
//InputStream f = getAssets().open("bus");
AssetFileDescriptor f = getAssets().openFd("routes.sqlite.jet");
// Log.i("XXXXXXXXXXXXX", String.format("exists %s\n",f.exists()));
if (true)
return;
}
catch(Exception e) { throw new RuntimeException(e); }
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapView);
mapView.setStreetView(false);
mapView.setSatellite(false);
// ZOOM CONTROL
LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);
View zoomView = mapView.getZoomControls();
zoomLayout.addView(zoomView,
new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
mapView.displayZoomControls(true);
mc = mapView.getController();
//INIT DB
//getResources().openRawResourceFd(R.)
//PULL BUS STOPS FROM DB
// Cursor select = db.rawQuery("SELECT id, lat, long, dir FROM routes", null);
// select.moveToFirst();
// BusStop[] stops = new BusStop[select.getCount()];
// for (int x = 0; x < stops.length; x++)
// {
// //middle two was originally double
// stops[x] = new BusStop(select.getInt(0), select.getInt(1), select.getString(2).charAt(0), select.getInt(3));
// select.moveToNext();
// }
// select.close();
// GPS
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
// lm.requestLocationUpdates(
// LocationManager.GPS_PROVIDER,
// 0,
// 0,
// locationListener);
//String nearCSbuilding = {"43.067874", "-89.40936"};
//String nearHospital[] = {"43.078846", "-89.430023"};
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
class MyLocationListener implements LocationListener
{
//private LocationOverlay LocationOverlay;
public void onLocationChanged(Location loc) {
if (loc != null) {
// Toast.makeText(getBaseContext(),
// "Location changed : \nLat: " + loc.getLatitude() +
// " \nLong: " + loc.getLongitude(),
// Toast.LENGTH_LONG).show();
p = new GeoPoint(
(int) (loc.getLatitude() * 1E6),
(int) (loc.getLongitude() * 1E6));
// if ( LocationOverlay == null)
// {
// // add
// mc.animateTo(p);
// mc.setZoom(17);
// LocationOverlay = new LocationOverlay();
// listOfOverlays.add(LocationOverlay);
// }
// else
// {
// // update
// mc.animateTo(p); // just for the demo
// listOfOverlays.remove(LocationOverlay);
// LocationOverlay = new LocationOverlay();
// listOfOverlays.add(LocationOverlay);
// }
mapView.invalidate();
}
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
protected void onPrepareDialog(int id, Dialog d) {
((StopDialog) d).refresh(this, curStop);
}
}