summaryrefslogblamecommitdiff
path: root/client/Piztor/src/com/macaroon/piztor/AppMgr.java
blob: e32274522ed5bbfd97aa735cd69ed7ffcf997e4a (plain) (tree)
1
2
3
4
5
6
7
8
9


                            
                         

                                       
                               

                              



                                          


                                
 
                                                                        

                                               
                 
                                    
                                                                    

         

                                     
                   
                                        


                                      
                

                                            

                                          
                                          
                                      
 
                               
 
                                                                



















                                                                   












                                                                         
                                        
                                                






                                                                                 
                 




























                                                                                        


                                                                






                                                                                               
                                         



                                                                                                    

                           
                                                                         

                                                                               

                                               
                                        
                                                     


                                         
                                          
                                                                   

                                                                      
                                                               
                                                                      

                                                                     
                                                                   
                                                                       


         
package com.macaroon.piztor;

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 {

	static final String strKey = "8a0ae50048d103b2b8b12b7066f4ea7d";
	static BMapManager mBMapManager = null;

	// Status
	public enum ActivityStatus {
		create, start, resume, restart, stop, pause, destroy
	}

	static ActivityStatus status;
	static PiztorAct nowAct;
	// TODO fix
	static Handler handler, fromGPS;
	static Transam transam = null;
	static Tracker tracker = null;
	static Thread tTransam, tGPS;
	// Event
	final static int noToken = 101;
	final static int loginSuccess = 102;
	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;

	static void addAct(PiztorAct act) {
		if (acts == null)
			acts = new HashSet<PiztorAct>();
		acts.add(act);
	}

	static void removeAct(PiztorAct act) {
		if (acts.contains(act))
			acts.remove(act);
		else
			System.out.println("Piztor has a bug!!!!");
	}

	static void exit() {
		for (PiztorAct act : acts) {
			act.finish();
		}
	}

	static void setStatus(ActivityStatus st) {
		status = st;
	}

	static void trigger(int event) {
		Intent i = new Intent();
		System.out.println(nowAct.id + " : " + event);
		if (mp.get(nowAct.getClass()) == null)
			System.out.println("first");
		else if (mp.get(nowAct.getClass()) == null)
			System.out.println("second");
		i.setClass(nowAct, mp.get(nowAct.getClass()).get(event));
		if (event == errorToken)
			Infomation.token = null;
		if (event == loginSuccess) {
			mBMapManager.start();
			transam.startPush(Infomation.token, Infomation.username);
		}
		if (event == logout) {
			mBMapManager.stop();
			transam.stopPush();
		}
		nowAct.startActivity(i);
	}

	static void add(Class<?> a, Integer event, Class<?> b) {
		if (mp.containsKey(a))
			mp.get(a).put(event, b);
		else {
			HashMap<Integer, Class<?>> h = new HashMap<Integer, Class<?>>();
			h.put(event, b);
			mp.put(a, h);
		}
	}

	static void addTransition(Class<?> a, int i, Class<?> b) {
		if (mp.containsKey(a)) {
			HashMap<Integer, Class<?>> h = mp.get(a);
			h.put(i, b);
			mp.put(a, h);
		} else {
			HashMap<Integer, Class<?>> h = new HashMap<Integer, Class<?>>();
			h.put(i, b);
			mp.put(a, h);
		}
	}

	static void addStatus(Class<?> a) {
		mp.put(a, new HashMap<Integer, Class<?>>());
	}

	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");
					System.out.println("network wocao ni ma de !!!!!!!!!");
				}

				@Override
				public void onGetPermissionState(int iError) {
					Log.d("Permission", "wrong key");
					System.out.println("ju ran bu gei wo quan xian !!!!!!!!!!");
				}
			});
		}
		mp = new HashMap<Class<?>, HashMap<Integer, Class<?>>>();
		handler = new Handler();
		transam = new Transam(Infomation.ip, Infomation.port,