diff options
Diffstat (limited to 'client/activity-demo/Piztor/src/com/example')
12 files changed, 832 insertions, 0 deletions
diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Controller.java b/client/activity-demo/Piztor/src/com/example/piztor/Controller.java new file mode 100644 index 0000000..d6e75d7 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Controller.java @@ -0,0 +1,29 @@ +package com.example.piztor; + + +public class Controller { + String userToken; + Running run; + + Controller() { + run = null; + userToken = null; + } + + void setRun(Running run) { + this.run = run; + } + + void recieveInfo(Myrespond r) { + if (r.wrong != null) { + System.out.println(r.wrong); + } else { + System.out.println("yeal!"); + } + } + + void recieveLocation(double x, double y) { + System.out.println(x + " xxxx " + y); + run.v.changMyLocation(x, y); + } +} diff --git a/client/activity-demo/Piztor/src/com/example/piztor/GPSTracker.java b/client/activity-demo/Piztor/src/com/example/piztor/GPSTracker.java new file mode 100644 index 0000000..13cb868 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/GPSTracker.java @@ -0,0 +1,206 @@ +package com.example.piztor; + +import android.app.AlertDialog; +import android.app.Service; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.location.Location; +import android.location.LocationListener; +import android.location.LocationManager; +import android.os.Bundle; +import android.os.IBinder; +import android.provider.Settings; +import android.util.Log; + +public class GPSTracker extends Service implements LocationListener { + + private final Context mContext; + + // flag for GPS status + boolean isGPSEnabled = false; + + // flag for network status + boolean isNetworkEnabled = false; + + // flag for GPS status + boolean canGetLocation = false; + + Location location; // location + double latitude; // latitude + double longitude; // longitude + + // The minimum distance to change Updates in meters + private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters + + // The minimum time between updates in milliseconds + private static final long MIN_TIME_BW_UPDATES = 1000 * 10; // 10 seconds + + // Declaring a Location Manager + protected LocationManager locationManager; + + public GPSTracker(Context context) { + this.mContext = context; + getLocation(); + } + + public Location getLocation() { + try { + locationManager = (LocationManager) mContext + .getSystemService(LOCATION_SERVICE); + + // getting GPS status + isGPSEnabled = locationManager + .isProviderEnabled(LocationManager.GPS_PROVIDER); + + // getting network status + isNetworkEnabled = locationManager + .isProviderEnabled(LocationManager.NETWORK_PROVIDER); + + if (!isGPSEnabled) { + // no network provider is enabled + } else { + this.canGetLocation = true; + if (isNetworkEnabled) { + locationManager.requestLocationUpdates( + LocationManager.NETWORK_PROVIDER, + MIN_TIME_BW_UPDATES, + MIN_DISTANCE_CHANGE_FOR_UPDATES, this); + Log.d("Network", "Network"); + if (locationManager != null) { + location = locationManager + .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); + if (location != null) { + latitude = location.getLatitude(); + longitude = location.getLongitude(); + } + } + } + // if GPS Enabled get lat/long using GPS Services + if (isGPSEnabled) { + if (location == null) { + locationManager.requestLocationUpdates( + LocationManager.GPS_PROVIDER, + MIN_TIME_BW_UPDATES, + MIN_DISTANCE_CHANGE_FOR_UPDATES, this); + Log.d("GPS Enabled", "GPS Enabled"); + if (locationManager != null) { + location = locationManager + .getLastKnownLocation(LocationManager.GPS_PROVIDER); + if (location != null) { + latitude = location.getLatitude(); + longitude = location.getLongitude(); + } + } + } + } + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return location; + } + + /** + * Stop using GPS listener Calling this function will stop using GPS in your + * app + * */ + public void stopUsingGPS() { + if (locationManager != null) { + locationManager.removeUpdates(GPSTracker.this); + } + } + + /** + * Function to get latitude + * */ + public double getLatitude() { + if (location != null) { + latitude = location.getLatitude(); + } + + // return latitude + return latitude; + } + + /** + * Function to get longitude + * */ + public double getLongitude() { + if (location != null) { + longitude = location.getLongitude(); + } + + // return longitude + return longitude; + } + + /** + * Function to check GPS/wifi enabled + * + * @return boolean + * */ + public boolean canGetLocation() { + return this.canGetLocation; + } + + /** + * Function to show settings alert dialog On pressing Settings button will + * lauch Settings Options + * */ + public void showSettingsAlert() { + AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext); + + // Setting Dialog Title + alertDialog.setTitle("GPS is settings"); + + // Setting Dialog Message + alertDialog + .setMessage("GPS is not enabled. Do you want to go to settings menu?"); + + // On pressing Settings button + alertDialog.setPositiveButton("Settings", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + Intent intent = new Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS); + mContext.startActivity(intent); + } + }); + + // on pressing cancel button + alertDialog.setNegativeButton("Cancel", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + dialog.cancel(); + } + }); + + // Showing Alert Message + alertDialog.show(); + } + + @Override + public void onLocationChanged(Location location) { + } + + @Override + public void onProviderDisabled(String provider) { + } + + @Override + public void onProviderEnabled(String provider) { + } + + @Override + public void onStatusChanged(String provider, int status, Bundle extras) { + } + + @Override + public IBinder onBind(Intent arg0) { + return null; + } + +} diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Login.java b/client/activity-demo/Piztor/src/com/example/piztor/Login.java new file mode 100644 index 0000000..de5cded --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Login.java @@ -0,0 +1,20 @@ +package com.example.piztor; + +public class Login { + MainActivity main; + int tk; + + Login(MainActivity main) { + this.main = main; + } + + void success(int token) { + //main.start(); + tk = token; + System.out.println("token!"); + } + + void failed() { + System.out.println("fuck!!"); + } +} diff --git a/client/activity-demo/Piztor/src/com/example/piztor/MainActivity.java b/client/activity-demo/Piztor/src/com/example/piztor/MainActivity.java new file mode 100644 index 0000000..bf8d755 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/MainActivity.java @@ -0,0 +1,120 @@ +package com.example.piztor; + +import java.io.PrintStream; +import java.util.Vector; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.Menu; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; + +public class MainActivity extends Activity { + PrintStream cout = System.out; + Button b; + EditText username, password, ip, port; + Login login; + Controller c; + boolean flag = false; + public final static String SER_KEY = "CONTROL"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + login = new Login(this); + c = new Controller(); + b = (Button) findViewById(R.id.login); + + b.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + if(flag==false){ + Vector<Object> r = new Vector<Object>(); + r.add(0); + r.add(username.getText().toString()); + r.add(password.getText().toString()); + Transam t = new Transam(ip.getText().toString(), Integer + .parseInt(port.getText().toString()), new Myrequest(r), + login); + new Thread(t).run(); + flag = true; + } + else{ + Vector<Object> r = new Vector<Object>(); + r.add(2); + r.add(login.tk); + double lot = 123.456; + double lat = 654.321; + r.add(lot); + r.add(lat); + Transam t = new Transam(ip.getText().toString(), Integer + .parseInt(port.getText().toString()), new Myrequest(r), + c); + new Thread(t).run(); + } + } + }); + username = (EditText) findViewById(R.id.username); + password = (EditText) findViewById(R.id.password); + ip = (EditText) findViewById(R.id.ip); + port = (EditText) findViewById(R.id.port); + cout.println("onCreate!"); + } + + void start() { + Intent i = new Intent(); + i.setClass(MainActivity.this, Running.class); + startActivity(i); + } + + @Override + protected void onStart() { + super.onStart(); + ip.setText("192.168.1.101"); + port.setText("9990"); + username.setText("hello"); + password.setText("world"); + cout.println("onStart!"); + } + + @Override + protected void onRestart() { + super.onRestart(); + cout.println("onRestart!"); + } + + @Override + protected void onResume() { + super.onResume(); + // cout.println("onResume!"); + // v.drawString("!!!!!"); + } + + @Override + protected void onPause() { + super.onPause(); + cout.println("onPause!"); + } + + @Override + protected void onStop() { + super.onStop(); + cout.println("onStop!"); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + cout.println("onDestroy!"); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + +} diff --git a/client/activity-demo/Piztor/src/com/example/piztor/MyView.java b/client/activity-demo/Piztor/src/com/example/piztor/MyView.java new file mode 100644 index 0000000..a213013 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/MyView.java @@ -0,0 +1,99 @@ +package com.example.piztor; + +import java.io.PrintStream; +import java.util.Vector; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.graphics.Point; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; + +public class MyView extends View { + static PrintStream cout = System.out; + private Paint mPaint, oPaint; + public Canvas c = null; + public Bitmap b = null; + public double scale = 1; + public double centerX, centerY; + + + Point myLocation; + Vector<Point> Location; + + void setup(Canvas c, Bitmap b, double x, double y) { + this.c = c; + this.b = b; + centerX = x; + centerY = y; + myLocation = new Point(10, 10); + Location = new Vector<Point>(); + Location.add(myLocation); + } + + public MyView(Context context) { + super(context); + // v = new Vector<PointF>(); + mPaint = new Paint(); + mPaint.setColor(Color.RED); + mPaint.setStyle(Style.FILL); + oPaint = new Paint(); + oPaint.setColor(Color.BLUE); + oPaint.setStyle(Style.FILL); + } + + public MyView(Context context, AttributeSet attr) { + super(context, attr); + // v = new Vector<PointF>(); + mPaint = new Paint(); + mPaint.setColor(Color.RED); + mPaint.setStyle(Style.FILL); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + cout.println(myLocation.x + " -- " + myLocation.y); + canvas.drawCircle(myLocation.x, myLocation.y, 5, mPaint); + //canvas.drawBitmap(b, 0, 0, mPaint); + /*for (int i = 1; i < Location.size(); i++) { + canvas.drawCircle(Location.get(i).x, Location.get(i).y, 2, oPaint); + }*/ + // canvas.restore(); + } + + @Override + public boolean onTouchEvent(MotionEvent e) { + // v.add(new PointF(e.getX(), e.getY())); + c.drawRect(e.getX() - 1, e.getY() + 1, e.getX() + 1, e.getY() - 1, + mPaint); + + invalidate(); + return true; + } + + void changMyLocation(double x, double y) { + if (centerX < 0) { + centerX = x; + centerY = y; + } + int x1 = (int) (getWidth() / 2 + (x - centerX) * scale); + int y1 = (int) (getHeight() / 2 + (y - centerY) * scale); + myLocation.x = x1; + myLocation.y = y1; + cout.println(x + " " + y); + invalidate(); + } + + void drawString(String s) { + mPaint.setTextSize(15); + c.drawText(s, 0, getHeight() / 2, mPaint); + invalidate(); + } + +}
\ No newline at end of file diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Myrequest.java b/client/activity-demo/Piztor/src/com/example/piztor/Myrequest.java new file mode 100644 index 0000000..9397e0c --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Myrequest.java @@ -0,0 +1,10 @@ +package com.example.piztor; + +import java.util.Vector; + +public class Myrequest{ + public Vector<Object> contain; + Myrequest(Vector<Object> info){ + contain = info; + } +}
\ No newline at end of file diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Myrespond.java b/client/activity-demo/Piztor/src/com/example/piztor/Myrespond.java new file mode 100644 index 0000000..2398f2b --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Myrespond.java @@ -0,0 +1,12 @@ +package com.example.piztor; + +import java.util.Vector; + +public class Myrespond{ + public Vector<Object> contain; + public String wrong; + Myrespond(){ + wrong = null; + contain = new Vector<Object>(); + } +}
\ No newline at end of file diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Rmsg.java b/client/activity-demo/Piztor/src/com/example/piztor/Rmsg.java new file mode 100644 index 0000000..8f4f587 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Rmsg.java @@ -0,0 +1,12 @@ +package com.example.piztor; + +public class Rmsg{ + int id; + double lat; + double lot; + Rmsg(int i,double l,double ll){ + id = i; + lat = l; + lot = ll; + } +}
\ No newline at end of file diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Running.java b/client/activity-demo/Piztor/src/com/example/piztor/Running.java new file mode 100644 index 0000000..f4b6135 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Running.java @@ -0,0 +1,44 @@ +package com.example.piztor; + +import java.io.PrintStream; + +import android.os.Bundle; +import android.app.Activity; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.view.Menu; + +public class Running extends Activity { + PrintStream cout = System.out; + MyView v; + Bitmap b; + Canvas c; + Controller controller; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + b = Bitmap.createBitmap(720, 1280, Bitmap.Config.ARGB_8888); + c = new Canvas(b); + controller = new Controller(); + controller.setRun(this); + setContentView(R.layout.activity_running); + cout.println("running is created!!!"); + } + + @Override + protected void onStart() { + super.onStart(); + v = (MyView) findViewById(R.id.view); + v.setup(c, b, -1, -1); + Tracker tr = new Tracker(controller, Running.this); + new Thread(tr).run(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.running, menu); + return true; + } + +} diff --git a/client/activity-demo/Piztor/src/com/example/piztor/SocketClient.java b/client/activity-demo/Piztor/src/com/example/piztor/SocketClient.java new file mode 100644 index 0000000..472da0d --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/SocketClient.java @@ -0,0 +1,113 @@ +package com.example.piztor; + +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.net.Socket; +import java.net.UnknownHostException; + +public class SocketClient { + static PrintStream cout = System.out; + static Socket client; + + public SocketClient(String site, int port) throws UnknownHostException, + IOException { + try { + cout.println(site + " " + port); + client = new Socket(site, port); + cout.println("connected successfully!!!"); + } catch (UnknownHostException e) { + cout.println("unknownhostexception!!"); + throw e; + } catch (IOException e) { + cout.println("IOException!!"); + throw e; + } + } + + public Myrespond sendMsg(Myrequest req) throws IOException { + try { + DataOutputStream out = new DataOutputStream( + client.getOutputStream()); + int tmp = (Integer) req.contain.get(0); + out.writeByte(tmp); + switch (tmp) { + case 0: + String id = (String) req.contain.get(1); + String pass = (String) req.contain.get(2); + out.writeBytes(id + "\0" + pass); + break; + case 1: + int tk1 = (Integer) req.contain.get(1); + int acc = (Integer) req.contain.get(2); + String mess = (String) req.contain.get(3); + out.writeInt(tk1); + out.writeInt(acc); + out.writeBytes(mess); + break; + case 2: + int tk2 = (Integer) req.contain.get(1); + double slot = (Double) req.contain.get(2); + double slat = (Double) req.contain.get(3); + out.writeInt(tk2); + out.writeDouble(slot); + out.writeDouble(slat); + break; + case 3: + int tk3 = (Integer) req.contain.get(1); + int gid = (Integer) req.contain.get(2); + out.writeInt(tk3); + out.writeInt(gid); + break; + } + out.flush(); + client.shutdownOutput(); + DataInputStream in = new DataInputStream(client.getInputStream()); + int type = in.readUnsignedByte(); + Myrespond r = new Myrespond(); + switch (type) { + case 0: + int id = in.readInt(); + int status = in.readUnsignedByte(); + r.contain.add(0); + r.contain.add(id); + r.contain.add(status); + System.out.println(id); + break; + case 1: + r.contain.add(1); + // reserved + break; + case 2: + r.contain.add(2); + // reserved + break; + case 3: + int n = in.readInt(); + r.contain.add(3); + r.contain.add(n); + for (int i = 1; i <= n; i++) { + int tid = in.readInt(); + double lat = in.readDouble(); + double lot = in.readDouble(); + Rmsg a = new Rmsg(tid,lat,lot); + r.contain.add(a); + } + break; + } + return r; + } catch (IOException e) { + throw e; + } + } + + public void closeSocket() { + try { + client.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Tracker.java b/client/activity-demo/Piztor/src/com/example/piztor/Tracker.java new file mode 100644 index 0000000..0222325 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Tracker.java @@ -0,0 +1,41 @@ +package com.example.piztor; +import java.util.Timer; +import java.util.TimerTask; + +import android.content.Context; + +public class Tracker implements Runnable { + + private static final long TIME_DELTA = 1000 * 10; // 10 seconds + public Timer timer; + private final Context mContext; + Controller controller; + + public Tracker(Controller newController, Context context) { + timer = new Timer(); + mContext = context; + controller = newController; + } + + public void run() { + GPSTask t = new GPSTask(); + t.run(); + //timer.s +// timer.schedule(new GPSTask(), 0, TIME_DELTA); + } + + class GPSTask extends TimerTask { + @Override + public void run() { + GPSTracker tracker; + tracker = new GPSTracker(mContext); + System.out.println("can get location?"); + if(tracker.canGetLocation()) { + double latitude = tracker.getLatitude(); + double longitude = tracker.getLongitude(); + System.out.println("yes!"); + controller.recieveLocation(latitude, longitude); + } + } + } +} diff --git a/client/activity-demo/Piztor/src/com/example/piztor/Transam.java b/client/activity-demo/Piztor/src/com/example/piztor/Transam.java new file mode 100644 index 0000000..db76d06 --- /dev/null +++ b/client/activity-demo/Piztor/src/com/example/piztor/Transam.java @@ -0,0 +1,126 @@ +package com.example.piztor; +import java.io.IOException; +import java.net.UnknownHostException; +import java.util.Timer; +import java.util.TimerTask; + +import android.annotation.SuppressLint; +import android.os.Handler; +import android.os.Message; + +public class Transam implements Runnable { + public Timer timer; + public boolean flag = true; + public boolean reqlog = false; + public int cnt = 4; + public int port; + public String ip; + Thread thread; + Myrequest req; + Myrespond res; + Controller core; + Login log; + + + Transam(String i,int p,Myrequest r,Login l){ + port = p; + ip = i; + req = r; + log = l; + reqlog = true; + } + + Transam(String i,int p,Myrequest r,Controller c){ + port = p; + ip = i; + req = r; + core = c; + } + + public void run() { + final thd t = new thd(); + flag = false; + thread = new Thread(t); + cnt = 4; + thread.start(); + timer = new Timer(); + TimerTask task = new Timertk(); + timer.schedule(task,2000,2000); + } + + class thd implements Runnable { + @Override + public void run() { + try{ + SocketClient client = new SocketClient(ip,port); + res = client.sendMsg(req); + if(!reqlog){ + core.recieveInfo(res); + } + else{ + if((Integer) res.contain.get(2)==0){ + int t = (Integer) res.contain.get(1); + log.success(t); + } + else{ + log.failed(); + } + } + Message msg = new Message(); + msg.what = 1; + handler.sendMessage(msg); + client.closeSocket(); + }catch (UnknownHostException e){ + e.printStackTrace(); + }catch (IOException e){ + e.printStackTrace(); + } + + } + } + + @SuppressLint("HandlerLeak") + Handler handler = new Handler(){ + public void handleMessage(Message msg) { + switch (msg.what) { + case 1: + flag = true; + break; + case 2: + if(!reqlog){ + res = new Myrespond(); + res.wrong = msg.obj.toString(); + core.recieveInfo(res); + } + else{ + log.failed(); + } + break; + case 3: + final thd t = new thd(); + thread = new Thread(t); + thread.start(); + break; + } + super.handleMessage(msg); + } + }; + + class Timertk extends TimerTask { + public void run() { + if(flag==false&&cnt>0){ + cnt--; + } + else if(cnt==0) { + Message msg = new Message(); + msg.obj = "connecting failed"; + msg.what = 2; + handler.sendMessage(msg); + timer.cancel(); + } + else if(flag==true){ + timer.cancel(); + } + } + }; +}
\ No newline at end of file |