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.
demo/src/main/java/com/gizwits/opensource/appkit/UserModule/GosRegisterUserActivity.java

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);
}
}
}