package com.threeH.MyExhibition.service;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Properties;
import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
import android.telephony.TelephonyManager;
/**
* 客户端控制器类,用来控制页面的跳转,响应界面按钮事件。该类在整个应用程序中单例
*
* @author clhe
*/
public class ClientController implements Serializable {
/**
* 客户端上下文,该对象用来缓存客户端业务对象及配置参数
*/
private ClientContext context;
/**
* 控制器单例对象
*/
private static ClientController controller = null;
/**
* 当前Android活动对象(页面Activity)
*/
private Activity currentActivity;
/**
* 服务对象
*/
private ClientService service;
/**
* 手机信息对象
*/
private TelephonyManager phoneManager;
private ClientController(Activity act) {
this.currentActivity = act;
context = ClientContext.createClientContext();
// loadClientConfig();
service = new ClientServiceImplForNet(context);
}
public ClientController() {
context = ClientContext.createClientContext();
// loadClientConfig();
service = new ClientServiceImplForNet(context);
}
/**
* 加载配置文件
*/
private void loadClientConfig() {
Properties pro = new Properties();
AssetManager asset = currentActivity.getAssets();
InputStream is;
try {
is = asset.open("config" + File.separator
+ "client_config.properties");
pro.load(is);
} catch (IOException e) {
e.printStackTrace();
}
context.setConfigProperties(pro);
}
public ClientContext getContext() {
return context;
}
public Activity getCurrentActivity() {
return currentActivity;
}
public void setCurrentActivity(Activity act) {
this.currentActivity = act;
}
public ClientService getService() {
return service;
}
public void setService(ClientService service) {
this.service = service;
}
/**
* 得到单例的ClientController对象
*/
public static synchronized ClientController getController() {
if (controller == null) {
controller = new ClientController(null);
}
return controller;
}
/**
* 得到(controller相互关联Activity)的对象
*/
public static synchronized ClientController getController(Activity act) {
if (controller == null) {
controller = new ClientController(act);
} else {
controller.setCurrentActivity(act);
}
return controller;
}
/**
* 获取手机IMEI码
*/
public String getImei() {
return phoneManager.getDeviceId();
}
}