summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2013-08-28 16:32:50 +0800
committerTeddy <ted.sybil@gmail.com>2013-08-28 16:32:50 +0800
commit10af199a81c3b7ca338a7aeb3ab599ff1be7ecb1 (patch)
tree06c26b1471f431a53252fd3629a5b561bdf21c7b
parent1bc497952316e08e73c71d6839a9e42e40196fb6 (diff)
parent0a8315a94d8ed1252f3f96d4ca41ddc632c3bc98 (diff)
Merge branch 'master' of github.com:Determinant/piztor
-rw-r--r--.project17
-rw-r--r--client/Piztor/.classpath2
-rw-r--r--client/Piztor/AndroidManifest.xml54
-rw-r--r--client/Piztor/res/drawable/marka.pngbin0 -> 3371 bytes
-rw-r--r--client/Piztor/res/layout/activity_main.xml61
-rw-r--r--client/Piztor/res/layout/activity_settings.xml2
-rw-r--r--client/Piztor/res/values/strings.xml1
-rw-r--r--client/Piztor/src/com/macaroon/piztor/AppMgr.java53
-rw-r--r--client/Piztor/src/com/macaroon/piztor/Infomation.java10
-rw-r--r--client/Piztor/src/com/macaroon/piztor/InitAct.java4
-rw-r--r--client/Piztor/src/com/macaroon/piztor/Login.java7
-rw-r--r--client/Piztor/src/com/macaroon/piztor/Main.java287
-rw-r--r--client/Piztor/src/com/macaroon/piztor/MapInfo.java87
-rw-r--r--client/Piztor/src/com/macaroon/piztor/MapMaker.java165
-rw-r--r--client/Piztor/src/com/macaroon/piztor/PiztorAct.java2
-rw-r--r--client/Piztor/src/com/macaroon/piztor/ReqLogout.java12
-rw-r--r--client/Piztor/src/com/macaroon/piztor/ResLogout.java13
-rw-r--r--client/Piztor/src/com/macaroon/piztor/Rlocation.java2
-rw-r--r--client/Piztor/src/com/macaroon/piztor/Settings.java124
-rw-r--r--client/Piztor/src/com/macaroon/piztor/SocketClient.java21
-rw-r--r--client/Piztor/src/com/macaroon/piztor/Transam.java5
-rw-r--r--client/Piztor/src/com/macaroon/piztor/UserInfo.java10
22 files changed, 793 insertions, 146 deletions
diff --git a/.project b/.project
new file mode 100644
index 0000000..6204496
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>updatesite</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.pde.UpdateSiteBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.UpdateSiteNature</nature>
+ </natures>
+</projectDescription>
diff --git a/client/Piztor/.classpath b/client/Piztor/.classpath
index 7bc01d9..8499b03 100644
--- a/client/Piztor/.classpath
+++ b/client/Piztor/.classpath
@@ -5,5 +5,7 @@
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
+ <classpathentry kind="lib" path="/home/goblin/piztor/client/Piztor/libs/locSDK_3.1.jar"/>
+ <classpathentry kind="lib" path="/home/goblin/piztor/client/Piztor/libs/baidumapapi_v2_1_3.jar"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
diff --git a/client/Piztor/AndroidManifest.xml b/client/Piztor/AndroidManifest.xml
index ef91844..ece39f1 100644
--- a/client/Piztor/AndroidManifest.xml
+++ b/client/Piztor/AndroidManifest.xml
@@ -8,6 +8,37 @@
android:minSdkVersion="8"
android:targetSdkVersion="17" />
+ <!--使用网络功能所需权限 -->
+<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
+</uses-permission>
+<uses-permission android:name="android.permission.INTERNET">
+</uses-permission>
+<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
+</uses-permission>
+<uses-permission android:name="android.permission.CHANGE_WIFI_STATE">
+</uses-permission>
+<!-- SDK离线地图和cache功能需要读写外部存储器 -->
+<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
+</uses-permission>
+<!-- 获取设置信息和详情页直接拨打电话需要以下权限 -->
+<uses-permission android:name="android.permission.READ_PHONE_STATE">
+</uses-permission>
+<uses-permission android:name="android.permission.CALL_PHONE">
+</uses-permission>
+<!-- 使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项 -->
+<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION">
+</uses-permission>
+<permission android:name="android.permission.BAIDU_LOCATION_SERVICE">
+</permission>
+<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE">
+</uses-permission>
+<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION">
+</uses-permission>
+<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION">
+</uses-permission>
+<uses-permission android:name="android.permission.ACCESS_GPS"/>
+
+
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
@@ -18,7 +49,6 @@
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
-
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
@@ -28,15 +58,27 @@
</activity>
<activity
android:name="com.macaroon.piztor.Main"
- android:label="@string/title_activity_main" >
+ android:label="@string/title_activity_main"
+ android:screenOrientation="sensor"
+ android:configChanges="orientation">
</activity>
<activity
android:name="com.macaroon.piztor.Settings"
- android:label="@string/title_activity_settings" >
+ android:label="@string/title_activity_settings"
+ android:screenOrientation="sensor"
+ android:configChanges="orientation">
</activity>
+ <service
+ android:name="com.baidu.location.f"
+ android:enabled="true"
+ android:process=":remote" >
+ </service>
</application>
-
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+
+ <supports-screens android:largeScreens="true"
+ android:normalScreens="true"
+ android:smallScreens="true"
+ android:resizeable="true"
+ android:anyDensity="true"/>
</manifest>
diff --git a/client/Piztor/res/drawable/marka.png b/client/Piztor/res/drawable/marka.png
new file mode 100644
index 0000000..a478d36
--- /dev/null
+++ b/client/Piztor/res/drawable/marka.png
Binary files differ
diff --git a/client/Piztor/res/layout/activity_main.xml b/client/Piztor/res/layout/activity_main.xml
index a36f8b5..f72ac62 100644
--- a/client/Piztor/res/layout/activity_main.xml
+++ b/client/Piztor/res/layout/activity_main.xml
@@ -1,33 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="@android:color/white"
- android:orientation="vertical">
- <RelativeLayout
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentTop="true"
- android:id="@+id/main_headbar_layout"
- >
- <include layout="@layout/main_headbar"/>
- </RelativeLayout>
-
- <LinearLayout
- android:id="@+id/main_footbar_layout"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- >
- <include layout="@layout/main_footbar"/>
- </LinearLayout>
+ xmlns:android1="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="@android:color/white" >
- <ImageView
- android:id="@+id/main_mapview"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_below="@+id/main_headbar_layout"
- android:layout_above="@+id/main_footbar_layout"
- android:scaleType="matrix"
- android:src="@drawable/data"/>
-</RelativeLayout> \ No newline at end of file
+ <RelativeLayout
+ android:id="@+id/main_headbar_layout"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentTop="true" >
+
+ <include layout="@layout/main_headbar" />
+ </RelativeLayout>
+
+ <LinearLayout
+ android:id="@+id/main_footbar_layout"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true" >
+
+ <include layout="@layout/main_footbar" />
+ </LinearLayout>
+
+ <com.baidu.mapapi.map.MapView
+ android:id="@+id/bmapView"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:layout_above="@+id/main_footbar_layout"
+ android:layout_below="@+id/main_headbar_layout"
+ android:clickable="true" />
+
+</RelativeLayout>
diff --git a/client/Piztor/res/layout/activity_settings.xml b/client/Piztor/res/layout/activity_settings.xml
index 05c849b..c386ae2 100644
--- a/client/Piztor/res/layout/activity_settings.xml
+++ b/client/Piztor/res/layout/activity_settings.xml
@@ -153,7 +153,7 @@
android:background="#ffc0c3c4" />
<Button
- android:id="@+id/button1"
+ android:id="@+id/settings_btn_logout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.00"
diff --git a/client/Piztor/res/values/strings.xml b/client/Piztor/res/values/strings.xml
index 4268ca1..5500982 100644
--- a/client/Piztor/res/values/strings.xml
+++ b/client/Piztor/res/values/strings.xml
@@ -17,5 +17,6 @@
<string name="title_activity_login">Login</string>
<string name="title_activity_main">Main</string>
<string name="title_activity_settings">Settings</string>
+ <string name="title_activity_mapmaker">MapMaker</string>
</resources>
diff --git a/client/Piztor/src/com/macaroon/piztor/AppMgr.java b/client/Piztor/src/com/macaroon/piztor/AppMgr.java
index 99171cc..8e82384 100644
--- a/client/Piztor/src/com/macaroon/piztor/AppMgr.java
+++ b/client/Piztor/src/com/macaroon/piztor/AppMgr.java
@@ -4,11 +4,22 @@ import java.util.HashMap;
import java.util.HashSet;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
import android.os.Handler;
+import android.util.Log;
+
+import com.baidu.mapapi.BMapManager;
+import com.baidu.mapapi.MKGeneralListener;
@SuppressLint("UseSparseArrays")
public class AppMgr {
+
+ private static final String strKey = "5ba8abf7b4694ad49706b8b7538c9d6a";
+ static BMapManager mBMapManager = null;
+ static Context context;
+
+
// Status
public enum ActivityStatus {
create, start, resume, restart, stop, pause, destroy
@@ -17,7 +28,7 @@ public class AppMgr {
static ActivityStatus status;
static PiztorAct nowAct;
// TODO fix
- static Handler fromTransam, fromGPS;
+ static Handler handler, fromGPS;
static Transam transam = null;
static Tracker tracker = null;
static Thread tTransam, tGPS;
@@ -27,6 +38,9 @@ public class AppMgr {
final static int errorToken = 103;
final static int hasToken = 104;
final static int toSettings = 105;
+ final static int logout = 106;
+
+ static MapInfo mapInfo;
static HashMap<Class<?>, HashMap<Integer, Class<?>>> mp;
static HashSet<PiztorAct> acts;
@@ -63,7 +77,12 @@ public class AppMgr {
System.out.println("second");
i.setClass(nowAct, mp.get(nowAct.getClass()).get(event));
if (event == errorToken)
- UserInfo.token = null;
+ Infomation.token = null;
+ if (event == toSettings) {
+ if (nowAct.actMgr.nowStatus.getClass() == Main.FetchStatus.class)
+ i.putExtra("status", true);
+ else i.putExtra("status", false);
+ }
nowAct.startActivity(i);
}
@@ -93,21 +112,34 @@ public class AppMgr {
mp.put(a, new HashMap<Integer, Class<?>>());
}
- static void init() {
+ static void init(Context context) {
+ if (mBMapManager == null) {
+ mBMapManager = new BMapManager(context);
+ mBMapManager.init(strKey, new MKGeneralListener(){
+ @Override
+ public void onGetNetworkState(int iError) {
+ Log.d("Network","failure");
+ }
+
+ @Override
+ public void onGetPermissionState(int iError) {
+ Log.d("Permission","wrong key");
+ }
+ });
+ }
+ AppMgr.context = context;
mp = new HashMap<Class<?>, HashMap<Integer, Class<?>>>();
- fromTransam = new Handler();
- transam = new Transam(UserInfo.ip, UserInfo.port, fromTransam);
- fromGPS = new Handler();
- tracker = new Tracker(nowAct.getApplicationContext(), fromGPS);
+ handler = new Handler();
+ transam = new Transam(Infomation.ip, Infomation.port, handler);
tTransam = new Thread(transam);
tTransam.start();
- tGPS = new Thread(tracker);
- tGPS.start();
- System.out.println("!!!!!!");
+ mapInfo = new MapInfo();
+ Infomation.myInfo = new UserInfo(-1);
addStatus(InitAct.class);
addStatus(Login.class);
addStatus(Main.class);
addStatus(Settings.class);
+ addTransition(Main.class, logout, Login.class);
addTransition(InitAct.class, noToken, Login.class);
addTransition(Login.class, loginSuccess, Main.class);
addTransition(Main.class, errorToken, Login.class);
@@ -115,6 +147,7 @@ public class AppMgr {
addTransition(InitAct.class, hasToken, Main.class);
addTransition(InitAct.class, errorToken, Login.class);
addTransition(Main.class, toSettings, Settings.class);
+ addTransition(Settings.class, logout, Login.class);
}
}
diff --git a/client/Piztor/src/com/macaroon/piztor/Infomation.java b/client/Piztor/src/com/macaroon/piztor/Infomation.java
new file mode 100644
index 0000000..cd0b49e
--- /dev/null
+++ b/client/Piztor/src/com/macaroon/piztor/Infomation.java
@@ -0,0 +1,10 @@
+package com.macaroon.piztor;
+
+public class Infomation {
+ static String ip = "69.85.86.42";
+// static String ip = "192.168.1.101";
+ static int port = 2222;
+ static String token = null;
+ static String username = null;
+ static UserInfo myInfo;
+}
diff --git a/client/Piztor/src/com/macaroon/piztor/InitAct.java b/client/Piztor/src/com/macaroon/piztor/InitAct.java
index 4d2b656..8a7ad7a 100644
--- a/client/Piztor/src/com/macaroon/piztor/InitAct.java
+++ b/client/Piztor/src/com/macaroon/piztor/InitAct.java
@@ -9,7 +9,7 @@ public class InitAct extends PiztorAct {
protected void onCreate(Bundle savedInstanceState) {
id = "initAct";
super.onCreate(savedInstanceState);
- AppMgr.init();
+ AppMgr.init(getApplicationContext());
AppMgr.transam.setTimeOutTime(5000);
setContentView(R.layout.activity_init);
}
@@ -17,7 +17,7 @@ public class InitAct extends PiztorAct {
@Override
protected void onStart() {
super.onStart();
- if (UserInfo.token == null)
+ if (Infomation.token == null)
AppMgr.trigger(AppMgr.noToken);
else {
//TODO jump to main
diff --git a/client/Piztor/src/com/macaroon/piztor/Login.java b/client/Piztor/src/com/macaroon/piztor/Login.java
index 3ad6cfb..b55cd2e 100644
--- a/client/Piztor/src/com/macaroon/piztor/Login.java
+++ b/client/Piztor/src/com/macaroon/piztor/Login.java
@@ -13,7 +13,6 @@ import android.widget.Toast;
public class Login extends PiztorAct {
- ActMgr actMgr;
Button btnLogin;
EditText edtUser, edtPass;
@@ -35,9 +34,9 @@ public class Login extends PiztorAct {
actMgr.trigger(loginFailed);
return;
}
- UserInfo.token = res.t;
- UserInfo.id = res.uid;
- UserInfo.username = edtUser.getText().toString();
+ Infomation.token = res.t;
+ Infomation.myInfo.uid = res.uid;
+ Infomation.username = edtUser.getText().toString();
System.out.println(res.s + " :!!! " + res.t);
actMgr.trigger(AppMgr.loginSuccess);
} else {
diff --git a/client/Piztor/src/com/macaroon/piztor/Main.java b/client/Piztor/src/com/macaroon/piztor/Main.java
index 8b0918d..2820090 100644
--- a/client/Piztor/src/com/macaroon/piztor/Main.java
+++ b/client/Piztor/src/com/macaroon/piztor/Main.java
@@ -2,51 +2,63 @@ package com.macaroon.piztor;
import java.util.Timer;
import java.util.TimerTask;
+
import android.annotation.SuppressLint;
-import android.location.Location;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.widget.ImageButton;
-import android.widget.ImageView;
+import android.widget.Toast;
+
+import com.baidu.location.BDLocation;
+import com.baidu.location.BDLocationListener;
+import com.baidu.location.LocationClient;
+import com.baidu.location.LocationClientOption;
+import com.baidu.mapapi.map.LocationData;
+import com.baidu.mapapi.map.MapView;
public class Main extends PiztorAct {
final static int SearchButtonPress = 1;
- final static int FetchButtonPress = 2;
final static int FocuseButtonPress = 3;
final static int SuccessFetch = 4;
final static int FailedFetch = 5;
- final static int TimerFlush = 6;
- ActMgr actMgr;
+ final static int Fetch = 6;
+ final static int mapViewtouched = 7;
+
+ MapMaker mapMaker = null;
+ MapView mMapView;
+
+ /**
+ * Locating component
+ */
+ LocationClient mLocClient;
+ LocationData locData = null;
+ public MyLocationListener myListener = new MyLocationListener();
+
ImageButton btnSearch, btnFetch, btnFocus, btnSettings;
Timer autodate;
- @SuppressLint("HandlerLeak")
- Handler fromGPS = new Handler() {
- @Override
- public void handleMessage(Message m) {
- if (m.what != 0) {
- Location l = (Location) m.obj;
- if (l == null)
- System.out.println("fuck!!!");
- else {
- ReqUpdate r = new ReqUpdate(UserInfo.token,
- UserInfo.username, l.getLatitude(),
- l.getLongitude(), System.currentTimeMillis(), 1000);
- AppMgr.transam.send(r);
- }
- }
- }
- };
+ MapInfo mapInfo;
+ /*
+ * @SuppressLint("HandlerLeak") Handler fromGPS = new Handler() {
+ *
+ * @Override public void handleMessage(Message m) { if (m.what != 0) {
+ * Location l = (Location) m.obj; if (l == null)
+ * System.out.println("fuck!!!"); else { ReqUpdate r = new
+ * ReqUpdate(Infomation.token, Infomation.username, l.getLatitude(),
+ * l.getLongitude(), System.currentTimeMillis(), 1000);
+ * AppMgr.transam.send(r); } } } };
+ */
@SuppressLint("HandlerLeak")
- Handler fromTransam = new Handler() {
+ Handler handler = new Handler() {
@Override
public void handleMessage(Message m) {
switch (m.what) {
- case 1:
+ case 1:// 上传自己信息成功or失败
ResUpdate update = (ResUpdate) m.obj;
if (update.s == 0)
System.out.println("update success");
@@ -55,31 +67,52 @@ public class Main extends PiztorAct {
actMgr.trigger(AppMgr.errorToken);
}
break;
- case 2:
+ case 2:// 得到别人的信息
ResLocation location = (ResLocation) m.obj;
if (location.s == 0) {
- for (int i = 0; i < location.n; i++) {
- System.out.println(location.l.get(i).i + " : "
- + location.l.get(i).lat + " "
- + location.l.get(i).lot);
+ mapInfo.clear();
+ for (Rlocation i : location.l) {
+ System.out.println(i.i + " : " + i.lat + " " + i.lot);
+ UserInfo info = new UserInfo(i.i);
+ info.setLocation(i.lat, i.lot);
+ mapInfo.addUserInfo(info);
}
actMgr.trigger(SuccessFetch);
} else {
- System.out
- .println("resquest for location must be wrong!!!");
+ System.out.println("resquest for location failed!");
actMgr.trigger(AppMgr.errorToken);
}
break;
- case 3:
+ case 3:// 得到用户信息
ResUserinfo r = (ResUserinfo) m.obj;
if (r.s == 0) {
System.out.println("id : " + r.uid + " sex : " + r.sex
+ " group : " + r.gid);
+ if (r.uid == Infomation.myInfo.uid) {
+ Infomation.myInfo.gid = r.gid;
+ try {
+ autodate.schedule(new AutoUpdate(), 0, 5000);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ UserInfo user = mapInfo.getUserInfo(r.uid);
+ if (user != null)
+ user.setInfo(r.gid, r.sex);
+ else
+ System.out.println("fuck!!!!");
+ }
+ flushMap();
} else {
System.out.println("reqest for userInfo must be wrong!!!");
actMgr.trigger(AppMgr.errorToken);
}
break;
+ case 4:// 登出
+ Toast toast = Toast.makeText(getApplicationContext(),
+ "logout failed", Toast.LENGTH_LONG);
+ toast.show();
+ break;
default:
break;
}
@@ -90,16 +123,14 @@ public class Main extends PiztorAct {
switch (t) {
case SearchButtonPress:
return "Search Button Press";
- case FetchButtonPress:
- return "Fetch Button Press";
+ case Fetch:
+ return "Fetch ";
case FocuseButtonPress:
return "Focuse Button Press";
case SuccessFetch:
return "Success Fetch";
case FailedFetch:
return "Failed Fetch";
- case TimerFlush:
- return "TimerFlush";
default:
return "Fuck!!!";
}
@@ -110,21 +141,47 @@ public class Main extends PiztorAct {
}
+ public class MyLocationListener implements BDLocationListener {
+ @Override
+ public void onReceiveLocation(BDLocation location) {
+ Log.d("GPS", "Gotten");
+ if (location == null) {
+ return;
+ }
+
+ locData.latitude = location.getLatitude();
+ locData.longitude = location.getLongitude();
+ locData.accuracy = location.getRadius();
+ locData.direction = location.getDerect();
+
+ mapMaker.UpdateLocationOverlay(locData, false);
+
+ }
+
+ @Override
+ public void onReceivePoi(BDLocation poiLocation) {
+ if (poiLocation == null) {
+ return;
+ }
+ }
+ }
+
class StartStatus extends ActStatus {
@Override
void enter(int e) {
System.out.println("enter start status!!!!");
if (e == ActMgr.Create) {
- AppMgr.transam.send(new ReqUserinfo(UserInfo.token,
- UserInfo.username, UserInfo.id, System
+ System.out.println(Infomation.token + " "
+ + Infomation.username + " " + Infomation.myInfo.uid);
+ AppMgr.transam.send(new ReqUserinfo(Infomation.token,
+ Infomation.username, Infomation.myInfo.uid, System
.currentTimeMillis(), 5000));
+ // TODO flush mapinfo.myinfo
}
- if (e == TimerFlush) {
- ReqLocation r = new ReqLocation(UserInfo.token,
- UserInfo.username, 1, System.currentTimeMillis(), 1000);
- AppMgr.transam.send(r);
+ if (e == Fetch) {
+ requesLocation(Infomation.myInfo.gid);
}
if (e == SuccessFetch)
flushMap();
@@ -142,10 +199,11 @@ public class Main extends PiztorAct {
@Override
void enter(int e) {
System.out.println("enter Fetch status!!!!");
- if (e == FetchButtonPress) {
- ReqLocation r = new ReqLocation(UserInfo.token,
- UserInfo.username, 1, System.currentTimeMillis(), 1000);
- AppMgr.transam.send(r);
+ if (e == Fetch) {
+ requesLocation(Infomation.myInfo.gid);
+ }
+ if (e == SuccessFetch) {
+ flushMap();
}
}
@@ -160,51 +218,85 @@ public class Main extends PiztorAct {
@Override
void enter(int e) {
+ // TODO
+ switch (e) {
+ case Fetch:
+ requesLocation(Infomation.myInfo.gid);
+ break;
+ case FocuseButtonPress:
+ // TODO setFocus
+ break;
+ case SuccessFetch:
+ requesLocation(Infomation.myInfo.gid);
+ break;
+ default:
+ break;
+ }
System.out.println("enter focus status!!!!");
-
}
@Override
void leave(int e) {
+ // TODO leave focus
System.out.println("leave focus status!!!! because" + cause(e));
-
}
}
- class AutoUpdate extends TimerTask {
+ void requesLocation(int gid) {
+ ReqLocation r = new ReqLocation(Infomation.token, Infomation.username,
+ gid, System.currentTimeMillis(), 2000);
+ System.out.println("get others infomation!!!");
+ AppMgr.transam.send(r);
+ }
+ class AutoUpdate extends TimerTask {
@Override
public void run() {
- actMgr.trigger(Main.TimerFlush);
+ actMgr.trigger(Main.Fetch);
}
-
}
@Override
protected void onCreate(Bundle savedInstanceState) {
id = "Main";
super.onCreate(savedInstanceState);
- AppMgr.tracker.setHandler(fromGPS);
+ mapInfo = AppMgr.mapInfo;
ActStatus[] r = new ActStatus[3];
- r[0] = new StartStatus();
- r[1] = new FetchStatus();
- r[2] = new FocusStatus();
- actMgr = new ActMgr(this, r[0], r);
- actMgr.add(r[0], FocuseButtonPress, r[2]);
- actMgr.add(r[0], FetchButtonPress, r[1]);
- actMgr.add(r[0], SuccessFetch, r[0]);
- actMgr.add(r[1], FetchButtonPress, r[0]);
- actMgr.add(r[1], FailedFetch, r[0]);
- actMgr.add(r[1], SuccessFetch, r[0]);
- actMgr.add(r[2], FocuseButtonPress, r[0]);
- actMgr.add(r[0], TimerFlush, r[0]);
- actMgr.add(r[2], TimerFlush, r[2]);
+ ActStatus startStatus = r[0] = new StartStatus();
+ ActStatus fetchStatus = r[1] = new FetchStatus();
+ ActStatus focusStatus = r[2] = new FocusStatus();
+ AppMgr.transam.setHandler(handler);
+ actMgr = new ActMgr(this, startStatus, r);
+ actMgr.add(startStatus, FocuseButtonPress, focusStatus);
+ actMgr.add(startStatus, Fetch, fetchStatus);
+ actMgr.add(startStatus, SuccessFetch, startStatus);
+ actMgr.add(startStatus, Fetch, startStatus);
+ actMgr.add(fetchStatus, Fetch, startStatus);
+ actMgr.add(fetchStatus, FailedFetch, startStatus);
+ actMgr.add(fetchStatus, SuccessFetch, startStatus);
+ actMgr.add(focusStatus, FocuseButtonPress, startStatus);
+ actMgr.add(focusStatus, mapViewtouched, startStatus);
+ actMgr.add(focusStatus, SuccessFetch, focusStatus);
+ actMgr.add(focusStatus, Fetch, focusStatus);
autodate = new Timer();
- AppMgr.transam.setHandler(fromTransam);
+ flushMap();
+ // ImageView view = (ImageView) findViewById(R.id.main_mapview);
+ // view.setOnTouchListener(new MultiTouchListener());
setContentView(R.layout.activity_main);
- ImageView view = (ImageView) findViewById(R.id.main_mapview);
- view.setOnTouchListener(new MultiTouchListener());
+ mMapView = (MapView) findViewById(R.id.bmapView);
+ mapMaker = new MapMaker(mMapView, getApplicationContext());
+ mapMaker.InitMap();
+ mLocClient = new LocationClient(this);
+ locData = new LocationData();
+ mLocClient.registerLocationListener(myListener);
+ LocationClientOption option = new LocationClientOption();
+ option.setOpenGps(true);
+ option.setCoorType("bd09ll");
+ option.setScanSpan(5000);
+ mLocClient.setLocOption(option);
+ mLocClient.start();
+ mapMaker.UpdateLocationOverlay(locData, false);
}
@Override
@@ -215,16 +307,15 @@ public class Main extends PiztorAct {
btnSearch = (ImageButton) findViewById(R.id.footbar_btn_search);
btnSettings = (ImageButton) findViewById(R.id.footbar_btn_settings);
btnFetch.setOnClickListener(new View.OnClickListener() {
-
@Override
public void onClick(View arg0) {
- // actMgr.trigger(FetchButtonPress);
+ actMgr.trigger(Fetch);
}
});
btnFocus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- // actMgr.trigger(FocuseButtonPress);
+ actMgr.trigger(FocuseButtonPress);
}
});
btnSettings.setOnClickListener(new View.OnClickListener() {
@@ -233,16 +324,43 @@ public class Main extends PiztorAct {
actMgr.trigger(AppMgr.toSettings);
}
});
- //autodate.schedule(new AutoUpdate(), 0, 5000);
+
+ }
+
+ @Override
+ protected void onResume() {
+ mapMaker.onResume();
+ super.onResume();
+ }
+
+ @Override
+ protected void onPause() {
+ mapMaker.onPause();
+ super.onPause();
}
-
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ autodate.cancel();
+ }
+
+ @Override
+ protected void onDestroy() {
+ if (mLocClient != null) {
+ mLocClient.stop();
+ }
+ mapMaker.onDestroy();
+ super.onDestroy();
+ }
+
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- AppMgr.exit();
- return true;
- }
- return super.onKeyDown(keyCode, event);
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ AppMgr.exit();
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
}
@Override
@@ -252,4 +370,17 @@ public class Main extends Piz