package com.cheikh.lazywaimai.ui.fragment;
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.RegisterStep;
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_first_step)
public class RegisterFirstStepFragment extends BaseFragment<UserController.UserUiCallbacks>
implements UserController.RegisterFirstStepUi {
@Bind(R.id.edit_mobile)
EditText mMobileEdit;
@Bind(R.id.btn_clear_mobile)
ImageView mClearMobileBtn;
@Bind(R.id.btn_send_code)
Button mSendCodeBtn;
@Override
protected BaseController getController() {
return AppContext.getContext().getMainController().getUserController();
}
@Override
public void sendCodeFinish() {
cancelLoading();
mSendCodeBtn.setEnabled(true);
// 跳转到步骤2页面
Display display = getDisplay();
if (display != null) {
display.showRegisterStep(RegisterStep.STEP_SECOND,
mMobileEdit.getText().toString().trim());
}
}
@Override
public void onResponseError(ResponseError error) {
cancelLoading();
mSendCodeBtn.setEnabled(true);
ToastUtil.showToast(error.getMessage());
}
@OnTextChanged(R.id.edit_mobile)
public void onMobileTextChange(CharSequence s) {
int visible = StringUtil.isEmpty(s.toString()) ? View.GONE : View.VISIBLE;
mClearMobileBtn.setVisibility(visible);
}
@OnClick({R.id.btn_clear_mobile, R.id.btn_send_code})
public void onClick(View view) {
switch (view.getId()) {
case R.id.btn_clear_mobile:
mMobileEdit.setText("");
break;
case R.id.btn_send_code:
sendSmsCode();
break;
}
}
/**
* 执行发送验证码的操作
*/
private void sendSmsCode() {
// 隐藏软键盘
SystemUtil.hideKeyBoard(getContext());
// 验证手机号是否为空
final String mobile = mMobileEdit.getText().toString().trim();
if (TextUtils.isEmpty(mobile)) {
ToastUtil.showToast(R.string.toast_error_empty_phone);
return;
}
showLoading(R.string.label_being_something);
// 避免重复点击
mSendCodeBtn.setEnabled(false);
// 发起发送验证码的API请求
getCallbacks().sendCode(mobile);
}
}