|
|
@@ -0,0 +1,671 @@
|
|
|
+package com.kfzs.duanduan;
|
|
|
+
|
|
|
+import android.content.ContentValues;
|
|
|
+import android.content.Intent;
|
|
|
+import android.net.Uri;
|
|
|
+import android.os.Build;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.support.design.widget.TextInputEditText;
|
|
|
+import android.support.design.widget.TextInputLayout;
|
|
|
+import android.text.InputFilter;
|
|
|
+import android.text.InputType;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.text.method.DigitsKeyListener;
|
|
|
+import android.view.KeyEvent;
|
|
|
+import android.view.View;
|
|
|
+import android.view.Window;
|
|
|
+import android.view.WindowManager;
|
|
|
+import android.view.inputmethod.EditorInfo;
|
|
|
+import android.widget.Button;
|
|
|
+import android.widget.EditText;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.TextView;
|
|
|
+
|
|
|
+import com.android.volleyplus.Response;
|
|
|
+import com.android.volleyplus.VolleyError;
|
|
|
+import com.kf.utils.ToastBuilder;
|
|
|
+import com.kfzs.android.view.widget.MDLCheckBox;
|
|
|
+import com.kfzs.appstore.utils.restful.KFZSNetwork;
|
|
|
+import com.kfzs.appstore.utils.restful.KFZSRestfulError;
|
|
|
+import com.kfzs.appstore.utils.restful.KFZSRestfulErrorCallBack;
|
|
|
+import com.kfzs.appstore.utils.sys.InputMethodUtils;
|
|
|
+import com.kfzs.duanduan.bll.UrlBll;
|
|
|
+import com.kfzs.duanduan.data.graph.provider.current.Current;
|
|
|
+import com.kfzs.duanduan.data.graph.provider.player.User;
|
|
|
+import com.kfzs.duanduan.datashare.DDProviderHelper;
|
|
|
+import com.kfzs.duanduan.datashare.KFZSDDContentSession;
|
|
|
+import com.kfzs.duanduan.datashare.YogConfig;
|
|
|
+import com.kfzs.duanduan.datashare.provider.session.SessionBean;
|
|
|
+import com.kfzs.duanduan.db.DataSave;
|
|
|
+import com.kfzs.duanduan.event.AuthEvent;
|
|
|
+import com.kfzs.duanduan.event.BigEvent;
|
|
|
+import com.kfzs.duanduan.event.EventTypes;
|
|
|
+import com.kfzs.duanduan.event.ReStartEvent;
|
|
|
+import com.kfzs.duanduan.fragment.AuthLoginFragment;
|
|
|
+import com.kfzs.duanduan.proto.ApiRequestOuterClass;
|
|
|
+import com.kfzs.duanduan.proto.ApiResponseOuterClass;
|
|
|
+import com.kfzs.duanduan.proto.Session;
|
|
|
+import com.kfzs.duanduan.proto.UserOuterClass;
|
|
|
+import com.kfzs.duanduan.utils.net.APIRequest;
|
|
|
+import com.kfzs.duanduan.utils.net.APIRequestInstance;
|
|
|
+import com.kfzs.duanduan.utils.net.AuthRequestBytes;
|
|
|
+import com.kfzs.duanduan.utils.net.UITextUtils;
|
|
|
+import com.kfzs.duanduan.view.OneMinuteCountDownTimer;
|
|
|
+import com.sheep.jiuyan.samllsheep.R;
|
|
|
+
|
|
|
+import org.greenrobot.eventbus.EventBus;
|
|
|
+
|
|
|
+import java.util.HashMap;
|
|
|
+
|
|
|
+import mdl.sinlov.android.log.ALog;
|
|
|
+
|
|
|
+import static com.kfzs.duanduan.ActLogin.KEY_LOGIN_TYPE;
|
|
|
+import static com.kfzs.duanduan.ActLogin.LOGIN_TYPE_IS_APP_LOGIN;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @ Created by Dlg
|
|
|
+ * @ <p>TiTle: ActRegist</p>
|
|
|
+ * @ <p>Description:移植过来的,代码恶心不背锅</p>
|
|
|
+ * @ date: 2018/1/24 17:33
|
|
|
+ * @ QQ: 315096953
|
|
|
+ */
|
|
|
+
|
|
|
+public class ActRegist extends BaseCompatActivity implements View.OnClickListener {
|
|
|
+
|
|
|
+ private TextInputLayout etUserName;
|
|
|
+ private TextInputEditText etCaptchaPhone;
|
|
|
+ private TextInputEditText etPassword;
|
|
|
+ private TextInputEditText etPasswordOnceMore;
|
|
|
+ private TextInputEditText etInviteCode;
|
|
|
+ private TextView btnCaptchaPhone;
|
|
|
+ private Button btnRegister;
|
|
|
+ private MDLCheckBox ckClause;
|
|
|
+ private TextView tvShowClause;
|
|
|
+ private TextView tvSkip2RegisterByUserName;
|
|
|
+ private LinearLayout mLayoutValicode;
|
|
|
+
|
|
|
+ private boolean isRegistering = false;
|
|
|
+ private boolean canGetCaptchaPhone = true;
|
|
|
+ private OneMinuteCountDownTimer countDownGetCaptchaPhone;
|
|
|
+ private String agreementKuaifaAssentClause;
|
|
|
+ private String Token;
|
|
|
+ private int loginFrom = ActLogin.LOGIN_TYPE_IS_APP_LOGIN;
|
|
|
+ private boolean mIsRegistNick = false;//是否为用户名注册
|
|
|
+ private LinearLayout mLayoutFirstStep;
|
|
|
+ private LinearLayout mLayoutSecondStep;
|
|
|
+ private Bundle extras;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onCreate(Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+ requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
|
|
|
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
|
|
|
+ WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏
|
|
|
+ extras = getIntent().getExtras();
|
|
|
+ if (extras == null) {
|
|
|
+ extras = new Bundle();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ setContentView(R.layout.act_regist);
|
|
|
+ if (getIntent().hasExtra(KEY_LOGIN_TYPE)) {
|
|
|
+ loginFrom = getIntent().getIntExtra(KEY_LOGIN_TYPE, LOGIN_TYPE_IS_APP_LOGIN);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ agreementKuaifaAssentClause = getString(R.string.toast_user_login_act_please_agreement_kuaifa_assent_clause) + getString(R.string.str_public_html_clause) + "!";
|
|
|
+ initViewByID();
|
|
|
+ setListeners();
|
|
|
+ if (Build.VERSION.SDK_INT > 20) {
|
|
|
+ findViewByIdT(R.id.img_act_regist_back)
|
|
|
+ .setPadding(0, G.getRealPix(25), 0, 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initViewByID() {
|
|
|
+ this.mLayoutFirstStep = findViewById(R.id.layout_act_regist_first);
|
|
|
+ this.mLayoutSecondStep = findViewById(R.id.layout_act_regist_second);
|
|
|
+ this.mLayoutValicode = findViewById(R.id.layout_act_regist_valicode);
|
|
|
+ this.etUserName = findViewById(R.id.et_fgt_register_phone_username);
|
|
|
+ this.etCaptchaPhone = findViewById(R.id.et_fgt_register_phone_captcha_phone);
|
|
|
+ this.etPassword = findViewById(R.id.et_fgt_register_phone_password);
|
|
|
+ this.etPasswordOnceMore = findViewById(R.id.et_fgt_register_phone_password_once_more);
|
|
|
+ this.btnCaptchaPhone = findViewById(R.id.btn_fgt_register_phone_get_captcha_phone);
|
|
|
+ this.btnRegister = findViewById(R.id.btn_fgt_register_phone_action);
|
|
|
+ this.ckClause = findViewById(R.id.ck_fgt_register_phone_clause);
|
|
|
+ this.tvShowClause = findViewById(R.id.tv_fgt_register_phone_clause);
|
|
|
+ this.tvSkip2RegisterByUserName = findViewById(R.id.tv_fgt_register_phone_skip_register_fgt_ordinary);
|
|
|
+ this.etInviteCode = findViewById(R.id.et_flage_invite_code);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setListeners() {
|
|
|
+ findViewByIdT(R.id.img_act_regist_back).setOnClickListener(this);
|
|
|
+ btnCaptchaPhone.setOnClickListener(this);
|
|
|
+ btnRegister.setOnClickListener(this);
|
|
|
+ tvSkip2RegisterByUserName.setOnClickListener(this);
|
|
|
+ tvShowClause.setOnClickListener(this);
|
|
|
+ setEtOnEditorAction();
|
|
|
+ countDownGetCaptchaPhone = new OneMinuteCountDownTimer() {
|
|
|
+ @Override
|
|
|
+ public void onTimerRest() {
|
|
|
+ canGetCaptchaPhone = true;
|
|
|
+ btnCaptchaPhone.setText(getString(R.string.getvalicode));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onTimerTick(long millisUntilFinished, int countTime) {
|
|
|
+ String text = countTime + " s";
|
|
|
+ btnCaptchaPhone.setText(text);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onTimerFinish() {
|
|
|
+ canGetCaptchaPhone = true;
|
|
|
+ btnCaptchaPhone.setText(getString(R.string.getvalicode));
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ int id = v.getId();
|
|
|
+ switch (id) {
|
|
|
+ case R.id.btn_fgt_register_phone_get_captcha_phone:
|
|
|
+ postGetCaptchaPhone();
|
|
|
+ break;
|
|
|
+ case R.id.btn_fgt_register_phone_action:
|
|
|
+ registerByStatus();
|
|
|
+ break;
|
|
|
+ case R.id.tv_fgt_register_phone_skip_register_fgt_ordinary:
|
|
|
+ mIsRegistNick = !mIsRegistNick;
|
|
|
+ this.etUserName.getEditText().setText("");
|
|
|
+ if (mIsRegistNick) {
|
|
|
+ tvSkip2RegisterByUserName.setText(R.string.tv_user_login_act_user_register_phone);
|
|
|
+ mLayoutValicode.setVisibility(View.INVISIBLE);
|
|
|
+ this.etUserName.setHint(getString(R.string.hint_user_et_login_act_username));
|
|
|
+ this.etUserName.getEditText().setInputType(InputType.TYPE_TEXT_VARIATION_FILTER);
|
|
|
+ this.etUserName.getEditText().setKeyListener(DigitsKeyListener
|
|
|
+ .getInstance(getString(R.string.digits_username)));
|
|
|
+
|
|
|
+ InputFilter[] filters = {new InputFilter
|
|
|
+ .LengthFilter(getResources().getInteger(R.integer.size_max_user_name))};
|
|
|
+ this.etUserName.getEditText().setFilters(filters);
|
|
|
+ } else {
|
|
|
+ tvSkip2RegisterByUserName.setText(R.string.tv_user_login_act_user_register_ordinary);
|
|
|
+ mLayoutValicode.setVisibility(View.VISIBLE);
|
|
|
+ this.etUserName.setHint(getString(R.string.hint_user_et_login_act_phone_hint));
|
|
|
+ this.etUserName.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
|
|
|
+
|
|
|
+ InputFilter[] filters = {new InputFilter
|
|
|
+ .LengthFilter(getResources().getInteger(R.integer.size_phone_number))};
|
|
|
+ this.etUserName.getEditText().setFilters(filters);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case R.id.tv_fgt_register_phone_clause:
|
|
|
+ Uri uri = Uri.parse(getString(R.string.str_public_html_clause_url));
|
|
|
+ Intent intent = new Intent(Intent.ACTION_VIEW, uri);
|
|
|
+ startActivity(intent);
|
|
|
+ break;
|
|
|
+ case R.id.img_act_regist_back:
|
|
|
+ if (mLayoutSecondStep.getVisibility() == View.VISIBLE) {
|
|
|
+ mLayoutSecondStep.setVisibility(View.GONE);
|
|
|
+ mLayoutFirstStep.setVisibility(View.VISIBLE);
|
|
|
+ btnRegister.setText("下一步");
|
|
|
+ } else {
|
|
|
+ finish();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setEtOnEditorAction() {
|
|
|
+ TextView.OnEditorActionListener onRegisterEditorActionListener = new EditText.OnEditorActionListener() {
|
|
|
+ @Override
|
|
|
+ public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
|
|
+ if (null != event) {
|
|
|
+ if (event.getKeyCode() == KeyEvent.KEYCODE_ENTER || EditorInfo.IME_ACTION_GO == event.getAction()) {
|
|
|
+ if (KeyEvent.ACTION_UP == event.getAction()) {
|
|
|
+ InputMethodUtils.closeInputPan(ActRegist.this);
|
|
|
+ registerByStatus();
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ etPasswordOnceMore.setOnEditorActionListener(onRegisterEditorActionListener);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void postGetCaptchaPhone() {
|
|
|
+ if (!canGetCaptchaPhone) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ countDownGetCaptchaPhone.reset();
|
|
|
+ if (checkUserWithPhone()) {
|
|
|
+ byte[] captchaPhoneBytes;
|
|
|
+ String phoneNum = etUserName.getEditText().getText().toString().trim();
|
|
|
+ String inviationCode = etInviteCode.getText().toString().trim();
|
|
|
+
|
|
|
+ captchaPhoneBytes = AuthRequestBytes.getInstance()
|
|
|
+ .buildRegisterBytes(null, phoneNum, inviationCode, "",
|
|
|
+ null, Session.RegisterStepCodes.CaptchaPhone_VALUE, null);
|
|
|
+ Response.ErrorListener errorListener = KFZSRestfulError.toast(KFZSApp.context, new KFZSRestfulErrorCallBack() {
|
|
|
+ @Override
|
|
|
+ public void callErrorJob(boolean flag, int code, VolleyError error) {
|
|
|
+ canGetCaptchaPhone = true;
|
|
|
+ countDownGetCaptchaPhone.reset();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ APIRequest postReqCaptchaPhone = APIRequestInstance.postReq(TAG, UrlBll.AuthApi.REGISTER, null, captchaPhoneBytes,
|
|
|
+ new OnCaptchaPhone(), errorListener);
|
|
|
+ KFZSNetwork.addRequest(postReqCaptchaPhone);
|
|
|
+ canGetCaptchaPhone = false;
|
|
|
+ countDownGetCaptchaPhone.start();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean checkUserWithPhone() {
|
|
|
+ if (UITextUtils.isEditTextEmpty(etUserName.getEditText())) {
|
|
|
+ showToast(R.string.tv_user_login_act_please_input_phone_error, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ String phoneNumber = etUserName.getEditText().getText().toString().trim();
|
|
|
+ if (phoneNumber.length() != getResources().getInteger(R.integer.size_phone_number)) {
|
|
|
+ showToast(R.string.toast_warning_phone_number_size, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!phoneNumber.matches("^\\d{11}$")) {
|
|
|
+ showToast(R.string.toast_warning_phone_number_error, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void registerByStatus() {
|
|
|
+ if (mLayoutFirstStep.getVisibility() == View.VISIBLE) {
|
|
|
+ if (mIsRegistNick && etUserName.getEditText().length() < 4) {
|
|
|
+ showToast("用户名至少输入4位哦");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!mIsRegistNick && etUserName.getEditText().length() < 11) {
|
|
|
+ showToast("请输入11位手机号");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!mIsRegistNick && etCaptchaPhone.length()
|
|
|
+ != getResources().getInteger(R.integer.size_phone_captcha_image_code)) {
|
|
|
+ showToast("请先正确输入验证码哦");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ mLayoutFirstStep.setVisibility(View.GONE);
|
|
|
+ mLayoutSecondStep.setVisibility(View.VISIBLE);
|
|
|
+ btnRegister.setText(R.string.btn_user_register_action);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!isRegistering) {
|
|
|
+ postRegister();
|
|
|
+ } else {
|
|
|
+ showToast(R.string.toast_user_login_act_is_register, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void postRegister() {
|
|
|
+ if (checkRegisterParams()) {
|
|
|
+ String pwd = etPassword.getText().toString().trim();
|
|
|
+ String pwdOnceMore = etPasswordOnceMore.getText().toString().trim();
|
|
|
+ if (pwd.equals(pwdOnceMore)) {
|
|
|
+ Response.ErrorListener errorListener = KFZSRestfulError.toast(KFZSApp.context,
|
|
|
+ new KFZSRestfulErrorCallBack() {
|
|
|
+ @Override
|
|
|
+ public void callErrorJob(boolean flag, int code, VolleyError error) {
|
|
|
+ isRegistering = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ byte[] registerBytes;
|
|
|
+ String userName = etUserName.getEditText().getText().toString().trim();
|
|
|
+ String captchaPhone = null;
|
|
|
+ if (!mIsRegistNick) {
|
|
|
+ captchaPhone = etCaptchaPhone.getText().toString().trim();
|
|
|
+ }
|
|
|
+ String inviationCode = etInviteCode.getText().toString().trim();
|
|
|
+
|
|
|
+ registerBytes = AuthRequestBytes.getInstance().buildRegisterBytes(pwdOnceMore,
|
|
|
+ userName, inviationCode, "", null,
|
|
|
+ Session.RegisterStepCodes.RegisterByCaptchaPhone_VALUE, captchaPhone);
|
|
|
+
|
|
|
+ APIRequest apiRequest = APIRequestInstance.postReq(TAG, UrlBll.AuthApi.REGISTER,
|
|
|
+ null, registerBytes,
|
|
|
+ new OnRegisterByPhone(), errorListener);
|
|
|
+ KFZSNetwork.addRequest(apiRequest);
|
|
|
+ isRegistering = true;
|
|
|
+ } else {
|
|
|
+ showToast(R.string.toast_user_login_act_multi_password_difference, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private boolean checkRegisterParams() {
|
|
|
+ if (!ckClause.isChecked()) {
|
|
|
+ showToast(agreementKuaifaAssentClause, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (UITextUtils.isEditTextEmpty(etUserName.getEditText())) {
|
|
|
+ showToast(R.string.tv_user_login_act_please_input_username, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (mIsRegistNick) {
|
|
|
+ String phoneNumber = etUserName.getEditText().getText().toString().trim();
|
|
|
+ if (phoneNumber.length() < getResources().getInteger(R.integer.size_less_user_name)) {
|
|
|
+ showToast(R.string.toast_warning_user_name_less);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!phoneNumber.matches("^[a-zA-Z].*")) {
|
|
|
+ showToast(R.string.toast_warning_user_name_start, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ String phoneNumber = etUserName.getEditText().getText().toString().trim();
|
|
|
+ if (phoneNumber.length() != getResources().getInteger(R.integer.size_phone_number)) {
|
|
|
+ showToast(R.string.toast_warning_phone_number_size, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (!phoneNumber.matches("^\\d{11}$")) {
|
|
|
+ showToast(R.string.toast_warning_phone_number_error, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ }
|
|
|
+ if (UITextUtils.isEditTextEmpty(etCaptchaPhone)) {
|
|
|
+ showToast(R.string.tv_user_login_act_please_input_captcha_phone, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ if (etCaptchaPhone.getText().toString().trim().length()
|
|
|
+ != getResources().getInteger(R.integer.size_phone_captcha_image_code)) {
|
|
|
+ showToast(R.string.toast_warning_captcha_image_code_size);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (UITextUtils.isEditTextEmpty(etPassword)) {
|
|
|
+ showToast(R.string.tv_user_login_act_please_input_password, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ String pwd = etPassword.getText().toString().trim();
|
|
|
+ if (pwd.length() < getResources().getInteger(R.integer.size_less_password)) {
|
|
|
+ showToast(R.string.toast_warning_password_less);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (UITextUtils.isEditTextEmpty(etPasswordOnceMore)) {
|
|
|
+ showToast(R.string.tv_user_login_act_please_input_password_once_more, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ return false;
|
|
|
+ } else {
|
|
|
+ if (etPassword.getText().toString().trim().length()
|
|
|
+ < getResources().getInteger(R.integer.size_less_password)) {
|
|
|
+ showToast(R.string.toast_warning_password_less);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private class OnRegisterByPhone implements Response.Listener<ApiResponseOuterClass.ApiResponse> {
|
|
|
+ @Override
|
|
|
+ public void onResponse(ApiResponseOuterClass.ApiResponse apiResponse) {
|
|
|
+ ALog.d(apiResponse.toString());
|
|
|
+ isRegistering = false;
|
|
|
+ int codeValue = apiResponse.getCodeValue();
|
|
|
+ switch (codeValue) {
|
|
|
+ case ApiResponseOuterClass.Codes.Success_VALUE:
|
|
|
+ showToast(R.string.toast_user_login_act_register_success, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ // skip2JobFgt(ActAuth.JOB_CODE_LOGIN);
|
|
|
+// setLoginCannel();
|
|
|
+ autoLogin();
|
|
|
+ break;
|
|
|
+ case ApiResponseOuterClass.Codes.Capt_Err_VALUE:
|
|
|
+ showToast(apiResponse.getMsg(), ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ showToast(apiResponse.getMsg(), ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //注册成功,自动登录;
|
|
|
+ private void autoLogin() {
|
|
|
+ AuthEvent.setRegisterback("");
|
|
|
+ postLoginByNetwork(etUserName.getEditText().getText().toString().trim(),
|
|
|
+ etPasswordOnceMore.getText().toString().trim(), "");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void postLoginByNetwork(String account, String psd, String captcha) {
|
|
|
+ Response.ErrorListener errorListener = KFZSRestfulError.toast(KFZSApp.context, new KFZSRestfulErrorCallBack() {
|
|
|
+ @Override
|
|
|
+ public void callErrorJob(boolean flag, int code, VolleyError error) {
|
|
|
+ ALog.d("code: " + code + " | errorMsg: " + error.getMessage());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ApiRequestOuterClass.ApiRequest.Builder builder = ApiRequestOuterClass.ApiRequest.newBuilder();
|
|
|
+ Session.SessionIn.Builder sessionBuild = Session.SessionIn.newBuilder();
|
|
|
+ sessionBuild.setAccount(account);
|
|
|
+ sessionBuild.setCaptcha(captcha);
|
|
|
+ sessionBuild.setCaptchaKey("");
|
|
|
+ sessionBuild.setPwd(psd);
|
|
|
+ Session.SessionIn session = sessionBuild.build();
|
|
|
+ builder.setSessionIn(session);
|
|
|
+ ApiRequestOuterClass.ApiRequest apiRequest1 = builder.build();
|
|
|
+ APIRequest loginReq = APIRequestInstance.postReq(TAG, UrlBll.AuthApi.LOGIN,
|
|
|
+ null, apiRequest1.toByteArray(), new ResponseAuthLogin(account), errorListener);
|
|
|
+ KFZSNetwork.addRequest(loginReq);
|
|
|
+ }
|
|
|
+
|
|
|
+ private class ResponseAuthLogin implements Response.Listener<ApiResponseOuterClass.ApiResponse> {
|
|
|
+
|
|
|
+ private final String account;
|
|
|
+
|
|
|
+ public ResponseAuthLogin(String account) {
|
|
|
+ this.account = account;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onResponse(ApiResponseOuterClass.ApiResponse apiResponse) {
|
|
|
+ ALog.d(apiResponse.toString());
|
|
|
+ int code = apiResponse.getCodeValue();
|
|
|
+ switch (code) {
|
|
|
+
|
|
|
+ case ApiResponseOuterClass.Codes.Success_VALUE:
|
|
|
+ Session.SessionOut sessionOut = apiResponse.getSessionOut();
|
|
|
+ String openId = sessionOut.getOpenId();
|
|
|
+ KFZSDDContentSession.getInstance().insertOrUpdateSession(ActRegist.this, account,
|
|
|
+ openId, sessionOut.getUid(), sessionOut.getToken());
|
|
|
+ Token = sessionOut.getToken();
|
|
|
+ popHeadSessionUserGraphInfo(sessionOut.getToken());
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ showToast(R.string.toast_user_login_act_login_error_repeat, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void popHeadSessionUserGraphInfo(String uid) {
|
|
|
+ SessionBean saveHeadSessionInMem = KFZSDDContentSession.getInstance().getSaveHeadSessionInMem();
|
|
|
+ String token = saveHeadSessionInMem.getToken();
|
|
|
+ ALog.d("Auth popHeadToken: " + token);
|
|
|
+ if (TextUtils.isEmpty(token)) {
|
|
|
+ showToast(R.string.toast_user_info_you_sign_error);
|
|
|
+ KFZSDDContentSession.getInstance().removeHeadSession(this);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Response.ErrorListener errorListener = KFZSRestfulError.toast(this, new KFZSRestfulErrorCallBack() {
|
|
|
+ @Override
|
|
|
+ public void callErrorJob(boolean flag, int code, VolleyError error) {
|
|
|
+ showToast(R.string.toast_user_login_act_login_error_repeat);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ HashMap<String, String> params = new HashMap<>();
|
|
|
+ params.put(UrlBll.HeadParams.AUTHORIZATION, token);
|
|
|
+ APIRequest userSelfRequest = APIRequestInstance.getReq(TAG, UrlBll.UserApi.SELF, params,
|
|
|
+ new OnHeadSessionUserGraph(uid), errorListener);
|
|
|
+ KFZSNetwork.addRequest(userSelfRequest);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private class OnCaptchaPhone implements Response.Listener<ApiResponseOuterClass.ApiResponse> {
|
|
|
+ @Override
|
|
|
+ public void onResponse(ApiResponseOuterClass.ApiResponse apiResponse) {
|
|
|
+ ALog.d(apiResponse.toString());
|
|
|
+ int codeValue = apiResponse.getCodeValue();
|
|
|
+ switch (codeValue) {
|
|
|
+ case ApiResponseOuterClass.Codes.Success_VALUE:
|
|
|
+ showToast(R.string.toast_user_login_act_register_captcha_phone_success, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ break;
|
|
|
+ case ApiResponseOuterClass.Codes.Capt_Err_VALUE:
|
|
|
+ showToast(apiResponse.getMsg(), ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ countDownGetCaptchaPhone.reset();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ showToast(apiResponse.getMsg(), ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ countDownGetCaptchaPhone.reset();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private class OnHeadSessionUserGraph implements Response.Listener<ApiResponseOuterClass.ApiResponse> {
|
|
|
+ String token;
|
|
|
+
|
|
|
+ public OnHeadSessionUserGraph(String uid) {
|
|
|
+ this.token = uid;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onResponse(ApiResponseOuterClass.ApiResponse apiResponse) {
|
|
|
+ ALog.d(apiResponse.toString());
|
|
|
+ int codeValue = apiResponse.getCodeValue();
|
|
|
+ switch (codeValue) {
|
|
|
+ case ApiResponseOuterClass.Codes.Success_VALUE:
|
|
|
+ UserOuterClass.User user = apiResponse.getUser();
|
|
|
+ if (user != null) {
|
|
|
+ filterByDifferentLoginType(user, token);
|
|
|
+ } else {
|
|
|
+ showToast(R.string.toast_user_login_act_login_error_repeat, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ApiResponseOuterClass.Codes.Unauthorized_VALUE:
|
|
|
+ ALog.d("Auth popHeadToken: Unauthorized_VALUE");
|
|
|
+ showToast(R.string.toast_user_login_act_login_error_repeat, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ showToast(R.string.toast_user_login_act_login_error_repeat, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void filterByDifferentLoginType(UserOuterClass.User user, String token) {
|
|
|
+ InputMethodUtils.closeInputPan(ActRegist.this);
|
|
|
+ EventBus eventBus = EventBus.getDefault();
|
|
|
+
|
|
|
+ loginFrom = 1;
|
|
|
+ switch (loginFrom) {
|
|
|
+ case AuthLoginFragment.LOGIN_TYPE_IS_CERTIFICATION://游戏认证登录;
|
|
|
+ upDateUserInfo(user, token, false);
|
|
|
+ setPlayer(user, token);
|
|
|
+ extras.putInt(ActGameCertification.SKIP_CODE_USER_BEHAVIOR, ActGameCertification.JOB_CHANGE_ACCOUNT_TOKEN_SUCCESS);
|
|
|
+ extras.putBoolean(getString(R.string.kfzs_duanduan_datashare_certificationed), true);
|
|
|
+ extras.putString(getString(R.string.kfzs_duanduan_datashare_certification_userid), String.valueOf(user.getId()));
|
|
|
+ extras.putString(getString(R.string.kfzs_duanduan_datashare_certification_token), token);
|
|
|
+ skip2Activity(ActGameCertification.class, extras);
|
|
|
+ this.finish();
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ eventBus.post(BigEvent.get().setEventTypes(EventTypes.USER_LOGIN_SUCC));
|
|
|
+ ReStartEvent event = new ReStartEvent();
|
|
|
+ event.setReStart(true);
|
|
|
+ EventBus.getDefault().post(event);
|
|
|
+ showToast(R.string.toast_user_login_act_login_success, ToastBuilder.MIDDLE_TOAST_SINGLE);
|
|
|
+ if (null != countDownGetCaptchaPhone) {
|
|
|
+ countDownGetCaptchaPhone.reset();
|
|
|
+ }
|
|
|
+ ActRegist.this.finish();
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //游戏授权 保存数据;
|
|
|
+ public void setPlayer(UserOuterClass.User user, String token) {
|
|
|
+ ContentValues values = new ContentValues();
|
|
|
+ values.put(YogConfig.Player.TOKEN, token);
|
|
|
+ values.put(YogConfig.Player.DD_USERID, String.valueOf(user.getId()));
|
|
|
+ values.put(YogConfig.Player.OPENID, user.getOpenId());
|
|
|
+ values.put(YogConfig.Player.USERNAME, user.getName());
|
|
|
+ values.put(YogConfig.Player.CHANNEL, DataSave.getInstance().getChannelName());
|
|
|
+ String gameCode = KFZSApp.getInstance().GameCode;
|
|
|
+
|
|
|
+ try {
|
|
|
+ DDProviderHelper.getInstance().insertOrUpdatePalyer(this, values, gameCode);
|
|
|
+ DDProviderHelper.getInstance().setGameLastPalyer(this, String.valueOf(user.getOpenId()), gameCode);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //补全用户信息到数据库;
|
|
|
+ public void upDateUserInfo(UserOuterClass.User user, String token, boolean isApp) {
|
|
|
+ int id = user.getId();
|
|
|
+ if (isApp) {
|
|
|
+ Current lastUser = DDProviderHelper.getInstance().getLastUser(this);
|
|
|
+ if (lastUser == null)
|
|
|
+ lastUser = new Current();
|
|
|
+ lastUser.setMUserId(String.valueOf(id));
|
|
|
+ lastUser.setMUserName(user.getName());
|
|
|
+ lastUser.setMVipType(user.getVipType());
|
|
|
+ lastUser.setMNickName(user.getNickname());
|
|
|
+ lastUser.setMMobile(user.getPhone());
|
|
|
+ lastUser.setMOpenId(user.getOpenId());
|
|
|
+ lastUser.setMUpdateTime(String.valueOf(user.getUpdatedTime()));
|
|
|
+ lastUser.setMAvatar(user.getAvatar());
|
|
|
+ lastUser.setMToken(token);
|
|
|
+
|
|
|
+ DDProviderHelper.getInstance().setLastUser(this, lastUser);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ User player = DDProviderHelper.getInstance().getUser(this, String.valueOf(id));
|
|
|
+ if (player == null)
|
|
|
+ player = new User();
|
|
|
+ player.setMUserId(String.valueOf(id));
|
|
|
+ player.setMUserName(user.getName());
|
|
|
+ player.setMVipType(user.getVipType());
|
|
|
+ player.setMNickName(user.getNickname());
|
|
|
+ player.setMMobile(user.getPhone());
|
|
|
+ player.setMOpenId(user.getOpenId());
|
|
|
+ player.setMUpdateTime(String.valueOf(user.getUpdatedTime()));
|
|
|
+ player.setMAvatar(user.getAvatar());
|
|
|
+ player.setMToken(token);
|
|
|
+
|
|
|
+ DDProviderHelper.getInstance().addOrUpdateUser(this, player);
|
|
|
+ if (!TextUtils.isEmpty(KFZSApp.getInstance().GameCode)) {
|
|
|
+ DDProviderHelper.getInstance().addOrUpdatePlayer(this, player, KFZSApp.getInstance().GameCode);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
|
+ if (keyCode == KeyEvent.KEYCODE_BACK
|
|
|
+ && event.getAction() == KeyEvent.ACTION_DOWN
|
|
|
+ && mIsRegistNick) {
|
|
|
+ findViewById(R.id.img_act_regist_back).performClick();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return super.onKeyDown(keyCode, event);
|
|
|
+ }
|
|
|
+}
|