You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
360 lines
12 KiB
360 lines
12 KiB
package com.gizwits.opensource.appkit.UserModule;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.graphics.drawable.GradientDrawable;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.Message;
|
|
import android.text.InputType;
|
|
import android.text.TextUtils;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.view.View.OnClickListener;
|
|
import android.view.inputmethod.InputMethodManager;
|
|
import android.widget.AdapterView;
|
|
import android.widget.ArrayAdapter;
|
|
import android.widget.Button;
|
|
import android.widget.EditText;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.Spinner;
|
|
import android.widget.TextView;
|
|
import android.widget.Toast;
|
|
|
|
import com.gizwits.opensource.appkit.R;
|
|
import com.gizwits.gizwifisdk.api.GizWifiSDK;
|
|
import com.gizwits.gizwifisdk.enumration.GizUserAccountType;
|
|
import com.gizwits.gizwifisdk.enumration.GizWifiErrorCode;
|
|
import com.gizwits.opensource.appkit.CommonModule.GosDeploy;
|
|
|
|
import java.util.Timer;
|
|
import java.util.TimerTask;
|
|
import java.util.regex.Matcher;
|
|
import java.util.regex.Pattern;
|
|
|
|
@SuppressLint("HandlerLeak")
|
|
public class GosRegisterUserActivity extends GosUserModuleBaseActivity implements OnClickListener, AdapterView.OnItemSelectedListener {
|
|
|
|
/**
|
|
* The et Name
|
|
*/
|
|
private EditText etName;
|
|
//register_phoneUser-false-start
|
|
/**
|
|
* The ll code
|
|
*/
|
|
private LinearLayout llCode;
|
|
|
|
/**
|
|
* The btn GetCode
|
|
*/
|
|
private TextView tvGetCode;
|
|
|
|
/**
|
|
* The et Code
|
|
*/
|
|
private EditText etCode;
|
|
/**
|
|
* 验证码重发倒计时
|
|
*/
|
|
int secondleft = 60;
|
|
|
|
/**
|
|
* The timer.
|
|
*/
|
|
Timer timer;
|
|
|
|
//register_phoneUser-false-end
|
|
/**
|
|
* The et Psw
|
|
*/
|
|
private EditText etPsw;
|
|
|
|
/**
|
|
* The et ConfirmPsw
|
|
*/
|
|
private EditText etConfirmPsw;
|
|
|
|
/**
|
|
* The btn Rrgister
|
|
*/
|
|
private Button btnRrgister;
|
|
|
|
/**
|
|
* 数据变量
|
|
*/
|
|
String name, code, psw, confirmpsw;
|
|
|
|
private int usertype = 0;
|
|
|
|
private enum handler_key {
|
|
//register_phoneUser-false-start
|
|
/**
|
|
* 获取验证码.
|
|
*/
|
|
GETCODE,
|
|
/**
|
|
* 手机验证码发送成功.
|
|
*/
|
|
SENDSUCCESSFUL,
|
|
//register_phoneUser-false-end
|
|
|
|
/**
|
|
* 提示信息
|
|
*/
|
|
TOAST,
|
|
/**
|
|
* 倒计时通知
|
|
*/
|
|
TICK_TIME,
|
|
|
|
/**
|
|
* 注册
|
|
*/
|
|
REGISTER,
|
|
}
|
|
|
|
Handler handler = new Handler() {
|
|
public void handleMessage(Message msg) {
|
|
super.handleMessage(msg);
|
|
handler_key key = handler_key.values()[msg.what];
|
|
switch (key) {
|
|
//register_phoneUser-false-start
|
|
case GETCODE:
|
|
progressDialog.show();
|
|
String AppSecret = GosDeploy.appConfig_GizwitsInfoAppSecret();
|
|
GizWifiSDK.sharedInstance().requestSendPhoneSMSCode(AppSecret, msg.obj.toString());
|
|
break;
|
|
case SENDSUCCESSFUL:
|
|
etName.setEnabled(false);
|
|
etName.setTextColor(getResources().getColor(R.color.text_gray_light));
|
|
isStartTimer();
|
|
break;
|
|
case TICK_TIME:
|
|
String getCodeAgain = getString(R.string.getcode_again);
|
|
String timerMessage = getString(R.string.timer_message);
|
|
secondleft--;
|
|
if (secondleft <= 0) {
|
|
timer.cancel();
|
|
tvGetCode.setTextColor(getResources().getColor(R.color.tomato));
|
|
tvGetCode.setEnabled(true);
|
|
tvGetCode.setText(getCodeAgain);
|
|
} else {
|
|
tvGetCode.setText(secondleft + timerMessage);
|
|
}
|
|
break;
|
|
//register_phoneUser-false-end
|
|
case TOAST:
|
|
Toast.makeText(GosRegisterUserActivity.this, msg.obj.toString(), toastTime).show();
|
|
String successfulText = (String) getText(R.string.register_successful);
|
|
|
|
if (msg.obj.toString().equals(successfulText)) {
|
|
spf.edit().putString("UserName", name).commit();
|
|
spf.edit().putString("PassWord", psw).commit();
|
|
isclean = true;
|
|
finish();
|
|
}
|
|
break;
|
|
case REGISTER:
|
|
progressDialog.show();
|
|
GizWifiSDK.sharedInstance().registerUser(name, psw, code, GizUserAccountType.GizUserPhone);
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_gos_register_user);
|
|
// 设置ActionBar
|
|
setToolBar(true, R.string.register);
|
|
initView();
|
|
initEvent();
|
|
}
|
|
|
|
private void initView() {
|
|
etName = (EditText) findViewById(R.id.etName);
|
|
//register_phoneUser-false-start
|
|
tvGetCode = (TextView) findViewById(R.id.tvGetCode);
|
|
etCode = (EditText) findViewById(R.id.etCode);
|
|
llCode = (LinearLayout) findViewById(R.id.llCode);
|
|
//register_phoneUser-false-end
|
|
etPsw = (EditText) findViewById(R.id.etPsw);
|
|
etConfirmPsw = (EditText) findViewById(R.id.etConfirmPsw);
|
|
btnRrgister = (Button) findViewById(R.id.btnRrgister);
|
|
setPhoneOrEmailOrNormalIsVisable();
|
|
}
|
|
|
|
private void setPhoneOrEmailOrNormalIsVisable() {
|
|
etName.setHint(getResources().getString(R.string.name_phone));
|
|
usertype = 0;
|
|
}
|
|
|
|
|
|
private void initEvent() {
|
|
final Timer etTimer = new Timer();
|
|
etTimer.schedule(new TimerTask() {
|
|
|
|
@Override
|
|
public void run() {
|
|
etName.requestFocus();
|
|
InputMethodManager imm = (InputMethodManager) etName.getContext()
|
|
.getSystemService(Context.INPUT_METHOD_SERVICE);
|
|
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
|
|
etTimer.cancel();
|
|
|
|
}
|
|
}, 500);
|
|
//register_phoneUser-false-start
|
|
tvGetCode.setOnClickListener(this);
|
|
//register_phoneUser-false-end
|
|
btnRrgister.setOnClickListener(this);
|
|
}
|
|
|
|
@Override
|
|
public void onClick(View v) {
|
|
switch (v.getId()) {
|
|
//register_phoneUser-false-start
|
|
case R.id.tvGetCode:
|
|
name = etName.getText().toString();
|
|
if (TextUtils.isEmpty(name)) {
|
|
Toast.makeText(GosRegisterUserActivity.this, R.string.toast_name_wrong, toastTime).show();
|
|
return;
|
|
}
|
|
Message msg = new Message();
|
|
msg.obj = name;
|
|
msg.what = handler_key.GETCODE.ordinal();
|
|
handler.sendMessage(msg);
|
|
break;
|
|
//register_phoneUser-false-end
|
|
case R.id.btnRrgister:
|
|
name = etName.getText().toString();
|
|
//register_phoneUser-false-start
|
|
code = etCode.getText().toString();
|
|
//register_phoneUser-false-end
|
|
psw = etPsw.getText().toString();
|
|
confirmpsw = etConfirmPsw.getText().toString();
|
|
if (TextUtils.isEmpty(name)) {
|
|
Toast.makeText(GosRegisterUserActivity.this, R.string.toast_name_wrong, toastTime).show();
|
|
return;
|
|
}
|
|
if (usertype == 0) {
|
|
if (code.length() != 6) {
|
|
Toast.makeText(GosRegisterUserActivity.this, R.string.no_getcode, toastTime).show();
|
|
return;
|
|
}
|
|
}
|
|
if (TextUtils.isEmpty(psw)) {
|
|
Toast.makeText(GosRegisterUserActivity.this, R.string.toast_psw_wrong, toastTime).show();
|
|
return;
|
|
}
|
|
|
|
if (psw.length() < 6) {
|
|
Toast.makeText(GosRegisterUserActivity.this, R.string.toast_psw_short, toastTime).show();
|
|
return;
|
|
}
|
|
|
|
if (TextUtils.isEmpty(confirmpsw)) {
|
|
Toast.makeText(GosRegisterUserActivity.this, R.string.toast_psw_confirm, toastTime).show();
|
|
return;
|
|
}
|
|
if (!psw.equals(confirmpsw)) {
|
|
Toast.makeText(GosRegisterUserActivity.this, R.string.toast_psw_confirm_failed, toastTime).show();
|
|
return;
|
|
}
|
|
|
|
/*
|
|
* if (psw.length() < 6) {
|
|
* Toast.makeText(GosRegisterUserActivity.this,
|
|
* R.string.toast_psw_short, toastTime).show(); return; }
|
|
*/
|
|
handler.sendEmptyMessage(handler_key.REGISTER.ordinal());
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
|
etName.setText("");
|
|
etName.setEnabled(true);
|
|
etName.setTextColor(getResources().getColor(R.color.text_color));
|
|
//register_phoneUser-false-start
|
|
etCode.setText("");
|
|
//register_phoneUser-false-end
|
|
etPsw.setText("");
|
|
etConfirmPsw.setText("");
|
|
etName.setHint(getResources().getString(R.string.name_phone));
|
|
llCode.setVisibility(View.VISIBLE);
|
|
etName.setInputType(InputType.TYPE_CLASS_PHONE);
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onNothingSelected(AdapterView<?> parent) {
|
|
|
|
}
|
|
//register_phoneUser-false-start
|
|
|
|
/**
|
|
* 手机验证码回调
|
|
*/
|
|
@Override
|
|
protected void didRequestSendPhoneSMSCode(GizWifiErrorCode result, String token) {
|
|
progressDialog.cancel();
|
|
Message msg = new Message();
|
|
if (GizWifiErrorCode.GIZ_SDK_SUCCESS != result) {
|
|
msg.what = handler_key.TOAST.ordinal();
|
|
msg.obj = toastError(result);
|
|
handler.sendMessage(msg);
|
|
} else {
|
|
handler.sendEmptyMessage(handler_key.SENDSUCCESSFUL.ordinal());
|
|
msg.what = handler_key.TOAST.ordinal();
|
|
String sendSuccessful = (String) getText(R.string.send_successful);
|
|
msg.obj = sendSuccessful;
|
|
handler.sendMessage(msg);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 倒计时
|
|
*/
|
|
public void isStartTimer() {
|
|
tvGetCode.setEnabled(false);
|
|
tvGetCode.setTextColor(getResources().getColor(R.color.hint_color));
|
|
secondleft = 60;
|
|
timer = new Timer();
|
|
timer.schedule(new TimerTask() {
|
|
|
|
@Override
|
|
public void run() {
|
|
handler.sendEmptyMessage(handler_key.TICK_TIME.ordinal());
|
|
}
|
|
}, 1000, 1000);
|
|
}
|
|
//register_phoneUser-false-end
|
|
|
|
/**
|
|
* 用户注册回调
|
|
*/
|
|
@Override
|
|
protected void didRegisterUser(GizWifiErrorCode result, String uid, String token) {
|
|
progressDialog.cancel();
|
|
if (GizWifiErrorCode.GIZ_SDK_SUCCESS != result) {
|
|
Message msg = new Message();
|
|
msg.what = handler_key.TOAST.ordinal();
|
|
msg.obj = toastError(result);
|
|
handler.sendMessage(msg);
|
|
} else {
|
|
Message msg = new Message();
|
|
msg.what = handler_key.TOAST.ordinal();
|
|
String registerSuccessful = (String) getText(R.string.register_successful);
|
|
msg.obj = registerSuccessful;
|
|
handler.sendMessage(msg);
|
|
}
|
|
}
|
|
|
|
|
|
}
|