package com.quark.jianzhidaren;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.carson.constant.ConstantForSaveList;
import com.carson.constant.JiaoyanUtil;
import com.easemob.EMCallBack;
import com.easemob.chat.EMChatManager;
import com.easemob.chat.EMContactManager;
import com.easemob.chat.EMGroupManager;
import com.easemob.chatuidemo.Constant;
import com.easemob.chatuidemo.db.UserDao;
import com.easemob.chatuidemo.domain.User;
import com.easemob.util.EMLog;
import com.easemob.util.HanziToPinyin;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import com.parttime.base.WithTitleActivity;
import com.parttime.constants.ApplicationConstants;
import com.parttime.login.RegisterInfoActivity;
import com.parttime.main.MainTabActivity;
import com.parttime.net.BaseRequest;
import com.parttime.net.Callback;
import com.parttime.net.ErrorHandler;
import com.parttime.utils.CountDownTimer;
import com.parttime.utils.SoftwareUtil;
import com.parttime.widget.EditItem;
import com.qingmu.jianzhidaren.R;
import com.quark.common.Url;
import com.quark.ui.widget.CustomDialog;
import com.quark.utils.Util;
import com.quark.volley.VolleySington;
import com.umeng.analytics.MobclickAgent;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @ClassName: RegisterActivity
* @Description: TODO
* @author howe
* @date 2015-1-9 下午5:11:49
*
*/
public class RegisterActivity extends WithTitleActivity implements CountDownTimer.TimeTick, TextWatcher{
/*@ViewInject(R.id.telephone)
private EditText telephone;
// 发送验证码按钮
@ViewInject(R.id.code)
private Button code;
@ViewInject(R.id.inputcode)
private EditText inputcode;
@ViewInject(R.id.name)
private EditText name;
@ViewInject(R.id.password)
private EditText password;
@ViewInject(R.id.againpassword)
private EditText againpassword;
@ViewInject(R.id.checkbox)
private CheckBox checkbox;
@ViewInject(R.id.regin)
private Button regin;
@ViewInject(R.id.code_vetify_imv)
private ImageView codeVetifyImv;*/
private static final int CODE_LEN = 6;
@ViewInject(R.id.ei_phone_num)
private EditItem eiPhone;
@ViewInject(R.id.ei_code)
private EditItem eiCode;
@ViewInject(R.id.btn_get_code)
private Button btnGetCode;
@ViewInject(R.id.btn_next)
private Button btnNext;
@ViewInject(R.id.tv_failed_to_get_code)
private TextView tvFailToGetCode;
@ViewInject(R.id.iv_code_ok)
private ImageView ivVerify;
String telephoneStr;
String telephoneStrTemp;
String nameStr;
String inputcodeStr;
// String passwordStr;
String againpasswordStr;
// String codeStr;
String codeStrget;
String url;// 注册url
String sendMSMUrl;
String jiaoyanUrl;// 校验验证码是否正确
private String token;
private int user_id;
private String loginUrl;// 登陆url
private String IM_PASSWORD;// 环信登陆密码
private String IM_USERID;// 环信登陆账户
private String IM_AVATAR;// 环信头像
private String IM_NIKENAME;// 环信昵称
// 环信
private boolean progressShow;
private SharedPreferences sp;
private long current_time;// 点击发送验证码的时候
private boolean codeFlag;// 验证码是否正确
private static CountDownTimer countDownTimer;
private static long lastTime;
private String code;
private int lastLen;
private boolean everReachLen;
private boolean lock;
private CustomDialog dlg;
@Override
protected ViewGroup getLeftWrapper() {
return null;
}
@Override
protected ViewGroup getRightWrapper() {
return null;
}
@Override
protected TextView getCenter() {
return null;
}
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.register);
ViewUtils.inject(this);
super.onCreate(savedInstanceState);
// TextView tx = (TextView) findViewById(R.id.rgtext);
// tx.setOnClickListener(new OnClickListener() {
//
// @Override
// public void onClick(View v) {
// Intent intent = new Intent();
// intent.setClass(RegisterActivity.this, AgreementActivity.class);
// startActivity(intent);
// }
// });
}
@Override
protected void initViews() {
super.initViews();
center(R.string.register);
left(TextView.class, R.string.back, new View.OnClickListener() {
@Override
public void onClick(View v) {
SoftwareUtil.hideSoftWare(RegisterActivity.this);
finish();
}
});
eiCode.addTextChangeListener(this);
if(System.currentTimeMillis() - lastTime < ApplicationConstants.PERIOD_FOR_GET_CODE){
btnGetCode.setEnabled(false);
if(countDownTimer != null){
countDownTimer.cancel();
}
countDownTimer = new CountDownTimer((int) ((ApplicationConstants.PERIOD_FOR_GET_CODE - System.currentTimeMillis() + lastTime) / 1000), this);
countDownTimer.start();
}
}
/**
* 验证验证码是否正确
*
*//*
private void vertifyCode(final String code) {
StringRequest request = new StringRequest(Request.Method.POST,
jiaoyanUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
JSONObject json;
try {
json = new JSONObject(response);
JSONObject jsont = json
.getJSONObject("ResponseStatus");
int status = jsont.getInt("status");
// 0:失败 1:成功
if (status == 0) {
codeFlag = false;
codeVetifyImv
.setImageResource(R.drawable.vertify_no);
codeVetifyImv.setVisibility(View.VISIBLE);
} else if (status == 1) {
codeFlag = true;
codeVetifyImv
.setImageResource(R.drawable.vertify_yes);
codeVetifyImv.setVisibility(View.VISIBLE);
} else {
codeFlag = false;
codeVetifyImv
.setImageResource(R.drawable.vertify_no);
codeVetifyImv.setVisibility(View.VISIBLE);
}
} catch (JSONException e) {
e.printStackTrace();
codeFlag = false;
codeVetifyImv
.setImageResource(R.drawable.vertify_no);
codeVetifyImv.setVisibility(View.VISIBLE);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
codeFlag = false;
showToast(getResources().getString(
R.string.regist_request_server_fail));
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("telephone", telephoneStr);
map.put("code", code);
return map;
}
};
queue.add(request);
request.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}*/
@Override
public void onBackPressed() {
if(!lock) {
super.onBackPressed();
}
}
/**
* 联系客服
*/
/*public void showAlertKefuDialog(String str, final String str2) {
CustomDialog.Builder builder = new CustomDialog.Builder(this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton("联系客服",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
Intent intent = new Intent(
Intent.ACTION_CALL,
Uri.parse("tel:"
+ ConstantForSaveList.CARSON_CALL_NUMBER));
RegisterActivity.this.startActivity(intent);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}
});
builder.create().show();
}*/
public void showAlertDialog(String str, final String str2) {
CustomDialog.Builder builder = new CustomDialog.Builder(this);
builder.setMessage(str);
builder.setTitle(str2);
builder.setPositiveButton("确 定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (str2.equals(getResources().getString(
R.string.regist_regist_success))) {
login();// 注册成功直接登陆
}
}
});
builder.create().show();
}
public void login() {
showWait(true);
StringRequest request = new StringRequest(Request.Method.POST,
loginUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
try {
JSONObject json = new JSONObject(response);
JSONObject jsont = json
.getJSONObject("ResponseStatus");
int status = jsont.getInt("status");
if (status == 1) {
showToast(getResources().getString(
R.string.regist_not_regist_company));
} else if (status == 2) {
showToast(getResources().getString(
R.string.regist_login_pwd_error));
} else if (status == 4) { // 放飞机
String activity_title = jsont
.getString("run_over_activity_title");
Intent intent = new Intent();
intent.setClass(RegisterActivity.this,
FeiJiPageActivity.class);
intent.putExtra("title", activity_title + "");
startActivity(intent);
finish();
} else {
// 记录用户id 环信登陆id 密码 昵称 头像
JSONObject jsonts = json
.getJSONObject("LoginResponse");
token = jsonts.getString("token");
user_id = jsonts.getInt("company_id");
IM_PASSWORD = jsonts.getString("IM_PASSWORD");
IM_USERID = jsonts.getString("IM_USERID");
IM_AVATAR = jsonts.getString("IM_AVATAR");
IM_NIKENAME = jsonts.getString("IM_NIKENAME");
ApplicationConstants.IM_NIKENAME = IM_NIKENAME;
loginIM(IM_USERID, IM_PASSWORD);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
showWait(false);
showToast(getResources().getString(
R.string.regist_request_server_fail));
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("telephone", telephoneStr);
map.put("password", JiaoyanUtil.MD5(/*passwordStr*/null));
return map;
}
};
queue.add(request);
request.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}
// 环信 登陆
private void loginIM(String userName, String passWord) {
ApplicationControl.currentUserNick = ApplicationConstants.IM_NIKENAME;
// 如果用户名密码都有,直接进入主页面
/*
* if (DemoHXSDKHelper.getInstance().isLogined()) { autoLogin = true;
* startActivity(new Intent(Login.this, Main.class)); return; }
*/
// ApplicationControl.currentUserNick = "ydt01";
final String username = userName;
final String password = passWord;
if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password)) {
progressShow = true;
final ProgressDialog pd = new ProgressDialog(RegisterActivity.this);
pd.setCanceledOnTouchOutside(false);
pd.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
progressShow = false;
}
});
pd.setMessage(getResources().getString(R.string.regist_islogin)
+ "...");
pd.show();
final long start = System.currentTimeMillis();
// 调用sdk登陆方法登陆聊天服务器
EMChatManager.getInstance().login(username, password,
new EMCallBack() {
@Override
public void onSuccess() {
// umeng自定义事件,开发者可以把这个删掉
loginSuccess2Umeng(start);
if (!progressShow) {
return;
}
// 登陆成功,保存用户名密码
ApplicationControl.getInstance().setUserName(
username);
ApplicationControl.getInstance().setPassword(
password);
runOnUiThread(new Runnable() {
public void run() {
pd.setMessage(getResources().getString(
R.string.regist_getunreadinfor)
+ "...");
}
});
try {
// ** 第一次登录或者之前logout后,加载所有本地群和回话
// ** manually load all local groups and
// conversations in case we are auto login
EMGroupManager.getInstance().loadAllGroups();
EMChatManager.getInstance()
.loadAllConversations();
// demo中简单的处理成每次登陆都去获取好友username,开发者自己根据情况而定
List<String> usernames = EMContactManager
.getInstance().getContactUserNames();
Map<String, com.easemob.chatuidemo.domain.User> userlist = new HashMap<String, com.easemob.chatuidemo.domain.User>();
for (String username : usernames) {
com.easemob.chatuidemo.domain.User user = new com.easemob.chatuidemo.domain.User();
user.setUsername(username);
setUserHearder(username, user);
userlist.put(username, user);
}
// 添加user"申请与通知"
User newFriends = new User();
newFriends.setUsername(Constant.NEW_FRIENDS_USERNAME);
newFriends.setNick(getString(R.string.apply_notify));
newFriends.setHeader("");
userlist.put(Constant.NEW_FRIENDS_USERNAME, newFriends);
// 添加"群聊"
User groupUser = new User();
groupUser.setUsername(Constant.GROUP_USERNAME);
groupUser.setNick(getString(R.string.group_chat));
groupUser.setHeader("");
userlist.put(Constant.GROUP_USERNAME, groupUser);
// 添加"官方账号"
User publicCount = new User();
publicCount.setUsername(Constant.PUBLIC_COUNT);
publicCount.setNick(getString(R.string.public_count));
publicCount.setHeader("");
userlist.put(Constant.PUBLIC_COUNT, publicCount);
// 存入内存
ApplicationControl.getInstance()
.setContactList(userlist);
// 存入db
UserDao dao = new UserDao(RegisterActivity.this);
List<com.easemob.chatuidemo.domain.User> users = new ArrayList<com.easemob.chatuidemo.domain.User>(
userlist.values());
dao.saveContactList(users);
// 获取群聊列表(群聊里只有groupid和groupname等简单信息,不包含members),sdk会把群组存入到内存和db中
EMGroupManager.getInstance()
.getGroupsFromServer();
} catch (Exception e) {
e.printStackTrace();
}
// 更新当前用户的nickname 此方法的作用是在ios离线推送时能够显示用户nick
boolean updatenick = EMChatManager.getInstance()
.updateCurrentUserNick(
ApplicationControl.currentUserNick);
if (!updatenick) {
EMLog.e("LoginActivity",
"update current user nick fail");
}
if (!RegisterActivity.this.isFinishing())
pd.dismiss();
// 进入主页面
Editor edit = sp.edit();
edit.putString("userId", "" + user_id);
edit.putString("token", token);
edit.putString("IM_PASSWORD", IM_PASSWORD);
edit.putString("IM_USERID", IM_USERID);
edit.putString("IM_AVATAR", IM_AVATAR);
edit.putString("IM_NIKENAME", IM_NIKENAME);
// 记住密码供下次登陆
edit.putString("remember_tele", telephoneStr);
edit.putString("remember_pwd", /*passwordStr*/null);
edit.commit();
Intent intent = new Intent();
intent.setClass(RegisterActivity.this,
MainTabActivity.class);
startActivity(intent);
// setResult(Activity.RESULT_OK);
finish();
}
@Override
public void onProgress(int progress, String status) {
}
@Override
public void onError(final int code, final String message) {
loginFailure2Umeng(start, code, message);
if (!progressShow) {
return;
}
runOnUiThread(new Runnable() {
public void run() {
pd.dismiss();
showToast(getResources().getString(
R.string.regist_login_fail));
}
});
}
});
}
}
/**
* 设置hearder属性,方便通讯中对联系人按header分类显示,以及通过右侧ABCD...字母栏快速定位联系人
*
* @param username
* @param user
*/
protected void setUserHearder(String username,
com.easemob.chatuidemo.domain.User user) {
String headerName = null;
if (!TextUtils.isEmpty(user.getNick())) {
headerName = user.getNick();
} else {
headerName = user.getUsername();
}
if (username.equals(Constant.NEW_FRIENDS_USERNAME)) {
user.setHeader("");
} else if (Character.isDigit(headerName.charAt(0))) {
user.setHeader("#");
} else {
user.setHeader(HanziToPinyin.getInstance()
.get(headerName.substring(0, 1)).get(0).target.substring(0,
1).toUpperCase());
char header = user.getHeader().toLowerCase().charAt(0);
if (header < 'a' || header > 'z') {
user.setHeader("#");
}
}
}
private void loginSuccess2Umeng(final long start) {
runOnUiThread(new Runnable() {
public void run() {
long costTime = System.currentTimeMillis() - start;
Map<String, String> params = new HashMap<String, String>();
params.put("status", "success");
MobclickAgent.onEventValue(RegisterActivity.this, "login1",
params, (int) costTime);
MobclickAgent.onEventDuration(RegisterActivity.this, "login1",
(int) costTime);
}
});
}
private void loginFailure2Umeng(final long start, final int code,
final String message) {
runOnUiThread(new Runnable() {
public void run() {
long costTime = System.currentTimeMillis() - start;
Map<String, String> params = new HashMap<String, String>();
params.put("status", "failure");
params.put("error_code", code + "");
params.put("error_description", message);
MobclickAgent.onEventValue(RegisterActivity.this, "login1",
params, (int) costTime);
MobclickAgent.onEventDuration(RegisterActivity.this, "login1",
(int) costTime);
}
});
}
@OnClick(R.id.tv_failed_to_get_code)
public void failToGetCode(View v){
dlg = createDialog(getString(R.string.friendly_tips), getString(R.string.contact_customer_service_for_validaion_code),
getString(R.string.contact_customer_service), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dlg.dismiss();
Intent intent = new Intent(
Intent.ACTION_CALL,
Uri.parse("tel:"
+ ConstantForSaveList.CARSON_CALL_NUMBER));
RegisterActivity.this.startActivity(intent);
}
}, getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (dialog != null && dlg.isShowing()) {
dlg.dismiss();
}
}
});
dlg.show();
}
@OnClick(R.id.btn_get_code)
public void sendMSM(View view) {
telephoneStr = eiPhone.getValue().trim();
if (Util.isMobileNO(telephoneStr)) {
telephoneStrTemp = telephoneStr;
btnGetCode.setEnabled(false);
sendMSM();
} else {
showToast(getResources().getString(R.string.regist_edt_right_tel));
}
}
@OnClick(R.id.btn_next)
public void next(View v) {
// if()
Intent intent= new Intent(this, RegisterInfoActivity.class);
intent.putExtra(RegisterInfoActivity.EXTRA_TELEPHONE, telephoneStr);
intent.putExtra(RegisterInfoActivity.EXTRA_CODE, code);
startActivity(intent);
lock = true;
/*if (check()) {
showWait(true);
MobclickAgent.onEvent(RegisterActivity.this, "onclick3", "立即注册");
StringRequest request = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showWait(false);
int status = 9999999;
try {
JSONObject js;
js = new JSONObject(response);
JSONObject sd = js
.getJSONObject("ResponseStatus");
status = sd.getInt("status");
if (status == 1) {
showAlertDialog(
getResources().getString(
R.string.regist_login_now),
getResources()
.getString(
R.string.regist_regist_success));
} else {
String msg = sd.getString("msg");
if (msg == null || "".equals(msg)) {
msg = "注册失败";
}
showAlertDialog(
msg,
getResources()
.getString(
R.string.regist_regist_fail));
}
recLen = 1;
code.setClickable(true);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
showWait(false);
showAlertDialog(
getResources().getString(
R.string.regist_net_bad),
getResources().getString(
R.string.regist_regist_fail));
}
}) {
@Override
protected Map<String, String> getParams()
throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("telephone", telephoneStr);
map.put("password", JiaoyanUtil.MD5(passwordStr));// md5
map.put("name", nameStr);
map.put("code", codeStr);
return map;
}
};
queue.add(request);
request.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
}*/
}
public boolean check() {
if (nameStr == null || !Util.isUserName(nameStr)) {
showToast(getResources().getString(R.string.regist_name_not_hefa));
return false;
}
// codeStr = inputcode.getText().toString();
// if (codeStr == null || (!codeStr.equals(codeStrget))) {
// showToast(getResources().getString(R.string.regist_code_error));
// return false;
// }
/*if (!codeFlag) {
showToast(getResources().getString(R.string.regist_code_error));
return false;
}
passwordStr = password.getText().toString();
againpasswordStr = againpassword.getText().toString();
if (passwordStr == null || againpasswordStr == null
|| !passwordStr.equals(againpasswordStr)) {
showToast(getResources().getString(R.string.regist_name_not_same));
return false;
}
if (passwordStr.trim().length() < 6) {
showToast(getResources().getString(
R.string.regist_pwd_not_below_six));
return false;
} else {
if (passwordStr.trim().length() < 6) {
showToast(getResources().getString(
R.string.regist_pwd_not_below_six));
return false;
}
}
if (!checkbox.isChecked()) {
showToast(getResources().getString(
R.string.regist_confirm_shengming));
return false;
}
if (telephoneStrTemp == null || telephoneStr == null
|| !telephoneStrTemp.equals(telephoneStr)) {
showToast(getResources().getString(
R.string.regist_tel_change_get_code));
code.setText(getResources().getString(R.string.regist_sendcode));
recLen = 1;
code.setClickable(true);
return false;
}*/
return true;
}
public void sendMSM() {
showWait(true);
MobclickAgent.onEvent(RegisterActivity.this, "onclick2", "注册发送验证码");
Map<String, String> params = new HashMap<>();
params.put("telephone", telephoneStr);
new BaseRequest().request(Url.MESSAGE_COMPANY_REGISTER, params, VolleySington.getInstance().getRequestQueue(), new Callback() {
@Override
public void success(Object obj) {
showWait(false);
// btnNext.setEnabled(true);
countDownTimer = new CountDownTimer(ApplicationConstants.PERIOD_FOR_GET_CODE / 1000, RegisterActivity.this);
lastTime = System.currentTimeMillis();
countDownTimer.start();
}
@Override
public void failed(Object obj) {
showWait(false);
btnGetCode.setEnabled(true);
new ErrorHandler(RegisterActivity.this, obj).showToast();
}
});
/*StringRequest request2 = new StringRequest(Request.Method.POST,
sendMSMUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject js = new JSONObject(response);
JSONObject jsstatus = js
.getJSONObject("ResponseStatus");
int status = jsstatus.getInt("status");
String msg = jsstatus.getString("msg");
if (status == 1) {
// 成功
ConstantForSaveList.regist_time = current_time;// 保存进入界面的时间
} else {
showToast(msg);
}
} catch (JSONException e) {
showToast(getResources().getString(
R.string.regist_getcode_fail));
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
showToast("获取验证码失败,请检查网络环境");
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("telephone", telephoneStr);
return map;
}
};
queue.add(request2);
request2.setRetryPolicy(new DefaultRetryPolicy(
ConstantForSaveList.DEFAULTRETRYTIME * 1000, 1, 1.0f));
*/
}
private void verifyCode(){
Map<String, String> params = new HashMap<String, String>();
params.put("telephone", telephoneStr);
params.put("code", code);
new BaseRequest().request(Url.MESSAGE_VALIDATE, params, VolleySington.getInstance().getRequestQueue(), new Callback() {
@Override
public void success(Object obj) {
if (!everReachLen) {
ivVerify.setVisibility(View.VISIBLE);
everReachLen = true;
}
ivVerify.setSelected(true);
btnNext.setEnabled(true);
}
@Override
public void failed(Object obj) {
if (!everReachLen) {
ivVerify.setVisibility(View.VISIBLE);
everReachLen = true;
}
ivVerify.setSelected(false);
}
});
}
// ====倒計時end===========
@Override
protected void onStop() {
super.onStop();
queue.cancelAll(TAG);
}
private String acquireAgain;
@Override
public void ticking(final int secondsLeft) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if(acquireAgain == null){
acquireAgain = getString(R.string.acquire_again);
}
btnGetCode.setText(acquireAgain + "(" + secondsLeft + ")");
}
});
}
@Override
public void stoped() {
runOnUiThread(new Runnable() {
@Override
public void run() {
btnGetCode.setText(R.string.get_validation_code);
btnGetCode.setEnabled(true);
}
});
}
@Override
public void paused() {
}
@Override
public void cancelled() {
}
@Override
public void goOn() {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
code = eiCode.getValue();
int length = s.length();
if(length == CODE_LEN){
if(lastLen < CODE_LEN){
verifyCode();
}
}else {
if(lastLen == CODE_LEN){
ivVerify.setSelected(false);
btnNext.setEnabled(false);
}
}
lastLen = length;
}
}