ElectronicCardValidationActivity.java 8.03 KB
package com.hjx.personalcenter.activity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import com.hjx.personalcenter.R;
import com.hjx.personalcenter.db.Content;
import com.hjx.personalcenter.db.SaveParam;
import com.hjx.personalcenter.http.HttpCode;
import com.hjx.personalcenter.http.HttpManager;
import com.hjx.personalcenter.util.AlertUtils;
import com.hjx.personalcenter.util.GetDevicesUtil;
import com.hjx.personalcenter.util.PhoneNumCheckUtils;

import org.json.JSONObject;

import java.util.TimerTask;

/**
 * Created by h on 2017/8/9.
 */

public class ElectronicCardValidationActivity extends FragmentActivity implements View.OnClickListener {
    private Button btn_card_valiyanzhen,get_authcode;
    private EditText phonenumber,anth_6num;//;//密码
    private TextView menu_title;
    private ImageView cancel;
    private  int delayTime=60;
    private java.util.Timer Delaytimer;
    private String sourceStr ="android";
    private String typeStr = "general";
    String authcode = "";
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
                JSONObject jsonObject;
                String status;
                switch (msg.what) {
                    case HttpCode.AUTHCODE_SUCESS:
                        jsonObject = (JSONObject) msg.obj;
                        status = jsonObject.optString("status");
                        authcode = jsonObject.optString("jsessionid");
                        if (status.equals("100")) {
                            AlertUtils.showToast(ElectronicCardValidationActivity.this, "验证码发送成功");
                        }

                        break;
                    case HttpCode.AUTHCODE_FAIL:
                        AlertUtils.showToast(ElectronicCardValidationActivity.this, "验证码发送失败");
                        break;
                    case 21:
                        if(delayTime<=0){
                            if(Delaytimer!=null){
                                Delaytimer.cancel();
                            }
                            get_authcode.setEnabled(true);
                            get_authcode.setClickable(true);
                            get_authcode.setText("获取验证码");
                            delayTime=60;
                        }else{
                            get_authcode.setEnabled(false);
                            get_authcode.setClickable(false);
                            get_authcode.setText(delayTime + " s");
                        }
                        break;
                }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_electroniccard_validation);
        SysApplication.getInstance().addActivity(this);
        initView();
        initData();
        initLister();
    }

    private void initView() {
        btn_card_valiyanzhen = (Button) findViewById(R.id.btn_card_valiyanzhen);
        get_authcode = (Button) findViewById(R.id.btn_authcode);
        anth_6num = (EditText) findViewById(R.id.et_authcode);
        phonenumber = (EditText) findViewById(R.id.et_phonenumber);
        menu_title = (TextView) findViewById(R.id.menu_title);
        cancel = (ImageView) findViewById(R.id.cancel);
    }

    private void initData() {
        if (Content.authcodeflag==1){
            menu_title.setText("更换绑定");
            btn_card_valiyanzhen.setText("确定");

        }else  if (Content.authcodeflag==2){
            menu_title.setText("修改保卡信息");
            btn_card_valiyanzhen.setText("确定");

        }else {
            menu_title.setText("填写保卡信息");
            btn_card_valiyanzhen.setText("下一步");
        }



    }

    private void initLister() {
        get_authcode.setOnClickListener(this);
        btn_card_valiyanzhen.setOnClickListener(this);
        cancel.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_card_valiyanzhen:

                String usernameStr = phonenumber.getText().toString().trim();
                String authcodeStr = anth_6num.getText().toString().trim();
                if (TextUtils.isEmpty(usernameStr) || TextUtils.isEmpty(authcodeStr)) {
                    AlertUtils.showToast(ElectronicCardValidationActivity.this, "手机号,和验证码不能为空");
                    return;
                } else if (!PhoneNumCheckUtils.isPhone(usernameStr)){
                    AlertUtils.showToast(ElectronicCardValidationActivity.this, "手机号码输入错误");

                }else if (!authcode.equals(authcodeStr)){
                    AlertUtils.showToast(ElectronicCardValidationActivity.this, "您输入的验证码不正确");
                }else {
                    String userID = SaveParam.getInstance().getLoginParam(this,"userId");
                    Long auserID = null;
                    try {
                        auserID = Long.parseLong(userID);
                    } catch (NumberFormatException e) {
                        e.printStackTrace();
                    }
                    if (Content.authcodeflag==1){
                        //修改账户手机号
                        HttpManager.getInstance().changeaccountphone(this,
                                auserID,usernameStr,authcodeStr);

                    }else  if (Content.authcodeflag==2){
                        //修改保卡手机号
                        String userID22 = GetDevicesUtil.getDevicesInfo(this).getDeviceNumber();
                        HttpManager.getInstance().changecardinfophone(this,
                                userID22,usernameStr,authcodeStr);
                    }else {
                        String phone =phonenumber.getText().toString().trim();
                        SaveParam.getInstance().saveCustomizeParam(this,SaveParam.CARDPHONE, phone );
                        Intent intent = new Intent();
                        intent.setClass(ElectronicCardValidationActivity.this, ElectronicCardEditInfoActivity.class);
                        startActivity(intent);
                        overridePendingTransition(R.anim.rightin, R.anim.rightout);
                    }
//                    SaveParam.getInstance().saveLoginParam(this,SaveParam.CARDPHONE,  phonenumber.getText().toString().trim());
//                    Intent intent = new Intent();
//                    intent.setClass(ElectronicCardValidationActivity.this, ElectronicCardEditInfoActivity.class);
//                    startActivity(intent);
//                    overridePendingTransition(R.anim.rightin, R.anim.rightout);
                }
                break;
            case R.id.btn_authcode:
                String usernameStr1 = phonenumber.getText().toString().trim();
                if (!PhoneNumCheckUtils.isPhone(usernameStr1)){
                    AlertUtils.showToast(ElectronicCardValidationActivity.this, "请输入正确的手机号");
                }else {
                    anth_6num.requestFocus();
                    HttpManager.getInstance().authCode(typeStr, usernameStr1, handler, ElectronicCardValidationActivity.this);
                    valiDelay();

                }

                break;
            case R.id.cancel:
                finish();
                break;
        }
    }
    // 线程类 定时器
    public void valiDelay() {

        Delaytimer = new java.util.Timer(true);


        TimerTask task = new TimerTask() {
            public void run() {
                //每次需要执行的代码放到这里面。
                delayTime--;
                handler.sendEmptyMessage(21);
            }
        };
        Delaytimer.schedule(task, 1000,1000);
    }
}