package com.jiuqi.njt.util.login;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.Log;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserRolesBean;
import com.jiuqi.mobile.nigo.comeclose.manager.base.IRoleManager;
import com.jiuqi.mobile.nigo.comeclose.ws.client.ClientContext;
import com.jiuqi.njt.data.MyApp;
import com.jiuqi.njt.data.OptsharepreInterface;
import com.jiuqi.njt.util.Constants;
/**
* 登录后客户端用户定制版本号与服务端版本号比较
* 如果客户端版本号为0或者小于服务端的版本号就获取叫色模块和用户模块数据
*/
public class CheckModuleVersionTask extends AsyncTask<Void, Void, Integer> {
private String TAG = "CheckModuleVersionTask";
private int versionNo;
private MyApp application;
private Context context;
private OptsharepreInterface sharePre;
private ArrayList<Integer> roleBeanCodeList = new ArrayList<Integer>();
private String allVersionCodes = "";
public CheckModuleVersionTask(Context context) {
super();
this.context = context;
this.application = (MyApp) context.getApplicationContext();
sharePre = new OptsharepreInterface(context);
}
@Override
protected Integer doInBackground(Void... arg0) {
// TODO Auto-generated method stub
try {
ClientContext context = application.getClientContext();
if (null == context) {
context = ClientContext.getClientContext(Constants.SERVER_URL, sharePre.getPres("account"),sharePre.getPres("password"));
application.setClientContext(context);
}
UserBean user = context.getUser();
List<UserRolesBean> userRoleList = user.getUserRolesBeans();
IRoleManager manager = context.getManager(IRoleManager.class);
for (UserRolesBean userRolesBean : userRoleList) {
// roleBeanCodeList.add((userRolesBean.getRoleBean().getCode()));
versionNo = manager.getVersionNoState(userRolesBean.getRoleBean().getCode());
allVersionCodes+="&"+versionNo;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return versionNo;
}
@Override
protected void onPostExecute(Integer result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
boolean isUpDateRoleModule = false;
String nowVersionString = sharePre.getPres("versionNo");
Log.e(TAG, nowVersionString+"---==---"+allVersionCodes);
isUpDateRoleModule = application.isWhetherUpdateRolesModule();
if("0".equals(nowVersionString)){
isUpDateRoleModule = true;
}else{
// ArrayList<Integer> oldRoleBeanCodeList = new ArrayList<Integer>();
// if(nowVersionString.contains("&")){
// String[] versionArray = nowVersionString.split("&");
// for (String string : versionArray) {
// if(null!=string&&!TextUtils.isEmpty(string)){
// oldRoleBeanCodeList.add(Integer.parseInt(string));
// }
// }
// if(oldRoleBeanCodeList.size()!=roleBeanCodeList.size()||!roleBeanCodeList.equals(oldRoleBeanCodeList)){
// isUpDateRoleModule = true;
// }
// }else{
// isUpDateRoleModule = true;
// }
if(!nowVersionString.equals(allVersionCodes)){
isUpDateRoleModule = true;
}
}
if(isUpDateRoleModule){
sharePre.putPres("versionNo", allVersionCodes);
}
Log.e(TAG, isUpDateRoleModule+"");
new GetRoleAndUserModuleTask(context,isUpDateRoleModule).execute();
}
}