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(); } }