package com.cheikh.lazywaimai.ui.fragment;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import butterknife.Bind;
import butterknife.OnClick;
import butterknife.OnTextChanged;
import com.cheikh.lazywaimai.R;
import com.cheikh.lazywaimai.base.BaseController;
import com.cheikh.lazywaimai.base.BaseFragment;
import com.cheikh.lazywaimai.context.AppContext;
import com.cheikh.lazywaimai.controller.UserController;
import com.cheikh.lazywaimai.model.bean.ResponseError;
import com.cheikh.lazywaimai.util.ContentView;
import com.cheikh.lazywaimai.ui.Display;
import com.cheikh.lazywaimai.util.StringUtil;
import com.cheikh.lazywaimai.util.SystemUtil;
import com.cheikh.lazywaimai.util.ToastUtil;
/**
* author:cheikh on 16/5/14 20:45
* email:wanghonghi@126.com
*/
@ContentView(R.layout.fragment_register_third_step)
public class RegisterThirdStepFragment extends BaseFragment<UserController.UserUiCallbacks>
implements UserController.RegisterThirdStepUi {
@Bind(R.id.edit_password)
EditText mPasswordEdit;
@Bind(R.id.btn_clear_password)
ImageView mClearPasswordBtn;
@Bind(R.id.edit_password_again)
EditText mPasswordAgainEdit;
@Bind(R.id.btn_clear_password_again)
ImageView mClearPasswordAgainBtn;
@Bind(R.id.btn_register)
Button mRegisterBtn;
private String mMobile;
public static RegisterThirdStepFragment create(String mobile) {
RegisterThirdStepFragment fragment = new RegisterThirdStepFragment();
if (!TextUtils.isEmpty(mobile)) {
Bundle bundle = new Bundle();
bundle.putString(Display.PARAM_OBJ, mobile);
fragment.setArguments(bundle);
}
return fragment;
}
@Override
protected BaseController getController() {
return AppContext.getContext().getMainController().getUserController();
}
@Override
protected void handleArguments(Bundle arguments) {
if (arguments != null) {
mMobile = arguments.getString(Display.PARAM_OBJ);
}
}
@Override
public void userCreateFinish() {
cancelLoading();
mRegisterBtn.setEnabled(true);
ToastUtil.showToast(R.string.toast_success_register);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Display display = getDisplay();
if (display != null) {
display.finishActivity();
}
}
}, 1500);
}
@Override
public void onResponseError(ResponseError error) {
cancelLoading();
mRegisterBtn.setEnabled(true);
ToastUtil.showToast(error.getMessage());
}
@OnTextChanged(R.id.edit_password)
public void onPasswordTextChange(CharSequence s) {
int visible = StringUtil.isEmpty(s.toString()) ? View.GONE : View.VISIBLE;
mPasswordEdit.setVisibility(visible);
}
@OnTextChanged(R.id.edit_password_again)
public void onPasswordAgainTextChange(CharSequence s) {
int visible = StringUtil.isEmpty(s.toString()) ? View.GONE : View.VISIBLE;
mPasswordAgainEdit.setVisibility(visible);
}
@OnClick({R.id.btn_clear_password, R.id.btn_clear_password_again, R.id.btn_register})
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_clear_password:
mPasswordEdit.setText("");
break;
case R.id.btn_clear_password_again:
mPasswordAgainEdit.setText("");
break;
case R.id.btn_register:
register();
break;
}
}
/**
* 执行创建用户的操作
*/
private void register() {
// 隐藏软键盘
SystemUtil.hideKeyBoard(getContext());
// 验证密码是否为空
final String password = mPasswordEdit.getText().toString().trim();
if (TextUtils.isEmpty(password)) {
ToastUtil.showToast(R.string.toast_error_empty_password);
return;
}
// 验证确认密码是否为空
final String passwordAgain = mPasswordAgainEdit.getText().toString().trim();
if (TextUtils.isEmpty(passwordAgain)) {
ToastUtil.showToast(R.string.toast_error_empty_password_confirm);
return;
}
// 验证两次的密码输入是否一致
if (!password.equals(passwordAgain)) {
ToastUtil.showToast(R.string.toast_error_password_not_consistent);
return;
}
showLoading(R.string.label_being_something);
// 避免重复点击
mRegisterBtn.setEnabled(false);
// 发起发送验证码的API请求
getCallbacks().createUser(mMobile, password);
}
}