package com.jiuqi.njt.register;
import com.jiuqi.mobile.nigo.comeclose.exception.LoginException;
import com.jiuqi.mobile.nigo.comeclose.exception.NiGoException;
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.util.Constants;
import com.jiuqi.njt.util.RepairUtils;
import com.jiuqi.njt.util.UIUtil;
import android.app.Dialog;
import android.content.Context;
import android.os.AsyncTask;
/**
* 发送验证码异步类
*
* @author joe
*
*/
public class SendVerificationTask extends AsyncTask<Void, Void, String> {
private Context context;
private String mobileNumber;
private Counter counter;
private AllTaskInterface allTaskInterface;
private MyApp application;
private Dialog pd;
/**
* 发送验证码
* @param context
* @param mobileNumber
* 接收验证码的手机号
* @param counter
* 发送验证码后,启动计数器
*/
public SendVerificationTask(Context context, String mobileNumber,
Counter counter,AllTaskInterface allTaskInterface) {
super();
this.context = context;
this.mobileNumber = mobileNumber;
this.counter = counter;
this.allTaskInterface = allTaskInterface;
application = (MyApp) context.getApplicationContext();
}
@Override
protected void onPreExecute() {
pd = RepairUtils.myShowDialog(context, 8);
super.onPreExecute();
}
@Override
protected String doInBackground(Void... params) {
ClientContext context;
String result = "";
try {
context = application.getClientContext();
if (null == context) {
context = ClientContext.getClientContext(Constants.SERVER_URL,
Constants.ANONYMOUS, Constants.ANONYMOUS);
application.setClientContext(context);
}
IRegistManager manager = context.getManager(IRegistManager.class);
String[] aa ={mobileNumber};
manager.sendYZM(aa);
} catch (LoginException e) {
e.printStackTrace();
result=e.getMessage();
} catch (NiGoException e) {
e.printStackTrace();
result=e.getMessage();
} catch (Exception e) {
e.printStackTrace();
result = "发送验证码失败,请稍后重试";
}
return result;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
RepairUtils.myRemoveDialog(pd);
allTaskInterface.taskFinishReturn(result);
if("".equals(result)){
counter.start();
}else{
UIUtil.showMsg(context, result);
}
}
/**
* 异步类执行完毕返回结果接口
* @author Joe
*
*/
public interface TaskStart{
public void taskFinish(String result);
}
}