summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorgoblin911 <[email protected]>2013-08-23 15:52:00 +0800
committergoblin911 <[email protected]>2013-08-23 15:52:00 +0800
commit40592c2ae7506bfb4694f59f3b4825099acdcd0e (patch)
tree28fcd900bcd2ff8875fbf500d5c53de19b9b190e /client
parentc6c75af649359781e792cb841b44fb06631f08ad (diff)
add activity demo
Diffstat (limited to 'client')
-rw-r--r--client/activity-demo/src/com/example/piztor/Controller.java30
-rw-r--r--client/activity-demo/src/com/example/piztor/Login.java18
-rw-r--r--client/activity-demo/src/com/example/piztor/MainActivity.java104
-rw-r--r--client/activity-demo/src/com/example/piztor/MyView.java75
-rw-r--r--client/activity-demo/src/com/example/piztor/Myrequest.java10
-rw-r--r--client/activity-demo/src/com/example/piztor/Myrespond.java12
-rw-r--r--client/activity-demo/src/com/example/piztor/Running.java42
-rw-r--r--client/activity-demo/src/com/example/piztor/SocketClient.java114
-rw-r--r--client/activity-demo/src/com/example/piztor/Transam.java124
9 files changed, 529 insertions, 0 deletions
diff --git a/client/activity-demo/src/com/example/piztor/Controller.java b/client/activity-demo/src/com/example/piztor/Controller.java
new file mode 100644
index 0000000..6e55581
--- /dev/null
+++ b/client/activity-demo/src/com/example/piztor/Controller.java
@@ -0,0 +1,30 @@
+package com.example.piztor;
+
+import java.io.Serializable;
+import android.content.Intent;
+
+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) {
+ run.v.drawLocation(x, y);
+ }
+}
diff --git a/client/activity-demo/src/com/example/piztor/Login.java b/client/activity-demo/src/com/example/piztor/Login.java
new file mode 100644
index 0000000..e7712c4
--- /dev/null
+++ b/client/activity-demo/src/com/example/piztor/Login.java
@@ -0,0 +1,18 @@
+package com.example.piztor;
+
+public class Login {
+ MainActivity main;
+
+ Login(MainActivity main) {
+ this.main = main;
+ }
+
+ void success(int token) {
+ main.start();
+ System.out.println("token!");
+ }
+
+ void failed() {
+ System.out.println("fuck!!");
+ }
+}
diff --git a/client/activity-demo/src/com/example/piztor/MainActivity.java b/client/activity-demo/src/com/example/piztor/MainActivity.java
new file mode 100644
index 0000000..333bfd4
--- /dev/null
+++ b/client/activity-demo/src/com/example/piztor/MainActivity.java
@@ -0,0 +1,104 @@
+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;
+ 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);
+ b = (Button) findViewById(R.id.login);
+ b.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ cout.println(username.getText().toString());
+ cout.println(password.getText().toString());
+ cout.println(ip.getText().toString());
+ cout.println(port.getText().toString());
+ ip.setText("192.168.1.102");
+ port.setText("9990");
+ username.setText("hello");
+ password.setText("world");
+ 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();
+ }
+ });
+ 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();
+ 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/src/com/example/piztor/MyView.java b/client/activity-demo/src/com/example/piztor/MyView.java
new file mode 100644
index 0000000..1627e4c
--- /dev/null
+++ b/client/activity-demo/src/com/example/piztor/MyView.java
@@ -0,0 +1,75 @@
+package com.example.piztor;
+
+import java.io.*;
+import android.content.*;
+import android.graphics.*;
+import android.graphics.Paint.Style;
+import android.util.*;
+import android.view.*;
+
+public class MyView extends View {
+ static PrintStream cout = System.out;
+ private Paint mPaint;
+ public Canvas c = null;
+ public Bitmap b = null;
+ public double scale = 100;
+ public double centerX, centerY;
+// Vector<PointF> v;
+
+ void setup(Canvas c, Bitmap b, double x, double y) {
+ this.c = c;
+ this.b = b;
+ centerX = x;
+ centerY = y;
+ }
+
+ public MyView(Context context) {
+ super(context);
+// v = new Vector<PointF>();
+ mPaint = new Paint();
+ mPaint.setColor(Color.RED);
+ mPaint.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);
+ canvas.drawBitmap(b, 0, 0, mPaint);
+ // 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 drawLocation(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);
+ c.drawRect(x1 - 1, y1 + 1, x1 + 1, y1 - 1, mPaint);
+ 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/src/com/example/piztor/Myrequest.java b/client/activity-demo/src/com/example/piztor/Myrequest.java
new file mode 100644
index 0000000..9397e0c
--- /dev/null
+++ b/client/activity-demo/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/src/com/example/piztor/Myrespond.java b/client/activity-demo/src/com/example/piztor/Myrespond.java
new file mode 100644
index 0000000..2398f2b
--- /dev/null
+++ b/client/activity-demo/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/src/com/example/piztor/Running.java b/client/activity-demo/src/com/example/piztor/Running.java
new file mode 100644
index 0000000..4ea1526
--- /dev/null
+++ b/client/activity-demo/src/com/example/piztor/Running.java
@@ -0,0 +1,42 @@
+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, 31, 121);
+ }
+
+ @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/src/com/example/piztor/SocketClient.java b/client/activity-demo/src/com/example/piztor/SocketClient.java
new file mode 100644
index 0000000..e66b5bc
--- /dev/null
+++ b/client/activity-demo/src/com/example/piztor/SocketClient.java
@@ -0,0 +1,114 @@
+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.writeUTF(id);
+ out.writeUTF(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.writeUTF(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);
+ 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 lot = in.readDouble();
+ double lat = in.readDouble();
+ r.contain.add(tid);
+ r.contain.add(lot);
+ r.contain.add(lat);
+ }
+ 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/src/com/example/piztor/Transam.java b/client/activity-demo/src/com/example/piztor/Transam.java
new file mode 100644
index 0000000..e39abd5
--- /dev/null
+++ b/client/activity-demo/src/com/example/piztor/Transam.java
@@ -0,0 +1,124 @@
+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){
+ }catch (IOException e){
+ }
+
+ }
+ }
+
+ @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