package com.tejia.lijin.app.ui.mine;
|
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.os.CountDownTimer;
|
import android.text.Editable;
|
import android.text.TextWatcher;
|
import android.view.View;
|
import android.widget.EditText;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.tejia.lijin.app.ShoppingApplication;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
import com.wpc.library.util.common.StringUtils;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.entity.UserInfo;
|
import com.tejia.lijin.app.ui.BaseActivity;
|
import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog;
|
import com.tejia.lijin.app.ui.dialog.VerificationCodeErrorDialog;
|
import com.tejia.lijin.app.util.TopStatusSettings;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
/**
|
* Created by weikou2015 on 2018/5/30.
|
* 短信验证码获取
|
*/
|
|
public class ReviseAccountActivity extends BaseActivity implements View.OnClickListener {
|
|
private TextView tv_top_left, tv_top_middle, tv_mobile_num, tv_send, tv_count_down;
|
private EditText et_num;
|
private LinearLayout ll_code;
|
Long uid;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_revise_account);
|
setShowRecommend(false);
|
TopStatusSettings.setStatusViewAndDeepColor(this);
|
tv_top_left = findViewById(R.id.tv_top_bar_left);
|
tv_top_middle = findViewById(R.id.tv_top_bar_middle);
|
tv_mobile_num = findViewById(R.id.tv_mobile_num);
|
tv_send = findViewById(R.id.tv_send);
|
tv_count_down = findViewById(R.id.tv_count_down);
|
ll_code = findViewById(R.id.ll_code);
|
|
et_num = findViewById(R.id.et_num);
|
|
String title = getIntent().getStringExtra("title");
|
tv_top_middle.setText(title + "");
|
|
requestFouse();
|
|
ll_code.setVisibility(View.GONE);
|
tv_top_left.setOnClickListener(this);
|
tv_send.setOnClickListener(this);
|
tv_count_down.setOnClickListener(this);
|
uid = UserUtil.getUid(ShoppingApplication.application);
|
getUserInfo();
|
}
|
|
private void requestFouse() {
|
et_num.addTextChangedListener(new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
}
|
|
@Override
|
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
}
|
|
@Override
|
public void afterTextChanged(Editable editable) {
|
if (tv_send.getText().equals("确认") && !StringUtils.isEmpty(editable.toString())) {
|
tv_send.setBackgroundResource(R.drawable.shape_mobile_login_light);
|
tv_send.setEnabled(true);
|
} else {
|
tv_send.setBackgroundResource(R.drawable.shape_mobile_login);
|
tv_send.setEnabled(false);
|
}
|
}
|
});
|
}
|
|
@Override
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
super.onActivityResult(requestCode, resultCode, data);
|
if (resultCode == 1) {
|
setResult(1);
|
}
|
finish();
|
}
|
|
@Override
|
public void onClick(View view) {
|
switch (view.getId()) {
|
case R.id.tv_top_bar_left:
|
finish();
|
break;
|
case R.id.tv_count_down:
|
if (tv_count_down.getText().toString().equalsIgnoreCase("重新发送")) {
|
getVerificationCode();
|
}
|
break;
|
case R.id.tv_send:
|
if (tv_send.getText().toString().equalsIgnoreCase("发送")) {
|
getVerificationCode();
|
break;
|
}
|
if (StringUtils.isEmpty(et_num.getText().toString())) {
|
// SingleToast.showToast(ReviseAccountActivity.this, "验证码不能为空");
|
Toast.makeText(ReviseAccountActivity.this, "验证码不能为空", Toast.LENGTH_SHORT).show();
|
break;
|
}
|
if (et_num.getText().toString().length() != 6) {
|
Toast.makeText(ReviseAccountActivity.this, "请确认验证码是否为6位", Toast.LENGTH_SHORT).show();
|
// SingleToast.showToast(ReviseAccountActivity.this, "请确认验证码是否为6位");
|
}
|
String code = et_num.getText().toString();
|
if (getIntent().getStringExtra("title").equalsIgnoreCase("提现")) {
|
extractMoneyNew(code);
|
tv_send.setEnabled(false);//点击发送后是按钮点击事件无效,直到请求结束恢复点击效果
|
} else {
|
sendVerificationCode(code);
|
tv_send.setEnabled(false);//点击发送后是按钮点击事件无效,直到请求结束恢复点击效果
|
}
|
break;
|
}
|
}
|
|
/**
|
* 请求服务器发送验证码
|
* 接口请求成功后隐藏发送按钮,同时倒计时开始
|
*/
|
ShapeLoadingDialog pd;
|
|
private void getVerificationCode() {
|
if (pd == null) {
|
pd = new ShapeLoadingDialog.Builder(this).build();
|
}
|
pd.show();
|
ShoppingApi.sendSms(ReviseAccountActivity.this, UserUtil.getUid(ShoppingApplication.application), phone, 1 + "", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
// tv_mobile_num.setVisibility(View.GONE);
|
ll_code.setVisibility(View.VISIBLE);
|
tv_count_down.setVisibility(View.VISIBLE);
|
tv_send.setText("确认");
|
// SingleToast.showToast(ReviseAccountActivity.this, "即将发送验证码,请稍侯...");
|
Toast.makeText(ReviseAccountActivity.this, "即将发送验证码,请稍侯...", Toast.LENGTH_SHORT).show();
|
new CountDownTimer(60 * 1000, 1000) {
|
|
@Override
|
public void onTick(long l) {
|
tv_count_down.setClickable(false);
|
tv_count_down.setText(l / 1000 + "秒后重发");
|
}
|
|
@Override
|
public void onFinish() {
|
tv_count_down.setText("重新发送");
|
tv_count_down.setClickable(true);
|
}
|
}.start();
|
// tv_send.setText(getIntent().getStringExtra("title"));
|
} else {
|
Toast.makeText(ReviseAccountActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
// SingleToast.showToast(ReviseAccountActivity.this, jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
pd.dismiss();
|
}
|
});
|
|
}
|
|
String phone = "";
|
|
private void getUserInfo() {
|
ShoppingApi.getUserInfo2(ReviseAccountActivity.this, uid, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
UserInfo info = gson.fromJson(jsonObject.optJSONObject("data").optJSONObject("user").toString(), new TypeToken<UserInfo>() {
|
}.getType());
|
tv_mobile_num.setText(info.getPhone());
|
if (!StringUtils.isEmpty(info.getPhone())) {
|
phone = info.getPhone();
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
// SingleToast.showToast(ReviseAccountActivity.this, "请求失败");
|
Toast.makeText(ReviseAccountActivity.this, "请求失败", Toast.LENGTH_SHORT).show();
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
}
|
});
|
}
|
|
private void extractMoneyNew(String code) {
|
String money = getIntent().getStringExtra("money");
|
ShoppingApi.extractmoneynew(ReviseAccountActivity.this, money, UserUtil.getUid(ShoppingApplication.application), code, "1", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
String id = jsonObject.optJSONObject("data").optString("id");
|
Intent intent = new Intent(ReviseAccountActivity.this, WithdrawStatusActivity.class);
|
intent.putExtra("id", id);
|
startActivityForResult(intent, 1);
|
} else {
|
Toast.makeText(ReviseAccountActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
// SingleToast.showToast(ReviseAccountActivity.this, jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
tv_send.setEnabled(true);
|
}
|
});
|
}
|
|
/**
|
* 请求服务器匹配验证码
|
* 匹配成功后跳转到修改支付宝绑定的页面
|
*/
|
private void sendVerificationCode(String code) {
|
ShoppingApi.verifyvcodeforbind(ReviseAccountActivity.this, uid, code, phone, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
// SingleToast.showToast(ReviseAccountActivity.this, "请添加支付宝账号!");
|
Intent intent = new Intent(ReviseAccountActivity.this, AddZhifuBaoAccountActivity.class);
|
intent.putExtra("title", getIntent().getStringExtra("title"));
|
startActivity(intent);
|
finish();
|
} else if (jsonObject.optString("code").equalsIgnoreCase("90001")) {
|
VerificationCodeErrorDialog.Builder builder = new VerificationCodeErrorDialog.Builder(ReviseAccountActivity.this);
|
builder.setMessage("验证码错误").setTitle("温馨提示").setPositiveButton("知道了", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialogInterface, int i) {
|
dialogInterface.dismiss();
|
}
|
}).create().show();
|
} else {
|
Toast.makeText(ReviseAccountActivity.this, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
// SingleToast.showToast(ReviseAccountActivity.this, jsonObject.optString("msg"));
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
tv_send.setEnabled(true);
|
}
|
});
|
}
|
}
|