RegisterActivity.java 7.78 KB
package com.hjx.parent;

import android.content.Intent;
import android.os.Bundle;
import android.telephony.PhoneNumberUtils;
import android.text.InputType;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;

import com.google.gson.Gson;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.Permission;
import com.hjq.permissions.XXPermissions;
import com.hjx.parent.bean.RegisterBean;
import com.prws.common.base.BaseActivity;
import com.prws.common.base.BasePresenter;
import com.prws.common.bean.BaseEntity;
import com.prws.common.net.NetWorks;
import com.prws.common.utils.GsonUtil;
import com.prws.common.utils.LogUtil;
import com.prws.common.utils.SharedPreferencesUtil;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import com.uuzuche.lib_zxing.activity.CodeUtils;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import okhttp3.ResponseBody;

public class RegisterActivity extends BaseActivity {

    EditText et_phone;
    EditText et_pwd;
    EditText et_pwd_2;
    ImageView iv_show;
    ImageView iv_show_2;
    ImageView iv_delete;
    Button btn_reg;
    TextView tv_log;
    CheckBox cb_1;
    TextView tv_user;
    TextView tv_ys;


    @Override
    protected int layoutResId() {
        return R.layout.activity_register;
    }

    @Override
    public Object getContract() {
        return null;
    }

    @Override
    public BasePresenter getPresenter() {
        return null;
    }

    @Override
    protected void initView() {
        et_phone = findViewById(R.id.et_phone);
        et_pwd = findViewById(R.id.et_pwd);
        iv_show = findViewById(R.id.iv_4);
        iv_show_2 = findViewById(R.id.iv_6);
        et_pwd_2 = findViewById(R.id.et_pwd_2);
        iv_delete = findViewById(R.id.iv_2);
        btn_reg = findViewById(R.id.btn_1);
        tv_log = findViewById(R.id.tv_2);
        cb_1 = findViewById(R.id.cb_1);
        tv_user = findViewById(R.id.tv_4);
        tv_ys = findViewById(R.id.tv_6);


    }

    @Override
    protected void initListener() {
        iv_delete.setOnClickListener(view -> {
            et_phone.setText("");
        });
        iv_show.setOnClickListener(view -> {

            if (iv_show.getBackground().getConstantState().equals(getDrawable(R.mipmap.xs).getConstantState())) {
                iv_show.setBackgroundResource(R.mipmap.yc);
                et_pwd.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
            } else {
                iv_show.setBackgroundResource(R.mipmap.xs);
                et_pwd.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
            }


        });

        iv_show_2.setOnClickListener(view -> {

            if (iv_show_2.getBackground().getConstantState().equals(getDrawable(R.mipmap.xs).getConstantState())) {
                iv_show_2.setBackgroundResource(R.mipmap.yc);
                et_pwd_2.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
            } else {
                iv_show_2.setBackgroundResource(R.mipmap.xs);
                et_pwd_2.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
            }


        });


        btn_reg.setOnClickListener(view -> {

            String phone = et_phone.getText().toString().trim();
            String pwd = et_pwd.getText().toString().trim();
            String pwd2 = et_pwd_2.getText().toString().trim();
            if (phone.isEmpty() || pwd.isEmpty() || phone.length() == 0 || pwd.length() == 0) {
                Toast.makeText(this, "手机号以及密码不能为空", Toast.LENGTH_SHORT).show();
                return;
            }

            if (!PhoneNumberUtils.isGlobalPhoneNumber(et_phone.getText().toString())) {
                Toast.makeText(this, "请输入正确的手机号码", Toast.LENGTH_SHORT).show();
                return;
            }

            if (!cb_1.isChecked()) {
                Toast.makeText(this, "请勾选协议", Toast.LENGTH_SHORT).show();
                return;
            }
            if (!pwd.equals(pwd2)) {
                Toast.makeText(this, "两次密码需要一致", Toast.LENGTH_SHORT).show();
                return;
            }

            reg(phone, pwd);

        });

        tv_log.setOnClickListener(view -> {
            startActivity(LoginActivity.class);
            finish();
        });

        tv_ys.setOnClickListener(view -> {
            startActivity(YinsiActivity.class);
        });
        tv_user.setOnClickListener(view -> {
            startActivity(UserActivity.class);
        });
    }

    public void reg(final String phone, String pwd) {

        Map map = new HashMap();
        map.put("username", phone);
        map.put("password", pwd);


        NetWorks.registerParent(NetWorks.getMapRequestBody(map), new Observer<ResponseBody>() {
            @Override
            public void onSubscribe(Disposable d) {

            }

            @Override
            public void onNext(ResponseBody responseBody) {
                String str = null;
                try {
                    str = responseBody.string();
                } catch (IOException e) {
                    e.printStackTrace();
                }

                if (str == null || str.length() == 0) {
                    Toast.makeText(RegisterActivity.this, "服务器繁忙", Toast.LENGTH_SHORT).show();
                    return;
                }

                RegisterBean registerBean = new Gson().fromJson(str, RegisterBean.class);

                if (!registerBean.isSuccess()) {
                    Toast.makeText(RegisterActivity.this, registerBean.getMsg(), Toast.LENGTH_SHORT).show();
                    return;
                }

                if (registerBean.getData().getUserName() != null && registerBean.getData().getUserName().length() > 0) {
                    SharedPreferencesUtil.putData("phone",phone);
                    SharedPreferencesUtil.putData("role",registerBean.getData().getUserName());
                    SharedPreferencesUtil.putData("userId",registerBean.getData().getUserName());

                    //进入扫码界面
                    goQRView();

                }


            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });
    }

    public void goQRView() {

        if (!XXPermissions.isGranted(this, Permission.CAMERA)) {
            XXPermissions.with(this)
                    // 申请多个权限
                    .permission(Permission.CAMERA)
                    .request(new OnPermissionCallback() {
                        @Override
                        public void onGranted(List<String> permissions, boolean all) {
                            if (all) {
                                //开启扫码界面
                                startQRView();

                            } else {
                                Toast.makeText(RegisterActivity.this, "需要相机权限", Toast.LENGTH_SHORT).show();
                            }
                        }

                        @Override
                        public void onDenied(List<String> permissions, boolean never) {
                            XXPermissions.startPermissionActivity(RegisterActivity.this, permissions);
                        }
                    });


        } else {
            startQRView();
        }


    }

    public void startQRView() {

        startActivity(QRActivity.class);
        finish();

    }



    @Override
    protected void initData() {

    }

    @Override
    public void onNetChanged(int netWorkState) {

    }
}