--- android/DroidRadar/src/dk/thoerup/droidradar/RadarView.java 2009/08/24 18:32:10 276 +++ android/DroidRadar/src/dk/thoerup/droidradar/RadarView.java 2009/08/24 21:48:00 277 @@ -1,6 +1,9 @@ package dk.thoerup.droidradar; +import java.util.Date; +import java.util.List; + import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; @@ -13,7 +16,7 @@ import android.view.SurfaceView; //public class RadarView extends View { -public class RadarView extends SurfaceView implements SurfaceHolder.Callback, Runnable { +public class RadarView extends SurfaceView implements SurfaceHolder.Callback, Runnable, DroidLocator.DroidsLocatedListener { int angle = 0; Paint p = new Paint(); @@ -48,6 +51,12 @@ boolean mRun = true; + List droidBeans; + + DroidLocator locator = new DroidLocator(); + + long imei; + Thread t; public RadarView(Context context) { @@ -157,6 +166,9 @@ vcenter = hcenter + 20; t.start(); + locator.setDroidsLocatedListener(this); + Thread locatorThread = new Thread(locator); + locatorThread.start(); } @@ -164,6 +176,7 @@ public void surfaceDestroyed(SurfaceHolder holder) { //surfaceholder.CallBack Log.i("surfacDestroyed()","-"); mRun = false; + locator.stop(); } public void run() { @@ -250,6 +263,9 @@ void setCurrentLocation(Location loc) { currentLocation = loc; gpsText = formatLength( (int)loc.getAccuracy()); + + locator.setCurrentLocation(loc); + } void setHeading(int head) { @@ -257,24 +273,23 @@ headingText = "" + head; } + public void setImei(long imei) { + this.imei = imei; + locator.setImei(imei); + } + void drawLocations(Canvas canvas) { - if (currentLocation != null) { - Location loc = new Location("gps"); - loc.setLatitude(56.394908); //Hedemøllevej - loc.setLongitude(9.666356); - - // loc.setLatitude(56.298307); //Kongensbro - // loc.setLongitude(9.669293); + if (currentLocation != null && droidBeans != null) { - loc.setLatitude(56.398577); //Langå - loc.setLongitude(9.899515); - - - drawLocation(canvas, loc); + for(DroidBean droid : droidBeans) { + drawLocation(canvas, droid); + } } } - void drawLocation(Canvas canvas, Location location) { + void drawLocation(Canvas canvas, DroidBean droid) { + + Location location = droid.getLocation(); float bearing = currentLocation.bearingTo(location); float distance = currentLocation.distanceTo(location); @@ -299,9 +314,19 @@ vertCathesis += vcenter; horzCathesis += hcenter; + droid.setGuiX((int)horzCathesis); + droid.setGuiY((int)vertCathesis); + canvas.drawCircle( (float)horzCathesis, (float)vertCathesis, 3, p3); } } + + + @Override + public void onDroidsLocated() { //callback + droidBeans = locator.getDroids(); + Log.i("RadarView", "OnDroidsLocated"); + } }