package com.jiuqi.njt.util.login;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import android.util.Log;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean;
import com.jiuqi.mobile.nigo.comeclose.exception.LoginException;
import com.jiuqi.mobile.nigo.comeclose.manager.base.ILoginManager;
import com.jiuqi.mobile.nigo.comeclose.manager.base.IRegistManager;
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.register.RegisterUtils;
import com.jiuqi.njt.ui.LoginActivityNew;
import com.jiuqi.njt.util.Constants;
import com.jiuqi.njt.util.UIUtil;
//可通过该方法调用登陆重新获取新的Session对象
public class AutoLoginTask extends AsyncTask<Void, Void, Boolean> {
private MyApp application;
private Context context;
private OptsharepreInterface sharePre;
private final String TAG = this.getClass().getName();
// private WriteFile writeFile = new WriteFile(TAG+ JqydDateUtil.getDateDayOne(new Date()));
private String message = "";
private boolean isLoginSuccess;
private boolean jump =true; //如果密码错误是否跳转到登陆页面标志,除启动页外都是FALSE
private UserBean userBean = null;
public AutoLoginTask(Context context) {
this.context = context;
this.application = (MyApp) context.getApplicationContext();
sharePre = new OptsharepreInterface(context);
// writeFile.writeToFileAdditional("开始自动登录线程");
Log.e(TAG, "开始自动登录线程");
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
}
@Override
protected Boolean doInBackground(Void... arg0) {
try {
// 新注销原来的session
ClientContext context = application.getClientContext();
if (null!= context) {
try {
ILoginManager loginManager = context.getManager(ILoginManager.class);
UserBean user = context.getUser();
if(user ==null){
user = new UserBean();
user.setAccount(Constants.ANONYMOUS);
}
loginManager.loginOut(context.getSessionID(),context.getUser(), 2);
} catch (Exception e) {
}
}
context = ClientContext.getClientContext(Constants.SERVER_URL,sharePre.getPres("account"),sharePre.getPres("password"));
application.setClientContext(context);
userBean = context.getUser();
if (null != userBean) {
application.setIsLogin(true);
isLoginSuccess = true;
}
} catch (Exception e) {
if(e instanceof LoginException){
message = e.getMessage();
}
e.printStackTrace();
}
return isLoginSuccess;
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
if (result) {
Log.e(TAG, "登录成功");
application.setShowDialog(true);
if(userBean!=null){
RegisterUtils.loginSuccessNew(context, userBean);
}
}else if(!"".equals(message)&&message.contains("用户名或密码错误")&&jump){
UIUtil.showMsg(context, message);
Intent in = new Intent();
in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
in.setClass(context, LoginActivityNew.class);
context.startActivity(in);
}
}
}